From e4d77faaebf863dc1e3188b805d1ce5141636e7a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 1 Sep 2014 17:00:24 +0200 Subject: [PATCH] ncurses: update to ncurses-5.9, with upstream patches taken from fedora up to 20140323 :-( , this fixes some issues, segfaults etc with 'dialog' :-(, todo: replace dialog and ncurses if possible Signed-off-by: Stephan Raue --- packages/devel/ncurses/package.mk | 2 +- .../patches/ncurses-20140308-20140323.patch | 204827 +++++++++++++++ 2 files changed, 204828 insertions(+), 1 deletion(-) create mode 100644 packages/devel/ncurses/patches/ncurses-20140308-20140323.patch diff --git a/packages/devel/ncurses/package.mk b/packages/devel/ncurses/package.mk index a91f95e454..84531af439 100644 --- a/packages/devel/ncurses/package.mk +++ b/packages/devel/ncurses/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="ncurses" -PKG_VERSION="5.7" +PKG_VERSION="5.9" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MIT" diff --git a/packages/devel/ncurses/patches/ncurses-20140308-20140323.patch b/packages/devel/ncurses/patches/ncurses-20140308-20140323.patch new file mode 100644 index 0000000000..2506bf31a6 --- /dev/null +++ b/packages/devel/ncurses/patches/ncurses-20140308-20140323.patch @@ -0,0 +1,204827 @@ +diff -Naur ncurses-5.9/aclocal.m4 ncurses-5.9.patch/aclocal.m4 +--- ncurses-5.9/aclocal.m4 2011-04-01 01:35:38.000000000 +0200 ++++ ncurses-5.9.patch/aclocal.m4 2014-09-01 16:33:22.236791923 +0200 +@@ -1,5 +1,5 @@ + dnl*************************************************************************** +-dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++dnl Copyright (c) 1998-2013,2014 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.553 2011/03/31 23:35:38 tom Exp $ ++dnl $Id: aclocal.m4,v 1.686 2014/02/10 00:37:02 tom Exp $ + dnl Macros used in NCURSES auto-configuration script. + dnl + dnl These macros are maintained separately from NCURSES. The copyright on +@@ -62,7 +62,33 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07 ++dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56 ++dnl ------------------ ++dnl Conditionally generate script according to whether we're using a given autoconf. ++dnl ++dnl $1 = version to compare against ++dnl $2 = code to use if AC_ACVERSION is at least as high as $1. ++dnl $3 = code to use if AC_ACVERSION is older than $1. ++define([CF_ACVERSION_CHECK], ++[ ++ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl ++ifdef([m4_version_compare], ++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], ++[CF_ACVERSION_COMPARE( ++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), ++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 ++dnl -------------------- ++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, ++dnl MAJOR2, MINOR2, TERNARY2, ++dnl PRINTABLE2, not FOUND, FOUND) ++define([CF_ACVERSION_COMPARE], ++[ifelse(builtin([eval], [$2 < $5]), 1, ++[ifelse([$8], , ,[$8])], ++[ifelse([$9], , ,[$9])])])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07 + dnl ------------------- + dnl Construct the list of include-options for the C programs in the Ada95 + dnl binding. +@@ -76,7 +102,7 @@ + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then ++ if test x$prefix != x/usr ; then + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + fi + else +@@ -291,7 +317,7 @@ + dnl $2 = variable to update (default $LIBS) + AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12 ++dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05 + dnl ------------------ + dnl Append to a search-list for a nonstandard header/lib-file + dnl $1 = the variable to return as result +@@ -301,9 +327,9 @@ + dnl $5 = a directory that we do not want $4 to match + AC_DEFUN([CF_ADD_SUBDIR_PATH], + [ +-test "$4" != "$5" && \ ++test "x$4" != "x$5" && \ + test -d "$4" && \ +-ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) { ++ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) { + test -n "$verbose" && echo " ... testing for $3-directories under $4" + test -d $4/$3 && $1="[$]$1 $4/$3" + test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2" +@@ -313,76 +339,6 @@ + } + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32 +-dnl ---------------- +-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES' +-dnl in the sharutils 4.2 distribution. +-AC_DEFUN([CF_ANSI_CC_CHECK], +-[ +-AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[ +-cf_cv_ansi_cc=no +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc +-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) +-for cf_arg in "-DCC_HAS_PROTOS" \ +- "" \ +- -qlanglvl=ansi \ +- -std1 \ +- -Ae \ +- "-Aa -D_HPUX_SOURCE" \ +- -Xc +-do +- CF_ADD_CFLAGS($cf_arg) +- AC_TRY_COMPILE( +-[ +-#ifndef CC_HAS_PROTOS +-#if !defined(__STDC__) || (__STDC__ != 1) +-choke me +-#endif +-#endif +-],[ +- int test (int i, double x); +- struct s1 {int (*f) (int a);}; +- struct s2 {int (*f) (double a);};], +- [cf_cv_ansi_cc="$cf_arg"; break]) +-done +-CFLAGS="$cf_save_CFLAGS" +-CPPFLAGS="$cf_save_CPPFLAGS" +-]) +- +-if test "$cf_cv_ansi_cc" != "no"; then +-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then +- CF_ADD_CFLAGS($cf_cv_ansi_cc) +-else +- AC_DEFINE(CC_HAS_PROTOS) +-fi +-fi +-])dnl +-dnl --------------------------------------------------------------------------- +-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 +-dnl macros, since tools such as unproto can fake prototypes, but only part of +-dnl the preprocessor. +-AC_DEFUN([CF_ANSI_CC_REQD], +-[AC_REQUIRE([CF_ANSI_CC_CHECK]) +-if test "$cf_cv_ansi_cc" = "no"; then +- AC_MSG_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 +- c. use a wrapper such as unproto]) +-fi +-])dnl +-dnl --------------------------------------------------------------------------- + dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 + dnl -------------- + dnl Allow user to disable a normally-on option. +@@ -465,7 +421,7 @@ + AC_SUBST(ARFLAGS) + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03 ++dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50 + dnl ----------------- + dnl Check if awk can handle big strings using printf. Some older versions of + dnl awk choke on large strings passed via "%s". +@@ -479,8 +435,8 @@ + 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 ++ if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \ ++ | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $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 +@@ -536,7 +492,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30 ++dnl CF_BOOL_SIZE version: 13 updated: 2013/04/13 18:03:21 + dnl ------------ + dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type). + dnl Don't bother looking for bool.h, since it's been deprecated. +@@ -570,7 +526,7 @@ + + #endif + +-main() ++int main() + { + FILE *fp = fopen("cf_test.out", "w"); + if (fp != 0) { +@@ -604,7 +560,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15 ++dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55 + dnl ----------- + dnl If we're cross-compiling, allow the user to override the tools and their + dnl options. The configure script is oriented toward identifying the host +@@ -614,7 +570,8 @@ + dnl $1 = default for $CPPFLAGS + dnl $2 = default for $LIBS + AC_DEFUN([CF_BUILD_CC],[ +-AC_REQUIRE([CF_PROG_EXT]) ++CF_ACVERSION_CHECK(2.52,, ++ [AC_REQUIRE([CF_PROG_EXT])]) + if test "$cross_compiling" = yes ; then + + # defaults that we might want to override +@@ -695,7 +652,33 @@ + AC_SUBST(BUILD_OBJEXT) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00 ++dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49 ++dnl --------------- ++dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content ++dnl into CC. This will not help with broken scripts that wrap the compiler with ++dnl options, but eliminates a more common category of user confusion. ++AC_DEFUN([CF_CC_ENV_FLAGS], ++[ ++# This should have been defined by AC_PROG_CC ++: ${CC:=cc} ++ ++AC_MSG_CHECKING(\$CC variable) ++case "$CC" in #(vi ++*[[\ \ ]]-[[IUD]]*) ++ AC_MSG_RESULT(broken) ++ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) ++ # humor him... ++ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` ++ CC=`echo "$CC" | sed -e 's/[[ ]].*//'` ++ CF_ADD_CFLAGS($cf_flags) ++ ;; ++*) ++ AC_MSG_RESULT(ok) ++ ;; ++esac ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05 + dnl --------------- + dnl Determine the default configuration into which we'll install ncurses. This + dnl can be overridden by the user's command-line options. There's two items to +@@ -713,7 +696,7 @@ + if test "x$prefix" = "xNONE" ; then + case "$cf_cv_system_name" in + # non-vendor systems don't have a conflict +- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) ++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) + prefix=/usr + ;; + *) prefix=$ac_default_prefix +@@ -749,30 +732,51 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52 ++dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13 + dnl ---------- + dnl Check if the terminal-capability database functions are available. If not, + dnl ncurses has a much-reduced version. + AC_DEFUN([CF_CGETENT],[ +-AC_MSG_CHECKING(for terminal-capability database functions) +-AC_CACHE_VAL(cf_cv_cgetent,[ ++AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[ + AC_TRY_LINK([ + #include ],[ + char temp[128]; + char *buf = temp; + char *db_array = temp; +- cgetent(&buf, /* int *, */ &db_array, "vt100"); ++ cgetent(&buf, &db_array, "vt100"); + cgetcap(buf, "tc", '='); + cgetmatch(buf, "tc"); + ], + [cf_cv_cgetent=yes], + [cf_cv_cgetent=no]) + ]) +-AC_MSG_RESULT($cf_cv_cgetent) +-test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT) ++ ++if test "$cf_cv_cgetent" = yes ++then ++ AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent]) ++AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[ ++AC_TRY_LINK([ ++#include ],[ ++ char temp[128]; ++ char *buf = temp; ++#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */ ++ const char *db_array = temp; ++ cgetent(&buf, &db_array, "vt100"); ++#endif ++ cgetcap(buf, "tc", '='); ++ cgetmatch(buf, "tc"); ++ ], ++ [cf_cv_cgetent_const=yes], ++ [cf_cv_cgetent_const=no]) ++]) ++ if test "$cf_cv_cgetent_const" = yes ++ then ++ AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations]) ++ fi ++fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59 ++dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03 + 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. +@@ -795,7 +799,7 @@ + system_name="`(hostname) 2>/dev/null`" + fi + fi +-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name") ++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.]) + AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) + + test -z "$system_name" && system_name="$cf_cv_system_name" +@@ -908,7 +912,82 @@ + fi + ])])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18 ++dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 ++dnl ------------------------ ++dnl Show the version of libtool ++dnl ++dnl Save the version in a cache variable - this is not entirely a good thing, ++dnl but the version string from libtool is very ugly, and for bug reports it ++dnl might be useful to have the original string. ++AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[ ++if test -n "$LIBTOOL" && test "$LIBTOOL" != none ++then ++ AC_MSG_CHECKING(version of $LIBTOOL) ++ CF_LIBTOOL_VERSION ++ AC_MSG_RESULT($cf_cv_libtool_version) ++ if test -z "$cf_cv_libtool_version" ; then ++ AC_MSG_ERROR(This is not GNU libtool) ++ fi ++else ++ AC_MSG_ERROR(GNU libtool has not been found) ++fi ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05 ++dnl ---------------- ++dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED ++AC_DEFUN([CF_CHECK_WCHAR_H],[ ++AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[ ++AC_TRY_COMPILE( ++[ ++#include ++#include ++],[ ++ wint_t foo = 0; ++ int bar = iswpunct(foo)], ++ [cf_cv_wchar_h_okay=yes], ++ [cf_cv_wchar_h_okay=no])]) ++ ++if test $cf_cv_wchar_h_okay = no ++then ++ CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) ++fi ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35 ++dnl ----------------- ++dnl Check if the given compiler is really clang. clang's C driver defines ++dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does ++dnl not ignore some gcc options. ++dnl ++dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to ++dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from ++dnl the wrappers for gcc and g++ warnings. ++dnl ++dnl $1 = GCC (default) or GXX ++dnl $2 = CLANG_COMPILER (default) ++dnl $3 = CFLAGS (default) or CXXFLAGS ++AC_DEFUN([CF_CLANG_COMPILER],[ ++ifelse([$2],,CLANG_COMPILER,[$2])=no ++ ++if test "$ifelse([$1],,[$1],GCC)" = yes ; then ++ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) ++ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" ++ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments" ++ AC_TRY_COMPILE([],[ ++#ifdef __clang__ ++#else ++make an error ++#endif ++],[ifelse([$2],,CLANG_COMPILER,[$2])=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++],[]) ++ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" ++ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) ++fi ++]) ++dnl --------------------------------------------------------------------------- ++dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13 + dnl ----------------- + dnl Check if the C++ compiler accepts duplicate parameter initialization. This + dnl is a late feature for the standard and is not in some recent compilers +@@ -932,7 +1011,7 @@ + { + value = x; + } +-void main() { } ++int main() { } + ], + [cf_cv_cpp_param_init=yes], + [cf_cv_cpp_param_init=no], +@@ -940,10 +1019,10 @@ + AC_LANG_RESTORE + ]) + fi +-test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT) ++test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43 ++dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21 + dnl ------------------ + dnl Check if the C++ compiler accepts static_cast in generics. This appears to + dnl not be supported in g++ before 3.0 +@@ -965,7 +1044,7 @@ + int begin_x = 0) + { + } +- ++ NCursesPanel(); + ~NCursesPanel(); + }; + +@@ -996,10 +1075,58 @@ + + fi + +-test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST) ++test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast]) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34 ++dnl --------------- ++dnl Setup special archiver flags for given compilers. ++AC_DEFUN([CF_CXX_AR_FLAGS],[ ++ CXX_AR='$(AR)' ++ CXX_ARFLAGS='$(ARFLAGS)' ++ case $cf_cv_system_name in #(vi ++ irix*) #(vi ++ if test "$GXX" != yes ; then ++ CXX_AR='$(CXX)' ++ CXX_ARFLAGS='-ar -o' ++ fi ++ ;; ++ sco3.2v5*) #(vi ++ CXXLDFLAGS="-u main" ++ ;; ++ solaris2*) ++ if test "$GXX" != yes ; then ++ CXX_AR='$(CXX)' ++ CXX_ARFLAGS='-xar -o' ++ fi ++ ;; ++ esac ++ AC_SUBST(CXXLDFLAGS) ++ AC_SUBST(CXX_AR) ++ AC_SUBST(CXX_ARFLAGS) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41 ++dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13 ++dnl ------------------------- ++dnl For c++, check if iostream uses "std::" namespace. ++AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[ ++AC_CHECK_HEADERS(iostream) ++if test x"$ac_cv_header_iostream" = xyes ; then ++ AC_MSG_CHECKING(if iostream uses std-namespace) ++ AC_TRY_COMPILE([ ++#include ++using std::endl; ++using std::cerr;],[ ++cerr << "testing" << endl; ++],[cf_iostream_namespace=yes],[cf_iostream_namespace=no]) ++ AC_MSG_RESULT($cf_iostream_namespace) ++ if test "$cf_iostream_namespace" = yes ; then ++ AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream]) ++ fi ++fi ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_C_INLINE version: 4 updated: 2012/06/16 14:55:39 + dnl ----------- + dnl Check if the C compiler supports "inline". + dnl $1 is the name of a shell variable to set if inline is supported +@@ -1012,6 +1139,9 @@ + if test "$INTEL_COMPILER" = yes + then + : ++ elif test "$CLANG_COMPILER" = yes ++ then ++ : + elif test "$GCC" = yes + then + AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[ +@@ -1057,7 +1187,44 @@ + AC_SUBST(DIRS_TO_MAKE) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32 ++dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28 ++dnl --------------- ++dnl You can always use "make -n" to see the actual options, but it's hard to ++dnl pick out/analyze warning messages when the compile-line is long. ++dnl ++dnl Sets: ++dnl ECHO_LT - symbol to control if libtool is verbose ++dnl ECHO_LD - symbol to prefix "cc -o" lines ++dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o) ++dnl SHOW_CC - symbol to put before explicit "cc -c" lines ++dnl ECHO_CC - symbol to put before any "cc" line ++dnl ++AC_DEFUN([CF_DISABLE_ECHO],[ ++AC_MSG_CHECKING(if you want to see long compiling messages) ++CF_ARG_DISABLE(echo, ++ [ --disable-echo do not display "compiling" commands], ++ [ ++ ECHO_LT='--silent' ++ ECHO_LD='@echo linking [$]@;' ++ RULE_CC='@echo compiling [$]<' ++ SHOW_CC='@echo compiling [$]@' ++ ECHO_CC='@' ++],[ ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' ++]) ++AC_MSG_RESULT($enableval) ++AC_SUBST(ECHO_LT) ++AC_SUBST(ECHO_LD) ++AC_SUBST(RULE_CC) ++AC_SUBST(SHOW_CC) ++AC_SUBST(ECHO_CC) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03 + dnl ---------------- + dnl Combine no-leak checks with the libraries or tools that are used for the + dnl checks. +@@ -1075,8 +1242,8 @@ + AC_MSG_RESULT($with_no_leaks) + + if test "$with_no_leaks" = yes ; then +- AC_DEFINE(NO_LEAKS) +- AC_DEFINE(YY_NO_LEAKS) ++ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) ++ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) + fi + ])dnl + dnl --------------------------------------------------------------------------- +@@ -1123,6 +1290,30 @@ + fi + ]) + dnl --------------------------------------------------------------------------- ++dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54 ++dnl ------------------ ++dnl This is the "--enable-pc-files" option, which is available if there is a ++dnl pkg-config configuration on the local machine. ++AC_DEFUN([CF_ENABLE_PC_FILES],[ ++AC_REQUIRE([CF_PKG_CONFIG]) ++AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR]) ++ ++if test "$PKG_CONFIG" != none ; then ++ AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) ++ AC_ARG_ENABLE(pc-files, ++ [ --enable-pc-files generate and install .pc files for pkg-config], ++ [enable_pc_files=$enableval], ++ [enable_pc_files=no]) ++ AC_MSG_RESULT($enable_pc_files) ++ if test "$enable_pc_files" != no ++ then ++ CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR) ++ fi ++else ++ enable_pc_files=no ++fi ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42 + dnl --------------- + dnl Check if the rpath option should be used, setting cache variable +@@ -1137,6 +1328,37 @@ + AC_MSG_RESULT($cf_cv_enable_rpath) + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12 ++dnl ---------------------- ++dnl On a few platforms, the compiler and/or loader nags with untruthful ++dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect, ++dnl and implying that most uses of the recommended alternatives are correct. ++dnl ++dnl Factually speaking, no one has actually counted the number of uses of these ++dnl functions versus the total of incorrect uses. Samples of a few thousand ++dnl instances are meaningless compared to the hundreds of millions of lines of ++dnl existing C code. ++dnl ++dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some ++dnl platforms, in implementations of varying quality. Likewise, snprintf is ++dnl standard - but evolved through phases, and older implementations are likely ++dnl to yield surprising results, as documented in manpages on various systems. ++AC_DEFUN([CF_ENABLE_STRING_HACKS], ++[ ++AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings) ++AC_ARG_ENABLE(string-hacks, ++ [ --enable-string-hacks work around bogus compiler/loader warnings], ++ [with_string_hacks=$enableval], ++ [with_string_hacks=no]) ++AC_MSG_RESULT($with_string_hacks) ++ ++if test "x$with_string_hacks" = "xyes"; then ++ AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings]) ++ AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings) ++ AC_CHECK_FUNCS( strlcat strlcpy snprintf ) ++fi ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39 + dnl -------- + dnl Check if 'errno' is declared in +@@ -1145,7 +1367,7 @@ + CF_CHECK_ERRNO(errno) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43 ++dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07 + dnl --------------- + dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between + dnl math.h and builtin.h, only for ncurses +@@ -1154,11 +1376,17 @@ + AC_MSG_CHECKING(for special defines needed for etip.h) + cf_save_CXXFLAGS="$CXXFLAGS" + cf_result="none" ++ ++# etip.h includes ncurses.h which includes ncurses_dll.h ++# But ncurses_dll.h is generated - fix here. ++test -d include || mkdir include ++test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h ++ + for cf_math in "" MATH_H + do + for cf_excp in "" MATH_EXCEPTION + do +- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include" ++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include" + test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}" + test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}" + AC_TRY_COMPILE([ +@@ -1167,7 +1395,7 @@ + test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math}) + test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp}) + cf_result="$cf_math $cf_excp" +- break ++ break 2 + ],[]) + done + done +@@ -1305,7 +1533,35 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02 ++dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10 ++dnl ----------------- ++dnl make ADAFLAGS consistent with CFLAGS ++AC_DEFUN([CF_FIXUP_ADAFLAGS],[ ++ AC_MSG_CHECKING(optimization options for ADAFLAGS) ++ case "$CFLAGS" in ++ *-g*) ++ CF_ADD_ADAFLAGS(-g) ++ ;; ++ esac ++ case "$CFLAGS" in ++ *-O*) ++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'` ++ CF_ADD_ADAFLAGS($cf_O_flag) ++ ;; ++ esac ++ AC_MSG_RESULT($ADAFLAGS) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09 ++dnl -------------- ++dnl Forget that we saw the given tool. ++AC_DEFUN([CF_FORGET_TOOL],[ ++unset ac_cv_prog_ac_ct_$1 ++unset ac_ct_$1 ++unset $1 ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15 + dnl ------------- + dnl Test for dlsym() and related functions, as well as libdl. + dnl +@@ -1332,7 +1588,7 @@ + dlclose(obj); + } + }],[ +- AC_DEFINE(HAVE_LIBDL)],[ ++ AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[ + AC_MSG_ERROR(Cannot link test program for libdl)]) + AC_MSG_RESULT(ok) + else +@@ -1340,7 +1596,7 @@ + fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30 ++dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20 + dnl --------------- + dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither + dnl is found, add our own version of memmove to the list of objects. +@@ -1365,13 +1621,13 @@ + ]) + ],[cf_cv_good_bcopy=no]) + if test "$cf_cv_good_bcopy" = yes ; then +- AC_DEFINE(USE_OK_BCOPY) ++ AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable]) + else +- AC_DEFINE(USE_MY_MEMMOVE) ++ AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable]) + fi + ])])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30 ++dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13 + dnl ----------------- + dnl Check for existence of workable nanosleep() function. Some systems, e.g., + dnl AIX 4.x, provide a non-working version. +@@ -1402,7 +1658,7 @@ + [cf_cv_func_nanosleep=no], + [cf_cv_func_nanosleep=unknown])]) + +-test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP) ++test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()]) + ]) + dnl --------------------------------------------------------------------------- + dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02 +@@ -1433,14 +1689,17 @@ + ]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30 ++dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07 + dnl ------------ + dnl See if the poll function really works. Some platforms have poll(), but + dnl it does not work for terminals or files. + AC_DEFUN([CF_FUNC_POLL],[ + AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[ + AC_TRY_RUN([ ++#include + #include ++#include ++#include + #ifdef HAVE_POLL_H + #include + #else +@@ -1450,19 +1709,42 @@ + struct pollfd myfds; + int ret; + +- myfds.fd = 0; ++ /* check for Darwin bug with respect to "devices" */ ++ myfds.fd = open("/dev/null", 1); /* O_WRONLY */ ++ if (myfds.fd < 0) ++ myfds.fd = 0; + myfds.events = POLLIN; ++ myfds.revents = 0; + + ret = poll(&myfds, 1, 100); +- ${cf_cv_main_return:-return}(ret != 0); ++ ++ if (ret < 0 || (myfds.revents & POLLNVAL)) { ++ ret = -1; ++ } else { ++ int fd = 0; ++ if (!isatty(fd)) { ++ fd = open("/dev/tty", 2); /* O_RDWR */ ++ } ++ ++ if (fd >= 0) { ++ /* also check with standard input */ ++ myfds.fd = fd; ++ myfds.events = POLLIN; ++ myfds.revents = 0; ++ ret = poll(&myfds, 1, 100); ++ } else { ++ ret = -1; ++ } ++ } ++ ${cf_cv_main_return:-return}(ret < 0); + }], + [cf_cv_working_poll=yes], + [cf_cv_working_poll=no], + [cf_cv_working_poll=unknown])]) +-test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL) ++test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24 ++dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13 + dnl --------------- + dnl Some old/broken variations define tcgetattr() only as a macro in + dnl termio(s).h +@@ -1488,10 +1770,10 @@ + tcgetattr(1, &foo);], + [cf_cv_have_tcgetattr=yes], + [cf_cv_have_tcgetattr=no])]) +-test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR) ++test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10 ++dnl CF_FUNC_VSSCANF version: 4 updated: 2012/10/06 17:56:13 + dnl --------------- + dnl Check for vsscanf() function, which is in c9x but generally not in earlier + dnl versions of C. It is in the GNU C library, and can often be simulated by +@@ -1529,14 +1811,14 @@ + cf_cv_func_vsscanf=no])])])]) + + case $cf_cv_func_vsscanf in #(vi +-vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi +-vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi +-_doscan) AC_DEFINE(HAVE__DOSCAN);; ++vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; #(vi ++vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; #(vi ++_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);; + esac + + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32 ++dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03 + dnl ----------------- + dnl Test for availability of useful gcc __attribute__ directives to quiet + dnl compiler warnings. Though useful, not all are supported -- and contrary +@@ -1614,27 +1896,27 @@ + test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) + cat conftest.h >>confdefs.h + case $cf_attribute in #(vi ++ noreturn) #(vi ++ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) ++ ;; + printf) #(vi +- if test "$cf_printf_attribute" = no ; then +- cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h < conftest.$ac_ext <], ++[int x = optind; char *y = optarg], ++[cf_cv_getopt_header=$cf_header ++ break]) ++done ++]) ++if test $cf_cv_getopt_header != none ; then ++ AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h]) ++fi ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41 + dnl ---------------- + AC_DEFUN([CF_GNAT_GENERICS], +@@ -1828,7 +2145,7 @@ + AC_SUBST(PRAGMA_UNREF) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GNAT_PROJECTS version: 2 updated: 2011/03/23 20:24:41 ++dnl CF_GNAT_PROJECTS version: 4 updated: 2013/09/07 14:05:46 + dnl ---------------- + dnl GNAT projects are configured with ".gpr" project files. + dnl GNAT libraries are a further development, using the project feature. +@@ -1845,7 +2162,7 @@ + ;; + *) + case $cf_cv_system_name in #(vi +- cygwin*) #(vi ++ cygwin*|msys*) #(vi + ;; + *) + mkdir conftest.src conftest.bin conftest.lib +@@ -2040,7 +2357,7 @@ + rm -rf conftest* *~conftest* + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41 ++dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10 + dnl --------------- + dnl Verify version of GNAT. + AC_DEFUN([CF_GNAT_VERSION], +@@ -2052,7 +2369,7 @@ + AC_MSG_RESULT($cf_gnat_version) + + case $cf_gnat_version in #(vi +-3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi ++3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi + cf_cv_prog_gnat_correct=yes + ;; + *) +@@ -2092,7 +2409,7 @@ + test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GPP_LIBRARY version: 10 updated: 2010/05/29 16:31:02 ++dnl CF_GPP_LIBRARY version: 11 updated: 2012/10/06 17:56:13 + dnl -------------- + dnl If we're trying to use g++, test if libg++ is installed (a rather common + dnl problem :-). If we have the compiler but no library, we'll be able to +@@ -2119,9 +2436,9 @@ + [cf_cxx_library=yes + CF_ADD_LIB($cf_gpp_libname,CXXLIBS) + if test "$cf_gpp_libname" = cpp ; then +- AC_DEFINE(HAVE_GPP_BUILTIN_H) ++ AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h]) + else +- AC_DEFINE(HAVE_GXX_BUILTIN_H) ++ AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h]) + fi], + [AC_TRY_LINK([ + #include +@@ -2129,28 +2446,28 @@ + [two_arg_error_handler_t foo2 = lib_error_handler], + [cf_cxx_library=yes + CF_ADD_LIB($cf_gpp_libname,CXXLIBS) +- AC_DEFINE(HAVE_BUILTIN_H)], ++ AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])], + [cf_cxx_library=no])]) + LIBS="$cf_save" + AC_MSG_RESULT($cf_cxx_library) + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GXX_VERSION version: 6 updated: 2010/10/23 15:44:18 ++dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39 + dnl -------------- + dnl Check for version of g++ + AC_DEFUN([CF_GXX_VERSION],[ + AC_REQUIRE([AC_PROG_CPP]) + GXX_VERSION=none + if test "$GXX" = yes; then +- AC_MSG_CHECKING(version of g++) ++ AC_MSG_CHECKING(version of ${CXX:-g++}) + 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 + AC_MSG_RESULT($GXX_VERSION) + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GXX_WARNINGS version: 6 updated: 2010/08/14 18:25:37 ++dnl CF_GXX_WARNINGS version: 8 updated: 2013/11/16 14:27:53 + dnl --------------- + dnl Check if the compiler supports useful warning options. + dnl +@@ -2173,6 +2490,7 @@ + [ + + CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS) ++CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS) + + AC_REQUIRE([CF_GXX_VERSION]) + +@@ -2238,16 +2556,17 @@ + for cf_opt in \ + Wabi \ + fabi-version=0 \ ++ Wextra \ ++ Wignored-qualifiers \ ++ Wlogical-op \ + Woverloaded-virtual \ + Wsign-promo \ + Wsynth \ + Wold-style-cast \ + Wcast-align \ + Wcast-qual \ +- Wmissing-prototypes \ + Wpointer-arith \ + Wshadow \ +- Wstrict-prototypes \ + Wundef $cf_gxx_extra_warnings $1 + do + CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt" +@@ -2464,7 +2783,7 @@ + [AC_DIVERT_HELP([$1])dnl + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40 ++dnl CF_INCLUDE_DIRS version: 8 updated: 2013/10/12 16:45:09 + 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 +@@ -2472,25 +2791,25 @@ + dnl since that usually breaks gcc's shadow-includes. + AC_DEFUN([CF_INCLUDE_DIRS], + [ +-CPPFLAGS="$CPPFLAGS -I. -I../include" +-if test "$srcdir" != "."; then +- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" +-fi + if test "$GCC" != yes; then +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ if test x$prefix != x/usr ; then ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + fi + else +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + fi + fi ++if test "$srcdir" != "."; then ++ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" ++fi ++CPPFLAGS="-I. -I../include $CPPFLAGS" + AC_SUBST(CPPFLAGS) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42 ++dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05 + dnl ----------------- + dnl Check if the given compiler is really the Intel compiler for Linux. It + dnl tries to imitate gcc, but does not return an error when it finds a mismatch +@@ -2504,6 +2823,7 @@ + dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS + dnl $3 = CFLAGS (default) or CXXFLAGS + AC_DEFUN([CF_INTEL_COMPILER],[ ++AC_REQUIRE([AC_CANONICAL_HOST]) + ifelse([$2],,INTEL_COMPILER,[$2])=no + + if test "$ifelse([$1],,[$1],GCC)" = yes ; then +@@ -2527,7 +2847,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52 ++dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13 + dnl ---------- + dnl Check if we have either a function or macro for 'isascii()'. + AC_DEFUN([CF_ISASCII], +@@ -2539,10 +2859,10 @@ + [cf_cv_have_isascii=no]) + ])dnl + AC_MSG_RESULT($cf_cv_have_isascii) +-test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII) ++test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50 ++dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51 + dnl ------------ + dnl Add checks for large file support. + AC_DEFUN([CF_LARGEFILE],[ +@@ -2576,12 +2896,12 @@ + [cf_cv_struct_dirent64=yes], + [cf_cv_struct_dirent64=no]) + ]) +- test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64) ++ test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64]) + fi + ]) + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_LDFLAGS_STATIC version: 8 updated: 2010/10/23 14:39:56 ++dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48 + 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 +@@ -2602,7 +2922,7 @@ + esac + else + case $cf_cv_system_name in #( +- aix[[456]]*) #( from ld manpage ++ aix[[4-7]]*) #( from ld manpage + LDFLAGS_STATIC=-bstatic + LDFLAGS_SHARED=-bdynamic + ;; +@@ -2652,7 +2972,17 @@ + int cf_ldflags_static(FILE *fp); + ],[ + return cf_ldflags_static(stdin); +-],[cf_ldflags_static=yes],[cf_ldflags_static=no]) ++],[ ++ # some linkers simply ignore the -dynamic ++ case x`file conftest$ac_exeext 2>/dev/null` in #(vi ++ *static*) # (vi ++ cf_ldflags_static=no ++ ;; ++ *) ++ cf_ldflags_static=yes ++ ;; ++ esac ++],[cf_ldflags_static=no]) + + rm -f libconftest.* + LIBS="$cf_save_LIBS" +@@ -2673,7 +3003,7 @@ + AC_SUBST(LDFLAGS_SHARED) + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05 ++dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41 + dnl --------------- + dnl For the given system and compiler, find the compiler flags to pass to the + dnl loader to use the "rpath" feature. +@@ -2694,10 +3024,10 @@ + linux*|gnu*|k*bsd*-gnu) #(vi + LD_RPATH_OPT="-Wl,-rpath," + ;; +-openbsd[[2-9]].*) #(vi ++openbsd[[2-9]].*|mirbsd*) #(vi + LD_RPATH_OPT="-Wl,-rpath," + ;; +-freebsd*) #(vi ++dragonfly*|freebsd*) #(vi + LD_RPATH_OPT="-rpath " + ;; + netbsd*) #(vi +@@ -2756,11 +3086,23 @@ + $1="$cf_library_path_list [$]$1" + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16 ++dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 ++dnl ------------------ ++AC_DEFUN([CF_LIBTOOL_VERSION],[ ++if test -n "$LIBTOOL" && test "$LIBTOOL" != none ++then ++ 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.]].*//'` ++else ++ cf_cv_libtool_version= ++fi ++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10 + dnl ------------- + dnl Compute the library-prefix for the given host system + dnl $1 = variable to set +-AC_DEFUN([CF_LIB_PREFIX], ++define([CF_LIB_PREFIX], + [ + case $cf_cv_system_name in #(vi + OS/2*|os2*) #(vi +@@ -2773,11 +3115,11 @@ + AC_SUBST(LIB_PREFIX) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_LIB_RULES version: 61 updated: 2010/10/23 16:10:30 ++dnl CF_LIB_RULES version: 74 updated: 2013/09/07 13:54:05 + 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 +-dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in ++dnl subdirectory is a library-source directory, modify the Libs_To_Make list in + dnl the corresponding makefile to list the models that we'll generate. + dnl + dnl For shared libraries, make a list of symbolic links to construct when +@@ -2786,15 +3128,19 @@ + dnl lib.so -> + dnl lib.so. -> + dnl lib.so.. ++dnl ++dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable. + AC_DEFUN([CF_LIB_RULES], + [ +-CF_LIB_PREFIX(cf_prefix) ++cf_prefix=$LIB_PREFIX + AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) + +-if test $cf_cv_shlib_version = cygdll ; then ++case $cf_cv_shlib_version in #(vi ++cygdll|msysdll|mingw) + TINFO_NAME=$TINFO_ARG_SUFFIX + TINFO_SUFFIX=.dll +-fi ++ ;; ++esac + + if test -n "$TINFO_SUFFIX" ; then + case $TINFO_SUFFIX in +@@ -2820,79 +3166,78 @@ + elif test -f $srcdir/$cf_dir/modules; then + + SHARED_LIB= +- LIBS_TO_MAKE= ++ Libs_To_Make= + for cf_item in $cf_LIST_MODELS + do + CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf) ++ cf_libname=$cf_dir ++ test "$cf_dir" = c++ && cf_libname=ncurses++ + if test $cf_item = shared ; then +- if test "$cf_cv_do_symlinks" = yes ; then +- case "$cf_cv_shlib_version" in #(vi +- rel) #(vi +- case "$cf_cv_system_name" in #(vi +- darwin*) +- case .${LIB_SUFFIX} in +- .tw*) +- cf_suffix=`echo $cf_suffix | sed 's/^tw//'` +- cf_suffix=tw'.${REL_VERSION}'"$cf_suffix" +- ;; +- .t*) +- cf_suffix=`echo $cf_suffix | sed 's/^t//'` +- cf_suffix=t'.${REL_VERSION}'"$cf_suffix" +- ;; +- .w*) +- cf_suffix=`echo $cf_suffix | sed 's/^w//'` +- cf_suffix=w'.${REL_VERSION}'"$cf_suffix" ++ if test -n "${LIB_SUFFIX}" ++ then ++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` ++ else ++ cf_shared_suffix="$cf_suffix" ++ fi ++ if test "$cf_cv_do_symlinks" = yes ; then ++ cf_version_name= ++ ++ case "$cf_cv_shlib_version" in #(vi ++ rel) #(vi ++ cf_version_name=REL_VERSION + ;; +- *) +- cf_suffix='.${REL_VERSION}'"$cf_suffix" ++ abi) ++ cf_version_name=ABI_VERSION + ;; + esac +- ;; #(vi +- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;; +- esac ++ ++ if test -n "$cf_version_name" ++ then ++ case "$cf_cv_system_name" in #(vi ++ darwin*) ++ # "w", etc? ++ cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix" ++ ;; #(vi ++ *) ++ cf_suffix="$cf_suffix"'.${'$cf_version_name'}' ++ ;; ++ esac ++ fi ++ if test -n "${LIB_SUFFIX}" ++ then ++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` ++ else ++ cf_shared_suffix="$cf_suffix" ++ fi ++ fi ++ # cygwin needs import library, and has unique naming convention ++ # use autodetected ${cf_prefix} for import lib and static lib, but ++ # use 'cyg' prefix for shared lib. ++ case $cf_cv_shlib_version in #(vi ++ cygdll) #(vi ++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` ++ Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}" ++ continue + ;; +- abi) +- case "$cf_cv_system_name" in #(vi +- darwin*) +- case .${LIB_SUFFIX} in +- .tw*) +- cf_suffix=`echo $cf_suffix | sed 's/^tw//'` +- cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix" +- ;; +- .t*) +- cf_suffix=`echo $cf_suffix | sed 's/^t//'` +- cf_suffix=t'.${ABI_VERSION}'"$cf_suffix" +- ;; +- .w*) +- cf_suffix=`echo $cf_suffix | sed 's/^w//'` +- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix" +- ;; +- *) +- cf_suffix='.${ABI_VERSION}'"$cf_suffix" +- ;; +- esac +- ;; #(vi +- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;; +- esac ++ msysdll) #(vi ++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` ++ Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}" ++ continue ++ ;; ++ mingw) ++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` ++ Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}" ++ continue + ;; + esac + fi +- # cygwin needs import library, and has unique naming convention +- # use autodetected ${cf_prefix} for import lib and static lib, but +- # use 'cyg' prefix for shared lib. +- if test $cf_cv_shlib_version = cygdll ; then +- cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` +- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}" +- continue +- fi +- fi +- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" ++ Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}" + done + + if test $cf_dir = ncurses ; then + cf_subsets="$LIB_SUBSETS" + cf_r_parts="$cf_subsets" +- cf_liblist="$LIBS_TO_MAKE" ++ cf_liblist="$Libs_To_Make" + + while test -n "$cf_r_parts" + do +@@ -2912,7 +3257,7 @@ + ;; + esac + if test -n "$cf_item"; then +- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" ++ Libs_To_Make="$cf_item $Libs_To_Make" + fi + else + break +@@ -2922,13 +3267,40 @@ + cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` + fi + +- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ ++ if test $cf_dir = c++; then ++ if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then ++ cf_list= ++ for cf_item in $Libs_To_Make ++ do ++ case $cf_item in ++ *.a) ++ ;; ++ *) ++ cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"` ++ ;; ++ esac ++ for cf_test in $cf_list ++ do ++ if test "$cf_test" = "$cf_item" ++ then ++ cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'` ++ cf_item= ++ break ++ fi ++ done ++ test -n "$cf_item" && cf_list="$cf_list $cf_item" ++ done ++ Libs_To_Make="$cf_list" ++ fi ++ fi ++ ++ sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \ + -e "s%@SHARED_LIB@%$SHARED_LIB%" \ + $cf_dir/Makefile >$cf_dir/Makefile.out + mv $cf_dir/Makefile.out $cf_dir/Makefile + + $AWK -f $srcdir/mk-0th.awk \ +- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \ ++ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \ + $srcdir/$cf_dir/modules >>$cf_dir/Makefile + + for cf_subset in $cf_subsets +@@ -2936,8 +3308,23 @@ + cf_subdirs= + for cf_item in $cf_LIST_MODELS + do ++ + echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" + CF_UPPER(cf_ITEM,$cf_item) ++ ++ CXX_MODEL=$cf_ITEM ++ if test "$CXX_MODEL" = SHARED; then ++ case $cf_cv_shlib_version in #(vi ++ cygdll|msysdll|mingw) #(vi ++ test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED) ++ with_shared_cxx=yes ++ ;; ++ *) ++ test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL ++ ;; ++ esac ++ fi ++ + CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf) + CF_OBJ_SUBDIR($cf_item,cf_subdir) + +@@ -2955,6 +3342,8 @@ + cf_libname=$TICS_LIB_SUFFIX + ;; + esac ++ elif test $cf_dir = c++ ; then ++ cf_libname=ncurses++$LIB_SUFFIX + else + cf_libname=${cf_libname}$LIB_SUFFIX + fi +@@ -3006,10 +3395,12 @@ + name=${cf_libname}${cf_dir_suffix} \ + traces=$LIB_TRACING \ + MODEL=$cf_ITEM \ ++ CXX_MODEL=$CXX_MODEL \ + model=$cf_subdir \ + prefix=$cf_prefix \ + suffix=$cf_suffix \ + subset=$cf_subset \ ++ driver=$cf_cv_term_driver \ + SymLink="$LN_S" \ + TermlibRoot=$TINFO_NAME \ + TermlibSuffix=$TINFO_SUFFIX \ +@@ -3048,7 +3439,7 @@ + done + fi + +- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile ++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile + done + + for cf_dir in $SRC_SUBDIRS +@@ -3063,7 +3454,7 @@ + echo 'libs \' >> Makefile + echo 'install.libs \' >> Makefile + echo 'uninstall.libs ::' >> Makefile +- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile ++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile + ;; + esac + fi +@@ -3086,7 +3477,7 @@ + uninstall.libs \\ + install.$cf_dir \\ + uninstall.$cf_dir :: +- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@ ++ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@ + CF_EOF + elif test -f $srcdir/$cf_dir/headers; then + cat >> Makefile <> Makefile <> Makefile <>$cf_man_alias <<-CF_EOF2 + s,@DATADIR@,\$datadir,g +- s,@TERMINFO@,\$TERMINFO,g +- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g +- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g +- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g +- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g ++ s,@TERMINFO@,\${TERMINFO:="no default value"},g ++ s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g ++ s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g ++ s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g ++ s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g ++ s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g + CF_EOF + ifelse($1,,,[ + for cf_name in $1 +@@ -3949,7 +4333,9 @@ + + if test "$MANPAGE_ALIASES" != no ; then + cat >>$cf_edit_man <>$cf_edit_man <\$TMP.out ++ mv \$TMP.out \$TMP ++CF_EOF ++fi ++ + if test $with_curses_h != yes ; then + cat >>$cf_edit_man <\$TMP.out +@@ -4154,7 +4547,7 @@ + fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55 ++dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05 + dnl ---------------------- + dnl Check if the file-system supports mixed-case filenames. If we're able to + dnl create a lowercase name and see it as uppercase, it doesn't support that. +@@ -4163,7 +4556,7 @@ + AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ + if test "$cross_compiling" = yes ; then + case $target_alias in #(vi +- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi ++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) +@@ -4181,10 +4574,10 @@ + rm -f conftest CONFTEST + fi + ]) +-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) ++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37 ++dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49 + dnl ---------- + dnl Check for a working mkstemp. This creates two files, checks that they are + dnl successfully created and distinct (AmigaOS apparently fails on the last). +@@ -4226,11 +4619,13 @@ + } + ],[cf_cv_func_mkstemp=yes + ],[cf_cv_func_mkstemp=no +-],[AC_CHECK_FUNC(mkstemp) +-]) ++],[cf_cv_func_mkstemp=maybe]) + ]) ++if test "x$cf_cv_func_mkstemp" = xmaybe ; then ++ AC_CHECK_FUNC(mkstemp) ++fi + if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then +- AC_DEFINE(HAVE_MKSTEMP) ++ AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.]) + fi + ])dnl + dnl --------------------------------------------------------------------------- +@@ -4258,14 +4653,14 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05 ++dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03 + dnl ------------------ + dnl see CF_WITH_NO_LEAKS + AC_DEFUN([CF_NO_LEAKS_OPTION],[ + AC_MSG_CHECKING(if you want to use $1 for testing) + AC_ARG_WITH($1, + [$2], +- [AC_DEFINE($3)ifelse([$4],,[ ++ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[ + $4 + ]) + : ${with_cflags:=-g} +@@ -4306,7 +4701,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31 ++dnl CF_OBJ_SUBDIR version: 6 updated: 2013/09/07 14:06:10 + dnl ------------- + dnl Compute the object-directory name from the given model name + AC_DEFUN([CF_OBJ_SUBDIR], +@@ -4318,7 +4713,7 @@ + profile) $2='obj_p' ;; + shared) + case $cf_cv_system_name in #(vi +- cygwin) #(vi ++ cygwin|msys) #(vi + $2='objects' ;; + *) + $2='obj_s' ;; +@@ -4326,20 +4721,23 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42 ++dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12 + dnl ---------- +-dnl Provide a value for the $PATH and similar separator ++dnl Provide a value for the $PATH and similar separator (or amend the value ++dnl as provided in autoconf 2.5x). + AC_DEFUN([CF_PATHSEP], + [ ++ AC_MSG_CHECKING(for PATH separator) + case $cf_cv_system_name in + os2*) PATH_SEPARATOR=';' ;; +- *) PATH_SEPARATOR=':' ;; ++ *) ${PATH_SEPARATOR:=':'} ;; + esac + ifelse([$1],,,[$1=$PATH_SEPARATOR]) + AC_SUBST(PATH_SEPARATOR) ++ AC_MSG_RESULT($PATH_SEPARATOR) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42 ++dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54 + 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 +@@ -4359,7 +4757,7 @@ + ;; + .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX + ;; +-.\[$]{*prefix}*) #(vi ++.\[$]{*prefix}*|.\[$]{*dir}*) #(vi + eval $1="[$]$1" + case ".[$]$1" in #(vi + .NONE/*) +@@ -4376,7 +4774,7 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24 ++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22 + dnl ------------- + dnl Check for the package-config program, unless disabled by command-line. + AC_DEFUN([CF_PKG_CONFIG], +@@ -4393,7 +4791,9 @@ + PKG_CONFIG=none + ;; + yes) #(vi +- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none) ++ CF_ACVERSION_CHECK(2.52, ++ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)], ++ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)]) + ;; + *) + PKG_CONFIG=$withval +@@ -4554,6 +4954,19 @@ + test -z "$AWK" && AC_MSG_ERROR(No awk program found) + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55 ++dnl ---------- ++dnl standard check for CC, plus followup sanity checks ++dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name ++AC_DEFUN([CF_PROG_CC],[ ++ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)]) ++CF_GCC_VERSION ++CF_ACVERSION_CHECK(2.52, ++ [AC_PROG_CC_STDC], ++ [CF_ANSI_CC_REQD]) ++CF_CC_ENV_FLAGS ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37 + dnl -------------- + dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that +@@ -4593,31 +5006,6 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30 +-dnl -------------- +-dnl Check if C (preprocessor) -U and -D options are processed in the order +-dnl given rather than by type of option. Some compilers insist on apply all +-dnl of the -U options after all of the -D options. Others allow mixing them, +-dnl and may predefine symbols that conflict with those we define. +-AC_DEFUN([CF_PROG_CC_U_D], +-[ +-AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[ +- cf_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS" +- AC_TRY_COMPILE([],[ +-#ifndef U_D_OPTIONS +-make an undefined-error +-#endif +-#ifdef D_U_OPTIONS +-make a defined-error +-#endif +- ],[ +- cf_cv_cc_u_d_options=yes],[ +- cf_cv_cc_u_d_options=no]) +- CPPFLAGS="$cf_save_CPPFLAGS" +-]) +-])dnl +-dnl --------------------------------------------------------------------------- + dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59 + dnl ------------- + dnl AC_PROG_EGREP was introduced in autoconf 2.53. +@@ -4633,32 +5021,7 @@ + test -z "$EGREP" && AC_MSG_ERROR(No egrep program found) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18 +-dnl ----------- +-dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX. +-AC_DEFUN([CF_PROG_EXT], +-[ +-AC_REQUIRE([CF_CHECK_CACHE]) +-case $cf_cv_system_name in +-os2*) +- CFLAGS="$CFLAGS -Zmt" +- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__" +- CXXFLAGS="$CXXFLAGS -Zmt" +- # autoconf's macro sets -Zexe and suffix both, which conflict:w +- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" +- ac_cv_exeext=.exe +- ;; +-esac +- +-AC_EXEEXT +-AC_OBJEXT +- +-PROG_EXT="$EXEEXT" +-AC_SUBST(PROG_EXT) +-test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT") +-])dnl +-dnl --------------------------------------------------------------------------- +-dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18 ++dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47 + dnl ------------ + dnl Check for gnatmake, ensure that it is complete. + AC_DEFUN([CF_PROG_GNAT],[ +@@ -4666,6 +5029,7 @@ + AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) + if test "$ac_cv_prog_gnat_exists" = no; then + cf_ada_make= ++ cf_cv_prog_gnat_correct=no + else + CF_GNAT_VERSION + AC_CHECK_PROG(M4_exists, m4, yes, no) +@@ -4709,7 +5073,7 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40 ++dnl CF_PROG_LDCONFIG version: 3 updated: 2011/06/04 20:09:13 + dnl ---------------- + dnl Check for ldconfig, needed to fixup shared libraries that would be built + dnl and then used in the install. +@@ -4718,7 +5082,7 @@ + LDCONFIG=: + else + case "$cf_cv_system_name" in #(vi +-dragonfly*|freebsd*) #(vi ++dragonfly*|mirbsd*|freebsd*) #(vi + test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R" + ;; + *) LDPATH=$PATH:/sbin:/usr/sbin +@@ -4759,7 +5123,7 @@ + test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_REGEX version: 8 updated: 2010/08/07 14:09:44 ++dnl CF_REGEX version: 10 updated: 2012/10/04 20:12:20 + dnl -------- + dnl Attempt to determine if we've got one of the flavors of regular-expression + dnl code that we can support. +@@ -4771,7 +5135,7 @@ + cf_regex_libs="regex re" + case $host_os in #(vi + mingw*) +- cf_regex_libs="regex.dll $cf_regex_libs" ++ cf_regex_libs="gnurx $cf_regex_libs" + ;; + esac + +@@ -4833,9 +5197,9 @@ + + case $cf_cv_regex_hdrs in #(vi + no) AC_MSG_WARN(no regular expression header found) ;; #(vi +- regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi +- regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi +- regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;; ++ regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;; #(vi ++ regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;; #(vi ++ regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;; + esac + ])dnl + dnl --------------------------------------------------------------------------- +@@ -4869,7 +5233,7 @@ + $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'` + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_RPATH_HACK version: 9 updated: 2011/02/13 13:31:33 ++dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00 + dnl ------------- + AC_DEFUN([CF_RPATH_HACK], + [ +@@ -4886,8 +5250,8 @@ + + AC_TRY_LINK([#include ], + [printf("Hello");], +- [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u` +- cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`]) ++ [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq` ++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`]) + + # If we passed the link-test, but get a "not found" on a given library, + # this could be due to inept reconfiguration of gcc to make it only +@@ -4920,6 +5284,8 @@ + CF_RPATH_HACK_2(LIBS) + + CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS) ++else ++ AC_MSG_RESULT(no) + fi + AC_SUBST(EXTRA_LDFLAGS) + ])dnl +@@ -4984,18 +5350,19 @@ + AC_SUBST(EXTRA_LDFLAGS) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16 ++dnl CF_SHARED_OPTS version: 84 updated: 2013/11/03 06:26:10 + dnl -------------- + dnl -------------- + dnl Attempt to determine the appropriate CC/LD options for creating a shared + dnl library. + dnl +-dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the +-dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib +-dnl We avoid compiling-in a ../lib path for the shared library since that can +-dnl lead to unexpected results at runtime. +-dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries +-dnl are compiled in ../../lib ++dnl Notes: ++dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within ++dnl the build-tree, i.e., by making use of the libraries that are compiled in ++dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the ++dnl shared library since that can lead to unexpected results at runtime. ++dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared ++dnl libraries are compiled in ../../lib + dnl + dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure + dnl to install symbolic links to the rel/abi versions of shared libraries. +@@ -5010,12 +5377,19 @@ + dnl Some loaders leave 'so_locations' lying around. It's nice to clean up. + AC_DEFUN([CF_SHARED_OPTS], + [ +- AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) + AC_REQUIRE([CF_LD_RPATH_OPT]) ++ RM_SHARED_OPTS= + LOCAL_LDFLAGS= + LOCAL_LDFLAGS2= + LD_SHARED_OPTS= + INSTALL_LIB="-m 644" ++ : ${rel_builddir:=.} ++ ++ shlibdir=$libdir ++ AC_SUBST(shlibdir) ++ ++ MAKE_DLLS="#" ++ AC_SUBST(MAKE_DLLS) + + cf_cv_do_symlinks=no + cf_ld_rpath_opt= +@@ -5040,6 +5414,7 @@ + AC_MSG_RESULT($cf_cv_shlib_version) + + cf_cv_rm_so_locs=no ++ cf_try_cflags= + + # Some less-capable ports of gcc support only -fpic + CC_SHARED_OPTS= +@@ -5059,10 +5434,14 @@ + cf_cv_shlib_version_infix=no + + case $cf_cv_system_name in #(vi +- aix[[56]]*) #(vi ++ aix4.[3-9]*|aix[[5-7]]*) #(vi + if test "$GCC" = yes; then + CC_SHARED_OPTS= +- MK_SHARED_LIB='$(CC) -shared' ++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' ++ else ++ # CC_SHARED_OPTS='-qpic=large -G' ++ # perhaps "-bM:SRE -bnoentry -bexpall" ++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' + fi + ;; + beos*) #(vi +@@ -5070,9 +5449,12 @@ + ;; + cygwin*) #(vi + CC_SHARED_OPTS= +- MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cf_cv_shlib_version=cygdll + cf_cv_shlib_version_infix=cygdll ++ shlibdir=$bindir ++ MAKE_DLLS= + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\[$]1 +@@ -5083,12 +5465,34 @@ + ** SHARED_LIB \[$]SHARED_LIB + ** IMPORT_LIB \[$]IMPORT_LIB + EOF +- exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB} ++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ msys*) #(vi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cf_cv_shlib_version=msysdll ++ cf_cv_shlib_version_infix=msysdll ++ shlibdir=$bindir ++ MAKE_DLLS= ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\[$]1 ++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \[$]SHARED_LIB ++ ** IMPORT_LIB \[$]IMPORT_LIB ++EOF ++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} + CF_EOF + chmod +x mk_shared_lib.sh + ;; + darwin*) #(vi +- EXTRA_CFLAGS="-no-cpp-precomp" ++ cf_try_cflags="no-cpp-precomp" + CC_SHARED_OPTS="-dynamic" + 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 +@@ -5102,6 +5506,14 @@ + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + fi + ;; ++ hpux[[7-8]]*) #(vi ++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list ++ if test "$GCC" != yes; then ++ CC_SHARED_OPTS='+Z' ++ fi ++ MK_SHARED_LIB='${LD} -b -o $[@]' ++ INSTALL_LIB="-m 555" ++ ;; + hpux*) #(vi + # (tested with gcc 2.7.2 -- I don't have c89) + if test "$GCC" = yes; then +@@ -5115,9 +5527,19 @@ + # readonly to exploit a quirk in the memory manager. + INSTALL_LIB="-m 555" + ;; ++ interix*) ++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ++ if test "$cf_cv_shlib_version" = rel; then ++ cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' ++ else ++ cf_shared_soname='`basename $@`' ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@' ++ ;; + irix*) #(vi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + # tested with IRIX 5.2 and 'cc'. + if test "$GCC" != yes; then +@@ -5134,18 +5556,45 @@ + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' + ;; +- openbsd[[2-9]].*) #(vi ++ mingw*) #(vi ++ cf_cv_shlib_version=mingw ++ cf_cv_shlib_version_infix=mingw ++ shlibdir=$bindir ++ MAKE_DLLS= ++ if test "$DFT_LWR_MODEL" = "shared" ; then ++ LOCAL_LDFLAGS="-Wl,--enable-auto-import" ++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\[$]1 ++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \[$]SHARED_LIB ++ ** IMPORT_LIB \[$]IMPORT_LIB ++EOF ++ exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ openbsd[[2-9]].*|mirbsd*) #(vi + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + CF_SHARED_SONAME +@@ -5156,12 +5605,12 @@ + MK_SHARED_LIB='${LD} -Bshareable -o $[@]' + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + ;; +- freebsd*) #(vi ++ dragonfly*|freebsd*) #(vi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" +- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CF_SHARED_SONAME + MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]' +@@ -5171,7 +5620,7 @@ + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + if test "$cf_cv_shlib_version" = auto; then + if test -f /usr/libexec/ld.elf_so; then + cf_cv_shlib_version=abi +@@ -5182,7 +5631,7 @@ + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]' + else +- MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]' ++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]' + fi + ;; + osf*|mls+*) #(vi +@@ -5276,20 +5725,57 @@ + ;; + esac + +- if test -n "$cf_ld_rpath_opt" ; then +- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" ++ if test -n "$cf_try_cflags" ++ then ++cat > conftest.$ac_ext < ++int main(int argc, char *argv[[]]) ++{ ++ printf("hello\n"); ++ return (argv[[argc-1]] == 0) ; ++} ++EOF ++ cf_save_CFLAGS="$CFLAGS" ++ for cf_opt in $cf_try_cflags ++ do ++ CFLAGS="$cf_save_CFLAGS -$cf_opt" ++ AC_MSG_CHECKING(if CFLAGS option -$cf_opt works) ++ if AC_TRY_EVAL(ac_compile); then ++ AC_MSG_RESULT(yes) ++ cf_save_CFLAGS="$CFLAGS" ++ else ++ AC_MSG_RESULT(no) ++ fi ++ done ++ CFLAGS="$cf_save_CFLAGS" + fi + ++ ++ # RPATH_LIST is a colon-separated list of directories ++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" ++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" ++ ++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" ++ ++ CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS) ++ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) ++ + AC_SUBST(CC_SHARED_OPTS) + AC_SUBST(LD_RPATH_OPT) + AC_SUBST(LD_SHARED_OPTS) + AC_SUBST(MK_SHARED_LIB) ++ AC_SUBST(RM_SHARED_OPTS) ++ + AC_SUBST(LINK_PROGS) + AC_SUBST(LINK_TESTS) ++ + AC_SUBST(EXTRA_LDFLAGS) + AC_SUBST(LOCAL_LDFLAGS) + AC_SUBST(LOCAL_LDFLAGS2) ++ + AC_SUBST(INSTALL_LIB) ++ AC_SUBST(RPATH_LIST) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43 +@@ -5369,7 +5855,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12 ++dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20 + dnl --------------- + dnl signal handler, but there are some gcc depedencies in that recommendation. + dnl Try anyway. +@@ -5401,10 +5887,10 @@ + done + ]) + AC_MSG_RESULT($cf_cv_sig_atomic_t) +-test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t) ++test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16 ++dnl CF_SIZECHANGE version: 9 updated: 2012/10/06 11:17:15 + dnl ------------- + dnl Check for definitions & structures needed for window size-changing + dnl FIXME: check that this works with "snake" (HP-UX 10.x) +@@ -5465,7 +5951,7 @@ + done + ]) + if test "$cf_cv_sizechange" != no ; then +- AC_DEFINE(HAVE_SIZECHANGE) ++ AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechar declarations are provided]) + case $cf_cv_sizechange in #(vi + NEED*) + AC_DEFINE_UNQUOTED($cf_cv_sizechange ) +@@ -5474,7 +5960,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SRC_MODULES version: 21 updated: 2010/09/04 17:37:40 ++dnl CF_SRC_MODULES version: 27 updated: 2013/08/03 18:18:08 + 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 +@@ -5497,6 +5983,7 @@ + TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2" + fi + ++PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}" + cf_cv_src_modules= + for cf_dir in $1 + do +@@ -5535,6 +6022,7 @@ + TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" + TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2" + fi ++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}" + fi + fi + done +@@ -5561,11 +6049,21 @@ + if test "x$cf_with_tests" != "xno" ; then + SRC_SUBDIRS="$SRC_SUBDIRS test" + fi +-test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" +-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++" ++if test "x$cf_with_db_install" = xyes; then ++ test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" ++fi ++if test "$cf_with_cxx_binding" != no; then ++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}" ++ SRC_SUBDIRS="$SRC_SUBDIRS c++" ++fi ++ ++test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX" ++test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX" ++ ++AC_SUBST(PC_MODULES_TO_MAKE) + + ADA_SUBDIRS= +-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then ++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then + SRC_SUBDIRS="$SRC_SUBDIRS Ada95" + ADA_SUBDIRS="gen src" + if test "x$cf_with_tests" != "xno" ; then +@@ -5624,13 +6122,13 @@ + AC_DEFUN([CF_STRIP_G_OPT], + [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52 ++dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13 + dnl ------------------- + dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only + dnl do this if we've found the sigaction function. +-dnl +-dnl If needed, define SVR4_ACTION. + AC_DEFUN([CF_STRUCT_SIGACTION],[ ++AC_REQUIRE([CF_XOPEN_SOURCE]) ++ + if test "$ac_cv_func_sigaction" = yes; then + AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE) + AC_TRY_COMPILE([ +@@ -5645,22 +6143,24 @@ + #include ], + [struct sigaction act], + [sigact_bad=yes +- AC_DEFINE(SVR4_ACTION)], ++ AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])], + [sigact_bad=unknown])]) + AC_MSG_RESULT($sigact_bad) + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46 ++dnl CF_STRUCT_TERMIOS version: 7 updated: 2012/10/06 17:56:13 + dnl ----------------- + dnl Some machines require _POSIX_SOURCE to completely define struct termios. +-dnl If so, define SVR4_TERMIO + AC_DEFUN([CF_STRUCT_TERMIOS],[ ++AC_REQUIRE([CF_XOPEN_SOURCE]) ++ + AC_CHECK_HEADERS( \ + termio.h \ + termios.h \ + unistd.h \ + ) ++ + if test "$ISC" = yes ; then + AC_CHECK_HEADERS( sys/termio.h ) + fi +@@ -5680,7 +6180,7 @@ + #include ], + [struct termios foo; int x = foo.c_iflag], + termios_bad=unknown, +- termios_bad=yes AC_DEFINE(SVR4_TERMIO)) ++ termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])) + ]) + AC_MSG_RESULT($termios_bad) + fi +@@ -5704,23 +6204,6 @@ + CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03 +-dnl -------- +-dnl Shorthand macro for substituting things that the user may override +-dnl with an environment variable. +-dnl +-dnl $1 = long/descriptive name +-dnl $2 = environment variable +-dnl $3 = default value +-AC_DEFUN([CF_SUBST], +-[AC_CACHE_VAL(cf_cv_subst_$2,[ +-AC_MSG_CHECKING(for $1 (symbol $2)) +-CF_SUBST_IF([-z "[$]$2"], [$2], [$3]) +-cf_cv_subst_$2=[$]$2 +-AC_MSG_RESULT([$]$2) +-]) +-])dnl +-dnl --------------------------------------------------------------------------- + dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03 + dnl ----------- + dnl Shorthand macro for substituting things that the user may override +@@ -5766,7 +6249,7 @@ + AC_SUBST(cf_cv_type_of_bool)dnl + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40 ++dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07 + dnl ------------------ + dnl Check if we can include with ; this breaks on + dnl older SCO configurations. +@@ -5786,19 +6269,58 @@ + [cf_cv_sys_time_select=no]) + ]) + AC_MSG_RESULT($cf_cv_sys_time_select) +-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT) ++test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include with ]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23 ++dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32 + dnl --------------- + dnl Define a top_builddir symbol, for applications that need an absolute path. + AC_DEFUN([CF_TOP_BUILDDIR], + [ +-top_builddir=`pwd` ++top_builddir=ifelse($1,,`pwd`,$1) + AC_SUBST(top_builddir) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30 ++dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50 ++dnl ------------------- ++dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we ++dnl can define it successfully. ++AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ ++AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ ++ AC_TRY_COMPILE([ ++#include ++#include ++#include ++],[ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_cv_xopen_source=no], ++ [cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ AC_TRY_COMPILE([ ++#include ++#include ++#include ++],[ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_cv_xopen_source=no], ++ [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) ++ CPPFLAGS="$cf_save" ++ ]) ++]) ++ ++if test "$cf_cv_xopen_source" != no ; then ++ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) ++ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++ CF_ADD_CFLAGS($cf_temp_xopen_source) ++fi ++]) ++dnl --------------------------------------------------------------------------- ++dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13 + dnl ---------------- + dnl Determine the type we should use for chtype (and attr_t, which is treated + dnl as the same thing). We want around 32 bits, so on most machines want a +@@ -5847,10 +6369,10 @@ + AC_MSG_RESULT($cf_cv_typeof_chtype) + + AC_SUBST(cf_cv_typeof_chtype) +-AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype) ++AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52 ++dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13 + dnl ----------------- + dnl + AC_DEFUN([CF_TYPE_SIGACTION], +@@ -5863,7 +6385,7 @@ + [cf_cv_type_sigaction=yes], + [cf_cv_type_sigaction=no])]) + AC_MSG_RESULT($cf_cv_type_sigaction) +-test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION) ++test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type]) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16 +@@ -5890,7 +6412,7 @@ + $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28 ++dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51 + dnl ----------- + dnl Check for multibyte support, and if not found, utf8 compatibility library + AC_DEFUN([CF_UTF8_LIB], +@@ -5909,14 +6431,14 @@ + # 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) ++ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h]) + CF_ADD_INCDIR($cf_cv_header_path_utf8) + CF_ADD_LIBDIR($cf_cv_library_path_utf8) + CF_ADD_LIBS($cf_cv_library_file_utf8) + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29 ++dnl CF_VA_COPY version: 3 updated: 2012/10/06 11:17:15 + dnl ---------- + dnl check for va_copy, part of stdarg.h + dnl Also, workaround for glibc's __va_copy, by checking for both. +@@ -5931,7 +6453,7 @@ + cf_cv_have_va_copy=yes, + cf_cv_have_va_copy=no)]) + +-test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY) ++test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy]) + + AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[ + AC_TRY_LINK([ +@@ -5943,7 +6465,7 @@ + cf_cv_have___va_copy=yes, + cf_cv_have___va_copy=no)]) + +-test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY) ++test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy]) + ]) + dnl --------------------------------------------------------------------------- + dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12 +@@ -5954,7 +6476,7 @@ + CF_MSG_LOG([$1]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57 ++dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58 + 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 +@@ -5986,7 +6508,7 @@ + [cf_cv_$1=unknown])])]) + + if test "$cf_cv_$1" = yes ; then +- AC_DEFINE(NEED_WCHAR_H) ++ AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h]) + NEED_WCHAR_H=1 + fi + +@@ -6149,7 +6671,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54 ++dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13 + dnl ----------- + dnl + dnl The option parameter (if neither yes/no) is assumed to be the name of +@@ -6165,10 +6687,10 @@ + + if test "$with_gpm" != no ; then + AC_CHECK_HEADER(gpm.h,[ +- AC_DEFINE(HAVE_GPM_H) ++ AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header]) + if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then + CF_VERBOSE(assuming we really have GPM library) +- AC_DEFINE(HAVE_LIBGPM) ++ AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library]) + else + AC_CHECK_LIB(gpm,Gpm_Open,[:],[ + AC_MSG_ERROR(Cannot link with GPM library) +@@ -6182,7 +6704,7 @@ + fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_LIBTOOL version: 26 updated: 2010/10/23 15:55:24 ++dnl CF_WITH_LIBTOOL version: 30 updated: 2013/09/07 13:54:05 + dnl --------------- + dnl Provide a configure option to incorporate libtool. Define several useful + dnl symbols for the makefile rules. +@@ -6252,13 +6774,20 @@ + CF_PATH_SYNTAX(with_libtool) + LIBTOOL=$with_libtool + else +- AC_PATH_PROG(LIBTOOL,libtool) ++ AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none) ++ CF_LIBTOOL_VERSION ++ if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool ++ then ++ CF_FORGET_TOOL(LIBTOOL) ++ AC_CHECK_TOOLS(LIBTOOL,[glibtool],none) ++ CF_LIBTOOL_VERSION ++ fi + fi + if test -z "$LIBTOOL" ; then + AC_MSG_ERROR(Cannot find libtool) + fi + ])dnl +- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o' ++ LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' + LIB_OBJECT='${OBJECTS:.o=.lo}' + LIB_SUFFIX=.la + LIB_CLEAN='${LIBTOOL} --mode=clean' +@@ -6268,22 +6797,12 @@ + LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' + LIB_PREP=: + +- # Show the version of libtool +- AC_MSG_CHECKING(version of libtool) +- +- # 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. "(" +- 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 ++ CF_CHECK_LIBTOOL_VERSION + + # 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 ++ cygwin*|msys*|mingw32*|uwin*|aix[[4-7]]) #(vi + LT_UNDEF=-no-undefined + ;; + esac +@@ -6323,7 +6842,33 @@ + + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18 ++dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10 ++dnl ------------------ ++dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no ++dnl "lib" prefix, e.g., because it used the dll naming convention. ++dnl ++dnl $1 = variable to set ++AC_DEFUN([CF_WITH_LIB_PREFIX], ++[ ++AC_MSG_CHECKING(if you want to have a library-prefix) ++AC_ARG_WITH(lib-prefix, ++ [ --with-lib-prefix override library-prefix], ++ [with_lib_prefix=$withval], ++ [with_lib_prefix=auto]) ++AC_MSG_RESULT($with_lib_prefix) ++ ++if test $with_lib_prefix = auto ++then ++ CF_LIB_PREFIX($1) ++elif test $with_lib_prefix = no ++then ++ LIB_PREFIX= ++else ++ LIB_PREFIX=$with_lib_prefix ++fi ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19 + dnl ------------ + dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just + dnl defaulting to yes/no. +@@ -6340,11 +6885,11 @@ + if ifelse([$5],,true,[test -n "$5"]) ; then + CF_PATH_SYNTAX(withval) + fi +-$3="$withval" ++eval $3="$withval" + AC_SUBST($3)dnl + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_PATHLIST version: 7 updated: 2010/10/23 16:10:30 ++dnl CF_WITH_PATHLIST version: 9 updated: 2012/10/18 05:05:24 + dnl ---------------- + dnl Process an option specifying a list of colon-separated paths. + dnl +@@ -6365,7 +6910,7 @@ + for cf_src_path in $withval + do + CF_PATH_SYNTAX(cf_src_path) +- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" ++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR" + cf_dst_path="${cf_dst_path}${cf_src_path}" + done + IFS="$ac_save_ifs" +@@ -6381,12 +6926,65 @@ + cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'` + ]) + +-eval '$3="$cf_dst_path"' ++# This may use the prefix/exec_prefix symbols which will only yield "NONE" ++# so we have to check/work around. We do prefer the result of "eval"... ++eval cf_dst_eval="$cf_dst_path" ++case "x$cf_dst_eval" in #(vi ++xNONE*) #(vi ++ $3=$cf_dst_path ++ ;; ++*) ++ $3="$cf_dst_eval" ++ ;; ++esac + AC_SUBST($3)dnl + + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02 ++dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47 ++dnl ------------------------- ++dnl Allow the choice of the pkg-config library directory to be overridden. ++AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[ ++if test "$PKG_CONFIG" != none ; then ++ AC_MSG_CHECKING(for $PKG_CONFIG library directory) ++ AC_ARG_WITH(pkg-config-libdir, ++ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files], ++ [PKG_CONFIG_LIBDIR=$withval], ++ [PKG_CONFIG_LIBDIR=yes]) ++ ++ case x$PKG_CONFIG_LIBDIR in #(vi ++ x/*) #(vi ++ ;; ++ xyes) #(vi ++ # look for the library directory using the same prefix as the executable ++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'` ++ case x`(arch) 2>/dev/null` in #(vi ++ *64) #(vi ++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib ++ do ++ if test -d $cf_config/pkgconfig ++ then ++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig ++ break ++ fi ++ done ++ ;; ++ *) ++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ++ AC_MSG_RESULT($PKG_CONFIG_LIBDIR) ++fi ++ ++AC_SUBST(PKG_CONFIG_LIBDIR) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51 + dnl --------------- + dnl Check for POSIX thread library. + AC_DEFUN([CF_WITH_PTHREAD], +@@ -6400,25 +6998,30 @@ + + if test "$with_pthread" != no ; then + AC_CHECK_HEADER(pthread.h,[ +- AC_DEFINE(HAVE_PTHREADS_H) ++ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header]) + +- AC_MSG_CHECKING(if we can link with the pthread library) +- cf_save_LIBS="$LIBS" +- CF_ADD_LIB(pthread) +- AC_TRY_LINK([ ++ for cf_lib_pthread in pthread c_r ++ do ++ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library) ++ cf_save_LIBS="$LIBS" ++ CF_ADD_LIB($cf_lib_pthread) ++ AC_TRY_LINK([ + #include + ],[ +- int rc = pthread_create(0,0,0,0); ++ int rc = pthread_create(0,0,0,0); ++ int r2 = pthread_mutexattr_settype(0, 0); + ],[with_pthread=yes],[with_pthread=no]) +- LIBS="$cf_save_LIBS" +- AC_MSG_RESULT($with_pthread) ++ LIBS="$cf_save_LIBS" ++ AC_MSG_RESULT($with_pthread) ++ test "$with_pthread" = yes && break ++ done + +- if test "$with_pthread" = yes ; then +- CF_ADD_LIB(pthread) +- AC_DEFINE(HAVE_LIBPTHREADS) +- else +- AC_MSG_ERROR(Cannot link with pthread library) +- fi ++ if test "$with_pthread" = yes ; then ++ CF_ADD_LIB($cf_lib_pthread) ++ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library]) ++ else ++ AC_MSG_ERROR(Cannot link with pthread library) ++ fi + ]) + fi + ]) +@@ -6448,7 +7051,7 @@ + ]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43 ++dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13 + dnl ---------------- + dnl If we can compile with sysmouse, make it available unless it is not wanted. + AC_DEFUN([CF_WITH_SYSMOUSE],[ +@@ -6474,10 +7077,30 @@ + ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no]) + fi + AC_MSG_RESULT($cf_with_sysmouse) +-test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE) ++test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface]) + fi + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12 ++dnl --------------- ++dnl For testing, override the derived host system-type which is used to decide ++dnl things such as the linker commands used to build shared libraries. This is ++dnl normally chosen automatically based on the type of system which you are ++dnl building on. We use it for testing the configure script. ++dnl ++dnl This is different from the --host option: it is used only for testing parts ++dnl of the configure script which would not be reachable with --host since that ++dnl relies on the build environment being real, rather than mocked up. ++AC_DEFUN([CF_WITH_SYSTYPE],[ ++CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) ++AC_ARG_WITH(system-type, ++ [ --with-system-type=XXX test: override derived host system-type], ++[AC_MSG_WARN(overriding system type to $withval) ++ cf_cv_system_name=$withval ++ host_os=$withval ++]) ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21 + dnl ---------------- + AC_DEFUN([CF_WITH_VALGRIND],[ +@@ -6486,7 +7109,7 @@ + [USE_VALGRIND]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37 ++dnl CF_XOPEN_SOURCE version: 46 updated: 2014/02/09 19:30:15 + 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, +@@ -6496,16 +7119,17 @@ + dnl $1 is the nominal value for _XOPEN_SOURCE + dnl $2 is the nominal value for _POSIX_C_SOURCE + AC_DEFUN([CF_XOPEN_SOURCE],[ ++AC_REQUIRE([AC_CANONICAL_HOST]) + + cf_XOPEN_SOURCE=ifelse([$1],,500,[$1]) + cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2]) + cf_xopen_source= + + case $host_os in #(vi +-aix[[456]]*) #(vi ++aix[[4-7]]*) #(vi + cf_xopen_source="-D_ALL_SOURCE" + ;; +-cygwin) #(vi ++cygwin|msys) #(vi + cf_XOPEN_SOURCE=600 + ;; + darwin[[0-8]].*) #(vi +@@ -6513,6 +7137,7 @@ + ;; + darwin*) #(vi + cf_xopen_source="-D_DARWIN_C_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + freebsd*|dragonfly*) #(vi + # 5.x headers associate +@@ -6530,15 +7155,23 @@ + ;; + irix[[56]].*) #(vi + cf_xopen_source="-D_SGI_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + linux*|gnu*|mint*|k*bsd*-gnu) #(vi + CF_GNU_SOURCE + ;; + mirbsd*) #(vi +- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks ++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types ++ cf_XOPEN_SOURCE= ++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; + netbsd*) #(vi +- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ ;; ++openbsd[[4-9]]*) #(vi ++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw ++ cf_xopen_source="-D_BSD_SOURCE" ++ cf_XOPEN_SOURCE=600 + ;; + openbsd*) #(vi + # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw +@@ -6552,36 +7185,12 @@ + sco*) #(vi + # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer + ;; +-solaris2.1[[0-9]]) #(vi +- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-solaris2.[[1-9]]) #(vi ++solaris2.*) #(vi + cf_xopen_source="-D__EXTENSIONS__" ++ cf_cv_xopen_source=broken + ;; + *) +- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ +- AC_TRY_COMPILE([#include ],[ +-#ifndef _XOPEN_SOURCE +-make an error +-#endif], +- [cf_cv_xopen_source=no], +- [cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- AC_TRY_COMPILE([#include ],[ +-#ifdef _XOPEN_SOURCE +-make an error +-#endif], +- [cf_cv_xopen_source=no], +- [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) +- CPPFLAGS="$cf_save" +- ]) +-]) +- if test "$cf_cv_xopen_source" != no ; then +- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) +- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) +- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" +- CF_ADD_CFLAGS($cf_temp_xopen_source) +- fi ++ CF_TRY_XOPEN_SOURCE + CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; + esac +@@ -6589,4 +7198,33 @@ + if test -n "$cf_xopen_source" ; then + CF_ADD_CFLAGS($cf_xopen_source) + fi ++ ++dnl In anything but the default case, we may have system-specific setting ++dnl which is still not guaranteed to provide all of the entrypoints that ++dnl _XOPEN_SOURCE would yield. ++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then ++ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) ++ AC_TRY_COMPILE([#include ],[ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_XOPEN_SOURCE_set=yes], ++ [cf_XOPEN_SOURCE_set=no]) ++ AC_MSG_RESULT($cf_XOPEN_SOURCE_set) ++ if test $cf_XOPEN_SOURCE_set = yes ++ then ++ AC_TRY_COMPILE([#include ],[ ++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE ++make an error ++#endif], ++ [cf_XOPEN_SOURCE_set_ok=yes], ++ [cf_XOPEN_SOURCE_set_ok=no]) ++ if test $cf_XOPEN_SOURCE_set_ok = no ++ then ++ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) ++ fi ++ else ++ CF_TRY_XOPEN_SOURCE ++ fi ++fi + ]) +diff -Naur ncurses-5.9/Ada95/aclocal.m4 ncurses-5.9.patch/Ada95/aclocal.m4 +--- ncurses-5.9/Ada95/aclocal.m4 2011-04-01 01:32:36.000000000 +0200 ++++ ncurses-5.9.patch/Ada95/aclocal.m4 2014-09-01 16:33:22.212791881 +0200 +@@ -1,5 +1,5 @@ + dnl*************************************************************************** +-dnl Copyright (c) 2010,2011 Free Software Foundation, Inc. * ++dnl Copyright (c) 2010-2013,2014 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 + dnl +-dnl $Id: aclocal.m4,v 1.24 2011/03/31 23:32:36 tom Exp $ ++dnl $Id: aclocal.m4,v 1.78 2014/02/10 00:41:59 tom Exp $ + dnl Macros used in NCURSES Ada95 auto-configuration script. + dnl + dnl These macros are maintained separately from NCURSES. The copyright on +@@ -39,7 +39,33 @@ + dnl + dnl --------------------------------------------------------------------------- + dnl --------------------------------------------------------------------------- +-dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07 ++dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56 ++dnl ------------------ ++dnl Conditionally generate script according to whether we're using a given autoconf. ++dnl ++dnl $1 = version to compare against ++dnl $2 = code to use if AC_ACVERSION is at least as high as $1. ++dnl $3 = code to use if AC_ACVERSION is older than $1. ++define([CF_ACVERSION_CHECK], ++[ ++ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl ++ifdef([m4_version_compare], ++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], ++[CF_ACVERSION_COMPARE( ++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), ++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 ++dnl -------------------- ++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, ++dnl MAJOR2, MINOR2, TERNARY2, ++dnl PRINTABLE2, not FOUND, FOUND) ++define([CF_ACVERSION_COMPARE], ++[ifelse(builtin([eval], [$2 < $5]), 1, ++[ifelse([$8], , ,[$8])], ++[ifelse([$9], , ,[$9])])])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07 + dnl ------------------- + dnl Construct the list of include-options for the C programs in the Ada95 + dnl binding. +@@ -53,7 +79,7 @@ + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then ++ if test x$prefix != x/usr ; then + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + fi + else +@@ -268,7 +294,7 @@ + dnl $2 = variable to update (default $LIBS) + AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12 ++dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05 + dnl ------------------ + dnl Append to a search-list for a nonstandard header/lib-file + dnl $1 = the variable to return as result +@@ -278,9 +304,9 @@ + dnl $5 = a directory that we do not want $4 to match + AC_DEFUN([CF_ADD_SUBDIR_PATH], + [ +-test "$4" != "$5" && \ ++test "x$4" != "x$5" && \ + test -d "$4" && \ +-ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) { ++ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) { + test -n "$verbose" && echo " ... testing for $3-directories under $4" + test -d $4/$3 && $1="[$]$1 $4/$3" + test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2" +@@ -290,75 +316,34 @@ + } + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32 +-dnl ---------------- +-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES' +-dnl in the sharutils 4.2 distribution. +-AC_DEFUN([CF_ANSI_CC_CHECK], +-[ +-AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[ +-cf_cv_ansi_cc=no +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc +-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) +-for cf_arg in "-DCC_HAS_PROTOS" \ +- "" \ +- -qlanglvl=ansi \ +- -std1 \ +- -Ae \ +- "-Aa -D_HPUX_SOURCE" \ +- -Xc +-do +- CF_ADD_CFLAGS($cf_arg) +- AC_TRY_COMPILE( +-[ +-#ifndef CC_HAS_PROTOS +-#if !defined(__STDC__) || (__STDC__ != 1) +-choke me +-#endif +-#endif +-],[ +- int test (int i, double x); +- struct s1 {int (*f) (int a);}; +- struct s2 {int (*f) (double a);};], +- [cf_cv_ansi_cc="$cf_arg"; break]) +-done +-CFLAGS="$cf_save_CFLAGS" +-CPPFLAGS="$cf_save_CPPFLAGS" +-]) +- +-if test "$cf_cv_ansi_cc" != "no"; then +-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then +- CF_ADD_CFLAGS($cf_cv_ansi_cc) +-else +- AC_DEFINE(CC_HAS_PROTOS) +-fi +-fi +-])dnl ++dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 ++dnl -------------- ++dnl Allow user to disable a normally-on option. ++AC_DEFUN([CF_ARG_DISABLE], ++[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl + dnl --------------------------------------------------------------------------- +-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 +-dnl macros, since tools such as unproto can fake prototypes, but only part of +-dnl the preprocessor. +-AC_DEFUN([CF_ANSI_CC_REQD], +-[AC_REQUIRE([CF_ANSI_CC_CHECK]) +-if test "$cf_cv_ansi_cc" = "no"; then +- AC_MSG_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 +- c. use a wrapper such as unproto]) +-fi ++dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42 ++dnl ------------- ++dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus ++dnl values. ++dnl ++dnl Parameters: ++dnl $1 = option name ++dnl $2 = help-string ++dnl $3 = action to perform if option is not default ++dnl $4 = action if perform if option is default ++dnl $5 = default option value (either 'yes' or 'no') ++AC_DEFUN([CF_ARG_OPTION], ++[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes) ++ if test "$enableval" != "$5" ; then ++ifelse([$3],,[ :]dnl ++,[ $3]) ifelse([$4],,,[ ++ else ++ $4]) ++ fi],[enableval=$5 ifelse([$4],,,[ ++ $4 + ])dnl ++ ])])dnl + dnl --------------------------------------------------------------------------- + dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29 + dnl ----------- +@@ -413,7 +398,7 @@ + AC_SUBST(ARFLAGS) + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15 ++dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55 + dnl ----------- + dnl If we're cross-compiling, allow the user to override the tools and their + dnl options. The configure script is oriented toward identifying the host +@@ -423,7 +408,8 @@ + dnl $1 = default for $CPPFLAGS + dnl $2 = default for $LIBS + AC_DEFUN([CF_BUILD_CC],[ +-AC_REQUIRE([CF_PROG_EXT]) ++CF_ACVERSION_CHECK(2.52,, ++ [AC_REQUIRE([CF_PROG_EXT])]) + if test "$cross_compiling" = yes ; then + + # defaults that we might want to override +@@ -504,7 +490,33 @@ + AC_SUBST(BUILD_OBJEXT) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00 ++dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49 ++dnl --------------- ++dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content ++dnl into CC. This will not help with broken scripts that wrap the compiler with ++dnl options, but eliminates a more common category of user confusion. ++AC_DEFUN([CF_CC_ENV_FLAGS], ++[ ++# This should have been defined by AC_PROG_CC ++: ${CC:=cc} ++ ++AC_MSG_CHECKING(\$CC variable) ++case "$CC" in #(vi ++*[[\ \ ]]-[[IUD]]*) ++ AC_MSG_RESULT(broken) ++ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) ++ # humor him... ++ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` ++ CC=`echo "$CC" | sed -e 's/[[ ]].*//'` ++ CF_ADD_CFLAGS($cf_flags) ++ ;; ++*) ++ AC_MSG_RESULT(ok) ++ ;; ++esac ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05 + dnl --------------- + dnl Determine the default configuration into which we'll install ncurses. This + dnl can be overridden by the user's command-line options. There's two items to +@@ -522,7 +534,7 @@ + if test "x$prefix" = "xNONE" ; then + case "$cf_cv_system_name" in + # non-vendor systems don't have a conflict +- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) ++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) + prefix=/usr + ;; + *) prefix=$ac_default_prefix +@@ -558,7 +570,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59 ++dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03 + 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. +@@ -581,7 +593,7 @@ + system_name="`(hostname) 2>/dev/null`" + fi + fi +-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name") ++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.]) + AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) + + test -z "$system_name" && system_name="$cf_cv_system_name" +@@ -593,7 +605,40 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16 ++dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35 ++dnl ----------------- ++dnl Check if the given compiler is really clang. clang's C driver defines ++dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does ++dnl not ignore some gcc options. ++dnl ++dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to ++dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from ++dnl the wrappers for gcc and g++ warnings. ++dnl ++dnl $1 = GCC (default) or GXX ++dnl $2 = CLANG_COMPILER (default) ++dnl $3 = CFLAGS (default) or CXXFLAGS ++AC_DEFUN([CF_CLANG_COMPILER],[ ++ifelse([$2],,CLANG_COMPILER,[$2])=no ++ ++if test "$ifelse([$1],,[$1],GCC)" = yes ; then ++ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) ++ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" ++ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments" ++ AC_TRY_COMPILE([],[ ++#ifdef __clang__ ++#else ++make an error ++#endif ++],[ifelse([$2],,CLANG_COMPILER,[$2])=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++],[]) ++ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" ++ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) ++fi ++]) ++dnl --------------------------------------------------------------------------- ++dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45 + dnl ---------------- + dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common + dnl variations of ncurses' installs. +@@ -603,10 +648,10 @@ + AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[ + cf_cv_ncurses_header=none + for cf_header in ifelse($1,,,[ \ +- $1/curses.h \ +- $1/ncurses.h]) \ +- curses.h \ +- ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h]) ++ $1/ncurses.h \ ++ $1/curses.h]) \ ++ ncurses.h \ ++ curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h]) + do + AC_TRY_COMPILE([#include <${cf_header}>], + [initscr(); tgoto("?", 0,0)], +@@ -627,6 +672,67 @@ + dnl "dirname" is not portable, so we fake it with a shell script. + AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28 ++dnl --------------- ++dnl You can always use "make -n" to see the actual options, but it's hard to ++dnl pick out/analyze warning messages when the compile-line is long. ++dnl ++dnl Sets: ++dnl ECHO_LT - symbol to control if libtool is verbose ++dnl ECHO_LD - symbol to prefix "cc -o" lines ++dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o) ++dnl SHOW_CC - symbol to put before explicit "cc -c" lines ++dnl ECHO_CC - symbol to put before any "cc" line ++dnl ++AC_DEFUN([CF_DISABLE_ECHO],[ ++AC_MSG_CHECKING(if you want to see long compiling messages) ++CF_ARG_DISABLE(echo, ++ [ --disable-echo do not display "compiling" commands], ++ [ ++ ECHO_LT='--silent' ++ ECHO_LD='@echo linking [$]@;' ++ RULE_CC='@echo compiling [$]<' ++ SHOW_CC='@echo compiling [$]@' ++ ECHO_CC='@' ++],[ ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' ++]) ++AC_MSG_RESULT($enableval) ++AC_SUBST(ECHO_LT) ++AC_SUBST(ECHO_LD) ++AC_SUBST(RULE_CC) ++AC_SUBST(SHOW_CC) ++AC_SUBST(ECHO_CC) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54 ++dnl ------------------ ++dnl This is the "--enable-pc-files" option, which is available if there is a ++dnl pkg-config configuration on the local machine. ++AC_DEFUN([CF_ENABLE_PC_FILES],[ ++AC_REQUIRE([CF_PKG_CONFIG]) ++AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR]) ++ ++if test "$PKG_CONFIG" != none ; then ++ AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) ++ AC_ARG_ENABLE(pc-files, ++ [ --enable-pc-files generate and install .pc files for pkg-config], ++ [enable_pc_files=$enableval], ++ [enable_pc_files=no]) ++ AC_MSG_RESULT($enable_pc_files) ++ if test "$enable_pc_files" != no ++ then ++ CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR) ++ fi ++else ++ enable_pc_files=no ++fi ++])dnl ++dnl --------------------------------------------------------------------------- + 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 +@@ -807,7 +913,26 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32 ++dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10 ++dnl ----------------- ++dnl make ADAFLAGS consistent with CFLAGS ++AC_DEFUN([CF_FIXUP_ADAFLAGS],[ ++ AC_MSG_CHECKING(optimization options for ADAFLAGS) ++ case "$CFLAGS" in ++ *-g*) ++ CF_ADD_ADAFLAGS(-g) ++ ;; ++ esac ++ case "$CFLAGS" in ++ *-O*) ++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'` ++ CF_ADD_ADAFLAGS($cf_O_flag) ++ ;; ++ esac ++ AC_MSG_RESULT($ADAFLAGS) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03 + dnl ----------------- + dnl Test for availability of useful gcc __attribute__ directives to quiet + dnl compiler warnings. Though useful, not all are supported -- and contrary +@@ -885,27 +1010,27 @@ + test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) + cat conftest.h >>confdefs.h + case $cf_attribute in #(vi ++ noreturn) #(vi ++ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) ++ ;; + printf) #(vi +- if test "$cf_printf_attribute" = no ; then +- cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h < conftest.$ac_ext <conftest.$ac_ext </dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.` +- test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown +- fi +- fi +-rm -rf conftest* +-LIBS="$cf_save_LIBS" +-fi +-]) +-]) +-dnl --------------------------------------------------------------------------- +-dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03 ++dnl CF_LIB_SUFFIX version: 22 updated: 2013/09/07 13:54:05 + dnl ------------- + dnl Compute the library file-suffix from the given model name + dnl $1 = model name +@@ -1664,31 +1765,26 @@ + dnl The variable $LIB_SUFFIX, if set, prepends the variable to set. + AC_DEFUN([CF_LIB_SUFFIX], + [ +- AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) +- case $1 in #(vi +- libtool) #(vi ++ case X$1 in #(vi ++ Xlibtool) #(vi + $2='.la' + $3=[$]$2 + ;; +- normal) #(vi +- $2='.a' +- $3=[$]$2 +- ;; +- debug) #(vi ++ Xdebug) #(vi + $2='_g.a' + $3=[$]$2 + ;; +- profile) #(vi ++ Xprofile) #(vi + $2='_p.a' + $3=[$]$2 + ;; +- shared) #(vi ++ Xshared) #(vi + case $cf_cv_system_name in +- aix[[56]]*) #(vi ++ aix[[5-7]]*) #(vi + $2='.a' + $3=[$]$2 + ;; +- cygwin*) #(vi ++ cygwin*|msys*|mingw*) #(vi + $2='.dll' + $3='.dll.a' + ;; +@@ -1708,10 +1804,16 @@ + ;; + esac + ;; +- *) $2='.so' ++ *) #(vi ++ $2='.so' + $3=[$]$2 + ;; + esac ++ ;; ++ *) ++ $2='.a' ++ $3=[$]$2 ++ ;; + esac + test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" + test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}" +@@ -1735,7 +1837,7 @@ + test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38 ++dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51 + dnl ---------------- + dnl Some systems have a non-ANSI linker that doesn't pull in modules that have + dnl only data (i.e., no functions), for example NeXT. On those systems we'll +@@ -1792,81 +1894,12 @@ + AC_MSG_RESULT($cf_cv_link_dataonly) + + if test "$cf_cv_link_dataonly" = no ; then +- AC_DEFINE(BROKEN_LINKER) ++ AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link]) + BROKEN_LINKER=1 + fi + + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30 +-dnl ------------- +-dnl Most Unix systems have both link and symlink, a few don't have symlink. +-dnl A few non-Unix systems implement symlink, but not link. +-dnl A few non-systems implement neither (or have nonfunctional versions). +-AC_DEFUN([CF_LINK_FUNCS], +-[ +-AC_CHECK_FUNCS( \ +- remove \ +- unlink ) +- +-if test "$cross_compiling" = yes ; then +- AC_CHECK_FUNCS( \ +- link \ +- symlink ) +-else +- AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[ +- cf_cv_link_funcs= +- for cf_func in link symlink ; do +- AC_TRY_RUN([ +-#include +-#include +-#ifdef HAVE_UNISTD_H +-#include +-#endif +-int main() +-{ +- int fail = 0; +- char *src = "config.log"; +- char *dst = "conftest.chk"; +- struct stat src_sb; +- struct stat dst_sb; +- +- stat(src, &src_sb); +- fail = ($cf_func("config.log", "conftest.chk") < 0) +- || (stat(dst, &dst_sb) < 0) +- || (dst_sb.st_mtime != src_sb.st_mtime); +-#ifdef HAVE_UNLINK +- unlink(dst); +-#else +- remove(dst); +-#endif +- ${cf_cv_main_return:-return} (fail); +-} +- ],[ +- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" +- eval 'ac_cv_func_'$cf_func'=yes'],[ +- eval 'ac_cv_func_'$cf_func'=no'],[ +- eval 'ac_cv_func_'$cf_func'=error']) +- done +- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no +- ]) +- test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK) +- test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK) +-fi +-])dnl +-dnl --------------------------------------------------------------------------- +-dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54 +-dnl -------------- +-dnl Check if a return from main to the shell actually returns the same exit +-dnl code. This is true for almost any POSIX environment. +-dnl +-dnl Some very old environments did not flush stdout, etc., on an exit. That +-dnl would be a useful case to test for also. +-AC_DEFUN([CF_MAIN_RETURN], +-[ +-cf_cv_main_return=return +-])dnl +-dnl --------------------------------------------------------------------------- + dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46 + dnl ------------ + dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make' +@@ -1944,7 +1977,7 @@ + AC_SUBST(MAKE_LOWER_TAGS) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55 ++dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05 + dnl ---------------------- + dnl Check if the file-system supports mixed-case filenames. If we're able to + dnl create a lowercase name and see it as uppercase, it doesn't support that. +@@ -1953,7 +1986,7 @@ + AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ + if test "$cross_compiling" = yes ; then + case $target_alias in #(vi +- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi ++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) +@@ -1971,10 +2004,10 @@ + rm -f conftest CONFTEST + fi + ]) +-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) ++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37 ++dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49 + dnl ---------- + dnl Check for a working mkstemp. This creates two files, checks that they are + dnl successfully created and distinct (AmigaOS apparently fails on the last). +@@ -2016,11 +2049,13 @@ + } + ],[cf_cv_func_mkstemp=yes + ],[cf_cv_func_mkstemp=no +-],[AC_CHECK_FUNC(mkstemp) +-]) ++],[cf_cv_func_mkstemp=maybe]) + ]) ++if test "x$cf_cv_func_mkstemp" = xmaybe ; then ++ AC_CHECK_FUNC(mkstemp) ++fi + if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then +- AC_DEFINE(HAVE_MKSTEMP) ++ AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.]) + fi + ])dnl + dnl --------------------------------------------------------------------------- +@@ -2141,7 +2176,7 @@ + ,[$1=no]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30 ++dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51 + dnl ----------------- + dnl Tie together the configure-script macros for ncurses. + dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis. +@@ -2153,7 +2188,10 @@ + 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) ++ ++CF_ACVERSION_CHECK(2.52, ++ [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)], ++ [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)]) + + if test "$NCURSES_CONFIG" != none ; then + +@@ -2164,7 +2202,7 @@ + CF_CURSES_HEADER(ifelse($1,,ncurses,$1)) + + dnl like CF_NCURSES_CPPFLAGS +-AC_DEFINE(NCURSES) ++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) + + dnl like CF_NCURSES_LIBS + CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root) +@@ -2181,7 +2219,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38 ++dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51 + dnl ------------------- + dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting + dnl the CPPFLAGS variable so we can include its header. +@@ -2227,12 +2265,12 @@ + CF_TERM_HEADER + + # some applications need this, but should check for NCURSES_VERSION +-AC_DEFINE(NCURSES) ++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) + + CF_NCURSES_VERSION + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54 ++dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51 + dnl ----------------- + dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common + dnl variations of ncurses' installs. +@@ -2283,16 +2321,16 @@ + + case $cf_cv_ncurses_header in # (vi + *ncurses.h) +- AC_DEFINE(HAVE_NCURSES_H) ++ AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h]) + ;; + esac + + case $cf_cv_ncurses_header in # (vi + ncurses/curses.h|ncurses/ncurses.h) +- AC_DEFINE(HAVE_NCURSES_NCURSES_H) ++ AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h]) + ;; + ncursesw/curses.h|ncursesw/ncurses.h) +- AC_DEFINE(HAVE_NCURSESW_NCURSES_H) ++ AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h]) + ;; + esac + +@@ -2366,7 +2404,7 @@ + AC_DEFINE_UNQUOTED($cf_nculib_ROOT) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49 ++dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51 + dnl ------------------ + dnl Check for the version of ncurses, to aid in reporting bugs, etc. + dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use +@@ -2425,58 +2463,10 @@ + ]) + rm -f $cf_tempfile + ]) +-test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES) +-])dnl +-dnl --------------------------------------------------------------------------- +-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05 +-dnl ------------------ +-dnl see CF_WITH_NO_LEAKS +-AC_DEFUN([CF_NO_LEAKS_OPTION],[ +-AC_MSG_CHECKING(if you want to use $1 for testing) +-AC_ARG_WITH($1, +- [$2], +- [AC_DEFINE($3)ifelse([$4],,[ +- $4 +-]) +- : ${with_cflags:=-g} +- : ${with_no_leaks:=yes} +- with_$1=yes], +- [with_$1=]) +-AC_MSG_RESULT(${with_$1:-no}) +- +-case .$with_cflags in #(vi +-.*-g*) +- case .$CFLAGS in #(vi +- .*-g*) #(vi +- ;; +- *) +- CF_ADD_CFLAGS([-g]) +- ;; +- esac +- ;; +-esac +-])dnl +-dnl --------------------------------------------------------------------------- +-dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49 +-dnl ---------------- +-dnl Check if the given variable is a number. If not, report an error. +-dnl $1 is the variable +-dnl $2 is the message +-AC_DEFUN([CF_NUMBER_SYNTAX],[ +-if test -n "$1" ; then +- case $1 in #(vi +- [[0-9]]*) #(vi +- ;; +- *) +- AC_MSG_ERROR($2 is not a number: $1) +- ;; +- esac +-else +- AC_MSG_ERROR($2 value is empty) +-fi ++test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31 ++dnl CF_OBJ_SUBDIR version: 6 updated: 2013/09/07 14:06:10 + dnl ------------- + dnl Compute the object-directory name from the given model name + AC_DEFUN([CF_OBJ_SUBDIR], +@@ -2488,7 +2478,7 @@ + profile) $2='obj_p' ;; + shared) + case $cf_cv_system_name in #(vi +- cygwin) #(vi ++ cygwin|msys) #(vi + $2='objects' ;; + *) + $2='obj_s' ;; +@@ -2496,20 +2486,23 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42 ++dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12 + dnl ---------- +-dnl Provide a value for the $PATH and similar separator ++dnl Provide a value for the $PATH and similar separator (or amend the value ++dnl as provided in autoconf 2.5x). + AC_DEFUN([CF_PATHSEP], + [ ++ AC_MSG_CHECKING(for PATH separator) + case $cf_cv_system_name in + os2*) PATH_SEPARATOR=';' ;; +- *) PATH_SEPARATOR=':' ;; ++ *) ${PATH_SEPARATOR:=':'} ;; + esac + ifelse([$1],,,[$1=$PATH_SEPARATOR]) + AC_SUBST(PATH_SEPARATOR) ++ AC_MSG_RESULT($PATH_SEPARATOR) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42 ++dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54 + 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 +@@ -2529,7 +2522,7 @@ + ;; + .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX + ;; +-.\[$]{*prefix}*) #(vi ++.\[$]{*prefix}*|.\[$]{*dir}*) #(vi + eval $1="[$]$1" + case ".[$]$1" in #(vi + .NONE/*) +@@ -2546,7 +2539,7 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24 ++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22 + dnl ------------- + dnl Check for the package-config program, unless disabled by command-line. + AC_DEFUN([CF_PKG_CONFIG], +@@ -2563,7 +2556,9 @@ + PKG_CONFIG=none + ;; + yes) #(vi +- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none) ++ CF_ACVERSION_CHECK(2.52, ++ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)], ++ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)]) + ;; + *) + PKG_CONFIG=$withval +@@ -2667,6 +2662,19 @@ + test -z "$AWK" && AC_MSG_ERROR(No awk program found) + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55 ++dnl ---------- ++dnl standard check for CC, plus followup sanity checks ++dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name ++AC_DEFUN([CF_PROG_CC],[ ++ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)]) ++CF_GCC_VERSION ++CF_ACVERSION_CHECK(2.52, ++ [AC_PROG_CC_STDC], ++ [CF_ANSI_CC_REQD]) ++CF_CC_ENV_FLAGS ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37 + dnl -------------- + dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that +@@ -2721,7 +2729,7 @@ + test -z "$EGREP" && AC_MSG_ERROR(No egrep program found) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18 ++dnl CF_PROG_EXT version: 11 updated: 2012/10/06 08:57:51 + dnl ----------- + dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX. + AC_DEFUN([CF_PROG_EXT], +@@ -2743,10 +2751,10 @@ + + PROG_EXT="$EXEEXT" + AC_SUBST(PROG_EXT) +-test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT") ++test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18 ++dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47 + dnl ------------ + dnl Check for gnatmake, ensure that it is complete. + AC_DEFUN([CF_PROG_GNAT],[ +@@ -2754,6 +2762,7 @@ + AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) + if test "$ac_cv_prog_gnat_exists" = no; then + cf_ada_make= ++ cf_cv_prog_gnat_correct=no + else + CF_GNAT_VERSION + AC_CHECK_PROG(M4_exists, m4, yes, no) +@@ -2831,18 +2840,19 @@ + $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'` + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16 ++dnl CF_SHARED_OPTS version: 84 updated: 2013/11/03 06:26:10 + dnl -------------- + dnl -------------- + dnl Attempt to determine the appropriate CC/LD options for creating a shared + dnl library. + dnl +-dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the +-dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib +-dnl We avoid compiling-in a ../lib path for the shared library since that can +-dnl lead to unexpected results at runtime. +-dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries +-dnl are compiled in ../../lib ++dnl Notes: ++dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within ++dnl the build-tree, i.e., by making use of the libraries that are compiled in ++dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the ++dnl shared library since that can lead to unexpected results at runtime. ++dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared ++dnl libraries are compiled in ../../lib + dnl + dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure + dnl to install symbolic links to the rel/abi versions of shared libraries. +@@ -2857,12 +2867,19 @@ + dnl Some loaders leave 'so_locations' lying around. It's nice to clean up. + AC_DEFUN([CF_SHARED_OPTS], + [ +- AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) + AC_REQUIRE([CF_LD_RPATH_OPT]) ++ RM_SHARED_OPTS= + LOCAL_LDFLAGS= + LOCAL_LDFLAGS2= + LD_SHARED_OPTS= + INSTALL_LIB="-m 644" ++ : ${rel_builddir:=.} ++ ++ shlibdir=$libdir ++ AC_SUBST(shlibdir) ++ ++ MAKE_DLLS="#" ++ AC_SUBST(MAKE_DLLS) + + cf_cv_do_symlinks=no + cf_ld_rpath_opt= +@@ -2887,6 +2904,7 @@ + AC_MSG_RESULT($cf_cv_shlib_version) + + cf_cv_rm_so_locs=no ++ cf_try_cflags= + + # Some less-capable ports of gcc support only -fpic + CC_SHARED_OPTS= +@@ -2906,10 +2924,14 @@ + cf_cv_shlib_version_infix=no + + case $cf_cv_system_name in #(vi +- aix[[56]]*) #(vi ++ aix4.[3-9]*|aix[[5-7]]*) #(vi + if test "$GCC" = yes; then + CC_SHARED_OPTS= +- MK_SHARED_LIB='$(CC) -shared' ++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' ++ else ++ # CC_SHARED_OPTS='-qpic=large -G' ++ # perhaps "-bM:SRE -bnoentry -bexpall" ++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' + fi + ;; + beos*) #(vi +@@ -2917,9 +2939,12 @@ + ;; + cygwin*) #(vi + CC_SHARED_OPTS= +- MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cf_cv_shlib_version=cygdll + cf_cv_shlib_version_infix=cygdll ++ shlibdir=$bindir ++ MAKE_DLLS= + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\[$]1 +@@ -2930,12 +2955,34 @@ + ** SHARED_LIB \[$]SHARED_LIB + ** IMPORT_LIB \[$]IMPORT_LIB + EOF +- exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB} ++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ msys*) #(vi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cf_cv_shlib_version=msysdll ++ cf_cv_shlib_version_infix=msysdll ++ shlibdir=$bindir ++ MAKE_DLLS= ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\[$]1 ++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \[$]SHARED_LIB ++ ** IMPORT_LIB \[$]IMPORT_LIB ++EOF ++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} + CF_EOF + chmod +x mk_shared_lib.sh + ;; + darwin*) #(vi +- EXTRA_CFLAGS="-no-cpp-precomp" ++ cf_try_cflags="no-cpp-precomp" + CC_SHARED_OPTS="-dynamic" + 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 +@@ -2949,6 +2996,14 @@ + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + fi + ;; ++ hpux[[7-8]]*) #(vi ++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list ++ if test "$GCC" != yes; then ++ CC_SHARED_OPTS='+Z' ++ fi ++ MK_SHARED_LIB='${LD} -b -o $[@]' ++ INSTALL_LIB="-m 555" ++ ;; + hpux*) #(vi + # (tested with gcc 2.7.2 -- I don't have c89) + if test "$GCC" = yes; then +@@ -2962,9 +3017,19 @@ + # readonly to exploit a quirk in the memory manager. + INSTALL_LIB="-m 555" + ;; ++ interix*) ++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ++ if test "$cf_cv_shlib_version" = rel; then ++ cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' ++ else ++ cf_shared_soname='`basename $@`' ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@' ++ ;; + irix*) #(vi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + # tested with IRIX 5.2 and 'cc'. + if test "$GCC" != yes; then +@@ -2981,18 +3046,45 @@ + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' + ;; +- openbsd[[2-9]].*) #(vi ++ mingw*) #(vi ++ cf_cv_shlib_version=mingw ++ cf_cv_shlib_version_infix=mingw ++ shlibdir=$bindir ++ MAKE_DLLS= ++ if test "$DFT_LWR_MODEL" = "shared" ; then ++ LOCAL_LDFLAGS="-Wl,--enable-auto-import" ++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\[$]1 ++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \[$]SHARED_LIB ++ ** IMPORT_LIB \[$]IMPORT_LIB ++EOF ++ exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ openbsd[[2-9]].*|mirbsd*) #(vi + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + CF_SHARED_SONAME +@@ -3003,12 +3095,12 @@ + MK_SHARED_LIB='${LD} -Bshareable -o $[@]' + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + ;; +- freebsd*) #(vi ++ dragonfly*|freebsd*) #(vi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" +- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CF_SHARED_SONAME + MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]' +@@ -3018,7 +3110,7 @@ + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + if test "$cf_cv_shlib_version" = auto; then + if test -f /usr/libexec/ld.elf_so; then + cf_cv_shlib_version=abi +@@ -3029,7 +3121,7 @@ + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]' + else +- MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]' ++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]' + fi + ;; + osf*|mls+*) #(vi +@@ -3123,20 +3215,57 @@ + ;; + esac + +- if test -n "$cf_ld_rpath_opt" ; then +- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" ++ if test -n "$cf_try_cflags" ++ then ++cat > conftest.$ac_ext < ++int main(int argc, char *argv[[]]) ++{ ++ printf("hello\n"); ++ return (argv[[argc-1]] == 0) ; ++} ++EOF ++ cf_save_CFLAGS="$CFLAGS" ++ for cf_opt in $cf_try_cflags ++ do ++ CFLAGS="$cf_save_CFLAGS -$cf_opt" ++ AC_MSG_CHECKING(if CFLAGS option -$cf_opt works) ++ if AC_TRY_EVAL(ac_compile); then ++ AC_MSG_RESULT(yes) ++ cf_save_CFLAGS="$CFLAGS" ++ else ++ AC_MSG_RESULT(no) ++ fi ++ done ++ CFLAGS="$cf_save_CFLAGS" + fi + ++ ++ # RPATH_LIST is a colon-separated list of directories ++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" ++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" ++ ++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" ++ ++ CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS) ++ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) ++ + AC_SUBST(CC_SHARED_OPTS) + AC_SUBST(LD_RPATH_OPT) + AC_SUBST(LD_SHARED_OPTS) + AC_SUBST(MK_SHARED_LIB) ++ AC_SUBST(RM_SHARED_OPTS) ++ + AC_SUBST(LINK_PROGS) + AC_SUBST(LINK_TESTS) ++ + AC_SUBST(EXTRA_LDFLAGS) + AC_SUBST(LOCAL_LDFLAGS) + AC_SUBST(LOCAL_LDFLAGS2) ++ + AC_SUBST(INSTALL_LIB) ++ AC_SUBST(RPATH_LIST) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43 +@@ -3180,24 +3309,7 @@ + CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03 +-dnl -------- +-dnl Shorthand macro for substituting things that the user may override +-dnl with an environment variable. +-dnl +-dnl $1 = long/descriptive name +-dnl $2 = environment variable +-dnl $3 = default value +-AC_DEFUN([CF_SUBST], +-[AC_CACHE_VAL(cf_cv_subst_$2,[ +-AC_MSG_CHECKING(for $1 (symbol $2)) +-CF_SUBST_IF([-z "[$]$2"], [$2], [$3]) +-cf_cv_subst_$2=[$]$2 +-AC_MSG_RESULT([$]$2) +-]) +-])dnl +-dnl --------------------------------------------------------------------------- +-dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49 ++dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51 + dnl -------------- + dnl Look for term.h, which is part of X/Open curses. It defines the interface + dnl to terminfo database. Usually it is in the same include-path as curses.h, +@@ -3230,29 +3342,68 @@ + + case $cf_cv_term_header in # (vi + *term.h) +- AC_DEFINE(HAVE_TERM_H) ++ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h]) + ;; + esac + + case $cf_cv_term_header in # (vi + ncurses/term.h) #(vi +- AC_DEFINE(HAVE_NCURSES_TERM_H) ++ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h]) + ;; + ncursesw/term.h) +- AC_DEFINE(HAVE_NCURSESW_TERM_H) ++ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h]) + ;; + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23 ++dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32 + dnl --------------- + dnl Define a top_builddir symbol, for applications that need an absolute path. + AC_DEFUN([CF_TOP_BUILDDIR], + [ +-top_builddir=`pwd` ++top_builddir=ifelse($1,,`pwd`,$1) + AC_SUBST(top_builddir) + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50 ++dnl ------------------- ++dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we ++dnl can define it successfully. ++AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ ++AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ ++ AC_TRY_COMPILE([ ++#include ++#include ++#include ++],[ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_cv_xopen_source=no], ++ [cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ AC_TRY_COMPILE([ ++#include ++#include ++#include ++],[ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_cv_xopen_source=no], ++ [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) ++ CPPFLAGS="$cf_save" ++ ]) ++]) ++ ++if test "$cf_cv_xopen_source" != no ; then ++ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) ++ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++ CF_ADD_CFLAGS($cf_temp_xopen_source) ++fi ++]) ++dnl --------------------------------------------------------------------------- + dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59 + dnl -------- + dnl Make an uppercase version of a variable +@@ -3262,7 +3413,7 @@ + $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28 ++dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51 + dnl ----------- + dnl Check for multibyte support, and if not found, utf8 compatibility library + AC_DEFUN([CF_UTF8_LIB], +@@ -3281,7 +3432,7 @@ + # 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) ++ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h]) + CF_ADD_INCDIR($cf_cv_header_path_utf8) + CF_ADD_LIBDIR($cf_cv_library_path_utf8) + CF_ADD_LIBS($cf_cv_library_file_utf8) +@@ -3415,7 +3566,33 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18 ++dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10 ++dnl ------------------ ++dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no ++dnl "lib" prefix, e.g., because it used the dll naming convention. ++dnl ++dnl $1 = variable to set ++AC_DEFUN([CF_WITH_LIB_PREFIX], ++[ ++AC_MSG_CHECKING(if you want to have a library-prefix) ++AC_ARG_WITH(lib-prefix, ++ [ --with-lib-prefix override library-prefix], ++ [with_lib_prefix=$withval], ++ [with_lib_prefix=auto]) ++AC_MSG_RESULT($with_lib_prefix) ++ ++if test $with_lib_prefix = auto ++then ++ CF_LIB_PREFIX($1) ++elif test $with_lib_prefix = no ++then ++ LIB_PREFIX= ++else ++ LIB_PREFIX=$with_lib_prefix ++fi ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19 + dnl ------------ + dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just + dnl defaulting to yes/no. +@@ -3432,11 +3609,54 @@ + if ifelse([$5],,true,[test -n "$5"]) ; then + CF_PATH_SYNTAX(withval) + fi +-$3="$withval" ++eval $3="$withval" + AC_SUBST($3)dnl + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02 ++dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47 ++dnl ------------------------- ++dnl Allow the choice of the pkg-config library directory to be overridden. ++AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[ ++if test "$PKG_CONFIG" != none ; then ++ AC_MSG_CHECKING(for $PKG_CONFIG library directory) ++ AC_ARG_WITH(pkg-config-libdir, ++ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files], ++ [PKG_CONFIG_LIBDIR=$withval], ++ [PKG_CONFIG_LIBDIR=yes]) ++ ++ case x$PKG_CONFIG_LIBDIR in #(vi ++ x/*) #(vi ++ ;; ++ xyes) #(vi ++ # look for the library directory using the same prefix as the executable ++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'` ++ case x`(arch) 2>/dev/null` in #(vi ++ *64) #(vi ++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib ++ do ++ if test -d $cf_config/pkgconfig ++ then ++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig ++ break ++ fi ++ done ++ ;; ++ *) ++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ++ AC_MSG_RESULT($PKG_CONFIG_LIBDIR) ++fi ++ ++AC_SUBST(PKG_CONFIG_LIBDIR) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51 + dnl --------------- + dnl Check for POSIX thread library. + AC_DEFUN([CF_WITH_PTHREAD], +@@ -3450,30 +3670,55 @@ + + if test "$with_pthread" != no ; then + AC_CHECK_HEADER(pthread.h,[ +- AC_DEFINE(HAVE_PTHREADS_H) ++ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header]) + +- AC_MSG_CHECKING(if we can link with the pthread library) +- cf_save_LIBS="$LIBS" +- CF_ADD_LIB(pthread) +- AC_TRY_LINK([ ++ for cf_lib_pthread in pthread c_r ++ do ++ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library) ++ cf_save_LIBS="$LIBS" ++ CF_ADD_LIB($cf_lib_pthread) ++ AC_TRY_LINK([ + #include + ],[ +- int rc = pthread_create(0,0,0,0); ++ int rc = pthread_create(0,0,0,0); ++ int r2 = pthread_mutexattr_settype(0, 0); + ],[with_pthread=yes],[with_pthread=no]) +- LIBS="$cf_save_LIBS" +- AC_MSG_RESULT($with_pthread) ++ LIBS="$cf_save_LIBS" ++ AC_MSG_RESULT($with_pthread) ++ test "$with_pthread" = yes && break ++ done + +- if test "$with_pthread" = yes ; then +- CF_ADD_LIB(pthread) +- AC_DEFINE(HAVE_LIBPTHREADS) +- else +- AC_MSG_ERROR(Cannot link with pthread library) +- fi ++ if test "$with_pthread" = yes ; then ++ CF_ADD_LIB($cf_lib_pthread) ++ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library]) ++ else ++ AC_MSG_ERROR(Cannot link with pthread library) ++ fi + ]) + fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37 ++dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12 ++dnl --------------- ++dnl For testing, override the derived host system-type which is used to decide ++dnl things such as the linker commands used to build shared libraries. This is ++dnl normally chosen automatically based on the type of system which you are ++dnl building on. We use it for testing the configure script. ++dnl ++dnl This is different from the --host option: it is used only for testing parts ++dnl of the configure script which would not be reachable with --host since that ++dnl relies on the build environment being real, rather than mocked up. ++AC_DEFUN([CF_WITH_SYSTYPE],[ ++CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) ++AC_ARG_WITH(system-type, ++ [ --with-system-type=XXX test: override derived host system-type], ++[AC_MSG_WARN(overriding system type to $withval) ++ cf_cv_system_name=$withval ++ host_os=$withval ++]) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_XOPEN_SOURCE version: 46 updated: 2014/02/09 19:30:15 + 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, +@@ -3483,16 +3728,17 @@ + dnl $1 is the nominal value for _XOPEN_SOURCE + dnl $2 is the nominal value for _POSIX_C_SOURCE + AC_DEFUN([CF_XOPEN_SOURCE],[ ++AC_REQUIRE([AC_CANONICAL_HOST]) + + cf_XOPEN_SOURCE=ifelse([$1],,500,[$1]) + cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2]) + cf_xopen_source= + + case $host_os in #(vi +-aix[[456]]*) #(vi ++aix[[4-7]]*) #(vi + cf_xopen_source="-D_ALL_SOURCE" + ;; +-cygwin) #(vi ++cygwin|msys) #(vi + cf_XOPEN_SOURCE=600 + ;; + darwin[[0-8]].*) #(vi +@@ -3500,6 +3746,7 @@ + ;; + darwin*) #(vi + cf_xopen_source="-D_DARWIN_C_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + freebsd*|dragonfly*) #(vi + # 5.x headers associate +@@ -3517,15 +3764,23 @@ + ;; + irix[[56]].*) #(vi + cf_xopen_source="-D_SGI_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + linux*|gnu*|mint*|k*bsd*-gnu) #(vi + CF_GNU_SOURCE + ;; + mirbsd*) #(vi +- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks ++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types ++ cf_XOPEN_SOURCE= ++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; + netbsd*) #(vi +- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ ;; ++openbsd[[4-9]]*) #(vi ++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw ++ cf_xopen_source="-D_BSD_SOURCE" ++ cf_XOPEN_SOURCE=600 + ;; + openbsd*) #(vi + # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw +@@ -3539,36 +3794,12 @@ + sco*) #(vi + # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer + ;; +-solaris2.1[[0-9]]) #(vi +- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-solaris2.[[1-9]]) #(vi ++solaris2.*) #(vi + cf_xopen_source="-D__EXTENSIONS__" ++ cf_cv_xopen_source=broken + ;; + *) +- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ +- AC_TRY_COMPILE([#include ],[ +-#ifndef _XOPEN_SOURCE +-make an error +-#endif], +- [cf_cv_xopen_source=no], +- [cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- AC_TRY_COMPILE([#include ],[ +-#ifdef _XOPEN_SOURCE +-make an error +-#endif], +- [cf_cv_xopen_source=no], +- [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) +- CPPFLAGS="$cf_save" +- ]) +-]) +- if test "$cf_cv_xopen_source" != no ; then +- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) +- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) +- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" +- CF_ADD_CFLAGS($cf_temp_xopen_source) +- fi ++ CF_TRY_XOPEN_SOURCE + CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; + esac +@@ -3576,4 +3807,33 @@ + if test -n "$cf_xopen_source" ; then + CF_ADD_CFLAGS($cf_xopen_source) + fi ++ ++dnl In anything but the default case, we may have system-specific setting ++dnl which is still not guaranteed to provide all of the entrypoints that ++dnl _XOPEN_SOURCE would yield. ++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then ++ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) ++ AC_TRY_COMPILE([#include ],[ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_XOPEN_SOURCE_set=yes], ++ [cf_XOPEN_SOURCE_set=no]) ++ AC_MSG_RESULT($cf_XOPEN_SOURCE_set) ++ if test $cf_XOPEN_SOURCE_set = yes ++ then ++ AC_TRY_COMPILE([#include ],[ ++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE ++make an error ++#endif], ++ [cf_XOPEN_SOURCE_set_ok=yes], ++ [cf_XOPEN_SOURCE_set_ok=no]) ++ if test $cf_XOPEN_SOURCE_set_ok = no ++ then ++ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) ++ fi ++ else ++ CF_TRY_XOPEN_SOURCE ++ fi ++fi + ]) +diff -Naur ncurses-5.9/Ada95/configure ncurses-5.9.patch/Ada95/configure +--- ncurses-5.9/Ada95/configure 2011-04-01 01:34:47.000000000 +0200 ++++ ncurses-5.9.patch/Ada95/configure 2014-09-01 16:33:22.222791900 +0200 +@@ -1,7 +1,7 @@ + #! /bin/sh +-# From configure.in Revision: 1.30 . ++# From configure.in Revision: 1.49 . + # Guess values for system-dependent variables and create Makefiles. +-# Generated by Autoconf 2.52.20101002. ++# Generated by Autoconf 2.52.20121002. + # + # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + # Free Software Foundation, Inc. +@@ -135,15 +135,16 @@ + bindir='${exec_prefix}/bin' + sbindir='${exec_prefix}/sbin' + libexecdir='${exec_prefix}/libexec' +-datadir='${prefix}/share' ++datarootdir='${prefix}/share' ++datadir='${datarootdir}' + sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' + libdir='${exec_prefix}/lib' + includedir='${prefix}/include' + oldincludedir='/usr/include' +-infodir='${prefix}/info' +-mandir='${prefix}/man' ++infodir='${datarootdir}/info' ++mandir='${datarootdir}/man' + + # Identity of this package. + PACKAGE_NAME= +@@ -194,6 +195,13 @@ + | --da=*) + datadir=$ac_optarg ;; + ++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ ++ | --dataroo | --dataro | --datar) ++ ac_prev=datarootdir ;; ++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ ++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) ++ datarootdir=$ac_optarg ;; ++ + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. +@@ -469,7 +477,7 @@ + done + + # Be sure to have absolute paths. +-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ++for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` +@@ -606,15 +614,16 @@ + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] +- --datadir=DIR read-only architecture-independent data [PREFIX/share] ++ --datarootdir=DIR read-only architecture-independent data [PREFIX/share] ++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] +- --infodir=DIR info documentation [PREFIX/info] +- --mandir=DIR man documentation [PREFIX/man] ++ --infodir=DIR info documentation [DATAROOTDIR/info] ++ --mandir=DIR man documentation [DATAROOTDIR/man] + EOF + + cat <<\EOF +@@ -645,6 +654,7 @@ + + --with-system-type=XXX test: override derived host system-type + --with-pkg-config{=path} enable/disable use of pkg-config ++ --with-pkg-config-libdir=XXX use given directory for installing pc-files + --enable-pc-files generate and install .pc files for pkg-config + --without-tests suppress build with test-programs + --enable-mixed-case tic should assume mixed-case filenames +@@ -660,6 +670,7 @@ + --with-shared generate shared C-objects (needed for --with-ada-sharedlib) + --enable-widec compile with wide-char/UTF-8 code + --with-curses-dir=DIR directory in which (n)curses is installed ++ --with-lib-prefix override library-prefix + --with-shlib-version=X Specify rel or abi version for shared libs + --enable-rpath-link link sample programs with rpath option + Fine-Tuning Your Configuration: +@@ -677,7 +688,7 @@ + --enable-reentrant compile with experimental reentrant code + --with-wrap-prefix=XXX override prefix used for public variables + Testing/development Options: +- --enable-echo build: display "compiling" commands (default) ++ --disable-echo do not display "compiling" commands + --enable-warnings build: turn on GCC compiler warnings + --enable-assertions test: turn on generation of assertion code + --enable-expanded test: generate functions for certain macros +@@ -757,7 +768,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.20101002. Invocation command line was ++generated by GNU Autoconf 2.52.20121002. Invocation command line was + + $ $0 $@ + +@@ -881,7 +892,7 @@ + fi + for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then +- { echo "$as_me:884: loading site script $ac_site_file" >&5 ++ { echo "$as_me:895: 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" +@@ -892,7 +903,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:895: loading cache $cache_file" >&5 ++ { echo "$as_me:906: loading cache $cache_file" >&5 + echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; +@@ -900,7 +911,7 @@ + esac + fi + else +- { echo "$as_me:903: creating cache $cache_file" >&5 ++ { echo "$as_me:914: creating cache $cache_file" >&5 + echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file + fi +@@ -916,21 +927,21 @@ + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) +- { echo "$as_me:919: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++ { echo "$as_me:930: 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:923: error: \`$ac_var' was not set in the previous run" >&5 ++ { echo "$as_me:934: 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:929: error: \`$ac_var' has changed since the previous run:" >&5 ++ { echo "$as_me:940: 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:931: former value: $ac_old_val" >&5 ++ { echo "$as_me:942: former value: $ac_old_val" >&5 + echo "$as_me: former value: $ac_old_val" >&2;} +- { echo "$as_me:933: current value: $ac_new_val" >&5 ++ { echo "$as_me:944: current value: $ac_new_val" >&5 + echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; +@@ -949,9 +960,9 @@ + fi + done + if $ac_cache_corrupted; then +- { echo "$as_me:952: error: changes in the environment can compromise the build" >&5 ++ { echo "$as_me:963: 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:954: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 ++ { { echo "$as_me:965: 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 +@@ -972,10 +983,10 @@ + echo "#! $SHELL" >conftest.sh + echo "exit 0" >>conftest.sh + chmod +x conftest.sh +-if { (echo "$as_me:975: PATH=\".;.\"; conftest.sh") >&5 ++if { (echo "$as_me:986: PATH=\".;.\"; conftest.sh") >&5 + (PATH=".;."; conftest.sh) 2>&5 + ac_status=$? +- echo "$as_me:978: \$? = $ac_status" >&5 ++ echo "$as_me:989: \$? = $ac_status" >&5 + (exit $ac_status); }; then + ac_path_separator=';' + else +@@ -1005,7 +1016,7 @@ + fi + done + if test -z "$ac_aux_dir"; then +- { { echo "$as_me:1008: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 ++ { { echo "$as_me:1019: 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 +@@ -1015,11 +1026,11 @@ + + # Make sure we can run config.sub. + $ac_config_sub sun4 >/dev/null 2>&1 || +- { { echo "$as_me:1018: error: cannot run $ac_config_sub" >&5 ++ { { echo "$as_me:1029: error: cannot run $ac_config_sub" >&5 + echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +-echo "$as_me:1022: checking build system type" >&5 ++echo "$as_me:1033: 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 +@@ -1028,23 +1039,23 @@ + test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` + test -z "$ac_cv_build_alias" && +- { { echo "$as_me:1031: error: cannot guess build type; you must specify one" >&5 ++ { { echo "$as_me:1042: 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:1035: error: $ac_config_sub $ac_cv_build_alias failed." >&5 ++ { { echo "$as_me:1046: 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:1040: result: $ac_cv_build" >&5 ++echo "$as_me:1051: 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:1047: checking host system type" >&5 ++echo "$as_me:1058: 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 +@@ -1053,12 +1064,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:1056: error: $ac_config_sub $ac_cv_host_alias failed" >&5 ++ { { echo "$as_me:1067: 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:1061: result: $ac_cv_host" >&5 ++echo "$as_me:1072: 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/'` +@@ -1066,7 +1077,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:1069: checking target system type" >&5 ++ echo "$as_me:1080: 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 +@@ -1075,12 +1086,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:1078: error: $ac_config_sub $ac_cv_target_alias failed" >&5 ++ { { echo "$as_me:1089: 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:1083: result: $ac_cv_target" >&5 ++echo "$as_me:1094: 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/'` +@@ -1100,7 +1111,8 @@ + system_name="`(hostname) 2>/dev/null`" + fi + fi +-test -n "$system_name" && cat >>confdefs.h <>confdefs.h <&5 ++test -n "$cf_cv_system_name" && echo "$as_me:1126: 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:1118: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 ++ echo "$as_me:1130: 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:1120: error: \"Please remove config.cache and try again.\"" >&5 ++ { { echo "$as_me:1132: 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 +@@ -1125,9 +1137,11 @@ + # 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:1128: WARNING: overriding system type to $withval" >&5 ++ { echo "$as_me:1140: WARNING: overriding system type to $withval" >&5 + echo "$as_me: WARNING: overriding system type to $withval" >&2;} +- cf_cv_system_name=$withval ++ cf_cv_system_name=$withval ++ host_os=$withval ++ + fi; + + ### Save the given $CFLAGS to allow user-override. +@@ -1135,23 +1149,23 @@ + + ### Default install-location + +-echo "$as_me:1138: checking for prefix" >&5 ++echo "$as_me:1152: 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 + # non-vendor systems don't have a conflict +- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) ++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) + prefix=/usr + ;; + *) prefix=$ac_default_prefix + ;; + esac + fi +-echo "$as_me:1150: result: $prefix" >&5 ++echo "$as_me:1164: result: $prefix" >&5 + echo "${ECHO_T}$prefix" >&6 + + if test "x$prefix" = "xNONE" ; then +-echo "$as_me:1154: checking for default include-directory" >&5 ++echo "$as_me:1168: 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 \ +@@ -1174,11 +1188,12 @@ + fi + test -n "$verbose" && echo " tested $cf_dir" 1>&6 + done +-echo "$as_me:1177: result: $includedir" >&5 ++echo "$as_me:1191: result: $includedir" >&5 + echo "${ECHO_T}$includedir" >&6 + fi + + ### Checks for programs. ++ + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -1186,213 +1201,11 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_main_return=return + 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:1191: 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 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc" +-echo "$as_me:1206: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- echo "$as_me:1214: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6 +-else +- echo "$as_me:1217: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +-fi +-if test -z "$ac_cv_prog_CC"; then +- 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:1226: 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 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="gcc" +-echo "$as_me:1241: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-ac_ct_CC=$ac_cv_prog_ac_ct_CC +-if test -n "$ac_ct_CC"; then +- echo "$as_me:1249: result: $ac_ct_CC" >&5 +-echo "${ECHO_T}$ac_ct_CC" >&6 +-else +- echo "$as_me:1252: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- CC=$ac_ct_CC +-else +- CC="$ac_cv_prog_CC" +-fi +- +-if test -z "$CC"; then +- 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:1265: 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 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc" +-echo "$as_me:1280: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- echo "$as_me:1288: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6 +-else +- echo "$as_me:1291: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +-fi +-if test -z "$ac_cv_prog_CC"; then +- 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:1300: 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 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="cc" +-echo "$as_me:1315: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-ac_ct_CC=$ac_cv_prog_ac_ct_CC +-if test -n "$ac_ct_CC"; then +- echo "$as_me:1323: result: $ac_ct_CC" >&5 +-echo "${ECHO_T}$ac_ct_CC" >&6 +-else +- echo "$as_me:1326: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- CC=$ac_ct_CC +-else +- CC="$ac_cv_prog_CC" +-fi +- +-fi +-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:1339: 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 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else +- ac_prog_rejected=no +- 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 +-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then +- ac_prog_rejected=yes +- continue +-fi +-ac_cv_prog_CC="cc" +-echo "$as_me:1359: found $ac_dir/$ac_word" >&5 +-break +-done +- +-if test $ac_prog_rejected = yes; then +- # We found a bogon in the path, so make sure we never use it. +- set dummy $ac_cv_prog_CC +- shift +- if test $# != 0; then +- # We chose a different compiler from the bogus one. +- # However, it has the same basename, so the bogon will be chosen +- # first if we set CC to just the basename; use the full file name. +- shift +- set dummy "$ac_dir/$ac_word" ${1+"$@"} +- shift +- ac_cv_prog_CC="$@" +- fi +-fi +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- echo "$as_me:1381: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6 +-else +- echo "$as_me:1384: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +-fi +-if test -z "$CC"; then +- if test -n "$ac_tool_prefix"; then +- for ac_prog in cl ++ for ac_prog in gnatgcc gcc cc + 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:1395: checking for $ac_word" >&5 ++echo "$as_me:1208: 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 +@@ -1407,7 +1220,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:1410: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1223: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1415,10 +1228,10 @@ + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$as_me:1418: result: $CC" >&5 ++ echo "$as_me:1231: result: $CC" >&5 + echo "${ECHO_T}$CC" >&6 + else +- echo "$as_me:1421: result: no" >&5 ++ echo "$as_me:1234: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1427,11 +1240,11 @@ + fi + if test -z "$CC"; then + ac_ct_CC=$CC +- for ac_prog in cl ++ for ac_prog in gnatgcc gcc cc + 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:1434: checking for $ac_word" >&5 ++echo "$as_me:1247: 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 +@@ -1446,7 +1259,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:1449: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1262: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1454,10 +1267,10 @@ + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- echo "$as_me:1457: result: $ac_ct_CC" >&5 ++ echo "$as_me:1270: result: $ac_ct_CC" >&5 + echo "${ECHO_T}$ac_ct_CC" >&6 + else +- echo "$as_me:1460: result: no" >&5 ++ echo "$as_me:1273: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1467,34 +1280,32 @@ + CC=$ac_ct_CC + fi + +-fi +- +-test -z "$CC" && { { echo "$as_me:1472: error: no acceptable cc found in \$PATH" >&5 ++test -z "$CC" && { { echo "$as_me:1283: 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:1477:" \ ++echo "$as_me:1288:" \ + "checking for C compiler version" >&5 + ac_compiler=`set X $ac_compile; echo $2` +-{ (eval echo "$as_me:1480: \"$ac_compiler --version &5\"") >&5 ++{ (eval echo "$as_me:1291: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? +- echo "$as_me:1483: \$? = $ac_status" >&5 ++ echo "$as_me:1294: \$? = $ac_status" >&5 + (exit $ac_status); } +-{ (eval echo "$as_me:1485: \"$ac_compiler -v &5\"") >&5 ++{ (eval echo "$as_me:1296: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? +- echo "$as_me:1488: \$? = $ac_status" >&5 ++ echo "$as_me:1299: \$? = $ac_status" >&5 + (exit $ac_status); } +-{ (eval echo "$as_me:1490: \"$ac_compiler -V &5\"") >&5 ++{ (eval echo "$as_me:1301: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? +- echo "$as_me:1493: \$? = $ac_status" >&5 ++ echo "$as_me:1304: \$? = $ac_status" >&5 + (exit $ac_status); } + + cat >conftest.$ac_ext <<_ACEOF +-#line 1497 "configure" ++#line 1308 "configure" + #include "confdefs.h" + + int +@@ -1510,13 +1321,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:1513: checking for C compiler default output" >&5 ++echo "$as_me:1324: 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:1516: \"$ac_link_default\"") >&5 ++if { (eval echo "$as_me:1327: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? +- echo "$as_me:1519: \$? = $ac_status" >&5 ++ echo "$as_me:1330: \$? = $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 +@@ -1539,34 +1350,34 @@ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-{ { echo "$as_me:1542: error: C compiler cannot create executables" >&5 ++{ { echo "$as_me:1353: 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:1548: result: $ac_file" >&5 ++echo "$as_me:1359: 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:1553: checking whether the C compiler works" >&5 ++echo "$as_me:1364: 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:1559: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1370: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1562: \$? = $ac_status" >&5 ++ echo "$as_me:1373: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else +- { { echo "$as_me:1569: error: cannot run C compiled programs. ++ { { echo "$as_me:1380: 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;} +@@ -1574,24 +1385,24 @@ + fi + fi + fi +-echo "$as_me:1577: result: yes" >&5 ++echo "$as_me:1388: 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:1584: checking whether we are cross compiling" >&5 ++echo "$as_me:1395: checking whether we are cross compiling" >&5 + echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +-echo "$as_me:1586: result: $cross_compiling" >&5 ++echo "$as_me:1397: result: $cross_compiling" >&5 + echo "${ECHO_T}$cross_compiling" >&6 + +-echo "$as_me:1589: checking for executable suffix" >&5 ++echo "$as_me:1400: checking for executable suffix" >&5 + echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 +-if { (eval echo "$as_me:1591: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:1402: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:1594: \$? = $ac_status" >&5 ++ echo "$as_me:1405: \$? = $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 +@@ -1607,25 +1418,25 @@ + esac + done + else +- { { echo "$as_me:1610: error: cannot compute EXEEXT: cannot compile and link" >&5 ++ { { echo "$as_me:1421: 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:1616: result: $ac_cv_exeext" >&5 ++echo "$as_me:1427: 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:1622: checking for object suffix" >&5 ++echo "$as_me:1433: 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 1628 "configure" ++#line 1439 "configure" + #include "confdefs.h" + + int +@@ -1637,10 +1448,10 @@ + } + _ACEOF + rm -f conftest.o conftest.obj +-if { (eval echo "$as_me:1640: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1451: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1643: \$? = $ac_status" >&5 ++ echo "$as_me:1454: \$? = $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 +@@ -1652,24 +1463,24 @@ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-{ { echo "$as_me:1655: error: cannot compute OBJEXT: cannot compile" >&5 ++{ { echo "$as_me:1466: 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:1662: result: $ac_cv_objext" >&5 ++echo "$as_me:1473: result: $ac_cv_objext" >&5 + echo "${ECHO_T}$ac_cv_objext" >&6 + OBJEXT=$ac_cv_objext + ac_objext=$OBJEXT +-echo "$as_me:1666: checking whether we are using the GNU C compiler" >&5 ++echo "$as_me:1477: 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 1672 "configure" ++#line 1483 "configure" + #include "confdefs.h" + + int +@@ -1684,16 +1495,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1687: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1498: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1690: \$? = $ac_status" >&5 ++ echo "$as_me:1501: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1693: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1504: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1696: \$? = $ac_status" >&5 ++ echo "$as_me:1507: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes + else +@@ -1705,19 +1516,19 @@ + ac_cv_c_compiler_gnu=$ac_compiler_gnu + + fi +-echo "$as_me:1708: result: $ac_cv_c_compiler_gnu" >&5 ++echo "$as_me:1519: 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:1714: checking whether $CC accepts -g" >&5 ++echo "$as_me:1525: 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 1720 "configure" ++#line 1531 "configure" + #include "confdefs.h" + + int +@@ -1729,16 +1540,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1732: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1543: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1735: \$? = $ac_status" >&5 ++ echo "$as_me:1546: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1738: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1549: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1741: \$? = $ac_status" >&5 ++ echo "$as_me:1552: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes + else +@@ -1748,7 +1559,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:1751: result: $ac_cv_prog_cc_g" >&5 ++echo "$as_me:1562: 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 +@@ -1775,16 +1586,16 @@ + #endif + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1778: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1589: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1781: \$? = $ac_status" >&5 ++ echo "$as_me:1592: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1784: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1595: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1787: \$? = $ac_status" >&5 ++ echo "$as_me:1598: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ +@@ -1796,7 +1607,7 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line 1799 "configure" ++#line 1610 "configure" + #include "confdefs.h" + #include + $ac_declaration +@@ -1809,16 +1620,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1812: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1623: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1815: \$? = $ac_status" >&5 ++ echo "$as_me:1626: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1818: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1629: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1821: \$? = $ac_status" >&5 ++ echo "$as_me:1632: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -1828,7 +1639,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 1831 "configure" ++#line 1642 "configure" + #include "confdefs.h" + $ac_declaration + int +@@ -1840,16 +1651,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1843: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1654: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1846: \$? = $ac_status" >&5 ++ echo "$as_me:1657: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1849: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1660: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1852: \$? = $ac_status" >&5 ++ echo "$as_me:1663: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -1879,68 +1690,259 @@ + + GCC_VERSION=none + if test "$GCC" = yes ; then +- echo "$as_me:1882: checking version of $CC" >&5 ++ echo "$as_me:1693: checking version of $CC" >&5 + echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 +- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" ++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" + test -z "$GCC_VERSION" && GCC_VERSION=unknown +- echo "$as_me:1886: result: $GCC_VERSION" >&5 ++ echo "$as_me:1697: result: $GCC_VERSION" >&5 + echo "${ECHO_T}$GCC_VERSION" >&6 + fi + +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-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:1896: 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 +- CPP= +-fi +-if test -z "$CPP"; then +- if test "${ac_cv_prog_CPP+set}" = set; then ++echo "$as_me:1701: 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 + else +- # Double quotes because CPP needs to be expanded +- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" +- do +- ac_preproc_ok=false +-for ac_c_preproc_warn_flag in '' yes +-do +- # Use a header file that comes with gcc, so configuring glibc +- # with a fresh cross-compiler works. +- # 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 1917 "configure" ++ ac_cv_prog_cc_stdc=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++#line 1709 "configure" + #include "confdefs.h" +-#include +- Syntax error ++#include ++#include ++#include ++#include ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} + _ACEOF +-if { (eval echo "$as_me:1922: \"$ac_cpp conftest.$ac_ext\"") >&5 +- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++# Don't try gcc -ansi; that turns off useful extensions and ++# breaks some systems' header files. ++# AIX -qlanglvl=ansi ++# Ultrix and OSF/1 -std1 ++# HP-UX 10.20 and later -Ae ++# HP-UX older versions -Aa -D_HPUX_SOURCE ++# SVR4 -Xc -D__EXTENSIONS__ ++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (eval echo "$as_me:1758: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- egrep -v '^ *\+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:1928: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- : ++ echo "$as_me:1761: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:1764: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:1767: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_stdc=$ac_arg ++break + else + echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- # Broken: fails on valid input. ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext ++done ++rm -f conftest.$ac_ext conftest.$ac_objext ++CC=$ac_save_CC ++ ++fi ++ ++case "x$ac_cv_prog_cc_stdc" in ++ x|xno) ++ echo "$as_me:1784: result: none needed" >&5 ++echo "${ECHO_T}none needed" >&6 ;; ++ *) ++ echo "$as_me:1787: result: $ac_cv_prog_cc_stdc" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 ++ CC="$CC $ac_cv_prog_cc_stdc" ;; ++esac ++ ++# This should have been defined by AC_PROG_CC ++: ${CC:=cc} ++ ++echo "$as_me:1795: checking \$CC variable" >&5 ++echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 ++case "$CC" in #(vi ++*[\ \ ]-[IUD]*) ++ echo "$as_me:1799: result: broken" >&5 ++echo "${ECHO_T}broken" >&6 ++ { echo "$as_me:1801: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 ++echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} ++ # humor him... ++ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'` ++ CC=`echo "$CC" | sed -e 's/[ ].*//'` ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_flags ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ ;; ++*) ++ echo "$as_me:1887: result: ok" >&5 ++echo "${ECHO_T}ok" >&6 ++ ;; ++esac ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++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:1898: 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 ++ CPP= ++fi ++if test -z "$CPP"; then ++ if test "${ac_cv_prog_CPP+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ # Double quotes because CPP needs to be expanded ++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # 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 1919 "configure" ++#include "confdefs.h" ++#include ++ Syntax error ++_ACEOF ++if { (eval echo "$as_me:1924: \"$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:1930: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ # Broken: fails on valid input. + continue + fi + rm -f conftest.err conftest.$ac_ext +@@ -1948,17 +1950,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 1951 "configure" ++#line 1953 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:1955: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:1957: \"$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:1961: \$? = $ac_status" >&5 ++ echo "$as_me:1963: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -1995,7 +1997,7 @@ + else + ac_cv_prog_CPP=$CPP + fi +-echo "$as_me:1998: result: $CPP" >&5 ++echo "$as_me:2000: result: $CPP" >&5 + echo "${ECHO_T}$CPP" >&6 + ac_preproc_ok=false + for ac_c_preproc_warn_flag in '' yes +@@ -2005,18 +2007,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 2008 "configure" ++#line 2010 "configure" + #include "confdefs.h" + #include + Syntax error + _ACEOF +-if { (eval echo "$as_me:2013: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2015: \"$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:2019: \$? = $ac_status" >&5 ++ echo "$as_me:2021: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -2039,17 +2041,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 2042 "configure" ++#line 2044 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:2046: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2048: \"$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:2052: \$? = $ac_status" >&5 ++ echo "$as_me:2054: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -2077,7 +2079,7 @@ + if $ac_preproc_ok; then + : + else +- { { echo "$as_me:2080: error: C preprocessor \"$CPP\" fails sanity check" >&5 ++ { { echo "$as_me:2082: error: C preprocessor \"$CPP\" fails sanity check" >&5 + echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -2090,14 +2092,14 @@ + ac_main_return=return + + if test $ac_cv_c_compiler_gnu = yes; then +- echo "$as_me:2093: checking whether $CC needs -traditional" >&5 ++ echo "$as_me:2095: 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 2100 "configure" ++#line 2102 "configure" + #include "confdefs.h" + #include + int Autoconf = TIOCGETP; +@@ -2112,7 +2114,7 @@ + + if test $ac_cv_prog_gcc_traditional = no; then + cat >conftest.$ac_ext <<_ACEOF +-#line 2115 "configure" ++#line 2117 "configure" + #include "confdefs.h" + #include + int Autoconf = TCGETA; +@@ -2125,14 +2127,14 @@ + + fi + fi +-echo "$as_me:2128: result: $ac_cv_prog_gcc_traditional" >&5 ++echo "$as_me:2130: 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:2135: checking whether $CC understands -c and -o together" >&5 ++echo "$as_me:2137: 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 +@@ -2148,15 +2150,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:2151: \"$ac_try\"") >&5 ++if { (eval echo "$as_me:2153: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2154: \$? = $ac_status" >&5 ++ echo "$as_me:2156: \$? = $ac_status" >&5 + (exit $ac_status); } && +- test -f conftest2.$ac_objext && { (eval echo "$as_me:2156: \"$ac_try\"") >&5 ++ test -f conftest2.$ac_objext && { (eval echo "$as_me:2158: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2159: \$? = $ac_status" >&5 ++ echo "$as_me:2161: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + eval cf_cv_prog_CC_c_o=yes +@@ -2167,307 +2169,13 @@ + + fi + if test $cf_cv_prog_CC_c_o = yes; then +- echo "$as_me:2170: result: yes" >&5 ++ echo "$as_me:2172: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else +- echo "$as_me:2173: result: no" >&5 ++ echo "$as_me:2175: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +-echo "$as_me:2177: 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:2182: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- ISC=yes # If later tests want to check for ISC. +- +-cat >>confdefs.h <<\EOF +-#define _POSIX_SOURCE 1 +-EOF +- +- if test "$GCC" = yes; then +- CC="$CC -posix" +- else +- CC="$CC -Xp" +- fi +-else +- echo "$as_me:2196: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- ISC= +-fi +- +-echo "$as_me:2201: 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 +-else +- +-cf_cv_ansi_cc=no +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc +-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) +-for cf_arg in "-DCC_HAS_PROTOS" \ +- "" \ +- -qlanglvl=ansi \ +- -std1 \ +- -Ae \ +- "-Aa -D_HPUX_SOURCE" \ +- -Xc +-do +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_arg +-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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi +- +- cat >conftest.$ac_ext <<_ACEOF +-#line 2305 "configure" +-#include "confdefs.h" +- +-#ifndef CC_HAS_PROTOS +-#if !defined(__STDC__) || (__STDC__ != 1) +-choke me +-#endif +-#endif +- +-int +-main () +-{ +- +- int test (int i, double x); +- struct s1 {int (*f) (int a);}; +- struct s2 {int (*f) (double a);}; +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2326: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:2329: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2332: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:2335: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_cv_ansi_cc="$cf_arg"; 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" +-CPPFLAGS="$cf_save_CPPFLAGS" +- +-fi +-echo "$as_me:2348: result: $cf_cv_ansi_cc" >&5 +-echo "${ECHO_T}$cf_cv_ansi_cc" >&6 +- +-if test "$cf_cv_ansi_cc" != "no"; then +-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_cv_ansi_cc +-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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi +- +-else +- cat >>confdefs.h <<\EOF +-#define CC_HAS_PROTOS 1 +-EOF +- +-fi +-fi +- +-if test "$cf_cv_ansi_cc" = "no"; then +- { { echo "$as_me:2441: 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 +- c. use a wrapper such as unproto" >&5 +-echo "$as_me: 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 +- c. use a wrapper such as unproto" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +-case $cf_cv_system_name in +-os2*) +- CFLAGS="$CFLAGS -Zmt" +- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__" +- CXXFLAGS="$CXXFLAGS -Zmt" +- # autoconf's macro sets -Zexe and suffix both, which conflict:w +- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" +- ac_cv_exeext=.exe +- ;; +-esac +- +-PROG_EXT="$EXEEXT" +- +-test -n "$PROG_EXT" && cat >>confdefs.h <&5 ++echo "$as_me:2196: 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 +@@ -2500,7 +2208,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_AWK="$ac_prog" +-echo "$as_me:2503: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2211: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2508,21 +2216,21 @@ + fi + AWK=$ac_cv_prog_AWK + if test -n "$AWK"; then +- echo "$as_me:2511: result: $AWK" >&5 ++ echo "$as_me:2219: result: $AWK" >&5 + echo "${ECHO_T}$AWK" >&6 + else +- echo "$as_me:2514: result: no" >&5 ++ echo "$as_me:2222: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + test -n "$AWK" && break + done + +-test -z "$AWK" && { { echo "$as_me:2521: error: No awk program found" >&5 ++test -z "$AWK" && { { echo "$as_me:2229: error: No awk program found" >&5 + echo "$as_me: error: No awk program found" >&2;} + { (exit 1); exit 1; }; } + +-echo "$as_me:2525: checking for egrep" >&5 ++echo "$as_me:2233: 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 +@@ -2532,11 +2240,11 @@ + else ac_cv_prog_egrep='egrep' + fi + fi +-echo "$as_me:2535: result: $ac_cv_prog_egrep" >&5 ++echo "$as_me:2243: 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:2539: error: No egrep program found" >&5 ++test -z "$EGREP" && { { echo "$as_me:2247: error: No egrep program found" >&5 + echo "$as_me: error: No egrep program found" >&2;} + { (exit 1); exit 1; }; } + +@@ -2552,7 +2260,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:2555: checking for a BSD compatible install" >&5 ++echo "$as_me:2263: 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 +@@ -2601,7 +2309,7 @@ + INSTALL=$ac_install_sh + fi + fi +-echo "$as_me:2604: result: $INSTALL" >&5 ++echo "$as_me:2312: result: $INSTALL" >&5 + echo "${ECHO_T}$INSTALL" >&6 + + # Use test -z because SunOS4 sh mishandles braces in ${var-val}. +@@ -2612,18 +2320,18 @@ + + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +-echo "$as_me:2615: checking whether ln -s works" >&5 ++echo "$as_me:2323: 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:2619: result: yes" >&5 ++ echo "$as_me:2327: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else +- echo "$as_me:2622: result: no, using $LN_S" >&5 ++ echo "$as_me:2330: result: no, using $LN_S" >&5 + echo "${ECHO_T}no, using $LN_S" >&6 + fi + +-echo "$as_me:2626: checking if $LN_S -f options work" >&5 ++echo "$as_me:2334: checking if $LN_S -f options work" >&5 + echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6 + + rm -f conf$$.src conf$$dst +@@ -2635,12 +2343,12 @@ + cf_prog_ln_sf=no + fi + rm -f conf$$.dst conf$$src +-echo "$as_me:2638: result: $cf_prog_ln_sf" >&5 ++echo "$as_me:2346: result: $cf_prog_ln_sf" >&5 + echo "${ECHO_T}$cf_prog_ln_sf" >&6 + + test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" + +-echo "$as_me:2643: checking for long file names" >&5 ++echo "$as_me:2351: 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 +@@ -2679,7 +2387,7 @@ + rm -rf $ac_xdir 2>/dev/null + done + fi +-echo "$as_me:2682: result: $ac_cv_sys_long_file_names" >&5 ++echo "$as_me:2390: 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 + +@@ -2691,7 +2399,7 @@ + + # if we find pkg-config, check if we should install the ".pc" files. + +-echo "$as_me:2694: checking if you want to use pkg-config" >&5 ++echo "$as_me:2402: 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. +@@ -2701,7 +2409,7 @@ + else + cf_pkg_config=yes + fi; +-echo "$as_me:2704: result: $cf_pkg_config" >&5 ++echo "$as_me:2412: result: $cf_pkg_config" >&5 + echo "${ECHO_T}$cf_pkg_config" >&6 + + case $cf_pkg_config in #(vi +@@ -2709,10 +2417,11 @@ + PKG_CONFIG=none + ;; + yes) #(vi +- if test -n "$ac_tool_prefix"; then ++ ++if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. + set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +-echo "$as_me:2715: checking for $ac_word" >&5 ++echo "$as_me:2424: 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 +@@ -2729,7 +2438,7 @@ + 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:2732: found $ac_dir/$ac_word" >&5 ++ echo "$as_me:2441: found $ac_dir/$ac_word" >&5 + break + fi + done +@@ -2740,10 +2449,10 @@ + PKG_CONFIG=$ac_cv_path_PKG_CONFIG + + if test -n "$PKG_CONFIG"; then +- echo "$as_me:2743: result: $PKG_CONFIG" >&5 ++ echo "$as_me:2452: result: $PKG_CONFIG" >&5 + echo "${ECHO_T}$PKG_CONFIG" >&6 + else +- echo "$as_me:2746: result: no" >&5 ++ echo "$as_me:2455: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -2752,7 +2461,7 @@ + ac_pt_PKG_CONFIG=$PKG_CONFIG + # 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:2755: checking for $ac_word" >&5 ++echo "$as_me:2464: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -2769,7 +2478,7 @@ + test -z "$ac_dir" && ac_dir=. + if $as_executable_p "$ac_dir/$ac_word"; then + ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:2772: found $ac_dir/$ac_word" >&5 ++ echo "$as_me:2481: found $ac_dir/$ac_word" >&5 + break + fi + done +@@ -2781,10 +2490,10 @@ + ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG + + if test -n "$ac_pt_PKG_CONFIG"; then +- echo "$as_me:2784: result: $ac_pt_PKG_CONFIG" >&5 ++ echo "$as_me:2493: result: $ac_pt_PKG_CONFIG" >&5 + echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 + else +- echo "$as_me:2787: result: no" >&5 ++ echo "$as_me:2496: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -2815,7 +2524,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval PKG_CONFIG="$PKG_CONFIG" + case ".$PKG_CONFIG" in #(vi + .NONE/*) +@@ -2827,7 +2536,7 @@ + PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:2830: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 ++ { { echo "$as_me:2539: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 + echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;} + { (exit 1); exit 1; }; } + ;; +@@ -2836,15 +2545,50 @@ + fi + + if test "$PKG_CONFIG" != none ; then +- echo "$as_me:2839: 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 ++ echo "$as_me:2548: checking for $PKG_CONFIG library directory" >&5 ++echo $ECHO_N "checking for $PKG_CONFIG library directory... $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 +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then ++# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given. ++if test "${with_pkg_config_libdir+set}" = set; then ++ withval="$with_pkg_config_libdir" ++ PKG_CONFIG_LIBDIR=$withval ++else ++ PKG_CONFIG_LIBDIR=yes ++fi; ++ ++ case x$PKG_CONFIG_LIBDIR in #(vi ++ x/*) #(vi ++ ;; ++ xyes) #(vi ++ # look for the library directory using the same prefix as the executable ++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'` ++ case x`(arch) 2>/dev/null` in #(vi ++ *64) #(vi ++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib ++ do ++ if test -d $cf_config/pkgconfig ++ then ++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig ++ break ++ fi ++ done ++ ;; ++ *) ++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ++ echo "$as_me:2585: result: $PKG_CONFIG_LIBDIR" >&5 ++echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6 ++fi ++ ++if test "$PKG_CONFIG" != none ; then ++ echo "$as_me:2590: 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 + + # Check whether --enable-pc-files or --disable-pc-files was given. + if test "${enable_pc_files+set}" = set; then +@@ -2853,18 +2597,48 @@ + else + enable_pc_files=no + fi; +- echo "$as_me:2856: result: $enable_pc_files" >&5 ++ echo "$as_me:2600: result: $enable_pc_files" >&5 + echo "${ECHO_T}$enable_pc_files" >&6 +- else +- echo "$as_me:2859: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- { echo "$as_me:2861: 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 ++ if test "$enable_pc_files" != no ++ then ++ ++if test "x$prefix" != xNONE; then ++ cf_path_syntax="$prefix" ++else ++ cf_path_syntax="$ac_default_prefix" ++fi ++ ++case ".$PKG_CONFIG_LIBDIR" in #(vi ++.\$\(*\)*|.\'*\'*) #(vi ++ ;; ++..|./*|.\\*) #(vi ++ ;; ++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ++ ;; ++.\${*prefix}*|.\${*dir}*) #(vi ++ eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR" ++ case ".$PKG_CONFIG_LIBDIR" in #(vi ++ .NONE/*) ++ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++ esac ++ ;; #(vi ++.no|.NONE/*) ++ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++*) ++ { { echo "$as_me:2630: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5 ++echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++esac ++ + fi ++else ++ enable_pc_files=no + fi + +-echo "$as_me:2867: checking if you want to build test-programs" >&5 ++echo "$as_me:2641: checking if you want to build test-programs" >&5 + echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6 + + # Check whether --with-tests or --without-tests was given. +@@ -2874,10 +2648,10 @@ + else + cf_with_tests=yes + fi; +-echo "$as_me:2877: result: $cf_with_tests" >&5 ++echo "$as_me:2651: result: $cf_with_tests" >&5 + echo "${ECHO_T}$cf_with_tests" >&6 + +-echo "$as_me:2880: checking if we should assume mixed-case filenames" >&5 ++echo "$as_me:2654: 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. +@@ -2887,11 +2661,11 @@ + else + enable_mixedcase=auto + fi; +-echo "$as_me:2890: result: $enable_mixedcase" >&5 ++echo "$as_me:2664: result: $enable_mixedcase" >&5 + echo "${ECHO_T}$enable_mixedcase" >&6 + if test "$enable_mixedcase" = "auto" ; then + +-echo "$as_me:2894: checking if filesystem supports mixed-case filenames" >&5 ++echo "$as_me:2668: 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 +@@ -2899,7 +2673,7 @@ + + if test "$cross_compiling" = yes ; then + case $target_alias in #(vi +- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi ++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) +@@ -2918,9 +2692,10 @@ + fi + + fi +-echo "$as_me:2921: result: $cf_cv_mixedcase" >&5 ++echo "$as_me:2695: result: $cf_cv_mixedcase" >&5 + echo "${ECHO_T}$cf_cv_mixedcase" >&6 +-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_mixedcase" = yes && ++cat >>confdefs.h <<\EOF + #define MIXEDCASE_FILENAMES 1 + EOF + +@@ -2935,7 +2710,7 @@ + fi + + # do this after mixed-case option (tags/TAGS is not as important as tic). +-echo "$as_me:2938: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "$as_me:2713: 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 +@@ -2955,11 +2730,11 @@ + rm -f conftest.make + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then +- echo "$as_me:2958: result: yes" >&5 ++ echo "$as_me:2733: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + SET_MAKE= + else +- echo "$as_me:2962: result: no" >&5 ++ echo "$as_me:2737: result: no" >&5 + echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" + fi +@@ -2968,7 +2743,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:2971: checking for $ac_word" >&5 ++echo "$as_me:2746: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_CTAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -2983,7 +2758,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_CTAGS="$ac_prog" +-echo "$as_me:2986: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2761: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2991,10 +2766,10 @@ + fi + CTAGS=$ac_cv_prog_CTAGS + if test -n "$CTAGS"; then +- echo "$as_me:2994: result: $CTAGS" >&5 ++ echo "$as_me:2769: result: $CTAGS" >&5 + echo "${ECHO_T}$CTAGS" >&6 + else +- echo "$as_me:2997: result: no" >&5 ++ echo "$as_me:2772: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3005,7 +2780,7 @@ + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-echo "$as_me:3008: checking for $ac_word" >&5 ++echo "$as_me:2783: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ETAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -3020,7 +2795,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_ETAGS="$ac_prog" +-echo "$as_me:3023: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2798: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3028,10 +2803,10 @@ + fi + ETAGS=$ac_cv_prog_ETAGS + if test -n "$ETAGS"; then +- echo "$as_me:3031: result: $ETAGS" >&5 ++ echo "$as_me:2806: result: $ETAGS" >&5 + echo "${ECHO_T}$ETAGS" >&6 + else +- echo "$as_me:3034: result: no" >&5 ++ echo "$as_me:2809: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3040,7 +2815,7 @@ + + # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args. + set dummy ${CTAGS:-ctags}; ac_word=$2 +-echo "$as_me:3043: checking for $ac_word" >&5 ++echo "$as_me:2818: 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 +@@ -3055,7 +2830,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:3058: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2833: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3064,17 +2839,17 @@ + fi + MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS + if test -n "$MAKE_LOWER_TAGS"; then +- echo "$as_me:3067: result: $MAKE_LOWER_TAGS" >&5 ++ echo "$as_me:2842: result: $MAKE_LOWER_TAGS" >&5 + echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 + else +- echo "$as_me:3070: result: no" >&5 ++ echo "$as_me:2845: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + if test "$cf_cv_mixedcase" = yes ; then + # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args. + set dummy ${ETAGS:-etags}; ac_word=$2 +-echo "$as_me:3077: checking for $ac_word" >&5 ++echo "$as_me:2852: 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 +@@ -3089,7 +2864,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:3092: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2867: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3098,10 +2873,10 @@ + fi + MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS + if test -n "$MAKE_UPPER_TAGS"; then +- echo "$as_me:3101: result: $MAKE_UPPER_TAGS" >&5 ++ echo "$as_me:2876: result: $MAKE_UPPER_TAGS" >&5 + echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 + else +- echo "$as_me:3104: result: no" >&5 ++ echo "$as_me:2879: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3121,7 +2896,7 @@ + MAKE_LOWER_TAGS="#" + fi + +-echo "$as_me:3124: checking for makeflags variable" >&5 ++echo "$as_me:2899: 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 +@@ -3155,13 +2930,13 @@ + rm -f cf_makeflags.tmp + + fi +-echo "$as_me:3158: result: $cf_cv_makeflags" >&5 ++echo "$as_me:2933: 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:3164: checking for $ac_word" >&5 ++echo "$as_me:2939: 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 +@@ -3176,7 +2951,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:3179: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2954: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3184,10 +2959,10 @@ + fi + RANLIB=$ac_cv_prog_RANLIB + if test -n "$RANLIB"; then +- echo "$as_me:3187: result: $RANLIB" >&5 ++ echo "$as_me:2962: result: $RANLIB" >&5 + echo "${ECHO_T}$RANLIB" >&6 + else +- echo "$as_me:3190: result: no" >&5 ++ echo "$as_me:2965: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3196,7 +2971,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:3199: checking for $ac_word" >&5 ++echo "$as_me:2974: 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 +@@ -3211,7 +2986,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:3214: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2989: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3220,10 +2995,10 @@ + fi + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB + if test -n "$ac_ct_RANLIB"; then +- echo "$as_me:3223: result: $ac_ct_RANLIB" >&5 ++ echo "$as_me:2998: result: $ac_ct_RANLIB" >&5 + echo "${ECHO_T}$ac_ct_RANLIB" >&6 + else +- echo "$as_me:3226: result: no" >&5 ++ echo "$as_me:3001: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3235,7 +3010,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:3238: checking for $ac_word" >&5 ++echo "$as_me:3013: 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 +@@ -3250,7 +3025,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:3253: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3028: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3258,10 +3033,10 @@ + fi + LD=$ac_cv_prog_LD + if test -n "$LD"; then +- echo "$as_me:3261: result: $LD" >&5 ++ echo "$as_me:3036: result: $LD" >&5 + echo "${ECHO_T}$LD" >&6 + else +- echo "$as_me:3264: result: no" >&5 ++ echo "$as_me:3039: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3270,7 +3045,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:3273: checking for $ac_word" >&5 ++echo "$as_me:3048: 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 +@@ -3285,7 +3060,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:3288: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3063: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3294,10 +3069,10 @@ + fi + ac_ct_LD=$ac_cv_prog_ac_ct_LD + if test -n "$ac_ct_LD"; then +- echo "$as_me:3297: result: $ac_ct_LD" >&5 ++ echo "$as_me:3072: result: $ac_ct_LD" >&5 + echo "${ECHO_T}$ac_ct_LD" >&6 + else +- echo "$as_me:3300: result: no" >&5 ++ echo "$as_me:3075: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3309,7 +3084,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:3312: checking for $ac_word" >&5 ++echo "$as_me:3087: 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 +@@ -3324,7 +3099,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:3327: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3102: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3332,10 +3107,10 @@ + fi + AR=$ac_cv_prog_AR + if test -n "$AR"; then +- echo "$as_me:3335: result: $AR" >&5 ++ echo "$as_me:3110: result: $AR" >&5 + echo "${ECHO_T}$AR" >&6 + else +- echo "$as_me:3338: result: no" >&5 ++ echo "$as_me:3113: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3344,7 +3119,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:3347: checking for $ac_word" >&5 ++echo "$as_me:3122: 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 +@@ -3359,7 +3134,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:3362: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3137: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3368,10 +3143,10 @@ + fi + ac_ct_AR=$ac_cv_prog_ac_ct_AR + if test -n "$ac_ct_AR"; then +- echo "$as_me:3371: result: $ac_ct_AR" >&5 ++ echo "$as_me:3146: result: $ac_ct_AR" >&5 + echo "${ECHO_T}$ac_ct_AR" >&6 + else +- echo "$as_me:3374: result: no" >&5 ++ echo "$as_me:3149: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3383,7 +3158,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:3386: checking for $ac_word" >&5 ++echo "$as_me:3161: 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 +@@ -3398,7 +3173,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:3401: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3176: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3406,10 +3181,10 @@ + fi + AR=$ac_cv_prog_AR + if test -n "$AR"; then +- echo "$as_me:3409: result: $AR" >&5 ++ echo "$as_me:3184: result: $AR" >&5 + echo "${ECHO_T}$AR" >&6 + else +- echo "$as_me:3412: result: no" >&5 ++ echo "$as_me:3187: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3418,7 +3193,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:3421: checking for $ac_word" >&5 ++echo "$as_me:3196: 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 +@@ -3433,7 +3208,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:3436: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3211: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3442,10 +3217,10 @@ + fi + ac_ct_AR=$ac_cv_prog_ac_ct_AR + if test -n "$ac_ct_AR"; then +- echo "$as_me:3445: result: $ac_ct_AR" >&5 ++ echo "$as_me:3220: result: $ac_ct_AR" >&5 + echo "${ECHO_T}$ac_ct_AR" >&6 + else +- echo "$as_me:3448: result: no" >&5 ++ echo "$as_me:3223: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3454,7 +3229,7 @@ + AR="$ac_cv_prog_AR" + fi + +-echo "$as_me:3457: checking for options to update archives" >&5 ++echo "$as_me:3232: 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 +@@ -3477,13 +3252,13 @@ + rm -f conftest.a + + cat >conftest.$ac_ext <&5 ++ if { (eval echo "$as_me:3258: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3486: \$? = $ac_status" >&5 ++ echo "$as_me:3261: \$? = $ac_status" >&5 + (exit $ac_status); } ; then + echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5 + $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null +@@ -3494,7 +3269,7 @@ + else + test -n "$verbose" && echo " cannot compile test-program" 1>&6 + +-echo "${as_me:-configure}:3497: testing cannot compile test-program ..." 1>&5 ++echo "${as_me:-configure}:3272: testing cannot compile test-program ..." 1>&5 + + break + fi +@@ -3502,7 +3277,7 @@ + rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext + + fi +-echo "$as_me:3505: result: $cf_cv_ar_flags" >&5 ++echo "$as_me:3280: result: $cf_cv_ar_flags" >&5 + echo "${ECHO_T}$cf_cv_ar_flags" >&6 + + if test -n "$ARFLAGS" ; then +@@ -3513,7 +3288,17 @@ + ARFLAGS=$cf_cv_ar_flags + fi + +-echo "$as_me:3516: checking if you have specified an install-prefix" >&5 ++ echo "$as_me:3291: checking for PATH separator" >&5 ++echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6 ++ case $cf_cv_system_name in ++ os2*) PATH_SEPARATOR=';' ;; ++ *) ${PATH_SEPARATOR:=':'} ;; ++ esac ++ ++ echo "$as_me:3298: result: $PATH_SEPARATOR" >&5 ++echo "${ECHO_T}$PATH_SEPARATOR" >&6 ++ ++echo "$as_me:3301: 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. +@@ -3526,7 +3311,7 @@ + ;; + esac + fi; +-echo "$as_me:3529: result: $DESTDIR" >&5 ++echo "$as_me:3314: result: $DESTDIR" >&5 + echo "${ECHO_T}$DESTDIR" >&6 + + ############################################################################### +@@ -3554,7 +3339,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:3557: checking for $ac_word" >&5 ++echo "$as_me:3342: 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 +@@ -3569,7 +3354,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:3572: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3357: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3577,10 +3362,10 @@ + fi + BUILD_CC=$ac_cv_prog_BUILD_CC + if test -n "$BUILD_CC"; then +- echo "$as_me:3580: result: $BUILD_CC" >&5 ++ echo "$as_me:3365: result: $BUILD_CC" >&5 + echo "${ECHO_T}$BUILD_CC" >&6 + else +- echo "$as_me:3583: result: no" >&5 ++ echo "$as_me:3368: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3588,12 +3373,12 @@ + done + + fi; +- echo "$as_me:3591: checking for native build C compiler" >&5 ++ echo "$as_me:3376: checking for native build C compiler" >&5 + echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6 +- echo "$as_me:3593: result: $BUILD_CC" >&5 ++ echo "$as_me:3378: result: $BUILD_CC" >&5 + echo "${ECHO_T}$BUILD_CC" >&6 + +- echo "$as_me:3596: checking for native build C preprocessor" >&5 ++ echo "$as_me:3381: 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. +@@ -3603,10 +3388,10 @@ + else + BUILD_CPP='${BUILD_CC} -E' + fi; +- echo "$as_me:3606: result: $BUILD_CPP" >&5 ++ echo "$as_me:3391: result: $BUILD_CPP" >&5 + echo "${ECHO_T}$BUILD_CPP" >&6 + +- echo "$as_me:3609: checking for native build C flags" >&5 ++ echo "$as_me:3394: 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. +@@ -3614,10 +3399,10 @@ + withval="$with_build_cflags" + BUILD_CFLAGS="$withval" + fi; +- echo "$as_me:3617: result: $BUILD_CFLAGS" >&5 ++ echo "$as_me:3402: result: $BUILD_CFLAGS" >&5 + echo "${ECHO_T}$BUILD_CFLAGS" >&6 + +- echo "$as_me:3620: checking for native build C preprocessor-flags" >&5 ++ echo "$as_me:3405: 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. +@@ -3625,10 +3410,10 @@ + withval="$with_build_cppflags" + BUILD_CPPFLAGS="$withval" + fi; +- echo "$as_me:3628: result: $BUILD_CPPFLAGS" >&5 ++ echo "$as_me:3413: result: $BUILD_CPPFLAGS" >&5 + echo "${ECHO_T}$BUILD_CPPFLAGS" >&6 + +- echo "$as_me:3631: checking for native build linker-flags" >&5 ++ echo "$as_me:3416: 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. +@@ -3636,10 +3421,10 @@ + withval="$with_build_ldflags" + BUILD_LDFLAGS="$withval" + fi; +- echo "$as_me:3639: result: $BUILD_LDFLAGS" >&5 ++ echo "$as_me:3424: result: $BUILD_LDFLAGS" >&5 + echo "${ECHO_T}$BUILD_LDFLAGS" >&6 + +- echo "$as_me:3642: checking for native build linker-libraries" >&5 ++ echo "$as_me:3427: 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. +@@ -3647,7 +3432,7 @@ + withval="$with_build_libs" + BUILD_LIBS="$withval" + fi; +- echo "$as_me:3650: result: $BUILD_LIBS" >&5 ++ echo "$as_me:3435: result: $BUILD_LIBS" >&5 + echo "${ECHO_T}$BUILD_LIBS" >&6 + + # this assumes we're on Unix. +@@ -3657,7 +3442,7 @@ + : ${BUILD_CC:='${CC}'} + + if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then +- { { echo "$as_me:3660: error: Cross-build requires two compilers. ++ { { echo "$as_me:3445: 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;} +@@ -3682,7 +3467,7 @@ + ### shared, for example. + cf_list_models="" + +-echo "$as_me:3685: checking if you want to build shared C-objects" >&5 ++echo "$as_me:3470: checking if you want to build shared C-objects" >&5 + echo $ECHO_N "checking if you want to build shared C-objects... $ECHO_C" >&6 + + # Check whether --with-shared or --without-shared was given. +@@ -3692,27 +3477,27 @@ + else + with_shared=no + fi; +-echo "$as_me:3695: result: $with_shared" >&5 ++echo "$as_me:3480: result: $with_shared" >&5 + echo "${ECHO_T}$with_shared" >&6 + test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" + +-echo "$as_me:3699: checking for specified models" >&5 ++echo "$as_me:3484: checking for specified models" >&5 + echo $ECHO_N "checking for specified models... $ECHO_C" >&6 + test -z "$cf_list_models" && cf_list_models=normal +-echo "$as_me:3702: result: $cf_list_models" >&5 ++echo "$as_me:3487: 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:3707: checking for default model" >&5 ++echo "$as_me:3492: 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:3710: result: $DFT_LWR_MODEL" >&5 ++echo "$as_me:3495: result: $DFT_LWR_MODEL" >&5 + echo "${ECHO_T}$DFT_LWR_MODEL" >&6 + + DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +-echo "$as_me:3715: checking for specific curses-directory" >&5 ++echo "$as_me:3500: checking for specific curses-directory" >&5 + echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6 + + # Check whether --with-curses-dir or --without-curses-dir was given. +@@ -3722,7 +3507,7 @@ + else + cf_cv_curses_dir=no + fi; +-echo "$as_me:3725: result: $cf_cv_curses_dir" >&5 ++echo "$as_me:3510: result: $cf_cv_curses_dir" >&5 + echo "${ECHO_T}$cf_cv_curses_dir" >&6 + + if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) +@@ -3741,7 +3526,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval withval="$withval" + case ".$withval" in #(vi + .NONE/*) +@@ -3753,7 +3538,7 @@ + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:3756: error: expected a pathname, not \"$withval\"" >&5 ++ { { echo "$as_me:3541: error: expected a pathname, not \"$withval\"" >&5 + echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} + { (exit 1); exit 1; }; } + ;; +@@ -3786,7 +3571,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 3789 "configure" ++#line 3574 "configure" + #include "confdefs.h" + #include + int +@@ -3798,16 +3583,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3801: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3586: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3804: \$? = $ac_status" >&5 ++ echo "$as_me:3589: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3807: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3592: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3810: \$? = $ac_status" >&5 ++ echo "$as_me:3595: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -3824,7 +3609,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:3827: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:3612: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -3858,7 +3643,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}:3861: testing adding $cf_add_libdir to library-path ..." 1>&5 ++echo "${as_me:-configure}:3646: testing adding $cf_add_libdir to library-path ..." 1>&5 + + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi +@@ -3869,7 +3654,7 @@ + fi + fi + +-echo "$as_me:3872: checking if you want wide-character code" >&5 ++echo "$as_me:3657: 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. +@@ -3879,11 +3664,11 @@ + else + with_widec=no + fi; +-echo "$as_me:3882: result: $with_widec" >&5 ++echo "$as_me:3667: result: $with_widec" >&5 + echo "${ECHO_T}$with_widec" >&6 + if test "$with_widec" = yes ; then + +-echo "$as_me:3886: checking for multibyte character support" >&5 ++echo "$as_me:3671: 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 +@@ -3891,7 +3676,7 @@ + + cf_save_LIBS="$LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 3894 "configure" ++#line 3679 "configure" + #include "confdefs.h" + + #include +@@ -3904,16 +3689,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:3907: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:3692: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:3910: \$? = $ac_status" >&5 ++ echo "$as_me:3695: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:3913: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3698: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3916: \$? = $ac_status" >&5 ++ echo "$as_me:3701: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_utf8_lib=yes + else +@@ -3925,12 +3710,12 @@ + cf_cv_header_path_utf8= + cf_cv_library_path_utf8= + +-echo "${as_me:-configure}:3928: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "${as_me:-configure}:3713: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 + + cf_save_LIBS="$LIBS" + + cat >conftest.$ac_ext <<_ACEOF +-#line 3933 "configure" ++#line 3718 "configure" + #include "confdefs.h" + + #include +@@ -3943,16 +3728,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:3946: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:3731: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:3949: \$? = $ac_status" >&5 ++ echo "$as_me:3734: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:3952: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3737: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3955: \$? = $ac_status" >&5 ++ echo "$as_me:3740: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_find_linkage_utf8=yes +@@ -3966,7 +3751,7 @@ + LIBS="-lutf8 $cf_save_LIBS" + + cat >conftest.$ac_ext <<_ACEOF +-#line 3969 "configure" ++#line 3754 "configure" + #include "confdefs.h" + + #include +@@ -3979,16 +3764,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:3982: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:3767: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:3985: \$? = $ac_status" >&5 ++ echo "$as_me:3770: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:3988: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3773: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3991: \$? = $ac_status" >&5 ++ echo "$as_me:3776: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_find_linkage_utf8=yes +@@ -4005,9 +3790,9 @@ + + test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 + +-echo "${as_me:-configure}:4008: testing find linkage for utf8 library ..." 1>&5 ++echo "${as_me:-configure}:3793: testing find linkage for utf8 library ..." 1>&5 + +-echo "${as_me:-configure}:4010: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "${as_me:-configure}:3795: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 + + cf_save_CPPFLAGS="$CPPFLAGS" + cf_test_CPPFLAGS="$CPPFLAGS" +@@ -4023,7 +3808,7 @@ + -I*) + cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` + +-test "$cf_header_path" != "NONE" && \ ++test "x$cf_header_path" != "xNONE" && \ + test -d "$cf_header_path" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" +@@ -4044,9 +3829,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /usr" + test -d /usr/include && cf_search="$cf_search /usr/include" + test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8" +@@ -4055,7 +3840,7 @@ + test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8" + } + +-test "$prefix" != "NONE" && \ ++test "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $prefix" +@@ -4066,9 +3851,9 @@ + test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8" + } + +-test "/usr/local" != "$prefix" && \ ++test "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /usr/local" + test -d /usr/local/include && cf_search="$cf_search /usr/local/include" + test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8" +@@ -4077,9 +3862,9 @@ + test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8" + } + +-test "/opt" != "$prefix" && \ ++test "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /opt" + test -d /opt/include && cf_search="$cf_search /opt/include" + test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8" +@@ -4088,9 +3873,9 @@ + test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8" + } + +-test "$HOME" != "$prefix" && \ ++test "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under $HOME" + test -d $HOME/include && cf_search="$cf_search $HOME/include" + test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8" +@@ -4120,11 +3905,11 @@ + 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}:4123: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:3908: 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 4127 "configure" ++#line 3912 "configure" + #include "confdefs.h" + + #include +@@ -4137,21 +3922,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4140: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3925: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4143: \$? = $ac_status" >&5 ++ echo "$as_me:3928: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4146: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3931: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4149: \$? = $ac_status" >&5 ++ echo "$as_me:3934: \$? = $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}:4154: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:3939: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 + + cf_cv_find_linkage_utf8=maybe + cf_test_CPPFLAGS="$CPPFLAGS" +@@ -4169,7 +3954,7 @@ + + if test "$cf_cv_find_linkage_utf8" = maybe ; then + +-echo "${as_me:-configure}:4172: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "${as_me:-configure}:3957: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 + + cf_save_LIBS="$LIBS" + cf_save_LDFLAGS="$LDFLAGS" +@@ -4185,7 +3970,7 @@ + -L*) + cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` + +-test "$cf_library_path" != "NONE" && \ ++test "x$cf_library_path" != "xNONE" && \ + test -d "$cf_library_path" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" +@@ -4204,9 +3989,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" +@@ -4215,7 +4000,7 @@ + test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8" + } + +-test "$prefix" != "NONE" && \ ++test "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $prefix" +@@ -4226,9 +4011,9 @@ + test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8" + } + +-test "/usr/local" != "$prefix" && \ ++test "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" +@@ -4237,9 +4022,9 @@ + test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8" + } + +-test "/opt" != "$prefix" && \ ++test "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" +@@ -4248,9 +4033,9 @@ + test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8" + } + +-test "$HOME" != "$prefix" && \ ++test "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" +@@ -4266,13 +4051,13 @@ + 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}:4269: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:4054: 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 4275 "configure" ++#line 4060 "configure" + #include "confdefs.h" + + #include +@@ -4285,21 +4070,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:4288: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:4073: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:4291: \$? = $ac_status" >&5 ++ echo "$as_me:4076: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:4294: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4079: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4297: \$? = $ac_status" >&5 ++ echo "$as_me:4082: \$? = $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}:4302: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:4087: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 + + cf_cv_find_linkage_utf8=yes + cf_cv_library_file_utf8="-lutf8" +@@ -4341,13 +4126,14 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:4344: result: $cf_cv_utf8_lib" >&5 ++echo "$as_me:4129: 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 + # ncurses/ncursesw: + if test "$cf_cv_utf8_lib" = "add-on" ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_LIBUTF8_H 1 + EOF + +@@ -4375,7 +4161,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 4378 "configure" ++#line 4164 "configure" + #include "confdefs.h" + #include + int +@@ -4387,16 +4173,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4390: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4176: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4393: \$? = $ac_status" >&5 ++ echo "$as_me:4179: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4396: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4182: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4399: \$? = $ac_status" >&5 ++ echo "$as_me:4185: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -4413,7 +4199,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:4416: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:4202: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -4447,7 +4233,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}:4450: testing adding $cf_add_libdir to library-path ..." 1>&5 ++echo "${as_me:-configure}:4236: testing adding $cf_add_libdir to library-path ..." 1>&5 + + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi +@@ -4461,48 +4247,87 @@ + cf_ncuconfig_root=ncursesw + + echo "Looking for ${cf_ncuconfig_root}-config" +-for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config ++ 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:4256: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$NCURSES_CONFIG"; then ++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # 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_NCURSES_CONFIG="$ac_tool_prefix$ac_prog" ++echo "$as_me:4271: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi ++fi ++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG ++if test -n "$NCURSES_CONFIG"; then ++ echo "$as_me:4279: result: $NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$NCURSES_CONFIG" >&6 ++else ++ echo "$as_me:4282: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$NCURSES_CONFIG" && break ++ done ++fi ++if test -z "$NCURSES_CONFIG"; then ++ ac_ct_NCURSES_CONFIG=$NCURSES_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 "$as_me:4468: checking for $ac_word" >&5 ++echo "$as_me:4295: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then ++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- case $NCURSES_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path. +- ;; +- *) ++ if test -n "$ac_ct_NCURSES_CONFIG"; then ++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # 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=. +- if $as_executable_p "$ac_dir/$ac_word"; then +- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:4485: found $ac_dir/$ac_word" >&5 +- break +-fi ++ $as_executable_p "$ac_dir/$ac_word" || continue ++ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog" ++echo "$as_me:4310: found $ac_dir/$ac_word" >&5 ++break + done + +- ;; +-esac + fi +-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG +- +-if test -n "$NCURSES_CONFIG"; then +- echo "$as_me:4496: result: $NCURSES_CONFIG" >&5 +-echo "${ECHO_T}$NCURSES_CONFIG" >&6 ++fi ++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG ++if test -n "$ac_ct_NCURSES_CONFIG"; then ++ echo "$as_me:4318: result: $ac_ct_NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6 + else +- echo "$as_me:4499: result: no" >&5 ++ echo "$as_me:4321: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +- test -n "$NCURSES_CONFIG" && break ++ test -n "$ac_ct_NCURSES_CONFIG" && break + done +-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none" ++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none" ++ ++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG ++fi + + if test "$NCURSES_CONFIG" != none ; then + +@@ -4511,7 +4336,7 @@ + + # even with config script, some packages use no-override for curses.h + +-echo "$as_me:4514: checking if we have identified curses headers" >&5 ++echo "$as_me:4339: checking if we have identified curses headers" >&5 + echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 + if test "${cf_cv_ncurses_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -4519,13 +4344,13 @@ + + cf_cv_ncurses_header=none + for cf_header in \ +- ncursesw/curses.h \ +- ncursesw/ncurses.h \ +- curses.h \ +- ncurses.h ++ ncursesw/ncurses.h \ ++ ncursesw/curses.h \ ++ ncurses.h \ ++ curses.h + do + cat >conftest.$ac_ext <<_ACEOF +-#line 4528 "configure" ++#line 4353 "configure" + #include "confdefs.h" + #include <${cf_header}> + int +@@ -4537,16 +4362,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4540: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4365: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4543: \$? = $ac_status" >&5 ++ echo "$as_me:4368: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4546: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4371: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4549: \$? = $ac_status" >&5 ++ echo "$as_me:4374: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ncurses_header=$cf_header; break + else +@@ -4557,11 +4382,11 @@ + done + + fi +-echo "$as_me:4560: result: $cf_cv_ncurses_header" >&5 ++echo "$as_me:4385: result: $cf_cv_ncurses_header" >&5 + echo "${ECHO_T}$cf_cv_ncurses_header" >&6 + + if test "$cf_cv_ncurses_header" = none ; then +- { { echo "$as_me:4564: error: No curses header-files found" >&5 ++ { { echo "$as_me:4389: error: No curses header-files found" >&5 + echo "$as_me: error: No curses header-files found" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -4571,23 +4396,23 @@ + for ac_header in $cf_cv_ncurses_header + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:4574: checking for $ac_header" >&5 ++echo "$as_me:4399: 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 4580 "configure" ++#line 4405 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:4584: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:4409: \"$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:4590: \$? = $ac_status" >&5 ++ echo "$as_me:4415: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -4606,7 +4431,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:4609: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:4434: 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 <conftest.$ac_ext <<_ACEOF +-#line 4662 "configure" ++#line 4487 "configure" + #include "confdefs.h" + #include + int +@@ -4671,16 +4496,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4674: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4499: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4677: \$? = $ac_status" >&5 ++ echo "$as_me:4502: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4680: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4505: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4683: \$? = $ac_status" >&5 ++ echo "$as_me:4508: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -4697,7 +4522,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:4700: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:4525: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -4714,7 +4539,7 @@ + + } + +-echo "$as_me:4717: checking for $cf_ncuhdr_root header in include-path" >&5 ++echo "$as_me:4542: checking for $cf_ncuhdr_root header in include-path" >&5 + echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 + if test "${cf_cv_ncurses_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -4726,7 +4551,7 @@ + do + + cat >conftest.$ac_ext <<_ACEOF +-#line 4729 "configure" ++#line 4554 "configure" + #include "confdefs.h" + + #define _XOPEN_SOURCE_EXTENDED +@@ -4758,16 +4583,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4761: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4586: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4764: \$? = $ac_status" >&5 ++ echo "$as_me:4589: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4767: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4592: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4770: \$? = $ac_status" >&5 ++ echo "$as_me:4595: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ncurses_h=$cf_header + +@@ -4782,14 +4607,14 @@ + done + + fi +-echo "$as_me:4785: result: $cf_cv_ncurses_h" >&5 ++echo "$as_me:4610: result: $cf_cv_ncurses_h" >&5 + echo "${ECHO_T}$cf_cv_ncurses_h" >&6 + + if test "$cf_cv_ncurses_h" != no ; then + cf_cv_ncurses_header=$cf_cv_ncurses_h + else + +-echo "$as_me:4792: checking for $cf_ncuhdr_root include-path" >&5 ++echo "$as_me:4617: checking for $cf_ncuhdr_root include-path" >&5 + echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 + if test "${cf_cv_ncurses_h2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -4808,7 +4633,7 @@ + -I*) + cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` + +-test "$cf_header_path" != "NONE" && \ ++test "x$cf_header_path" != "xNONE" && \ + test -d "$cf_header_path" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" +@@ -4829,9 +4654,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" +@@ -4840,7 +4665,7 @@ + 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 "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $prefix" +@@ -4851,9 +4676,9 @@ + 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 "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" +@@ -4862,9 +4687,9 @@ + 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 "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" +@@ -4873,9 +4698,9 @@ + 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 "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" +@@ -4929,7 +4754,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 4932 "configure" ++#line 4757 "configure" + #include "confdefs.h" + #include + int +@@ -4941,16 +4766,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4944: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4769: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4947: \$? = $ac_status" >&5 ++ echo "$as_me:4772: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4950: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4775: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4953: \$? = $ac_status" >&5 ++ echo "$as_me:4778: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -4967,7 +4792,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:4970: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:4795: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -4988,7 +4813,7 @@ + do + + cat >conftest.$ac_ext <<_ACEOF +-#line 4991 "configure" ++#line 4816 "configure" + #include "confdefs.h" + + #include <$cf_header> +@@ -5012,16 +4837,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5015: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4840: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5018: \$? = $ac_status" >&5 ++ echo "$as_me:4843: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5021: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4846: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5024: \$? = $ac_status" >&5 ++ echo "$as_me:4849: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ncurses_h2=$cf_header + +@@ -5042,12 +4867,12 @@ + CPPFLAGS="$cf_save2_CPPFLAGS" + test "$cf_cv_ncurses_h2" != no && break + done +- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5045: error: not found" >&5 ++ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:4870: error: not found" >&5 + echo "$as_me: error: not found" >&2;} + { (exit 1); exit 1; }; } + + fi +-echo "$as_me:5050: result: $cf_cv_ncurses_h2" >&5 ++echo "$as_me:4875: result: $cf_cv_ncurses_h2" >&5 + echo "${ECHO_T}$cf_cv_ncurses_h2" >&6 + + cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'` +@@ -5080,7 +4905,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 5083 "configure" ++#line 4908 "configure" + #include "confdefs.h" + #include + int +@@ -5092,16 +4917,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5095: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:4920: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5098: \$? = $ac_status" >&5 ++ echo "$as_me:4923: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5101: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4926: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5104: \$? = $ac_status" >&5 ++ echo "$as_me:4929: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -5118,7 +4943,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:5121: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:4946: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -5139,7 +4964,8 @@ + + case $cf_cv_ncurses_header in # (vi + *ncurses.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSES_H 1 + EOF + +@@ -5148,20 +4974,22 @@ + + case $cf_cv_ncurses_header in # (vi + ncurses/curses.h|ncurses/ncurses.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSES_NCURSES_H 1 + EOF + + ;; + ncursesw/curses.h|ncursesw/ncurses.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSESW_NCURSES_H 1 + EOF + + ;; + esac + +-echo "$as_me:5164: checking for terminfo header" >&5 ++echo "$as_me:4992: checking for terminfo header" >&5 + echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 + if test "${cf_cv_term_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -5179,7 +5007,7 @@ + for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" + do + cat >conftest.$ac_ext <<_ACEOF +-#line 5182 "configure" ++#line 5010 "configure" + #include "confdefs.h" + #include + #include <${cf_cv_ncurses_header:-curses.h}> +@@ -5194,16 +5022,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5197: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5025: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5200: \$? = $ac_status" >&5 ++ echo "$as_me:5028: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5203: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5031: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5206: \$? = $ac_status" >&5 ++ echo "$as_me:5034: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_term_header="$cf_test" +@@ -5219,14 +5047,15 @@ + done + + fi +-echo "$as_me:5222: result: $cf_cv_term_header" >&5 ++echo "$as_me:5050: result: $cf_cv_term_header" >&5 + echo "${ECHO_T}$cf_cv_term_header" >&6 + + # Set definitions to allow ifdef'ing to accommodate subdirectories + + case $cf_cv_term_header in # (vi + *term.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_TERM_H 1 + EOF + +@@ -5235,13 +5064,15 @@ + + case $cf_cv_term_header in # (vi + ncurses/term.h) #(vi +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSES_TERM_H 1 + EOF + + ;; + ncursesw/term.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSESW_TERM_H 1 + EOF + +@@ -5249,11 +5080,12 @@ + esac + + # some applications need this, but should check for NCURSES_VERSION ++ + cat >>confdefs.h <<\EOF + #define NCURSES 1 + EOF + +-echo "$as_me:5256: checking for ncurses version" >&5 ++echo "$as_me:5088: checking for ncurses version" >&5 + echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 + if test "${cf_cv_ncurses_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -5279,10 +5111,10 @@ + #endif + EOF + cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" +- { (eval echo "$as_me:5282: \"$cf_try\"") >&5 ++ { (eval echo "$as_me:5114: \"$cf_try\"") >&5 + (eval $cf_try) 2>&5 + ac_status=$? +- echo "$as_me:5285: \$? = $ac_status" >&5 ++ echo "$as_me:5117: \$? = $ac_status" >&5 + (exit $ac_status); } + if test -f conftest.out ; then + cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'` +@@ -5292,7 +5124,7 @@ + + else + cat >conftest.$ac_ext <<_ACEOF +-#line 5295 "configure" ++#line 5127 "configure" + #include "confdefs.h" + + #include <${cf_cv_ncurses_header:-curses.h}> +@@ -5317,15 +5149,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:5320: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5152: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5323: \$? = $ac_status" >&5 ++ echo "$as_me:5155: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:5325: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5157: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5328: \$? = $ac_status" >&5 ++ echo "$as_me:5160: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_ncurses_version=`cat $cf_tempfile` +@@ -5339,9 +5171,10 @@ + rm -f $cf_tempfile + + fi +-echo "$as_me:5342: result: $cf_cv_ncurses_version" >&5 ++echo "$as_me:5174: result: $cf_cv_ncurses_version" >&5 + echo "${ECHO_T}$cf_cv_ncurses_version" >&6 +-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF ++test "$cf_cv_ncurses_version" = no || ++cat >>confdefs.h <<\EOF + #define NCURSES 1 + EOF + +@@ -5351,7 +5184,7 @@ + # to link gpm. + cf_ncurses_LIBS="" + cf_ncurses_SAVE="$LIBS" +-echo "$as_me:5354: checking for Gpm_Open in -lgpm" >&5 ++echo "$as_me:5187: 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 +@@ -5359,7 +5192,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgpm $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5362 "configure" ++#line 5195 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -5378,16 +5211,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5381: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5214: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5384: \$? = $ac_status" >&5 ++ echo "$as_me:5217: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5387: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5220: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5390: \$? = $ac_status" >&5 ++ echo "$as_me:5223: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gpm_Gpm_Open=yes + else +@@ -5398,10 +5231,10 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:5401: result: $ac_cv_lib_gpm_Gpm_Open" >&5 ++echo "$as_me:5234: 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 +- echo "$as_me:5404: checking for initscr in -lgpm" >&5 ++ echo "$as_me:5237: checking for initscr in -lgpm" >&5 + echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 + if test "${ac_cv_lib_gpm_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -5409,7 +5242,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgpm $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5412 "configure" ++#line 5245 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -5428,16 +5261,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5431: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5264: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5434: \$? = $ac_status" >&5 ++ echo "$as_me:5267: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5437: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5270: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5440: \$? = $ac_status" >&5 ++ echo "$as_me:5273: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gpm_initscr=yes + else +@@ -5448,7 +5281,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:5451: result: $ac_cv_lib_gpm_initscr" >&5 ++echo "$as_me:5284: result: $ac_cv_lib_gpm_initscr" >&5 + echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 + if test $ac_cv_lib_gpm_initscr = yes; then + LIBS="$cf_ncurses_SAVE" +@@ -5463,7 +5296,7 @@ + # 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 "$as_me:5466: checking for tgoto in -lmytinfo" >&5 ++ echo "$as_me:5299: checking for tgoto in -lmytinfo" >&5 + echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 + if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -5471,7 +5304,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lmytinfo $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5474 "configure" ++#line 5307 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -5490,16 +5323,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5493: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5326: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5496: \$? = $ac_status" >&5 ++ echo "$as_me:5329: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5499: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5332: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5502: \$? = $ac_status" >&5 ++ echo "$as_me:5335: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_mytinfo_tgoto=yes + else +@@ -5510,7 +5343,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:5513: result: $ac_cv_lib_mytinfo_tgoto" >&5 ++echo "$as_me:5346: result: $ac_cv_lib_mytinfo_tgoto" >&5 + echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 + if test $ac_cv_lib_mytinfo_tgoto = yes; then + cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" +@@ -5529,13 +5362,13 @@ + + eval 'cf_cv_have_lib_'$cf_nculib_root'=no' + cf_libdir="" +- echo "$as_me:5532: checking for initscr" >&5 ++ echo "$as_me:5365: checking for initscr" >&5 + echo $ECHO_N "checking for initscr... $ECHO_C" >&6 + if test "${ac_cv_func_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 5538 "configure" ++#line 5371 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char initscr (); below. */ +@@ -5558,7 +5391,7 @@ + #if defined (__stub_initscr) || defined (__stub___initscr) + choke me + #else +-f = initscr; ++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -5566,16 +5399,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5569: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5402: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5572: \$? = $ac_status" >&5 ++ echo "$as_me:5405: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5575: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5408: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5578: \$? = $ac_status" >&5 ++ echo "$as_me:5411: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_initscr=yes + else +@@ -5585,18 +5418,18 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:5588: result: $ac_cv_func_initscr" >&5 ++echo "$as_me:5421: result: $ac_cv_func_initscr" >&5 + echo "${ECHO_T}$ac_cv_func_initscr" >&6 + if test $ac_cv_func_initscr = yes; then + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + else + + cf_save_LIBS="$LIBS" +- echo "$as_me:5595: checking for initscr in -l$cf_nculib_root" >&5 ++ echo "$as_me:5428: checking for initscr in -l$cf_nculib_root" >&5 + echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 + LIBS="-l$cf_nculib_root $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5599 "configure" ++#line 5432 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int +@@ -5608,25 +5441,25 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5611: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5444: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5614: \$? = $ac_status" >&5 ++ echo "$as_me:5447: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5617: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5450: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5620: \$? = $ac_status" >&5 ++ echo "$as_me:5453: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:5622: result: yes" >&5 ++ echo "$as_me:5455: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:5629: result: no" >&5 ++echo "$as_me:5462: result: no" >&5 + echo "${ECHO_T}no" >&6 + + cf_search= +@@ -5638,7 +5471,7 @@ + -L*) + cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` + +-test "$cf_library_path" != "NONE" && \ ++test "x$cf_library_path" != "xNONE" && \ + test -d "$cf_library_path" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" +@@ -5657,9 +5490,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" +@@ -5668,7 +5501,7 @@ + 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 "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $prefix" +@@ -5679,9 +5512,9 @@ + 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 "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" +@@ -5690,9 +5523,9 @@ + 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 "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" +@@ -5701,9 +5534,9 @@ + 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 "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" +@@ -5716,11 +5549,11 @@ + + for cf_libdir in $cf_search + do +- echo "$as_me:5719: checking for -l$cf_nculib_root in $cf_libdir" >&5 ++ echo "$as_me:5552: checking for -l$cf_nculib_root in $cf_libdir" >&5 + echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 + LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5723 "configure" ++#line 5556 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int +@@ -5732,25 +5565,25 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5735: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5568: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5738: \$? = $ac_status" >&5 ++ echo "$as_me:5571: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5741: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5574: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5744: \$? = $ac_status" >&5 ++ echo "$as_me:5577: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:5746: result: yes" >&5 ++ echo "$as_me:5579: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:5753: result: no" >&5 ++echo "$as_me:5586: result: no" >&5 + echo "${ECHO_T}no" >&6 + LIBS="$cf_save_LIBS" + fi +@@ -5765,7 +5598,7 @@ + eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root + + if test $cf_found_library = no ; then +- { { echo "$as_me:5768: error: Cannot link $cf_nculib_root library" >&5 ++ { { echo "$as_me:5601: error: Cannot link $cf_nculib_root library" >&5 + echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -5773,7 +5606,7 @@ + fi + + if test -n "$cf_ncurses_LIBS" ; then +- echo "$as_me:5776: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 ++ echo "$as_me:5609: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 + echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 + cf_ncurses_SAVE="$LIBS" + for p in $cf_ncurses_LIBS ; do +@@ -5783,7 +5616,7 @@ + fi + done + cat >conftest.$ac_ext <<_ACEOF +-#line 5786 "configure" ++#line 5619 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int +@@ -5795,23 +5628,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5798: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5631: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5801: \$? = $ac_status" >&5 ++ echo "$as_me:5634: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5804: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5637: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5807: \$? = $ac_status" >&5 ++ echo "$as_me:5640: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:5809: result: yes" >&5 ++ echo "$as_me:5642: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:5814: result: no" >&5 ++echo "$as_me:5647: result: no" >&5 + echo "${ECHO_T}no" >&6 + LIBS="$cf_ncurses_SAVE" + fi +@@ -5831,48 +5664,87 @@ + 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 ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config ++ 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:5673: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$NCURSES_CONFIG"; then ++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # 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_NCURSES_CONFIG="$ac_tool_prefix$ac_prog" ++echo "$as_me:5688: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi ++fi ++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG ++if test -n "$NCURSES_CONFIG"; then ++ echo "$as_me:5696: result: $NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$NCURSES_CONFIG" >&6 ++else ++ echo "$as_me:5699: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$NCURSES_CONFIG" && break ++ done ++fi ++if test -z "$NCURSES_CONFIG"; then ++ ac_ct_NCURSES_CONFIG=$NCURSES_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 "$as_me:5838: checking for $ac_word" >&5 ++echo "$as_me:5712: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then ++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- case $NCURSES_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path. +- ;; +- *) ++ if test -n "$ac_ct_NCURSES_CONFIG"; then ++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # 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=. +- if $as_executable_p "$ac_dir/$ac_word"; then +- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:5855: found $ac_dir/$ac_word" >&5 +- break +-fi ++ $as_executable_p "$ac_dir/$ac_word" || continue ++ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog" ++echo "$as_me:5727: found $ac_dir/$ac_word" >&5 ++break + done + +- ;; +-esac + fi +-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG +- +-if test -n "$NCURSES_CONFIG"; then +- echo "$as_me:5866: result: $NCURSES_CONFIG" >&5 +-echo "${ECHO_T}$NCURSES_CONFIG" >&6 ++fi ++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG ++if test -n "$ac_ct_NCURSES_CONFIG"; then ++ echo "$as_me:5735: result: $ac_ct_NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6 + else +- echo "$as_me:5869: result: no" >&5 ++ echo "$as_me:5738: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +- test -n "$NCURSES_CONFIG" && break ++ test -n "$ac_ct_NCURSES_CONFIG" && break + done +-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none" ++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none" ++ ++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG ++fi + + if test "$NCURSES_CONFIG" != none ; then + +@@ -5881,7 +5753,7 @@ + + # even with config script, some packages use no-override for curses.h + +-echo "$as_me:5884: checking if we have identified curses headers" >&5 ++echo "$as_me:5756: checking if we have identified curses headers" >&5 + echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 + if test "${cf_cv_ncurses_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -5889,13 +5761,13 @@ + + cf_cv_ncurses_header=none + for cf_header in \ +- ncurses/curses.h \ +- ncurses/ncurses.h \ +- curses.h \ +- ncurses.h ++ ncurses/ncurses.h \ ++ ncurses/curses.h \ ++ ncurses.h \ ++ curses.h + do + cat >conftest.$ac_ext <<_ACEOF +-#line 5898 "configure" ++#line 5770 "configure" + #include "confdefs.h" + #include <${cf_header}> + int +@@ -5907,16 +5779,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5910: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5782: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5913: \$? = $ac_status" >&5 ++ echo "$as_me:5785: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5916: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5788: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5919: \$? = $ac_status" >&5 ++ echo "$as_me:5791: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ncurses_header=$cf_header; break + else +@@ -5927,11 +5799,11 @@ + done + + fi +-echo "$as_me:5930: result: $cf_cv_ncurses_header" >&5 ++echo "$as_me:5802: result: $cf_cv_ncurses_header" >&5 + echo "${ECHO_T}$cf_cv_ncurses_header" >&6 + + if test "$cf_cv_ncurses_header" = none ; then +- { { echo "$as_me:5934: error: No curses header-files found" >&5 ++ { { echo "$as_me:5806: error: No curses header-files found" >&5 + echo "$as_me: error: No curses header-files found" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -5941,23 +5813,23 @@ + for ac_header in $cf_cv_ncurses_header + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:5944: checking for $ac_header" >&5 ++echo "$as_me:5816: 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 5950 "configure" ++#line 5822 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:5954: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:5826: \"$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:5960: \$? = $ac_status" >&5 ++ echo "$as_me:5832: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -5976,7 +5848,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:5979: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:5851: 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 <conftest.$ac_ext <<_ACEOF +-#line 6032 "configure" ++#line 5904 "configure" + #include "confdefs.h" + #include + int +@@ -6041,16 +5913,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6044: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5916: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6047: \$? = $ac_status" >&5 ++ echo "$as_me:5919: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6050: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5922: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6053: \$? = $ac_status" >&5 ++ echo "$as_me:5925: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -6067,7 +5939,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:6070: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:5942: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -6084,7 +5956,7 @@ + + } + +-echo "$as_me:6087: checking for $cf_ncuhdr_root header in include-path" >&5 ++echo "$as_me:5959: checking for $cf_ncuhdr_root header in include-path" >&5 + echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 + if test "${cf_cv_ncurses_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -6096,7 +5968,7 @@ + do + + cat >conftest.$ac_ext <<_ACEOF +-#line 6099 "configure" ++#line 5971 "configure" + #include "confdefs.h" + + #include <$cf_header> +@@ -6120,16 +5992,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6123: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5995: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6126: \$? = $ac_status" >&5 ++ echo "$as_me:5998: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6129: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6001: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6132: \$? = $ac_status" >&5 ++ echo "$as_me:6004: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ncurses_h=$cf_header + +@@ -6144,14 +6016,14 @@ + done + + fi +-echo "$as_me:6147: result: $cf_cv_ncurses_h" >&5 ++echo "$as_me:6019: result: $cf_cv_ncurses_h" >&5 + echo "${ECHO_T}$cf_cv_ncurses_h" >&6 + + if test "$cf_cv_ncurses_h" != no ; then + cf_cv_ncurses_header=$cf_cv_ncurses_h + else + +-echo "$as_me:6154: checking for $cf_ncuhdr_root include-path" >&5 ++echo "$as_me:6026: checking for $cf_ncuhdr_root include-path" >&5 + echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 + if test "${cf_cv_ncurses_h2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -6170,7 +6042,7 @@ + -I*) + cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` + +-test "$cf_header_path" != "NONE" && \ ++test "x$cf_header_path" != "xNONE" && \ + test -d "$cf_header_path" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" +@@ -6191,9 +6063,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" +@@ -6202,7 +6074,7 @@ + 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 "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $prefix" +@@ -6213,9 +6085,9 @@ + 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 "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" +@@ -6224,9 +6096,9 @@ + 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 "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" +@@ -6235,9 +6107,9 @@ + 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 "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" +@@ -6291,7 +6163,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 6294 "configure" ++#line 6166 "configure" + #include "confdefs.h" + #include + int +@@ -6303,16 +6175,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6306: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6178: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6309: \$? = $ac_status" >&5 ++ echo "$as_me:6181: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6312: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6184: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6315: \$? = $ac_status" >&5 ++ echo "$as_me:6187: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -6329,7 +6201,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:6332: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:6204: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -6350,7 +6222,7 @@ + do + + cat >conftest.$ac_ext <<_ACEOF +-#line 6353 "configure" ++#line 6225 "configure" + #include "confdefs.h" + + #include <$cf_header> +@@ -6374,16 +6246,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6377: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6249: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6380: \$? = $ac_status" >&5 ++ echo "$as_me:6252: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6383: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6255: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6386: \$? = $ac_status" >&5 ++ echo "$as_me:6258: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ncurses_h2=$cf_header + +@@ -6404,12 +6276,12 @@ + CPPFLAGS="$cf_save2_CPPFLAGS" + test "$cf_cv_ncurses_h2" != no && break + done +- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6407: error: not found" >&5 ++ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6279: error: not found" >&5 + echo "$as_me: error: not found" >&2;} + { (exit 1); exit 1; }; } + + fi +-echo "$as_me:6412: result: $cf_cv_ncurses_h2" >&5 ++echo "$as_me:6284: result: $cf_cv_ncurses_h2" >&5 + echo "${ECHO_T}$cf_cv_ncurses_h2" >&6 + + cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'` +@@ -6442,7 +6314,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 6445 "configure" ++#line 6317 "configure" + #include "confdefs.h" + #include + int +@@ -6454,16 +6326,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6457: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6329: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6460: \$? = $ac_status" >&5 ++ echo "$as_me:6332: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6463: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6335: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6466: \$? = $ac_status" >&5 ++ echo "$as_me:6338: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -6480,7 +6352,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:6483: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:6355: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -6501,7 +6373,8 @@ + + case $cf_cv_ncurses_header in # (vi + *ncurses.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSES_H 1 + EOF + +@@ -6510,20 +6383,22 @@ + + case $cf_cv_ncurses_header in # (vi + ncurses/curses.h|ncurses/ncurses.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSES_NCURSES_H 1 + EOF + + ;; + ncursesw/curses.h|ncursesw/ncurses.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSESW_NCURSES_H 1 + EOF + + ;; + esac + +-echo "$as_me:6526: checking for terminfo header" >&5 ++echo "$as_me:6401: checking for terminfo header" >&5 + echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 + if test "${cf_cv_term_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -6541,7 +6416,7 @@ + for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" + do + cat >conftest.$ac_ext <<_ACEOF +-#line 6544 "configure" ++#line 6419 "configure" + #include "confdefs.h" + #include + #include <${cf_cv_ncurses_header:-curses.h}> +@@ -6556,16 +6431,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6559: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6434: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6562: \$? = $ac_status" >&5 ++ echo "$as_me:6437: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6565: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6440: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6568: \$? = $ac_status" >&5 ++ echo "$as_me:6443: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_term_header="$cf_test" +@@ -6581,14 +6456,15 @@ + done + + fi +-echo "$as_me:6584: result: $cf_cv_term_header" >&5 ++echo "$as_me:6459: result: $cf_cv_term_header" >&5 + echo "${ECHO_T}$cf_cv_term_header" >&6 + + # Set definitions to allow ifdef'ing to accommodate subdirectories + + case $cf_cv_term_header in # (vi + *term.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_TERM_H 1 + EOF + +@@ -6597,13 +6473,15 @@ + + case $cf_cv_term_header in # (vi + ncurses/term.h) #(vi +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSES_TERM_H 1 + EOF + + ;; + ncursesw/term.h) +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_NCURSESW_TERM_H 1 + EOF + +@@ -6611,11 +6489,12 @@ + esac + + # some applications need this, but should check for NCURSES_VERSION ++ + cat >>confdefs.h <<\EOF + #define NCURSES 1 + EOF + +-echo "$as_me:6618: checking for ncurses version" >&5 ++echo "$as_me:6497: checking for ncurses version" >&5 + echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 + if test "${cf_cv_ncurses_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -6641,10 +6520,10 @@ + #endif + EOF + cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" +- { (eval echo "$as_me:6644: \"$cf_try\"") >&5 ++ { (eval echo "$as_me:6523: \"$cf_try\"") >&5 + (eval $cf_try) 2>&5 + ac_status=$? +- echo "$as_me:6647: \$? = $ac_status" >&5 ++ echo "$as_me:6526: \$? = $ac_status" >&5 + (exit $ac_status); } + if test -f conftest.out ; then + cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'` +@@ -6654,7 +6533,7 @@ + + else + cat >conftest.$ac_ext <<_ACEOF +-#line 6657 "configure" ++#line 6536 "configure" + #include "confdefs.h" + + #include <${cf_cv_ncurses_header:-curses.h}> +@@ -6679,15 +6558,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:6682: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6561: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6685: \$? = $ac_status" >&5 ++ echo "$as_me:6564: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:6687: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6566: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6690: \$? = $ac_status" >&5 ++ echo "$as_me:6569: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_ncurses_version=`cat $cf_tempfile` +@@ -6701,9 +6580,10 @@ + rm -f $cf_tempfile + + fi +-echo "$as_me:6704: result: $cf_cv_ncurses_version" >&5 ++echo "$as_me:6583: result: $cf_cv_ncurses_version" >&5 + echo "${ECHO_T}$cf_cv_ncurses_version" >&6 +-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF ++test "$cf_cv_ncurses_version" = no || ++cat >>confdefs.h <<\EOF + #define NCURSES 1 + EOF + +@@ -6713,7 +6593,7 @@ + # to link gpm. + cf_ncurses_LIBS="" + cf_ncurses_SAVE="$LIBS" +-echo "$as_me:6716: checking for Gpm_Open in -lgpm" >&5 ++echo "$as_me:6596: 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 +@@ -6721,7 +6601,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgpm $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 6724 "configure" ++#line 6604 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -6740,16 +6620,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6743: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6623: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6746: \$? = $ac_status" >&5 ++ echo "$as_me:6626: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6749: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6629: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6752: \$? = $ac_status" >&5 ++ echo "$as_me:6632: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gpm_Gpm_Open=yes + else +@@ -6760,10 +6640,10 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:6763: result: $ac_cv_lib_gpm_Gpm_Open" >&5 ++echo "$as_me:6643: 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 +- echo "$as_me:6766: checking for initscr in -lgpm" >&5 ++ echo "$as_me:6646: checking for initscr in -lgpm" >&5 + echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 + if test "${ac_cv_lib_gpm_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -6771,7 +6651,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgpm $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 6774 "configure" ++#line 6654 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -6790,16 +6670,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6793: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6673: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6796: \$? = $ac_status" >&5 ++ echo "$as_me:6676: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6799: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6679: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6802: \$? = $ac_status" >&5 ++ echo "$as_me:6682: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gpm_initscr=yes + else +@@ -6810,7 +6690,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:6813: result: $ac_cv_lib_gpm_initscr" >&5 ++echo "$as_me:6693: result: $ac_cv_lib_gpm_initscr" >&5 + echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 + if test $ac_cv_lib_gpm_initscr = yes; then + LIBS="$cf_ncurses_SAVE" +@@ -6825,7 +6705,7 @@ + # 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 "$as_me:6828: checking for tgoto in -lmytinfo" >&5 ++ echo "$as_me:6708: checking for tgoto in -lmytinfo" >&5 + echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 + if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -6833,7 +6713,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lmytinfo $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 6836 "configure" ++#line 6716 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -6852,16 +6732,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6855: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6735: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6858: \$? = $ac_status" >&5 ++ echo "$as_me:6738: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6861: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6741: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6864: \$? = $ac_status" >&5 ++ echo "$as_me:6744: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_mytinfo_tgoto=yes + else +@@ -6872,7 +6752,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:6875: result: $ac_cv_lib_mytinfo_tgoto" >&5 ++echo "$as_me:6755: result: $ac_cv_lib_mytinfo_tgoto" >&5 + echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 + if test $ac_cv_lib_mytinfo_tgoto = yes; then + cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" +@@ -6891,13 +6771,13 @@ + + eval 'cf_cv_have_lib_'$cf_nculib_root'=no' + cf_libdir="" +- echo "$as_me:6894: checking for initscr" >&5 ++ echo "$as_me:6774: checking for initscr" >&5 + echo $ECHO_N "checking for initscr... $ECHO_C" >&6 + if test "${ac_cv_func_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 6900 "configure" ++#line 6780 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char initscr (); below. */ +@@ -6920,7 +6800,7 @@ + #if defined (__stub_initscr) || defined (__stub___initscr) + choke me + #else +-f = initscr; ++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -6928,16 +6808,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6931: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6811: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6934: \$? = $ac_status" >&5 ++ echo "$as_me:6814: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6937: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6817: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6940: \$? = $ac_status" >&5 ++ echo "$as_me:6820: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_initscr=yes + else +@@ -6947,18 +6827,18 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:6950: result: $ac_cv_func_initscr" >&5 ++echo "$as_me:6830: result: $ac_cv_func_initscr" >&5 + echo "${ECHO_T}$ac_cv_func_initscr" >&6 + if test $ac_cv_func_initscr = yes; then + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + else + + cf_save_LIBS="$LIBS" +- echo "$as_me:6957: checking for initscr in -l$cf_nculib_root" >&5 ++ echo "$as_me:6837: checking for initscr in -l$cf_nculib_root" >&5 + echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 + LIBS="-l$cf_nculib_root $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 6961 "configure" ++#line 6841 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int +@@ -6970,25 +6850,25 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6973: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6853: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6976: \$? = $ac_status" >&5 ++ echo "$as_me:6856: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6979: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6859: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6982: \$? = $ac_status" >&5 ++ echo "$as_me:6862: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:6984: result: yes" >&5 ++ echo "$as_me:6864: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:6991: result: no" >&5 ++echo "$as_me:6871: result: no" >&5 + echo "${ECHO_T}no" >&6 + + cf_search= +@@ -7000,7 +6880,7 @@ + -L*) + cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` + +-test "$cf_library_path" != "NONE" && \ ++test "x$cf_library_path" != "xNONE" && \ + test -d "$cf_library_path" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" +@@ -7019,9 +6899,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" +@@ -7030,7 +6910,7 @@ + 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 "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $prefix" +@@ -7041,9 +6921,9 @@ + 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 "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" +@@ -7052,9 +6932,9 @@ + 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 "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" +@@ -7063,9 +6943,9 @@ + 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 "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" +@@ -7078,11 +6958,11 @@ + + for cf_libdir in $cf_search + do +- echo "$as_me:7081: checking for -l$cf_nculib_root in $cf_libdir" >&5 ++ echo "$as_me:6961: checking for -l$cf_nculib_root in $cf_libdir" >&5 + echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 + LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 7085 "configure" ++#line 6965 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int +@@ -7094,25 +6974,25 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7097: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6977: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7100: \$? = $ac_status" >&5 ++ echo "$as_me:6980: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7103: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6983: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7106: \$? = $ac_status" >&5 ++ echo "$as_me:6986: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:7108: result: yes" >&5 ++ echo "$as_me:6988: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:7115: result: no" >&5 ++echo "$as_me:6995: result: no" >&5 + echo "${ECHO_T}no" >&6 + LIBS="$cf_save_LIBS" + fi +@@ -7127,7 +7007,7 @@ + eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root + + if test $cf_found_library = no ; then +- { { echo "$as_me:7130: error: Cannot link $cf_nculib_root library" >&5 ++ { { echo "$as_me:7010: error: Cannot link $cf_nculib_root library" >&5 + echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -7135,7 +7015,7 @@ + fi + + if test -n "$cf_ncurses_LIBS" ; then +- echo "$as_me:7138: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 ++ echo "$as_me:7018: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 + echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 + cf_ncurses_SAVE="$LIBS" + for p in $cf_ncurses_LIBS ; do +@@ -7145,7 +7025,7 @@ + fi + done + cat >conftest.$ac_ext <<_ACEOF +-#line 7148 "configure" ++#line 7028 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int +@@ -7157,23 +7037,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7160: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:7040: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7163: \$? = $ac_status" >&5 ++ echo "$as_me:7043: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7166: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7046: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7169: \$? = $ac_status" >&5 ++ echo "$as_me:7049: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:7171: result: yes" >&5 ++ echo "$as_me:7051: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:7176: result: no" >&5 ++echo "$as_me:7056: result: no" >&5 + echo "${ECHO_T}no" >&6 + LIBS="$cf_ncurses_SAVE" + fi +@@ -7210,10 +7090,10 @@ + AUTOCONF_$cf_name NCURSES_VERSION_$cf_name + CF_EOF + cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out" +- { (eval echo "$as_me:7213: \"$cf_try\"") >&5 ++ { (eval echo "$as_me:7093: \"$cf_try\"") >&5 + (eval $cf_try) 2>&5 + ac_status=$? +- echo "$as_me:7216: \$? = $ac_status" >&5 ++ echo "$as_me:7096: \$? = $ac_status" >&5 + (exit $ac_status); } + if test -f conftest.out ; then + cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[ ][ ]*//"` +@@ -7231,9 +7111,25 @@ + + cf_cv_timestamp=`date` + +-echo "$as_me:7234: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5 ++echo "$as_me:7114: 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 + ++echo "$as_me:7117: checking if you want to have a library-prefix" >&5 ++echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6 ++ ++# Check whether --with-lib-prefix or --without-lib-prefix was given. ++if test "${with_lib_prefix+set}" = set; then ++ withval="$with_lib_prefix" ++ with_lib_prefix=$withval ++else ++ with_lib_prefix=auto ++fi; ++echo "$as_me:7127: result: $with_lib_prefix" >&5 ++echo "${ECHO_T}$with_lib_prefix" >&6 ++ ++if test $with_lib_prefix = auto ++then ++ + case $cf_cv_system_name in #(vi + OS/2*|os2*) #(vi + LIB_PREFIX='' +@@ -7243,7 +7139,12 @@ + esac + cf_prefix=$LIB_PREFIX + +-LIB_PREFIX=$cf_prefix ++elif test $with_lib_prefix = no ++then ++ LIB_PREFIX= ++else ++ LIB_PREFIX=$with_lib_prefix ++fi + + LIB_SUFFIX= + +@@ -7254,7 +7155,7 @@ + test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' + fi + +-echo "$as_me:7257: checking for default loader flags" >&5 ++echo "$as_me:7158: checking for default loader flags" >&5 + echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6 + case $DFT_LWR_MODEL in + normal) LD_MODEL='' ;; +@@ -7262,11 +7163,11 @@ + profile) LD_MODEL='-pg';; + shared) LD_MODEL='' ;; + esac +-echo "$as_me:7265: result: $LD_MODEL" >&5 ++echo "$as_me:7166: result: $LD_MODEL" >&5 + echo "${ECHO_T}$LD_MODEL" >&6 + + LD_RPATH_OPT= +-echo "$as_me:7269: checking for an rpath option" >&5 ++echo "$as_me:7170: checking for an rpath option" >&5 + echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6 + case $cf_cv_system_name in #(vi + irix*) #(vi +@@ -7279,10 +7180,10 @@ + linux*|gnu*|k*bsd*-gnu) #(vi + LD_RPATH_OPT="-Wl,-rpath," + ;; +-openbsd[2-9].*) #(vi ++openbsd[2-9].*|mirbsd*) #(vi + LD_RPATH_OPT="-Wl,-rpath," + ;; +-freebsd*) #(vi ++dragonfly*|freebsd*) #(vi + LD_RPATH_OPT="-rpath " + ;; + netbsd*) #(vi +@@ -7297,17 +7198,17 @@ + *) + ;; + esac +-echo "$as_me:7300: result: $LD_RPATH_OPT" >&5 ++echo "$as_me:7201: result: $LD_RPATH_OPT" >&5 + echo "${ECHO_T}$LD_RPATH_OPT" >&6 + + case "x$LD_RPATH_OPT" in #(vi + x-R*) +- echo "$as_me:7305: checking if we need a space after rpath option" >&5 ++ echo "$as_me:7206: 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="${LD_RPATH_OPT}$libdir $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 7310 "configure" ++#line 7211 "configure" + #include "confdefs.h" + + int +@@ -7319,16 +7220,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7322: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:7223: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7325: \$? = $ac_status" >&5 ++ echo "$as_me:7226: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7328: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7229: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7331: \$? = $ac_status" >&5 ++ echo "$as_me:7232: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_rpath_space=no + else +@@ -7338,22 +7239,28 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS="$cf_save_LIBS" +- echo "$as_me:7341: result: $cf_rpath_space" >&5 ++ echo "$as_me:7242: result: $cf_rpath_space" >&5 + echo "${ECHO_T}$cf_rpath_space" >&6 + test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " + ;; + esac + ++ RM_SHARED_OPTS= + LOCAL_LDFLAGS= + LOCAL_LDFLAGS2= + LD_SHARED_OPTS= + INSTALL_LIB="-m 644" ++ : ${rel_builddir:=.} ++ ++ shlibdir=$libdir ++ ++ MAKE_DLLS="#" + + cf_cv_do_symlinks=no + cf_ld_rpath_opt= + test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT" + +- echo "$as_me:7356: checking if release/abi version should be used for shared libs" >&5 ++ echo "$as_me:7263: 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. +@@ -7368,7 +7275,7 @@ + cf_cv_shlib_version=$withval + ;; + *) +- { { echo "$as_me:7371: error: option value must be one of: rel, abi, auto or no" >&5 ++ { { echo "$as_me:7278: 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; }; } + ;; +@@ -7377,23 +7284,24 @@ + else + cf_cv_shlib_version=auto + fi; +- echo "$as_me:7380: result: $cf_cv_shlib_version" >&5 ++ echo "$as_me:7287: result: $cf_cv_shlib_version" >&5 + echo "${ECHO_T}$cf_cv_shlib_version" >&6 + + cf_cv_rm_so_locs=no ++ cf_try_cflags= + + # Some less-capable ports of gcc support only -fpic + CC_SHARED_OPTS= + if test "$GCC" = yes + then +- echo "$as_me:7389: checking which $CC option to use" >&5 ++ echo "$as_me:7297: 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 7396 "configure" ++#line 7304 "configure" + #include "confdefs.h" + #include + int +@@ -7405,16 +7313,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7408: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:7316: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7411: \$? = $ac_status" >&5 ++ echo "$as_me:7319: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7414: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7322: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7417: \$? = $ac_status" >&5 ++ echo "$as_me:7325: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -7423,7 +7331,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + done +- echo "$as_me:7426: result: $CC_SHARED_OPTS" >&5 ++ echo "$as_me:7334: result: $CC_SHARED_OPTS" >&5 + echo "${ECHO_T}$CC_SHARED_OPTS" >&6 + CFLAGS="$cf_save_CFLAGS" + fi +@@ -7431,10 +7339,14 @@ + cf_cv_shlib_version_infix=no + + case $cf_cv_system_name in #(vi +- aix[56]*) #(vi ++ aix4.3-9*|aix[5-7]*) #(vi + if test "$GCC" = yes; then + CC_SHARED_OPTS= +- MK_SHARED_LIB='$(CC) -shared' ++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' ++ else ++ # CC_SHARED_OPTS='-qpic=large -G' ++ # perhaps "-bM:SRE -bnoentry -bexpall" ++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' + fi + ;; + beos*) #(vi +@@ -7442,9 +7354,12 @@ + ;; + cygwin*) #(vi + CC_SHARED_OPTS= +- MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cf_cv_shlib_version=cygdll + cf_cv_shlib_version_infix=cygdll ++ shlibdir=$bindir ++ MAKE_DLLS= + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\$1 +@@ -7455,17 +7370,39 @@ + ** SHARED_LIB \$SHARED_LIB + ** IMPORT_LIB \$IMPORT_LIB + EOF +- exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB} ++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ msys*) #(vi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cf_cv_shlib_version=msysdll ++ cf_cv_shlib_version_infix=msysdll ++ shlibdir=$bindir ++ MAKE_DLLS= ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\$1 ++ IMPORT_LIB=\`echo "\$1" | sed -e 's/msys-/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \$SHARED_LIB ++ ** IMPORT_LIB \$IMPORT_LIB ++EOF ++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} + CF_EOF + chmod +x mk_shared_lib.sh + ;; + darwin*) #(vi +- EXTRA_CFLAGS="-no-cpp-precomp" ++ cf_try_cflags="no-cpp-precomp" + CC_SHARED_OPTS="-dynamic" + 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:7468: checking if ld -search_paths_first works" >&5 ++ echo "$as_me:7405: 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 +@@ -7474,7 +7411,7 @@ + cf_save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + cat >conftest.$ac_ext <<_ACEOF +-#line 7477 "configure" ++#line 7414 "configure" + #include "confdefs.h" + + int +@@ -7486,16 +7423,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7489: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:7426: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7492: \$? = $ac_status" >&5 ++ echo "$as_me:7429: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7495: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7432: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7498: \$? = $ac_status" >&5 ++ echo "$as_me:7435: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ldflags_search_paths_first=yes + else +@@ -7506,12 +7443,20 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$cf_save_LDFLAGS + fi +-echo "$as_me:7509: result: $cf_cv_ldflags_search_paths_first" >&5 ++echo "$as_me:7446: 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" + fi + ;; ++ hpux[7-8]*) #(vi ++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list ++ if test "$GCC" != yes; then ++ CC_SHARED_OPTS='+Z' ++ fi ++ MK_SHARED_LIB='${LD} -b -o $@' ++ INSTALL_LIB="-m 555" ++ ;; + hpux*) #(vi + # (tested with gcc 2.7.2 -- I don't have c89) + if test "$GCC" = yes; then +@@ -7525,9 +7470,19 @@ + # readonly to exploit a quirk in the memory manager. + INSTALL_LIB="-m 555" + ;; ++ interix*) ++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ++ if test "$cf_cv_shlib_version" = rel; then ++ cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}' ++ else ++ cf_shared_soname='`basename `' ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o ' ++ ;; + irix*) #(vi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + # tested with IRIX 5.2 and 'cc'. + if test "$GCC" != yes; then +@@ -7544,7 +7499,7 @@ + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel +@@ -7556,13 +7511,40 @@ + + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@' + ;; +- openbsd[2-9].*) #(vi ++ mingw*) #(vi ++ cf_cv_shlib_version=mingw ++ cf_cv_shlib_version_infix=mingw ++ shlibdir=$bindir ++ MAKE_DLLS= ++ if test "$DFT_LWR_MODEL" = "shared" ; then ++ LOCAL_LDFLAGS="-Wl,--enable-auto-import" ++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\$1 ++ IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \$SHARED_LIB ++ ** IMPORT_LIB \$IMPORT_LIB ++EOF ++ exec \$* -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ openbsd[2-9].*|mirbsd*) #(vi + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + +@@ -7580,12 +7562,12 @@ + MK_SHARED_LIB='${LD} -Bshareable -o $@' + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + ;; +- freebsd*) #(vi ++ dragonfly*|freebsd*) #(vi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" +- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel +@@ -7602,7 +7584,7 @@ + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + if test "$cf_cv_shlib_version" = auto; then + if test -f /usr/libexec/ld.elf_so; then + cf_cv_shlib_version=abi +@@ -7620,7 +7602,7 @@ + + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@' + else +- MK_SHARED_LIB='${LD} -shared -Bshareable -o $@' ++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $@' + fi + ;; + osf*|mls+*) #(vi +@@ -7686,7 +7668,7 @@ + do + CFLAGS="$cf_shared_opts $cf_save_CFLAGS" + cat >conftest.$ac_ext <<_ACEOF +-#line 7689 "configure" ++#line 7671 "configure" + #include "confdefs.h" + #include + int +@@ -7698,16 +7680,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7701: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:7683: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7704: \$? = $ac_status" >&5 ++ echo "$as_me:7686: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7707: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7689: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7710: \$? = $ac_status" >&5 ++ echo "$as_me:7692: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -7744,22 +7726,65 @@ + test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes + ;; + *) +- { echo "$as_me:7747: WARNING: ignored --with-shlib-version" >&5 ++ { echo "$as_me:7729: 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 +- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" ++ if test -n "$cf_try_cflags" ++ then ++cat > conftest.$ac_ext < ++int main(int argc, char *argv[]) ++{ ++ printf("hello\n"); ++ return (argv[argc-1] == 0) ; ++} ++EOF ++ cf_save_CFLAGS="$CFLAGS" ++ for cf_opt in $cf_try_cflags ++ do ++ CFLAGS="$cf_save_CFLAGS -$cf_opt" ++ echo "$as_me:7751: checking if CFLAGS option -$cf_opt works" >&5 ++echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6 ++ if { (eval echo "$as_me:7753: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7756: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ echo "$as_me:7758: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ cf_save_CFLAGS="$CFLAGS" ++ else ++ echo "$as_me:7762: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ fi ++ done ++ CFLAGS="$cf_save_CFLAGS" + fi + ++ # RPATH_LIST is a colon-separated list of directories ++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" ++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" ++ ++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" ++ ++ test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6 ++ ++echo "${as_me:-configure}:7777: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5 ++ ++ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6 ++ ++echo "${as_me:-configure}:7781: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5 ++ + # The test/sample programs in the original tree link using rpath option. + # Make it optional for packagers. + if test -n "$LOCAL_LDFLAGS" + then +- echo "$as_me:7762: checking if you want to link sample programs with rpath option" >&5 ++ echo "$as_me:7787: checking if you want to link sample programs with rpath option" >&5 + echo $ECHO_N "checking if you want to link sample programs with rpath option... $ECHO_C" >&6 + + # Check whether --enable-rpath-link or --disable-rpath-link was given. +@@ -7769,7 +7794,7 @@ + else + with_rpath_link=yes + fi; +- echo "$as_me:7772: result: $with_rpath_link" >&5 ++ echo "$as_me:7797: result: $with_rpath_link" >&5 + echo "${ECHO_T}$with_rpath_link" >&6 + if test "$with_rpath_link" = no + then +@@ -7780,13 +7805,8 @@ + + ############################################################################### + +- case $cf_cv_system_name in +- os2*) PATH_SEPARATOR=';' ;; +- *) PATH_SEPARATOR=':' ;; +- esac +- + ### use option --enable-broken-linker to force on use of broken-linker support +-echo "$as_me:7789: checking if you want broken-linker support code" >&5 ++echo "$as_me:7809: 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. +@@ -7796,7 +7816,7 @@ + else + with_broken_linker=${BROKEN_LINKER:-no} + fi; +-echo "$as_me:7799: result: $with_broken_linker" >&5 ++echo "$as_me:7819: result: $with_broken_linker" >&5 + echo "${ECHO_T}$with_broken_linker" >&6 + + BROKEN_LINKER=0 +@@ -7816,7 +7836,7 @@ + BROKEN_LINKER=1 + test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6 + +-echo "${as_me:-configure}:7819: testing cygwin linker is broken anyway ..." 1>&5 ++echo "${as_me:-configure}:7839: testing cygwin linker is broken anyway ..." 1>&5 + + ;; + esac +@@ -7829,10 +7849,10 @@ + cf_xopen_source= + + case $host_os in #(vi +-aix[456]*) #(vi ++aix[4-7]*) #(vi + cf_xopen_source="-D_ALL_SOURCE" + ;; +-cygwin) #(vi ++cygwin|msys) #(vi + cf_XOPEN_SOURCE=600 + ;; + darwin[0-8].*) #(vi +@@ -7840,6 +7860,7 @@ + ;; + darwin*) #(vi + cf_xopen_source="-D_DARWIN_C_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + freebsd*|dragonfly*) #(vi + # 5.x headers associate +@@ -7857,24 +7878,128 @@ + ;; + irix[56].*) #(vi + cf_xopen_source="-D_SGI_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + linux*|gnu*|mint*|k*bsd*-gnu) #(vi + +-echo "$as_me:7863: checking if we must define _GNU_SOURCE" >&5 ++echo "$as_me:7885: 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 7870 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 7892 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7907: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7910: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7913: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7916: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_gnu_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7925 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7940: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7943: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7946: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7949: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_gnu_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_gnu_source=yes ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS="$cf_save" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:7964: 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" ++ ++ ;; ++mirbsd*) #(vi ++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types ++ cf_XOPEN_SOURCE= ++ ++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE ++ ++cf_save_CFLAGS="$CFLAGS" ++cf_save_CPPFLAGS="$CPPFLAGS" ++ ++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++echo "$as_me:7986: 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}:7992: testing if the symbol is already defined go no further ..." 1>&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7995 "configure" + #include "confdefs.h" + #include + int + main () + { + +-#ifndef _XOPEN_SOURCE ++#ifndef _POSIX_C_SOURCE + make an error + #endif + ; +@@ -7882,32 +8007,87 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7885: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8010: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7888: \$? = $ac_status" >&5 ++ echo "$as_me:8013: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7891: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8016: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7894: \$? = $ac_status" >&5 ++ echo "$as_me:8019: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_gnu_source=no ++ cf_cv_posix_c_source=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ++cf_want_posix_source=no ++ case .$cf_POSIX_C_SOURCE in #(vi ++ .[12]??*) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ ;; ++ .2) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ cf_want_posix_source=yes ++ ;; ++ .*) ++ cf_want_posix_source=yes ++ ;; ++ esac ++ if test "$cf_want_posix_source" = yes ; then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8040 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifdef _POSIX_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8055: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8058: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8061: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8064: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ fi ++ ++echo "${as_me:-configure}:8075: 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}:8080: testing if the second compile does not leave our definition intact error ..." 1>&5 ++ + cat >conftest.$ac_ext <<_ACEOF +-#line 7903 "configure" ++#line 8083 "configure" + #include "confdefs.h" + #include + int + main () + { + +-#ifdef _XOPEN_SOURCE ++#ifndef _POSIX_C_SOURCE + make an error + #endif + ; +@@ -7915,40 +8095,126 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7918: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8098: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7921: \$? = $ac_status" >&5 ++ echo "$as_me:8101: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7924: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8104: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7927: \$? = $ac_status" >&5 ++ echo "$as_me:8107: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_gnu_source=no ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_gnu_source=yes ++cf_cv_posix_c_source=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS="$cf_save" ++ CFLAGS="$cf_save_CFLAGS" ++ CPPFLAGS="$cf_save_CPPFLAGS" + + fi + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:7942: 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" ++echo "$as_me:8123: 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 ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS" ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_cv_posix_c_source ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 + ;; +-mirbsd*) #(vi +- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks ++esac ++done ++ ++if test -n "$cf_new_cflags" ; then ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++fi ++ + ;; + netbsd*) #(vi +- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ ;; ++openbsd[4-9]*) #(vi ++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw ++ cf_xopen_source="-D_BSD_SOURCE" ++ cf_XOPEN_SOURCE=600 + ;; + openbsd*) #(vi + # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw +@@ -7962,23 +8228,26 @@ + sco*) #(vi + # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer + ;; +-solaris2.1[0-9]) #(vi +- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-solaris2.[1-9]) #(vi ++solaris2.*) #(vi + cf_xopen_source="-D__EXTENSIONS__" ++ cf_cv_xopen_source=broken + ;; + *) +- echo "$as_me:7972: checking if we should define _XOPEN_SOURCE" >&5 ++ ++echo "$as_me:8237: 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 7979 "configure" ++#line 8244 "configure" + #include "confdefs.h" ++ ++#include ++#include + #include ++ + int + main () + { +@@ -7991,16 +8260,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7994: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8263: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7997: \$? = $ac_status" >&5 ++ echo "$as_me:8266: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8000: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8269: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8003: \$? = $ac_status" >&5 ++ echo "$as_me:8272: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_xopen_source=no + else +@@ -8009,9 +8278,13 @@ + cf_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + cat >conftest.$ac_ext <<_ACEOF +-#line 8012 "configure" ++#line 8281 "configure" + #include "confdefs.h" ++ ++#include ++#include + #include ++ + int + main () + { +@@ -8024,16 +8297,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8027: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8300: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8030: \$? = $ac_status" >&5 ++ echo "$as_me:8303: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8033: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8306: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8036: \$? = $ac_status" >&5 ++ echo "$as_me:8309: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_xopen_source=no + else +@@ -8048,9 +8321,10 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:8051: result: $cf_cv_xopen_source" >&5 ++echo "$as_me:8324: result: $cf_cv_xopen_source" >&5 + echo "${ECHO_T}$cf_cv_xopen_source" >&6 +- if test "$cf_cv_xopen_source" != no ; then ++ ++if test "$cf_cv_xopen_source" != no ; then + + CFLAGS=`echo "$CFLAGS" | \ + sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ +@@ -8060,7 +8334,7 @@ + sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + + cf_fix_cppflags=no + cf_new_cflags= +@@ -8140,7 +8414,7 @@ + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +- fi ++fi + + cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE + +@@ -8155,16 +8429,16 @@ + sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +-echo "$as_me:8158: checking if we should define _POSIX_C_SOURCE" >&5 ++echo "$as_me:8432: 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}:8164: testing if the symbol is already defined go no further ..." 1>&5 ++echo "${as_me:-configure}:8438: testing if the symbol is already defined go no further ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 8167 "configure" ++#line 8441 "configure" + #include "confdefs.h" + #include + int +@@ -8179,16 +8453,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8182: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8456: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8185: \$? = $ac_status" >&5 ++ echo "$as_me:8459: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8188: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8462: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8191: \$? = $ac_status" >&5 ++ echo "$as_me:8465: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_posix_c_source=no + else +@@ -8209,7 +8483,7 @@ + esac + if test "$cf_want_posix_source" = yes ; then + cat >conftest.$ac_ext <<_ACEOF +-#line 8212 "configure" ++#line 8486 "configure" + #include "confdefs.h" + #include + int +@@ -8224,16 +8498,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8227: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8501: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8230: \$? = $ac_status" >&5 ++ echo "$as_me:8504: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8233: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8507: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8236: \$? = $ac_status" >&5 ++ echo "$as_me:8510: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -8244,15 +8518,15 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + fi + +-echo "${as_me:-configure}:8247: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 ++echo "${as_me:-configure}:8521: 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}:8252: testing if the second compile does not leave our definition intact error ..." 1>&5 ++echo "${as_me:-configure}:8526: testing if the second compile does not leave our definition intact error ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 8255 "configure" ++#line 8529 "configure" + #include "confdefs.h" + #include + int +@@ -8267,16 +8541,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8270: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8544: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8273: \$? = $ac_status" >&5 ++ echo "$as_me:8547: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8276: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8550: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8279: \$? = $ac_status" >&5 ++ echo "$as_me:8553: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -8289,22 +8563,107 @@ + CPPFLAGS="$cf_save_CPPFLAGS" + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:8569: 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 ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS" ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_cv_posix_c_source ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi + + fi +-echo "$as_me:8295: 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 +- CFLAGS="$cf_trim_CFLAGS" +- CPPFLAGS="$cf_trim_CPPFLAGS" ++ ;; ++esac ++ ++if test -n "$cf_xopen_source" ; then + + cf_fix_cppflags=no + cf_new_cflags= + cf_new_cppflags= + cf_new_extra_cppflags= + +-for cf_add_cflags in $cf_cv_posix_c_source ++for cf_add_cflags in $cf_xopen_source + do + case $cf_fix_cppflags in + no) +@@ -8379,17 +8738,196 @@ + + fi + +- ;; +-esac ++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then ++ echo "$as_me:8742: checking if _XOPEN_SOURCE really is set" >&5 ++echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8745 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ + +-if test -n "$cf_xopen_source" ; then ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8760: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8763: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8766: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8769: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_XOPEN_SOURCE_set=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_XOPEN_SOURCE_set=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ echo "$as_me:8778: result: $cf_XOPEN_SOURCE_set" >&5 ++echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6 ++ if test $cf_XOPEN_SOURCE_set = yes ++ then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8783 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8798: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8801: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8804: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8807: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_XOPEN_SOURCE_set_ok=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_XOPEN_SOURCE_set_ok=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ if test $cf_XOPEN_SOURCE_set_ok = no ++ then ++ { echo "$as_me:8818: WARNING: _XOPEN_SOURCE is lower than requested" >&5 ++echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;} ++ fi ++ else ++ ++echo "$as_me:8823: 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 8830 "configure" ++#include "confdefs.h" ++ ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8849: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8852: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8855: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8858: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xopen_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8867 "configure" ++#include "confdefs.h" ++ ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8886: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8889: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8892: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8895: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xopen_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_xopen_source=$cf_XOPEN_SOURCE ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS="$cf_save" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:8910: result: $cf_cv_xopen_source" >&5 ++echo "${ECHO_T}$cf_cv_xopen_source" >&6 ++ ++if test "$cf_cv_xopen_source" != no ; then ++ ++CFLAGS=`echo "$CFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + + cf_fix_cppflags=no + cf_new_cflags= + cf_new_cppflags= + cf_new_extra_cppflags= + +-for cf_add_cflags in $cf_xopen_source ++for cf_add_cflags in $cf_temp_xopen_source + do + case $cf_fix_cppflags in + no) +@@ -8464,6 +9002,9 @@ + + fi + ++ fi ++fi ++ + # Check whether --enable-largefile or --disable-largefile was given. + if test "${enable_largefile+set}" = set; then + enableval="$enable_largefile" +@@ -8471,7 +9012,7 @@ + fi; + if test "$enable_largefile" != no; then + +- echo "$as_me:8474: checking for special C compiler options needed for large files" >&5 ++ echo "$as_me:9015: 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 +@@ -8483,7 +9024,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 8486 "configure" ++#line 9027 "configure" + #include "confdefs.h" + #include + /* Check that off_t can represent 2**63 - 1 correctly. +@@ -8503,16 +9044,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8506: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9047: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8509: \$? = $ac_status" >&5 ++ echo "$as_me:9050: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8512: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9053: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8515: \$? = $ac_status" >&5 ++ echo "$as_me:9056: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -8522,16 +9063,16 @@ + rm -f conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8525: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9066: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8528: \$? = $ac_status" >&5 ++ echo "$as_me:9069: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8531: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9072: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8534: \$? = $ac_status" >&5 ++ echo "$as_me:9075: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_CC=' -n32'; break + else +@@ -8545,13 +9086,13 @@ + rm -f conftest.$ac_ext + fi + fi +-echo "$as_me:8548: result: $ac_cv_sys_largefile_CC" >&5 ++echo "$as_me:9089: 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:8554: checking for _FILE_OFFSET_BITS value needed for large files" >&5 ++ echo "$as_me:9095: 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 +@@ -8559,7 +9100,7 @@ + while :; do + ac_cv_sys_file_offset_bits=no + cat >conftest.$ac_ext <<_ACEOF +-#line 8562 "configure" ++#line 9103 "configure" + #include "confdefs.h" + #include + /* Check that off_t can represent 2**63 - 1 correctly. +@@ -8579,16 +9120,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8582: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9123: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8585: \$? = $ac_status" >&5 ++ echo "$as_me:9126: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8588: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9129: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8591: \$? = $ac_status" >&5 ++ echo "$as_me:9132: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -8597,7 +9138,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 8600 "configure" ++#line 9141 "configure" + #include "confdefs.h" + #define _FILE_OFFSET_BITS 64 + #include +@@ -8618,16 +9159,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8621: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9162: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8624: \$? = $ac_status" >&5 ++ echo "$as_me:9165: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8627: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9168: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8630: \$? = $ac_status" >&5 ++ echo "$as_me:9171: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_file_offset_bits=64; break + else +@@ -8638,7 +9179,7 @@ + break + done + fi +-echo "$as_me:8641: result: $ac_cv_sys_file_offset_bits" >&5 ++echo "$as_me:9182: 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 + +@@ -8648,7 +9189,7 @@ + + fi + rm -rf conftest* +- echo "$as_me:8651: checking for _LARGE_FILES value needed for large files" >&5 ++ echo "$as_me:9192: 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 +@@ -8656,7 +9197,7 @@ + while :; do + ac_cv_sys_large_files=no + cat >conftest.$ac_ext <<_ACEOF +-#line 8659 "configure" ++#line 9200 "configure" + #include "confdefs.h" + #include + /* Check that off_t can represent 2**63 - 1 correctly. +@@ -8676,16 +9217,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8679: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9220: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8682: \$? = $ac_status" >&5 ++ echo "$as_me:9223: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8685: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9226: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8688: \$? = $ac_status" >&5 ++ echo "$as_me:9229: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -8694,7 +9235,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 8697 "configure" ++#line 9238 "configure" + #include "confdefs.h" + #define _LARGE_FILES 1 + #include +@@ -8715,16 +9256,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8718: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9259: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8721: \$? = $ac_status" >&5 ++ echo "$as_me:9262: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8724: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9265: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8727: \$? = $ac_status" >&5 ++ echo "$as_me:9268: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_large_files=1; break + else +@@ -8735,7 +9276,7 @@ + break + done + fi +-echo "$as_me:8738: result: $ac_cv_sys_large_files" >&5 ++echo "$as_me:9279: 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 + +@@ -8748,7 +9289,7 @@ + fi + + if test "$enable_largefile" != no ; then +- echo "$as_me:8751: checking for _LARGEFILE_SOURCE value needed for large files" >&5 ++ echo "$as_me:9292: 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 +@@ -8756,7 +9297,7 @@ + while :; do + ac_cv_sys_largefile_source=no + cat >conftest.$ac_ext <<_ACEOF +-#line 8759 "configure" ++#line 9300 "configure" + #include "confdefs.h" + #include + int +@@ -8768,16 +9309,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8771: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9312: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8774: \$? = $ac_status" >&5 ++ echo "$as_me:9315: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8777: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9318: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8780: \$? = $ac_status" >&5 ++ echo "$as_me:9321: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -8786,7 +9327,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 8789 "configure" ++#line 9330 "configure" + #include "confdefs.h" + #define _LARGEFILE_SOURCE 1 + #include +@@ -8799,16 +9340,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8802: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9343: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8805: \$? = $ac_status" >&5 ++ echo "$as_me:9346: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8808: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9349: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8811: \$? = $ac_status" >&5 ++ echo "$as_me:9352: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_source=1; break + else +@@ -8819,7 +9360,7 @@ + break + done + fi +-echo "$as_me:8822: result: $ac_cv_sys_largefile_source" >&5 ++echo "$as_me:9363: 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 + +@@ -8833,13 +9374,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:8836: checking for fseeko" >&5 ++echo "$as_me:9377: 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 8842 "configure" ++#line 9383 "configure" + #include "confdefs.h" + #include + int +@@ -8851,16 +9392,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8854: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9395: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8857: \$? = $ac_status" >&5 ++ echo "$as_me:9398: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8860: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9401: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8863: \$? = $ac_status" >&5 ++ echo "$as_me:9404: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_fseeko=yes + else +@@ -8870,7 +9411,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:8873: result: $ac_cv_func_fseeko" >&5 ++echo "$as_me:9414: result: $ac_cv_func_fseeko" >&5 + echo "${ECHO_T}$ac_cv_func_fseeko" >&6 + if test $ac_cv_func_fseeko = yes; then + +@@ -8891,14 +9432,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:8894: checking whether to use struct dirent64" >&5 ++ echo "$as_me:9435: 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 8901 "configure" ++#line 9442 "configure" + #include "confdefs.h" + + #include +@@ -8919,16 +9460,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8922: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9463: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8925: \$? = $ac_status" >&5 ++ echo "$as_me:9466: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8928: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9469: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8931: \$? = $ac_status" >&5 ++ echo "$as_me:9472: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_struct_dirent64=yes + else +@@ -8939,16 +9480,17 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:8942: result: $cf_cv_struct_dirent64" >&5 ++echo "$as_me:9483: result: $cf_cv_struct_dirent64" >&5 + echo "${ECHO_T}$cf_cv_struct_dirent64" >&6 +- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF ++ test "$cf_cv_struct_dirent64" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE_STRUCT_DIRENT64 1 + EOF + + fi + + ### Enable compiling-in rcs id's +-echo "$as_me:8951: checking if RCS identifiers should be compiled-in" >&5 ++echo "$as_me:9493: 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. +@@ -8958,16 +9500,17 @@ + else + with_rcs_ids=no + fi; +-echo "$as_me:8961: result: $with_rcs_ids" >&5 ++echo "$as_me:9503: result: $with_rcs_ids" >&5 + echo "${ECHO_T}$with_rcs_ids" >&6 +-test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF ++test "$with_rcs_ids" = yes && ++cat >>confdefs.h <<\EOF + #define USE_RCS_IDS 1 + EOF + + ############################################################################### + + ### Note that some functions (such as const) are normally disabled anyway. +-echo "$as_me:8970: checking if you want to build with function extensions" >&5 ++echo "$as_me:9513: 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. +@@ -8977,15 +9520,16 @@ + else + with_ext_funcs=yes + fi; +-echo "$as_me:8980: result: $with_ext_funcs" >&5 ++echo "$as_me:9523: result: $with_ext_funcs" >&5 + echo "${ECHO_T}$with_ext_funcs" >&6 + if test "$with_ext_funcs" = yes ; then + NCURSES_EXT_FUNCS=1 +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_USE_DEFAULT_COLORS 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define NCURSES_EXT_FUNCS 1 + EOF + +@@ -8994,7 +9538,7 @@ + fi + + ### use option --enable-const to turn on use of const beyond that in XSI. +-echo "$as_me:8997: checking for extended use of const keyword" >&5 ++echo "$as_me:9541: 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. +@@ -9004,7 +9548,7 @@ + else + with_ext_const=no + fi; +-echo "$as_me:9007: result: $with_ext_const" >&5 ++echo "$as_me:9551: result: $with_ext_const" >&5 + echo "${ECHO_T}$with_ext_const" >&6 + NCURSES_CONST='/*nothing*/' + if test "$with_ext_const" = yes ; then +@@ -9014,7 +9558,7 @@ + ############################################################################### + # These options are relatively safe to experiment with. + +-echo "$as_me:9017: checking if you want all development code" >&5 ++echo "$as_me:9561: 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. +@@ -9024,7 +9568,7 @@ + else + with_develop=no + fi; +-echo "$as_me:9027: result: $with_develop" >&5 ++echo "$as_me:9571: result: $with_develop" >&5 + echo "${ECHO_T}$with_develop" >&6 + + ############################################################################### +@@ -9033,7 +9577,7 @@ + # This is still experimental (20080329), but should ultimately be moved to + # the script-block --with-normal, etc. + +-echo "$as_me:9036: checking if you want to link with the pthread library" >&5 ++echo "$as_me:9580: 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. +@@ -9043,27 +9587,27 @@ + else + with_pthread=no + fi; +-echo "$as_me:9046: result: $with_pthread" >&5 ++echo "$as_me:9590: result: $with_pthread" >&5 + echo "${ECHO_T}$with_pthread" >&6 + + if test "$with_pthread" != no ; then +- echo "$as_me:9050: checking for pthread.h" >&5 ++ echo "$as_me:9594: 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 9056 "configure" ++#line 9600 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:9060: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:9604: \"$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:9066: \$? = $ac_status" >&5 ++ echo "$as_me:9610: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -9082,20 +9626,22 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:9085: result: $ac_cv_header_pthread_h" >&5 ++echo "$as_me:9629: 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 + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_PTHREADS_H 1 + EOF + +- echo "$as_me:9093: 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 9098 "configure" ++ for cf_lib_pthread in pthread c_r ++ do ++ echo "$as_me:9639: checking if we can link with the $cf_lib_pthread library" >&5 ++echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6 ++ cf_save_LIBS="$LIBS" ++ LIBS="-l$cf_lib_pthread $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9644 "configure" + #include "confdefs.h" + + #include +@@ -9104,23 +9650,24 @@ + main () + { + +- int rc = pthread_create(0,0,0,0); ++ int rc = pthread_create(0,0,0,0); ++ int r2 = pthread_mutexattr_settype(0, 0); + + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9114: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9661: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9117: \$? = $ac_status" >&5 ++ echo "$as_me:9664: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9120: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9667: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9123: \$? = $ac_status" >&5 ++ echo "$as_me:9670: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + with_pthread=yes + else +@@ -9129,27 +9676,30 @@ + with_pthread=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- LIBS="$cf_save_LIBS" +- echo "$as_me:9133: result: $with_pthread" >&5 ++ LIBS="$cf_save_LIBS" ++ echo "$as_me:9680: result: $with_pthread" >&5 + echo "${ECHO_T}$with_pthread" >&6 ++ test "$with_pthread" = yes && break ++ done + +- if test "$with_pthread" = yes ; then +- LIBS="-lpthread $LIBS" +- cat >>confdefs.h <<\EOF ++ if test "$with_pthread" = yes ; then ++ LIBS="-l$cf_lib_pthread $LIBS" ++ ++cat >>confdefs.h <<\EOF + #define HAVE_LIBPTHREADS 1 + EOF + +- else +- { { echo "$as_me:9143: error: Cannot link with pthread library" >&5 ++ else ++ { { echo "$as_me:9693: error: Cannot link with pthread library" >&5 + echo "$as_me: error: Cannot link with pthread library" >&2;} + { (exit 1); exit 1; }; } +- fi ++ fi + + fi + + fi + +-echo "$as_me:9152: checking if you want to use weak-symbols for pthreads" >&5 ++echo "$as_me:9702: 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. +@@ -9159,18 +9709,18 @@ + else + use_weak_symbols=no + fi; +-echo "$as_me:9162: result: $use_weak_symbols" >&5 ++echo "$as_me:9712: result: $use_weak_symbols" >&5 + echo "${ECHO_T}$use_weak_symbols" >&6 + if test "$use_weak_symbols" = yes ; then + +-echo "$as_me:9166: checking if $CC supports weak symbols" >&5 ++echo "$as_me:9716: 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 9173 "configure" ++#line 9723 "configure" + #include "confdefs.h" + + #include +@@ -9196,16 +9746,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9199: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9749: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9202: \$? = $ac_status" >&5 ++ echo "$as_me:9752: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9205: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9755: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9208: \$? = $ac_status" >&5 ++ echo "$as_me:9758: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_weak_symbols=yes + else +@@ -9216,7 +9766,7 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:9219: result: $cf_cv_weak_symbols" >&5 ++echo "$as_me:9769: result: $cf_cv_weak_symbols" >&5 + echo "${ECHO_T}$cf_cv_weak_symbols" >&6 + + else +@@ -9224,7 +9774,8 @@ + fi + + if test $cf_cv_weak_symbols = yes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_WEAK_SYMBOLS 1 + EOF + +@@ -9232,7 +9783,8 @@ + + PTHREAD= + if test "$with_pthread" = "yes" ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_PTHREADS 1 + EOF + +@@ -9243,13 +9795,13 @@ + fi + + # OpenSUSE is installing ncurses6, using reentrant option. +-echo "$as_me:9246: checking for _nc_TABSIZE" >&5 ++echo "$as_me:9798: checking for _nc_TABSIZE" >&5 + echo $ECHO_N "checking for _nc_TABSIZE... $ECHO_C" >&6 + if test "${ac_cv_func__nc_TABSIZE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 9252 "configure" ++#line 9804 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _nc_TABSIZE (); below. */ +@@ -9272,7 +9824,7 @@ + #if defined (__stub__nc_TABSIZE) || defined (__stub____nc_TABSIZE) + choke me + #else +-f = _nc_TABSIZE; ++f = _nc_TABSIZE; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -9280,16 +9832,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9283: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9835: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9286: \$? = $ac_status" >&5 ++ echo "$as_me:9838: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9289: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9841: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9292: \$? = $ac_status" >&5 ++ echo "$as_me:9844: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func__nc_TABSIZE=yes + else +@@ -9299,7 +9851,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:9302: result: $ac_cv_func__nc_TABSIZE" >&5 ++echo "$as_me:9854: result: $ac_cv_func__nc_TABSIZE" >&5 + echo "${ECHO_T}$ac_cv_func__nc_TABSIZE" >&6 + if test $ac_cv_func__nc_TABSIZE = yes; then + assume_reentrant=yes +@@ -9311,7 +9863,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:9314: checking if you want experimental reentrant code" >&5 ++echo "$as_me:9866: 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. +@@ -9321,7 +9873,7 @@ + else + with_reentrant=$assume_reentrant + fi; +-echo "$as_me:9324: result: $with_reentrant" >&5 ++echo "$as_me:9876: result: $with_reentrant" >&5 + echo "${ECHO_T}$with_reentrant" >&6 + if test "$with_reentrant" = yes ; then + cf_cv_enable_reentrant=1 +@@ -9333,7 +9885,8 @@ + elif test "$assume_reentrant" = no ; then + LIB_SUFFIX="t${LIB_SUFFIX}" + fi +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_REENTRANT 1 + EOF + +@@ -9343,7 +9896,7 @@ + + ### Allow using a different wrap-prefix + if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then +- echo "$as_me:9346: checking for prefix used to wrap public variables" >&5 ++ echo "$as_me:9899: 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. +@@ -9353,7 +9906,7 @@ + else + NCURSES_WRAP_PREFIX=_nc_ + fi; +- echo "$as_me:9356: result: $NCURSES_WRAP_PREFIX" >&5 ++ echo "$as_me:9909: result: $NCURSES_WRAP_PREFIX" >&5 + echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6 + else + NCURSES_WRAP_PREFIX=_nc_ +@@ -9366,26 +9919,46 @@ + ############################################################################### + + ### use option --disable-echo to suppress full display compiling commands +-echo "$as_me:9369: 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 ++ ++echo "$as_me:9923: checking if you want to see long compiling messages" >&5 ++echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 + + # Check whether --enable-echo or --disable-echo was given. + if test "${enable_echo+set}" = set; then + enableval="$enable_echo" +- with_echo=$enableval ++ test "$enableval" != no && enableval=yes ++ if test "$enableval" != "yes" ; then ++ ++ ECHO_LT='--silent' ++ ECHO_LD='@echo linking $@;' ++ RULE_CC='@echo compiling $<' ++ SHOW_CC='@echo compiling $@' ++ ECHO_CC='@' ++ ++ else ++ ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' ++ ++ fi + else +- with_echo=yes ++ enableval=yes ++ ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' ++ + fi; +-if test "$with_echo" = yes; then +- ECHO_LINK= +-else +- ECHO_LINK='@ echo linking $@ ... ;' +-fi +-echo "$as_me:9384: result: $with_echo" >&5 +-echo "${ECHO_T}$with_echo" >&6 ++echo "$as_me:9957: result: $enableval" >&5 ++echo "${ECHO_T}$enableval" >&6 + + ### use option --enable-warnings to turn on all gcc warnings +-echo "$as_me:9388: checking if you want to see compiler warnings" >&5 ++echo "$as_me:9961: 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. +@@ -9393,7 +9966,7 @@ + enableval="$enable_warnings" + with_warnings=$enableval + fi; +-echo "$as_me:9396: result: $with_warnings" >&5 ++echo "$as_me:9969: result: $with_warnings" >&5 + echo "${ECHO_T}$with_warnings" >&6 + + if test "x$with_warnings" = "xyes"; then +@@ -9405,12 +9978,12 @@ + if test "$GCC" = yes ; then + case $host_os in + linux*|gnu*) +- echo "$as_me:9408: checking if this is really Intel C compiler" >&5 ++ echo "$as_me:9981: 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 9413 "configure" ++#line 9986 "configure" + #include "confdefs.h" + + int +@@ -9427,16 +10000,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9430: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10003: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9433: \$? = $ac_status" >&5 ++ echo "$as_me:10006: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9436: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10009: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9439: \$? = $ac_status" >&5 ++ echo "$as_me:10012: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + INTEL_COMPILER=yes + cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" +@@ -9447,14 +10020,63 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + CFLAGS="$cf_save_CFLAGS" +- echo "$as_me:9450: result: $INTEL_COMPILER" >&5 ++ echo "$as_me:10023: result: $INTEL_COMPILER" >&5 + echo "${ECHO_T}$INTEL_COMPILER" >&6 + ;; + esac + fi + ++CLANG_COMPILER=no ++ ++if test "$GCC" = yes ; then ++ echo "$as_me:10032: checking if this is really Clang C compiler" >&5 ++echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 ++ cf_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -Qunused-arguments" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 10037 "configure" ++#include "confdefs.h" ++ ++int ++main () ++{ ++ ++#ifdef __clang__ ++#else ++make an error ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:10054: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:10057: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:10060: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:10063: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ CLANG_COMPILER=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++ ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$cf_save_CFLAGS" ++ echo "$as_me:10074: result: $CLANG_COMPILER" >&5 ++echo "${ECHO_T}$CLANG_COMPILER" >&6 ++fi ++ + cat > conftest.$ac_ext <&5 ++ { echo "$as_me:10096: checking for $CC warning options..." >&5 + echo "$as_me: checking for $CC warning options..." >&6;} + cf_save_CFLAGS="$CFLAGS" + EXTRA_CFLAGS="-Wall" +@@ -9487,12 +10109,12 @@ + wd981 + do + CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" +- if { (eval echo "$as_me:9490: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:10112: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9493: \$? = $ac_status" >&5 ++ echo "$as_me:10115: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:9495: result: ... -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:10117: result: ... -$cf_opt" >&5 + echo "${ECHO_T}... -$cf_opt" >&6 + EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" + fi +@@ -9501,16 +10123,20 @@ + + elif test "$GCC" = yes + then +- { echo "$as_me:9504: checking for $CC warning options..." >&5 ++ { echo "$as_me:10126: checking for $CC warning options..." >&5 + echo "$as_me: checking for $CC warning options..." >&6;} + cf_save_CFLAGS="$CFLAGS" + EXTRA_CFLAGS= + cf_warn_CONST="" + test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" ++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" ++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= + for cf_opt in W Wall \ + Wbad-function-cast \ + Wcast-align \ + Wcast-qual \ ++ Wdeclaration-after-statement \ ++ Wextra \ + Winline \ + Wmissing-declarations \ + Wmissing-prototypes \ +@@ -9518,15 +10144,15 @@ + Wpointer-arith \ + Wshadow \ + Wstrict-prototypes \ +- Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum ++ Wundef $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum + do + CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" +- if { (eval echo "$as_me:9524: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:10150: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9527: \$? = $ac_status" >&5 ++ echo "$as_me:10153: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:9529: result: ... -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:10155: result: ... -$cf_opt" >&5 + echo "${ECHO_T}... -$cf_opt" >&6 + case $cf_opt in #(vi + Wcast-qual) #(vi +@@ -9537,7 +10163,17 @@ + [34].*) + test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 + +-echo "${as_me:-configure}:9540: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 ++echo "${as_me:-configure}:10166: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 ++ ++ continue;; ++ esac ++ ;; ++ Wpointer-arith) #(vi ++ case $GCC_VERSION in ++ [12].*) ++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 ++ ++echo "${as_me:-configure}:10176: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 + + continue;; + esac +@@ -9570,10 +10206,10 @@ + EOF + if test "$GCC" = yes + then +- { echo "$as_me:9573: checking for $CC __attribute__ directives..." >&5 ++ { echo "$as_me:10209: 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:10261: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9628: \$? = $ac_status" >&5 ++ echo "$as_me:10264: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:9630: result: ... $cf_attribute" >&5 ++ test -n "$verbose" && echo "$as_me:10266: result: ... $cf_attribute" >&5 + echo "${ECHO_T}... $cf_attribute" >&6 + cat conftest.h >>confdefs.h + case $cf_attribute in #(vi ++ noreturn) #(vi ++ ++cat >>confdefs.h <>confdefs.h <>confdefs.h <<\EOF ++#define GCC_PRINTF 1 + EOF +- else +- cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h <<\EOF ++#define GCC_SCANF 1 + EOF ++ + fi ++ ++cat >>confdefs.h <>confdefs.h <&5 ++echo "$as_me:10326: 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. +@@ -9673,16 +10333,12 @@ + else + with_assertions=no + fi; +-echo "$as_me:9676: result: $with_assertions" >&5 ++echo "$as_me:10336: result: $with_assertions" >&5 + echo "${ECHO_T}$with_assertions" >&6 + if test -n "$GCC" + then + if test "$with_assertions" = no + then +- cat >>confdefs.h <<\EOF +-#define NDEBUG 1 +-EOF +- + CPPFLAGS="$CPPFLAGS -DNDEBUG" + else + +@@ -9692,6 +10348,7 @@ + fi + + ### use option --disable-leaks to suppress "permanent" leaks, for testing ++ + cat >>confdefs.h <<\EOF + #define HAVE_NC_ALLOC_H 1 + EOF +@@ -9701,7 +10358,8 @@ + # Check whether --enable-expanded or --disable-expanded was given. + if test "${enable_expanded+set}" = set; then + enableval="$enable_expanded" +- test "$enableval" = yes && cat >>confdefs.h <<\EOF ++ test "$enableval" = yes && ++cat >>confdefs.h <<\EOF + #define NCURSES_EXPANDED 1 + EOF + +@@ -9712,7 +10370,8 @@ + # Check whether --enable-macros or --disable-macros was given. + if test "${enable_macros+set}" = set; then + enableval="$enable_macros" +- test "$enableval" = no && cat >>confdefs.h <<\EOF ++ test "$enableval" = no && ++cat >>confdefs.h <<\EOF + #define NCURSES_NOMACROS 1 + EOF + +@@ -9727,7 +10386,7 @@ + ;; + esac + +-echo "$as_me:9730: checking whether to add trace feature to all models" >&5 ++echo "$as_me:10389: 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. +@@ -9737,7 +10396,7 @@ + else + cf_with_trace=$cf_all_traces + fi; +-echo "$as_me:9740: result: $cf_with_trace" >&5 ++echo "$as_me:10399: result: $cf_with_trace" >&5 + echo "${ECHO_T}$cf_with_trace" >&6 + + if test "$cf_with_trace" = yes ; then +@@ -9830,13 +10489,13 @@ + *mingw32*) #(vi + ;; + *) +-echo "$as_me:9833: checking for gettimeofday" >&5 ++echo "$as_me:10492: 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 9839 "configure" ++#line 10498 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gettimeofday (); below. */ +@@ -9859,7 +10518,7 @@ + #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday) + choke me + #else +-f = gettimeofday; ++f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -9867,16 +10526,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9870: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10529: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9873: \$? = $ac_status" >&5 ++ echo "$as_me:10532: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9876: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10535: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9879: \$? = $ac_status" >&5 ++ echo "$as_me:10538: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gettimeofday=yes + else +@@ -9886,7 +10545,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:9889: result: $ac_cv_func_gettimeofday" >&5 ++echo "$as_me:10548: 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 +@@ -9895,7 +10554,7 @@ + + else + +-echo "$as_me:9898: checking for gettimeofday in -lbsd" >&5 ++echo "$as_me:10557: 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 +@@ -9903,7 +10562,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lbsd $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 9906 "configure" ++#line 10565 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -9922,16 +10581,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9925: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10584: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9928: \$? = $ac_status" >&5 ++ echo "$as_me:10587: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9931: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10590: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9934: \$? = $ac_status" >&5 ++ echo "$as_me:10593: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_bsd_gettimeofday=yes + else +@@ -9942,10 +10601,11 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:9945: result: $ac_cv_lib_bsd_gettimeofday" >&5 ++echo "$as_me:10604: 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 ++ ++cat >>confdefs.h <<\EOF + #define HAVE_GETTIMEOFDAY 1 + EOF + +@@ -9957,13 +10617,13 @@ + esac + + ### Checks for header files. +-echo "$as_me:9960: checking for ANSI C header files" >&5 ++echo "$as_me:10620: 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 9966 "configure" ++#line 10626 "configure" + #include "confdefs.h" + #include + #include +@@ -9971,13 +10631,13 @@ + #include + + _ACEOF +-if { (eval echo "$as_me:9974: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:10634: \"$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:9980: \$? = $ac_status" >&5 ++ echo "$as_me:10640: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -9999,7 +10659,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 10002 "configure" ++#line 10662 "configure" + #include "confdefs.h" + #include + +@@ -10017,7 +10677,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 10020 "configure" ++#line 10680 "configure" + #include "confdefs.h" + #include + +@@ -10038,7 +10698,7 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line 10041 "configure" ++#line 10701 "configure" + #include "confdefs.h" + #include + #if ((' ' & 0x0FF) == 0x020) +@@ -10064,15 +10724,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:10067: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10727: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10070: \$? = $ac_status" >&5 ++ echo "$as_me:10730: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:10072: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10732: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10075: \$? = $ac_status" >&5 ++ echo "$as_me:10735: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -10085,7 +10745,7 @@ + fi + fi + fi +-echo "$as_me:10088: result: $ac_cv_header_stdc" >&5 ++echo "$as_me:10748: result: $ac_cv_header_stdc" >&5 + echo "${ECHO_T}$ac_cv_header_stdc" >&6 + if test $ac_cv_header_stdc = yes; then + +@@ -10098,13 +10758,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:10101: checking for $ac_hdr that defines DIR" >&5 ++echo "$as_me:10761: 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 10107 "configure" ++#line 10767 "configure" + #include "confdefs.h" + #include + #include <$ac_hdr> +@@ -10119,16 +10779,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10122: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10782: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10125: \$? = $ac_status" >&5 ++ echo "$as_me:10785: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10128: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10788: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10131: \$? = $ac_status" >&5 ++ echo "$as_me:10791: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" + else +@@ -10138,7 +10798,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:10141: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:10801: 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:10814: 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 +@@ -10159,7 +10819,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-ldir $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 10162 "configure" ++#line 10822 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -10178,16 +10838,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10181: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10841: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10184: \$? = $ac_status" >&5 ++ echo "$as_me:10844: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10187: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10847: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10190: \$? = $ac_status" >&5 ++ echo "$as_me:10850: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dir_opendir=yes + else +@@ -10198,14 +10858,14 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:10201: result: $ac_cv_lib_dir_opendir" >&5 ++echo "$as_me:10861: 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:10208: checking for opendir in -lx" >&5 ++ echo "$as_me:10868: 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 +@@ -10213,7 +10873,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lx $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 10216 "configure" ++#line 10876 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -10232,16 +10892,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10235: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10895: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10238: \$? = $ac_status" >&5 ++ echo "$as_me:10898: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10241: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10901: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10244: \$? = $ac_status" >&5 ++ echo "$as_me:10904: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_x_opendir=yes + else +@@ -10252,7 +10912,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:10255: result: $ac_cv_lib_x_opendir" >&5 ++echo "$as_me:10915: 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" +@@ -10260,13 +10920,13 @@ + + fi + +-echo "$as_me:10263: checking whether time.h and sys/time.h may both be included" >&5 ++echo "$as_me:10923: 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 10269 "configure" ++#line 10929 "configure" + #include "confdefs.h" + #include + #include +@@ -10282,16 +10942,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10285: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10945: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10288: \$? = $ac_status" >&5 ++ echo "$as_me:10948: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10291: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10951: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10294: \$? = $ac_status" >&5 ++ echo "$as_me:10954: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_time=yes + else +@@ -10301,7 +10961,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:10304: result: $ac_cv_header_time" >&5 ++echo "$as_me:10964: result: $ac_cv_header_time" >&5 + echo "${ECHO_T}$ac_cv_header_time" >&6 + if test $ac_cv_header_time = yes; then + +@@ -10319,104 +10979,13 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_main_return=return + +-echo "$as_me:10322: 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 +-else +- ac_cv_prog_cc_stdc=no +-ac_save_CC=$CC +-cat >conftest.$ac_ext <<_ACEOF +-#line 10330 "configure" +-#include "confdefs.h" +-#include +-#include +-#include +-#include +-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +-struct buf { int x; }; +-FILE * (*rcsopen) (struct buf *, struct stat *, int); +-static char *e (p, i) +- char **p; +- int i; +-{ +- return p[i]; +-} +-static char *f (char * (*g) (char **, int), char **p, ...) +-{ +- char *s; +- va_list v; +- va_start (v,p); +- s = g (p, va_arg (v,int)); +- va_end (v); +- return s; +-} +-int test (int i, double x); +-struct s1 {int (*f) (int a);}; +-struct s2 {int (*f) (double a);}; +-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +-int argc; +-char **argv; +-int +-main () +-{ +-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +- ; +- return 0; +-} +-_ACEOF +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX 10.20 and later -Ae +-# HP-UX older versions -Aa -D_HPUX_SOURCE +-# SVR4 -Xc -D__EXTENSIONS__ +-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +-do +- CC="$ac_save_CC $ac_arg" +- rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10379: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:10382: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10385: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10388: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_prog_cc_stdc=$ac_arg +-break +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext +-done +-rm -f conftest.$ac_ext conftest.$ac_objext +-CC=$ac_save_CC +- +-fi +- +-case "x$ac_cv_prog_cc_stdc" in +- x|xno) +- echo "$as_me:10405: result: none needed" >&5 +-echo "${ECHO_T}none needed" >&6 ;; +- *) +- echo "$as_me:10408: 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:10413: checking for an ANSI C-conforming const" >&5 ++echo "$as_me:10982: 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 10419 "configure" ++#line 10988 "configure" + #include "confdefs.h" + + int +@@ -10474,16 +11043,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10477: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11046: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10480: \$? = $ac_status" >&5 ++ echo "$as_me:11049: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10483: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11052: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10486: \$? = $ac_status" >&5 ++ echo "$as_me:11055: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes + else +@@ -10493,7 +11062,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:10496: result: $ac_cv_c_const" >&5 ++echo "$as_me:11065: result: $ac_cv_c_const" >&5 + echo "${ECHO_T}$ac_cv_c_const" >&6 + if test $ac_cv_c_const = no; then + +@@ -10505,7 +11074,7 @@ + + ### Checks for external-data + +-echo "$as_me:10508: checking if data-only library module links" >&5 ++echo "$as_me:11077: 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 +@@ -10513,20 +11082,20 @@ + + rm -f conftest.a + cat >conftest.$ac_ext <&5 ++ if { (eval echo "$as_me:11088: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10522: \$? = $ac_status" >&5 ++ echo "$as_me:11091: \$? = $ac_status" >&5 + (exit $ac_status); } ; then + mv conftest.o data.o && \ + ( $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:11111: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10545: \$? = $ac_status" >&5 ++ echo "$as_me:11114: \$? = $ac_status" >&5 + (exit $ac_status); }; then + mv conftest.o func.o && \ + ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null +@@ -10555,7 +11124,7 @@ + cf_cv_link_dataonly=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 10558 "configure" ++#line 11127 "configure" + #include "confdefs.h" + + int main() +@@ -10566,15 +11135,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:10569: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11138: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10572: \$? = $ac_status" >&5 ++ echo "$as_me:11141: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:10574: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11143: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10577: \$? = $ac_status" >&5 ++ echo "$as_me:11146: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_link_dataonly=yes + else +@@ -10589,11 +11158,12 @@ + + fi + +-echo "$as_me:10592: result: $cf_cv_link_dataonly" >&5 ++echo "$as_me:11161: result: $cf_cv_link_dataonly" >&5 + echo "${ECHO_T}$cf_cv_link_dataonly" >&6 + + if test "$cf_cv_link_dataonly" = no ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define BROKEN_LINKER 1 + EOF + +@@ -10602,7 +11172,7 @@ + + ### Checks for library functions. + +-echo "$as_me:10605: checking for working mkstemp" >&5 ++echo "$as_me:11175: 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 +@@ -10610,68 +11180,10 @@ + + rm -rf conftest* + if test "$cross_compiling" = yes; then +- echo "$as_me:10613: 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 10619 "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char mkstemp (); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char mkstemp (); +-char (*f) (); +- +-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_mkstemp) || defined (__stub___mkstemp) +-choke me +-#else +-f = mkstemp; +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10650: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10653: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10656: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10659: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_func_mkstemp=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_func_mkstemp=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:10669: result: $ac_cv_func_mkstemp" >&5 +-echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 +- ++ cf_cv_func_mkstemp=maybe + else + cat >conftest.$ac_ext <<_ACEOF +-#line 10674 "configure" ++#line 11186 "configure" + #include "confdefs.h" + + #include +@@ -10709,15 +11221,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:10712: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11224: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10715: \$? = $ac_status" >&5 ++ echo "$as_me:11227: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:10717: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11229: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10720: \$? = $ac_status" >&5 ++ echo "$as_me:11232: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_func_mkstemp=yes + +@@ -10732,80 +11244,89 @@ + fi + + fi +-echo "$as_me:10735: result: $cf_cv_func_mkstemp" >&5 ++echo "$as_me:11247: result: $cf_cv_func_mkstemp" >&5 + echo "${ECHO_T}$cf_cv_func_mkstemp" >&6 +-if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then +- cat >>confdefs.h <<\EOF +-#define HAVE_MKSTEMP 1 +-EOF +- +-fi +- +-echo "$as_me:10744: 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 ++if test "x$cf_cv_func_mkstemp" = xmaybe ; then ++ echo "$as_me:11250: 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 10750 "configure" ++#line 11256 "configure" + #include "confdefs.h" +-#include +-#include +-#ifdef signal +-# undef signal +-#endif ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char mkstemp (); below. */ ++#include ++/* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus +-extern "C" void (*signal (int, void (*)(int)))(int); +-#else +-void (*signal ()) (); ++extern "C" + #endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char mkstemp (); ++char (*f) (); + + int + main () + { +-int i; ++/* 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_mkstemp) || defined (__stub___mkstemp) ++choke me ++#else ++f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10772: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11287: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10775: \$? = $ac_status" >&5 ++ echo "$as_me:11290: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10778: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11293: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10781: \$? = $ac_status" >&5 ++ echo "$as_me:11296: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_type_signal=void ++ ac_cv_func_mkstemp=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_type_signal=int ++ac_cv_func_mkstemp=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:11306: result: $ac_cv_func_mkstemp" >&5 ++echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 ++ + fi +-echo "$as_me:10791: result: $ac_cv_type_signal" >&5 +-echo "${ECHO_T}$ac_cv_type_signal" >&6 ++if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then + +-cat >>confdefs.h <>confdefs.h <<\EOF ++#define HAVE_MKSTEMP 1 + EOF + ++fi ++ + if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then + CFLAGS=`echo ${CFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'` + CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'` + fi + ++cf_with_ada=yes + if test "$cf_with_ada" != "no" ; then + + 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:10808: checking for $ac_word" >&5 ++echo "$as_me:11329: 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 +@@ -10820,7 +11341,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_gnat_exists="yes" +-echo "$as_me:10823: found $ac_dir/$ac_word" >&5 ++echo "$as_me:11344: found $ac_dir/$ac_word" >&5 + break + done + +@@ -10829,31 +11350,32 @@ + fi + gnat_exists=$ac_cv_prog_gnat_exists + if test -n "$gnat_exists"; then +- echo "$as_me:10832: result: $gnat_exists" >&5 ++ echo "$as_me:11353: result: $gnat_exists" >&5 + echo "${ECHO_T}$gnat_exists" >&6 + else +- echo "$as_me:10835: result: no" >&5 ++ echo "$as_me:11356: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + if test "$ac_cv_prog_gnat_exists" = no; then + cf_ada_make= ++ cf_cv_prog_gnat_correct=no + else + +-echo "$as_me:10843: checking for gnat version" >&5 ++echo "$as_me:11365: 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:10848: result: $cf_gnat_version" >&5 ++echo "$as_me:11370: result: $cf_gnat_version" >&5 + echo "${ECHO_T}$cf_gnat_version" >&6 + + case $cf_gnat_version in #(vi +-3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi ++3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi + cf_cv_prog_gnat_correct=yes + ;; + *) +- { echo "$as_me:10856: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5 ++ { echo "$as_me:11378: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5 + echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;} + cf_cv_prog_gnat_correct=no + ;; +@@ -10861,7 +11383,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:10864: checking for $ac_word" >&5 ++echo "$as_me:11386: 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 +@@ -10876,7 +11398,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_M4_exists="yes" +-echo "$as_me:10879: found $ac_dir/$ac_word" >&5 ++echo "$as_me:11401: found $ac_dir/$ac_word" >&5 + break + done + +@@ -10885,10 +11407,10 @@ + fi + M4_exists=$ac_cv_prog_M4_exists + if test -n "$M4_exists"; then +- echo "$as_me:10888: result: $M4_exists" >&5 ++ echo "$as_me:11410: result: $M4_exists" >&5 + echo "${ECHO_T}$M4_exists" >&6 + else +- echo "$as_me:10891: result: no" >&5 ++ echo "$as_me:11413: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -10897,7 +11419,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:10900: checking if GNAT works" >&5 ++ echo "$as_me:11422: checking if GNAT works" >&5 + echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6 + + rm -rf conftest* *~conftest* +@@ -10925,30 +11447,34 @@ + fi + rm -rf conftest* *~conftest* + +- echo "$as_me:10928: result: $cf_cv_prog_gnat_correct" >&5 ++ echo "$as_me:11450: 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 + +- # make ADAFLAGS consistent with CFLAGS +- case "$CFLAGS" in +- *-g*) ++ echo "$as_me:11457: checking optimization options for ADAFLAGS" >&5 ++echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6 ++ case "$CFLAGS" in ++ *-g*) + + ADAFLAGS="$ADAFLAGS -g" + +- ;; +- esac +- case "$CFLAGS" in +- *-O*) ++ ;; ++ esac ++ case "$CFLAGS" in ++ *-O*) ++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'` + +- ADAFLAGS="$ADAFLAGS -O3" ++ ADAFLAGS="$ADAFLAGS $cf_O_flag" + +- ;; +- esac ++ ;; ++ esac ++ echo "$as_me:11474: result: $ADAFLAGS" >&5 ++echo "${ECHO_T}$ADAFLAGS" >&6 + +-echo "$as_me:10951: checking if GNAT supports generics" >&5 ++echo "$as_me:11477: checking if GNAT supports generics" >&5 + echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6 + case $cf_gnat_version in #(vi + 3.[1-9]*|[4-9].*) #(vi +@@ -10958,7 +11484,7 @@ + cf_gnat_generics=no + ;; + esac +-echo "$as_me:10961: result: $cf_gnat_generics" >&5 ++echo "$as_me:11487: result: $cf_gnat_generics" >&5 + echo "${ECHO_T}$cf_gnat_generics" >&6 + + if test "$cf_gnat_generics" = yes +@@ -10970,7 +11496,7 @@ + cf_generic_objects= + fi + +-echo "$as_me:10973: checking if GNAT supports SIGINT" >&5 ++echo "$as_me:11499: checking if GNAT supports SIGINT" >&5 + echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6 + if test "${cf_cv_gnat_sigint+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -11018,7 +11544,7 @@ + rm -rf conftest* *~conftest* + + fi +-echo "$as_me:11021: result: $cf_cv_gnat_sigint" >&5 ++echo "$as_me:11547: result: $cf_cv_gnat_sigint" >&5 + echo "${ECHO_T}$cf_cv_gnat_sigint" >&6 + + if test $cf_cv_gnat_sigint = yes ; then +@@ -11027,7 +11553,7 @@ + USE_GNAT_SIGINT="#" + fi + +-echo "$as_me:11030: checking if GNAT pragma Unreferenced works" >&5 ++echo "$as_me:11556: checking if GNAT pragma Unreferenced works" >&5 + echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6 + if test "${cf_cv_pragma_unreferenced+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -11058,7 +11584,7 @@ + rm -rf conftest* *~conftest* + + fi +-echo "$as_me:11061: result: $cf_cv_pragma_unreferenced" >&5 ++echo "$as_me:11587: 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). +@@ -11071,14 +11597,14 @@ + cf_gnat_libraries=no + cf_gnat_projects=no + +-echo "$as_me:11074: checking if GNAT supports project files" >&5 ++echo "$as_me:11600: checking if GNAT supports project files" >&5 + echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6 + case $cf_gnat_version in #(vi + 3.[0-9]*) #(vi + ;; + *) + case $cf_cv_system_name in #(vi +- cygwin*) #(vi ++ cygwin*|msys*) #(vi + ;; + *) + mkdir conftest.src conftest.bin conftest.lib +@@ -11139,14 +11665,14 @@ + esac + ;; + esac +-echo "$as_me:11142: result: $cf_gnat_projects" >&5 ++echo "$as_me:11668: result: $cf_gnat_projects" >&5 + echo "${ECHO_T}$cf_gnat_projects" >&6 + + if test $cf_gnat_projects = yes + then +- echo "$as_me:11147: checking if GNAT supports libraries" >&5 ++ echo "$as_me:11673: checking if GNAT supports libraries" >&5 + echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6 +- echo "$as_me:11149: result: $cf_gnat_libraries" >&5 ++ echo "$as_me:11675: result: $cf_gnat_libraries" >&5 + echo "${ECHO_T}$cf_gnat_libraries" >&6 + fi + +@@ -11166,7 +11692,7 @@ + USE_GNAT_LIBRARIES="#" + fi + +-echo "$as_me:11169: checking for ada-compiler" >&5 ++echo "$as_me:11695: checking for ada-compiler" >&5 + echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6 + + # Check whether --with-ada-compiler or --without-ada-compiler was given. +@@ -11177,12 +11703,12 @@ + cf_ada_compiler=gnatmake + fi; + +-echo "$as_me:11180: result: $cf_ada_compiler" >&5 ++echo "$as_me:11706: result: $cf_ada_compiler" >&5 + echo "${ECHO_T}$cf_ada_compiler" >&6 + + cf_ada_package=terminal_interface + +-echo "$as_me:11185: checking for ada-include" >&5 ++echo "$as_me:11711: checking for ada-include" >&5 + echo $ECHO_N "checking for ada-include... $ECHO_C" >&6 + + # Check whether --with-ada-include or --without-ada-include was given. +@@ -11206,7 +11732,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval withval="$withval" + case ".$withval" in #(vi + .NONE/*) +@@ -11218,19 +11744,19 @@ + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:11221: error: expected a pathname, not \"$withval\"" >&5 ++ { { echo "$as_me:11747: error: expected a pathname, not \"$withval\"" >&5 + echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + fi +-ADA_INCLUDE="$withval" ++eval ADA_INCLUDE="$withval" + +-echo "$as_me:11230: result: $ADA_INCLUDE" >&5 ++echo "$as_me:11756: result: $ADA_INCLUDE" >&5 + echo "${ECHO_T}$ADA_INCLUDE" >&6 + +-echo "$as_me:11233: checking for ada-objects" >&5 ++echo "$as_me:11759: checking for ada-objects" >&5 + echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6 + + # Check whether --with-ada-objects or --without-ada-objects was given. +@@ -11254,7 +11780,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval withval="$withval" + case ".$withval" in #(vi + .NONE/*) +@@ -11266,19 +11792,19 @@ + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:11269: error: expected a pathname, not \"$withval\"" >&5 ++ { { echo "$as_me:11795: error: expected a pathname, not \"$withval\"" >&5 + echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + fi +-ADA_OBJECTS="$withval" ++eval ADA_OBJECTS="$withval" + +-echo "$as_me:11278: result: $ADA_OBJECTS" >&5 ++echo "$as_me:11804: result: $ADA_OBJECTS" >&5 + echo "${ECHO_T}$ADA_OBJECTS" >&6 + +-echo "$as_me:11281: checking if an Ada95 shared-library should be built" >&5 ++echo "$as_me:11807: checking if an Ada95 shared-library should be built" >&5 + echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6 + + # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given. +@@ -11288,7 +11814,7 @@ + else + with_ada_sharedlib=no + fi; +-echo "$as_me:11291: result: $with_ada_sharedlib" >&5 ++echo "$as_me:11817: result: $with_ada_sharedlib" >&5 + echo "${ECHO_T}$with_ada_sharedlib" >&6 + + ADA_SHAREDLIB='lib$(LIB_NAME).so.1' +@@ -11304,12 +11830,12 @@ + fi + + else +- { { echo "$as_me:11307: error: No usable Ada compiler found" >&5 ++ { { echo "$as_me:11833: error: No usable Ada compiler found" >&5 + echo "$as_me: error: No usable Ada compiler found" >&2;} + { (exit 1); exit 1; }; } + fi + else +- { { echo "$as_me:11312: error: The Ada compiler is needed for this package" >&5 ++ { { echo "$as_me:11838: error: The Ada compiler is needed for this package" >&5 + echo "$as_me: error: The Ada compiler is needed for this package" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -11317,25 +11843,27 @@ + ################################################################################ + + # not needed +-TINFO_ARGS2= ++TINFO_LDFLAGS2= ++ ++TINFO_LIBS= + + ### Construct the list of include-directories to be generated + +-CPPFLAGS="$CPPFLAGS -I. -I../include" +-if test "$srcdir" != "."; then +- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" +-fi + if test "$GCC" != yes; then +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ if test x$prefix != x/usr ; then ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + fi + else +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + fi + fi ++if test "$srcdir" != "."; then ++ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" ++fi ++CPPFLAGS="-I. -I../include $CPPFLAGS" + + ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS" + if test "$srcdir" != "."; then +@@ -11345,7 +11873,7 @@ + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then ++ if test x$prefix != x/usr ; then + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + fi + else +@@ -11354,7 +11882,7 @@ + fi + + ### Build up pieces for makefile rules +-echo "$as_me:11357: checking default library suffix" >&5 ++echo "$as_me:11885: checking default library suffix" >&5 + echo $ECHO_N "checking default library suffix... $ECHO_C" >&6 + + case $DFT_LWR_MODEL in +@@ -11365,36 +11893,32 @@ + shared) DFT_ARG_SUFFIX='' ;; + esac + test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}" +-echo "$as_me:11368: result: $DFT_ARG_SUFFIX" >&5 ++echo "$as_me:11896: result: $DFT_ARG_SUFFIX" >&5 + echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6 + +-echo "$as_me:11371: checking default library-dependency suffix" >&5 ++echo "$as_me:11899: checking default library-dependency suffix" >&5 + echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6 + +- case $DFT_LWR_MODEL in #(vi +- libtool) #(vi ++ case X$DFT_LWR_MODEL in #(vi ++ Xlibtool) #(vi + DFT_LIB_SUFFIX='.la' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- normal) #(vi +- DFT_LIB_SUFFIX='.a' +- DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX +- ;; +- debug) #(vi ++ Xdebug) #(vi + DFT_LIB_SUFFIX='_g.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- profile) #(vi ++ Xprofile) #(vi + DFT_LIB_SUFFIX='_p.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- shared) #(vi ++ Xshared) #(vi + case $cf_cv_system_name in +- aix[56]*) #(vi ++ aix[5-7]*) #(vi + DFT_LIB_SUFFIX='.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- cygwin*) #(vi ++ cygwin*|msys*|mingw*) #(vi + DFT_LIB_SUFFIX='.dll' + DFT_DEP_SUFFIX='.dll.a' + ;; +@@ -11414,17 +11938,23 @@ + ;; + esac + ;; +- *) DFT_LIB_SUFFIX='.so' ++ *) #(vi ++ DFT_LIB_SUFFIX='.so' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; + esac ++ ;; ++ *) ++ DFT_LIB_SUFFIX='.a' ++ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ++ ;; + 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:11424: result: $DFT_DEP_SUFFIX" >&5 ++echo "$as_me:11954: result: $DFT_DEP_SUFFIX" >&5 + echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6 + +-echo "$as_me:11427: checking default object directory" >&5 ++echo "$as_me:11957: checking default object directory" >&5 + echo $ECHO_N "checking default object directory... $ECHO_C" >&6 + + case $DFT_LWR_MODEL in +@@ -11434,13 +11964,13 @@ + profile) DFT_OBJ_SUBDIR='obj_p' ;; + shared) + case $cf_cv_system_name in #(vi +- cygwin) #(vi ++ cygwin|msys) #(vi + DFT_OBJ_SUBDIR='objects' ;; + *) + DFT_OBJ_SUBDIR='obj_s' ;; + esac + esac +-echo "$as_me:11443: result: $DFT_OBJ_SUBDIR" >&5 ++echo "$as_me:11973: result: $DFT_OBJ_SUBDIR" >&5 + echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6 + + ### Set up low-level terminfo dependencies for makefiles. +@@ -11450,6 +11980,9 @@ + cygwin*) + # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" + ;; ++ msys*) ++ # "lib" files have ".dll.a" suffix, "msys-" files have ".dll" ++ ;; + esac + fi + +@@ -11656,7 +12189,7 @@ + : ${CONFIG_STATUS=./config.status} + ac_clean_files_save=$ac_clean_files + ac_clean_files="$ac_clean_files $CONFIG_STATUS" +-{ echo "$as_me:11659: creating $CONFIG_STATUS" >&5 ++{ echo "$as_me:12192: creating $CONFIG_STATUS" >&5 + echo "$as_me: creating $CONFIG_STATUS" >&6;} + cat >$CONFIG_STATUS <<_ACEOF + #! $SHELL +@@ -11788,7 +12321,7 @@ + cat >>$CONFIG_STATUS <&5 + echo "$as_me: error: ambiguous option: $1 + Try \`$0 --help' for more information." >&2;} +@@ -11851,7 +12384,7 @@ + ac_need_defaults=false;; + + # This is an error. +- -*) { { echo "$as_me:11854: error: unrecognized option: $1 ++ -*) { { echo "$as_me:12387: 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;} +@@ -11870,7 +12403,7 @@ + ## Running config.status. ## + ## ----------------------- ## + +-This file was extended by $as_me 2.52.20101002, executed with ++This file was extended by $as_me 2.52.20121002, executed with + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS +@@ -11892,8 +12425,8 @@ + AWK="$AWK" + DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" + DFT_LWR_MODEL="$DFT_LWR_MODEL" +-ECHO_LINK="$ECHO_LINK" + LIB_NAME="$LIB_NAME" ++LIB_PREFIX="$LIB_PREFIX" + LIB_SUFFIX="$LIB_SUFFIX" + LN_S="$LN_S" + NCURSES_MAJOR="$NCURSES_MAJOR" +@@ -11922,7 +12455,7 @@ + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;; +- *) { { echo "$as_me:11925: error: invalid argument: $ac_config_target" >&5 ++ *) { { echo "$as_me:12458: error: invalid argument: $ac_config_target" >&5 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +@@ -11981,6 +12514,7 @@ + s,@bindir@,$bindir,;t t + s,@sbindir@,$sbindir,;t t + s,@libexecdir@,$libexecdir,;t t ++s,@datarootdir@,$datarootdir,;t t + s,@datadir@,$datadir,;t t + s,@sysconfdir@,$sysconfdir,;t t + s,@sharedstatedir@,$sharedstatedir,;t t +@@ -12024,9 +12558,8 @@ + s,@ac_ct_CC@,$ac_ct_CC,;t t + s,@EXEEXT@,$EXEEXT,;t t + s,@OBJEXT@,$OBJEXT,;t t +-s,@CPP@,$CPP,;t t + s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t +-s,@PROG_EXT@,$PROG_EXT,;t t ++s,@CPP@,$CPP,;t t + s,@AWK@,$AWK,;t t + s,@EGREP@,$EGREP,;t t + s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +@@ -12061,6 +12594,7 @@ + s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t + s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t + s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t ++s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t + s,@NCURSES_MAJOR@,$NCURSES_MAJOR,;t t + s,@NCURSES_MINOR@,$NCURSES_MINOR,;t t + s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t +@@ -12073,23 +12607,31 @@ + s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t + s,@CC_G_OPT@,$CC_G_OPT,;t t + s,@LD_MODEL@,$LD_MODEL,;t t ++s,@shlibdir@,$shlibdir,;t t ++s,@MAKE_DLLS@,$MAKE_DLLS,;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,@RM_SHARED_OPTS@,$RM_SHARED_OPTS,;t t + s,@LINK_PROGS@,$LINK_PROGS,;t t + s,@LINK_TESTS@,$LINK_TESTS,;t t + s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t + s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t + s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t + s,@INSTALL_LIB@,$INSTALL_LIB,;t t ++s,@RPATH_LIST@,$RPATH_LIST,;t t + s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t + s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t + s,@NCURSES_CONST@,$NCURSES_CONST,;t t + s,@PTHREAD@,$PTHREAD,;t t + s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t + s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t +-s,@ECHO_LINK@,$ECHO_LINK,;t t ++s,@ECHO_LT@,$ECHO_LT,;t t ++s,@ECHO_LD@,$ECHO_LD,;t t ++s,@RULE_CC@,$RULE_CC,;t t ++s,@SHOW_CC@,$SHOW_CC,;t t ++s,@ECHO_CC@,$ECHO_CC,;t t + s,@ADAFLAGS@,$ADAFLAGS,;t t + s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t + s,@ADA_TRACE@,$ADA_TRACE,;t t +@@ -12109,7 +12651,8 @@ + s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t + s,@ADA_SHAREDLIB@,$ADA_SHAREDLIB,;t t + s,@MAKE_ADA_SHAREDLIB@,$MAKE_ADA_SHAREDLIB,;t t +-s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t ++s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t ++s,@TINFO_LIBS@,$TINFO_LIBS,;t t + s,@ACPPFLAGS@,$ACPPFLAGS,;t t + s,@DFT_ARG_SUFFIX@,$DFT_ARG_SUFFIX,;t t + s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t +@@ -12237,7 +12780,7 @@ + esac + + if test x"$ac_file" != x-; then +- { echo "$as_me:12240: creating $ac_file" >&5 ++ { echo "$as_me:12783: creating $ac_file" >&5 + echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi +@@ -12255,7 +12798,7 @@ + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:12258: error: cannot find input file: $f" >&5 ++ test -f "$f" || { { echo "$as_me:12801: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; +@@ -12268,13 +12811,45 @@ + echo $srcdir/$f + else + # /dev/null tree +- { { echo "$as_me:12271: error: cannot find input file: $f" >&5 ++ { { echo "$as_me:12814: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + EOF ++cat >>$CONFIG_STATUS <<\EOF ++ ac_warn_datarootdir=no ++ if test x"$ac_file" != x-; then ++ for ac_item in $ac_file_inputs ++ do ++ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item` ++ if test -n "$ac_seen"; then ++ ac_used=`grep '@datarootdir@' $ac_item` ++ if test -z "$ac_used"; then ++ { echo "$as_me:12830: WARNING: datarootdir was used implicitly but not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: datarootdir was used implicitly but not set: ++$ac_seen" >&2;} ++ ac_warn_datarootdir=yes ++ fi ++ fi ++ ac_seen=`grep '${datarootdir}' $ac_item` ++ if test -n "$ac_seen"; then ++ { echo "$as_me:12839: WARNING: datarootdir was used explicitly but not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: datarootdir was used explicitly but not set: ++$ac_seen" >&2;} ++ ac_warn_datarootdir=yes ++ fi ++ done ++ fi ++ ++if test "x$ac_warn_datarootdir" = xyes; then ++ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'" ++fi ++ ++EOF + cat >>$CONFIG_STATUS <$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then +- mv $tmp/out $ac_file ++ cp $tmp/out $ac_file ++ ++ for ac_name in prefix exec_prefix datarootdir ++ do ++ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file` ++ if test -n "$ac_seen"; then ++ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file` ++ if test -z "$ac_init"; then ++ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` ++ { echo "$as_me:12876: WARNING: Variable $ac_name is used but was not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: Variable $ac_name is used but was not set: ++$ac_seen" >&2;} ++ fi ++ fi ++ done ++ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out ++ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out ++ if test -s $tmp/out; then ++ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` ++ { echo "$as_me:12887: WARNING: Some variables may not be substituted: ++$ac_seen" >&5 ++echo "$as_me: WARNING: Some variables may not be substituted: ++$ac_seen" >&2;} ++ fi + else + cat $tmp/out +- rm -f $tmp/out + fi ++ rm -f $tmp/out + + done + EOF +@@ -12334,7 +12933,7 @@ + * ) ac_file_in=$ac_file.in ;; + esac + +- test x"$ac_file" != x- && { echo "$as_me:12337: creating $ac_file" >&5 ++ test x"$ac_file" != x- && { echo "$as_me:12936: creating $ac_file" >&5 + echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the +@@ -12345,7 +12944,7 @@ + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:12348: error: cannot find input file: $f" >&5 ++ test -f "$f" || { { echo "$as_me:12947: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; +@@ -12358,7 +12957,7 @@ + echo $srcdir/$f + else + # /dev/null tree +- { { echo "$as_me:12361: error: cannot find input file: $f" >&5 ++ { { echo "$as_me:12960: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; +@@ -12416,7 +13015,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:12419: $ac_file is unchanged" >&5 ++ { echo "$as_me:13018: $ac_file is unchanged" >&5 + echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +diff -Naur ncurses-5.9/Ada95/configure.in ncurses-5.9.patch/Ada95/configure.in +--- ncurses-5.9/Ada95/configure.in 2011-04-01 00:49:22.000000000 +0200 ++++ ncurses-5.9.patch/Ada95/configure.in 2014-09-01 16:33:22.223791902 +0200 +@@ -1,5 +1,5 @@ + dnl*************************************************************************** +-dnl Copyright (c) 2010,2011 Free Software Foundation, Inc. * ++dnl Copyright (c) 2010-2012,2013 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,24 +28,20 @@ + dnl + dnl Author: Thomas E. Dickey + dnl +-dnl $Id: configure.in,v 1.30 2011/03/31 22:49:22 tom Exp $ ++dnl $Id: configure.in,v 1.49 2013/11/16 20:06:37 tom Exp $ + dnl Process this file with autoconf to produce a configure script. + dnl + dnl See http://invisible-island.net/autoconf/ for additional information. + dnl + dnl --------------------------------------------------------------------------- +-AC_PREREQ(2.13.20020210) +-AC_REVISION($Revision: 1.30 $) ++AC_PREREQ(2.52.20030208) ++AC_REVISION($Revision: 1.49 $) + AC_INIT(gen/gen.c) + AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) + + CF_TOP_BUILDDIR + +-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) +-AC_ARG_WITH(system-type, +-[ --with-system-type=XXX test: override derived host system-type], +-[AC_MSG_WARN(overriding system type to $withval) +- cf_cv_system_name=$withval]) ++CF_WITH_SYSTYPE + + ### Save the given $CFLAGS to allow user-override. + cf_user_CFLAGS="$CFLAGS" +@@ -54,15 +50,10 @@ + CF_CFG_DEFAULTS + + ### Checks for programs. +-AC_PROG_CC +-CF_GCC_VERSION +- ++CF_PROG_CC(gnatgcc gcc cc) + AC_PROG_CPP + AC_PROG_GCC_TRADITIONAL + CF_PROG_CC_C_O(CC) +-AC_ISC_POSIX +-CF_ANSI_CC_REQD +-CF_PROG_EXT + + AC_ARG_PROGRAM + +@@ -75,28 +66,8 @@ + + # if we find pkg-config, check if we should install the ".pc" files. + CF_PKG_CONFIG +- +-if test "$PKG_CONFIG" != none ; then +- AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) +- +- # Leave this as something that can be overridden in the environment. +- if test -z "$PKG_CONFIG_LIBDIR" ; then +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig +- fi +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then +- AC_ARG_ENABLE(pc-files, +- [ --enable-pc-files generate and install .pc files for pkg-config], +- [enable_pc_files=$enableval], +- [enable_pc_files=no]) +- AC_MSG_RESULT($enable_pc_files) +- else +- AC_MSG_RESULT(no) +- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) +- enable_pc_files=no +- fi +-fi +-AC_SUBST(PKG_CONFIG_LIBDIR) ++CF_WITH_PKG_CONFIG_LIBDIR ++CF_ENABLE_PC_FILES + + AC_MSG_CHECKING(if you want to build test-programs) + AC_ARG_WITH(tests, +@@ -130,6 +101,7 @@ + AC_CHECK_TOOL(LD, ld, ld) + AC_CHECK_TOOL(AR, ar, ar) + CF_AR_FLAGS ++CF_PATHSEP + + dnl Special option for use by system-builders: the install-prefix is used to + dnl adjust the location into which the actual install is done, so that an +@@ -186,9 +158,7 @@ + + CF_NCURSES_ADDON + +-CF_LIB_PREFIX(cf_prefix) +-LIB_PREFIX=$cf_prefix +-AC_SUBST(LIB_PREFIX) ++CF_WITH_LIB_PREFIX(cf_prefix) + + LIB_SUFFIX= + AC_SUBST(LIB_SUFFIX) +@@ -235,8 +205,6 @@ + ############################################################################### + CF_HELP_MESSAGE(Fine-Tuning Your Configuration:) + +-CF_PATHSEP +- + ### use option --enable-broken-linker to force on use of broken-linker support + AC_MSG_CHECKING(if you want broken-linker support code) + AC_ARG_ENABLE(broken_linker, +@@ -272,7 +240,7 @@ + [with_rcs_ids=$withval], + [with_rcs_ids=no]) + AC_MSG_RESULT($with_rcs_ids) +-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) ++test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 if RCS identifiers should be compiled-in)]) + + ############################################################################### + CF_HELP_MESSAGE(Extensions:) +@@ -286,8 +254,8 @@ + AC_MSG_RESULT($with_ext_funcs) + if test "$with_ext_funcs" = yes ; then + NCURSES_EXT_FUNCS=1 +- AC_DEFINE(HAVE_USE_DEFAULT_COLORS) +- AC_DEFINE(NCURSES_EXT_FUNCS) ++ AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 if we have use_default_colors function]) ++ AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extended functions]) + else + NCURSES_EXT_FUNCS=0 + fi +@@ -337,12 +305,12 @@ + fi + + if test $cf_cv_weak_symbols = yes ; then +- AC_DEFINE(USE_WEAK_SYMBOLS) ++ AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads]) + fi + + PTHREAD= + if test "$with_pthread" = "yes" ; then +- AC_DEFINE(USE_PTHREADS) ++ AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use the pthreads library]) + enable_reentrant=yes + if test $cf_cv_weak_symbols = yes ; then + PTHREAD=-lpthread +@@ -370,7 +338,7 @@ + elif test "$assume_reentrant" = no ; then + LIB_SUFFIX="t${LIB_SUFFIX}" + fi +- AC_DEFINE(USE_REENTRANT) ++ AC_DEFINE(USE_REENTRANT,1,[Define to 1 to compile with experimental reentrant code]) + else + cf_cv_enable_reentrant=0 + fi +@@ -388,24 +356,13 @@ + NCURSES_WRAP_PREFIX=_nc_ + fi + AC_SUBST(NCURSES_WRAP_PREFIX) +-AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX") ++AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ ncurses internal prefix]) + + ############################################################################### + CF_HELP_MESSAGE(Testing/development Options:) + + ### use option --disable-echo to suppress full display compiling commands +-AC_MSG_CHECKING(if you want to display full commands during build) +-AC_ARG_ENABLE(echo, +- [ --enable-echo build: display "compiling" commands (default)], +- [with_echo=$enableval], +- [with_echo=yes]) +-if test "$with_echo" = yes; then +- ECHO_LINK= +-else +- ECHO_LINK='@ echo linking $@ ... ;' +-fi +-AC_MSG_RESULT($with_echo) +-AC_SUBST(ECHO_LINK) ++CF_DISABLE_ECHO + + ### use option --enable-warnings to turn on all gcc warnings + AC_MSG_CHECKING(if you want to see compiler warnings) +@@ -416,7 +373,7 @@ + + if test "x$with_warnings" = "xyes"; then + CF_ADD_ADAFLAGS(-gnatg) +- CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum) ++ CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum) + fi + CF_GCC_ATTRIBUTES + +@@ -431,7 +388,6 @@ + then + if test "$with_assertions" = no + then +- AC_DEFINE(NDEBUG) + CPPFLAGS="$CPPFLAGS -DNDEBUG" + else + CF_ADD_ADAFLAGS(-gnata) +@@ -439,17 +395,17 @@ + fi + + ### use option --disable-leaks to suppress "permanent" leaks, for testing +-AC_DEFINE(HAVE_NC_ALLOC_H) ++AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header]) + + ### use option --enable-expanded to generate certain macros as functions + AC_ARG_ENABLE(expanded, + [ --enable-expanded test: generate functions for certain macros], +- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)]) ++ [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 if ncurses macros should be expanded as functions])]) + + ### use option --disable-macros to suppress macros in favor of functions + AC_ARG_ENABLE(macros, + [ --disable-macros test: use functions rather than macros], +- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)]) ++ [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 if ncurses macros should be expanded as functions])]) + + # Normally we only add trace() to the debug-library. Allow this to be + # extended to all models of the ncurses library: +@@ -485,7 +441,7 @@ + AC_DEFINE(HAVE_GETTIMEOFDAY),[ + + AC_CHECK_LIB(bsd, gettimeofday, +- AC_DEFINE(HAVE_GETTIMEOFDAY) ++ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday]) + LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday + ;; + esac +@@ -505,8 +461,6 @@ + ### Checks for library functions. + CF_MKSTEMP + +-AC_TYPE_SIGNAL +- + dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS + if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then + CF_STRIP_G_OPT(CFLAGS) +@@ -514,24 +468,13 @@ + fi + + CF_HELP_MESSAGE(Ada95 Binding Options:) +- ++cf_with_ada=yes + dnl Check for availability of GNU Ada Translator (GNAT). + dnl At the moment we support no other Ada95 compiler. + if test "$cf_with_ada" != "no" ; then + CF_PROG_GNAT + if test "$cf_cv_prog_gnat_correct" = yes; then +- +- # make ADAFLAGS consistent with CFLAGS +- case "$CFLAGS" in +- *-g*) +- CF_ADD_ADAFLAGS(-g) +- ;; +- esac +- case "$CFLAGS" in +- *-O*) +- CF_ADD_ADAFLAGS(-O3) +- ;; +- esac ++ CF_FIXUP_ADAFLAGS + + CF_GNAT_GENERICS + CF_GNAT_SIGINT +@@ -556,8 +499,10 @@ + ################################################################################ + + # not needed +-TINFO_ARGS2= +-AC_SUBST(TINFO_ARGS2) ++TINFO_LDFLAGS2= ++AC_SUBST(TINFO_LDFLAGS2) ++TINFO_LIBS= ++AC_SUBST(TINFO_LIBS) + + ### Construct the list of include-directories to be generated + CF_INCLUDE_DIRS +@@ -586,6 +531,9 @@ + cygwin*) + # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" + ;; ++ msys*) ++ # "lib" files have ".dll.a" suffix, "msys-" files have ".dll" ++ ;; + esac + fi + +@@ -594,7 +542,7 @@ + + SUB_MAKEFILES="gen/adacurses${DFT_ARG_SUFFIX}-config:gen/adacurses-config.in" + +-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR') ++AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as the library path-separator]) + + ### Now that we're done running tests, add the compiler-warnings, if any + CF_ADD_CFLAGS($EXTRA_CFLAGS) +@@ -656,8 +604,8 @@ + AWK="$AWK" + DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" + DFT_LWR_MODEL="$DFT_LWR_MODEL" +-ECHO_LINK="$ECHO_LINK" + LIB_NAME="$LIB_NAME" ++LIB_PREFIX="$LIB_PREFIX" + LIB_SUFFIX="$LIB_SUFFIX" + LN_S="$LN_S" + NCURSES_MAJOR="$NCURSES_MAJOR" +diff -Naur ncurses-5.9/Ada95/doc/Makefile.in ncurses-5.9.patch/Ada95/doc/Makefile.in +--- ncurses-5.9/Ada95/doc/Makefile.in 2011-03-26 20:26:17.000000000 +0100 ++++ ncurses-5.9.patch/Ada95/doc/Makefile.in 2014-09-01 16:33:22.223791902 +0200 +@@ -1,4 +1,4 @@ +-# $Id: Makefile.in,v 1.2 2011/03/26 19:26:17 tom Exp $ ++# $Id: Makefile.in,v 1.3 2012/08/11 21:31:56 tom Exp $ + ############################################################################## + # Copyright (c) 2011 Free Software Foundation, Inc. # + # # +@@ -38,6 +38,7 @@ + srcdir = @srcdir@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++datarootdir = @datarootdir@ + datadir = @datadir@ + mandir = @mandir@ + +diff -Naur ncurses-5.9/Ada95/gen/gen.c ncurses-5.9.patch/Ada95/gen/gen.c +--- ncurses-5.9/Ada95/gen/gen.c 2011-04-01 01:50:24.000000000 +0200 ++++ ncurses-5.9.patch/Ada95/gen/gen.c 2014-09-01 16:33:22.225791905 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998,2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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.59 2011/03/31 23:50:24 tom Exp $ ++ $Id: gen.c,v 1.64 2014/02/01 19:52:47 tom Exp $ + --------------------------------------------------------------------------*/ + /* + This program generates various record structures and constants from the +@@ -57,9 +57,14 @@ + #include + #include + +-#define UChar(c) ((unsigned char)(c)) ++#undef UCHAR ++#undef UINT ++#define UChar(c) ((UCHAR)(c)) + #define RES_NAME "Reserved" + ++typedef unsigned char UCHAR; ++typedef unsigned int UINT; ++ + static const char *model = ""; + static int little_endian = 0; + +@@ -70,45 +75,43 @@ + } + name_attribute_pair; + +-static int +-find_pos(char *s, unsigned len, int *low, int *high) +-{ +- unsigned int i, j; +- int l = 0; ++static UCHAR ++bit_is_set(const UCHAR * const data, ++ const UINT offset) ++{ ++ const UCHAR byte = data[offset >> 3]; ++ UINT bit; ++ ++ if (little_endian) ++ bit = offset; /* offset */ ++ else /* or */ ++ bit = ~offset; /* 7 - offset */ ++ bit &= 7; /* modulo 8 */ ++ return byte & (UCHAR) (1 << bit); ++} + +- *high = -1; +- *low = (int)(8 * len); ++/* Find lowest and highest used offset in a byte array. */ ++/* Returns 0 if and only if all bits are unset. */ ++static int ++find_pos(const UCHAR * const data, ++ const UINT sizeof_data, ++ UINT * const low, ++ UINT * const high) ++{ ++ const UINT last = (sizeof_data << 3) - 1; ++ UINT offset; ++ ++ for (offset = last; !bit_is_set(data, offset); offset--) ++ if (!offset) /* All bits are 0. */ ++ return 0; ++ *high = offset; + +- for (i = 0; i < len; i++, s++) ++ for (offset = 0; !bit_is_set(data, offset); offset++) + { +- if (*s) +- { +- for (j = 0; j < 8 * sizeof(char); j++) +- +- { +- if (((little_endian && ((*s) & 0x01)) || +- (!little_endian && ((*s) & 0x80)))) +- { +- if (l > *high) +- *high = l; +- if (l < *low) +- *low = l; +- } +- l++; +- if (little_endian) +- { +- *s >>= 1; +- } +- else +- { +- *s = (char)(*s << 1); +- } +- } +- } +- else +- l += 8; + } +- return (*high >= 0 && (*low <= *high)) ? *low : -1; ++ *low = offset; ++ ++ return -1; + } + + /* +@@ -116,63 +119,38 @@ + * record type defined in the binding. + * We are only dealing with record types which are of 32 or 16 + * bit size, i.e. they fit into an (u)int or a (u)short. ++ * Any pair with a 0 attr field will be ignored. + */ + static void + gen_reps( + const name_attribute_pair * nap, /* array of name_attribute_pair records */ + const char *name, /* name of the represented record type */ +- int len, /* size of the record in bytes */ +- int bias) ++ const UINT len, /* size of the record in bytes */ ++ const UINT bias) + { +- const char *unused_name = "Unused"; +- int long_bits = (8 * (int)sizeof(unsigned long)); +- int len_bits = (8 * len); +- int i, j, n, l, cnt = 0, low, high; ++ const UINT len_bits = len << 3; ++ int i, l; ++ UINT low, high; + int width = strlen(RES_NAME) + 3; +- unsigned long a; +- unsigned long mask = 0; + + assert(nap != NULL); + + for (i = 0; nap[i].name != (char *)0; i++) +- { +- cnt++; +- l = (int)strlen(nap[i].name); +- if (l > width) +- width = l; +- } ++ if (nap[i].attr) ++ { ++ l = (int)strlen(nap[i].name); ++ if (l > width) ++ width = l; ++ } + assert(width > 0); + + printf(" type %s is\n", name); + printf(" record\n"); + for (i = 0; nap[i].name != (char *)0; i++) +- { +- mask |= nap[i].attr; +- printf(" %-*s : Boolean;\n", width, nap[i].name); +- } +- +- /* +- * Compute a mask for the unused bits in this target. +- */ +- mask = ~mask; +- /* +- * Bits in the biased area are unused by the target. +- */ +- for (j = 0; j < bias; ++j) +- { +- mask &= (unsigned long)(~(1L << j)); +- } +- /* +- * Bits past the target's size are really unused. +- */ +- for (j = len_bits + bias; j < long_bits; ++j) +- { +- mask &= (unsigned long)(~(1L << j)); +- } +- if (mask != 0) +- { +- printf(" %-*s : Boolean;\n", width, unused_name); +- } ++ if (nap[i].attr) ++ { ++ printf(" %-*s : Boolean;\n", width, nap[i].name); ++ } + printf(" end record;\n"); + printf(" pragma Convention (C, %s);\n\n", name); + +@@ -180,24 +158,16 @@ + printf(" record\n"); + + for (i = 0; nap[i].name != (char *)0; i++) +- { +- a = nap[i].attr; +- l = find_pos((char *)&a, sizeof(a), &low, &high); +- if (l >= 0) +- printf(" %-*s at 0 range %2d .. %2d;\n", width, nap[i].name, +- low - bias, high - bias); +- } +- if (mask != 0) +- { +- l = find_pos((char *)&mask, sizeof(mask), &low, &high); +- if (l >= 0) +- printf(" %-*s at 0 range %2d .. %2d;\n", width, unused_name, +- low - bias, high - bias); +- } +- i = 1; +- n = cnt; ++ if (nap[i].attr) ++ { ++ if (find_pos((const UCHAR *)(&(nap[i].attr)) + bias, len, &low, &high)) ++ printf(" %-*s at 0 range %2d .. %2d;\n", width, nap[i].name, ++ low, high); ++ } + printf(" end record;\n"); ++ printf(" pragma Warnings (Off);"); + printf(" for %s'Size use %d;\n", name, len_bits); ++ printf(" pragma Warnings (On);\n"); + printf(" -- Please note: this rep. clause is generated and may be\n"); + printf(" -- different on your system."); + } +@@ -207,10 +177,9 @@ + { + attr_t x = (attr_t)-1; + attr_t t = x & mask; +- int low, high; +- int l = find_pos((char *)&t, sizeof(t), &low, &high); ++ UINT low, high; + +- if (l >= 0) ++ if (find_pos((const UCHAR *)(&t), sizeof(t), &low, &high)) + printf(" %-5s at 0 range %2d .. %2d;\n", name, low, high); + } + +@@ -231,10 +200,9 @@ + static void + mrep_rep(const char *name, void *rec) + { +- int low, high; +- int l = find_pos((char *)rec, sizeof(MEVENT), &low, &high); ++ UINT low, high; + +- if (l >= 0) ++ if (find_pos((const UCHAR *)rec, sizeof(MEVENT), &low, &high)) + printf(" %-7s at 0 range %3d .. %3d;\n", name, low, high); + } + +@@ -278,54 +246,26 @@ + * 1999-2000), the ifdef's also were needed since the proposed bit-layout + * for wide characters allocated 16-bits for A_CHARTEXT, leaving too few + * bits for a few of the A_xxx symbols. ++ * Some preprocessors are not able to test the values because they ++ * now (2014) contain an explicit cast to chtype, so we avoid ifdef. + */ + static const name_attribute_pair nap[] = + { +-#if A_STANDOUT + {"Stand_Out", A_STANDOUT}, +-#endif +-#if A_UNDERLINE + {"Under_Line", A_UNDERLINE}, +-#endif +-#if A_REVERSE + {"Reverse_Video", A_REVERSE}, +-#endif +-#if A_BLINK + {"Blink", A_BLINK}, +-#endif +-#if A_DIM + {"Dim_Character", A_DIM}, +-#endif +-#if A_BOLD + {"Bold_Character", A_BOLD}, +-#endif +-#if A_ALTCHARSET + {"Alternate_Character_Set", A_ALTCHARSET}, +-#endif +-#if A_INVIS + {"Invisible_Character", A_INVIS}, +-#endif +-#if A_PROTECT + {"Protected_Character", A_PROTECT}, +-#endif +-#if A_HORIZONTAL + {"Horizontal", A_HORIZONTAL}, +-#endif +-#if A_LEFT + {"Left", A_LEFT}, +-#endif +-#if A_LOW + {"Low", A_LOW}, +-#endif +-#if A_RIGHT + {"Right", A_RIGHT}, +-#endif +-#if A_TOP + {"Top", A_TOP}, +-#endif +-#if A_VERTICAL + {"Vertical", A_VERTICAL}, +-#endif + {(char *)0, 0} + }; + chtype attr = A_ATTRIBUTES & ~A_COLOR; +@@ -348,7 +288,9 @@ + } + attr = attr >> 1; + } +- gen_reps(nap, name, (len + 7) / 8, little_endian ? start : 0); ++ gen_reps(nap, name, ++ (UINT) ((len + 7) / 8), ++ (UINT) (little_endian ? start >> 3 : 0)); + } + + static void +@@ -371,7 +313,9 @@ + {"Attributes_And_Colors", TRACE_ATTRS}, + {(char *)0, 0} + }; +- gen_reps(nap, name, sizeof(int), 0); ++ ++ gen_reps(nap, name, sizeof(UINT), ++ little_endian ? 0 : sizeof(nap[0].attr) - sizeof(UINT)); + } + + static void +@@ -399,7 +343,9 @@ + #endif + {(char *)0, 0} + }; +- gen_reps(nap, name, sizeof(int), 0); ++ ++ gen_reps(nap, name, sizeof(Menu_Options), ++ little_endian ? 0 : sizeof(nap[0].attr) - sizeof(Menu_Options)); + } + + static void +@@ -412,7 +358,9 @@ + #endif + {(char *)0, 0} + }; +- gen_reps(nap, name, sizeof(int), 0); ++ ++ gen_reps(nap, name, sizeof(Item_Options), ++ little_endian ? 0 : sizeof(nap[0].attr) - sizeof(Item_Options)); + } + + static void +@@ -428,7 +376,9 @@ + #endif + {(char *)0, 0} + }; +- gen_reps(nap, name, sizeof(int), 0); ++ ++ gen_reps(nap, name, sizeof(Form_Options), ++ little_endian ? 0 : sizeof(nap[0].attr) - sizeof(Form_Options)); + } + + /* +@@ -471,7 +421,9 @@ + #endif + {(char *)0, 0} + }; +- gen_reps(nap, name, sizeof(int), 0); ++ ++ gen_reps(nap, name, sizeof(Field_Options), ++ little_endian ? 0 : sizeof(nap[0].attr) - sizeof(Field_Options)); + } + + /* +diff -Naur ncurses-5.9/Ada95/gen/Makefile.in ncurses-5.9.patch/Ada95/gen/Makefile.in +--- ncurses-5.9/Ada95/gen/Makefile.in 2011-03-27 00:36:30.000000000 +0100 ++++ ncurses-5.9.patch/Ada95/gen/Makefile.in 2014-09-01 16:33:22.224791904 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2011,2012 Free 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.74 2011/03/26 23:36:30 tom Exp $ ++# $Id: Makefile.in,v 1.77 2012/10/06 18:58:48 tom Exp $ + # + .SUFFIXES: + +@@ -36,7 +36,7 @@ + VPATH = @srcdir@ + THIS = Makefile + +-x = @PROG_EXT@ ++x = @EXEEXT@ + + top_srcdir = @top_srcdir@ + DESTDIR = @DESTDIR@ +@@ -73,7 +73,7 @@ + LOCAL_LIBDIR = @top_builddir@/lib + + LINK = $(HOST_CC) +-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_ARGS2@ ++LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @TINFO_LDFLAGS2@ @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_LIBS@ + + RANLIB = @RANLIB@ + +@@ -179,7 +179,7 @@ + -rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG) + + $(PROG_GENERATE): gen.o +- @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ ++ @ECHO_LD@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ + + gen.o: $(srcdir)/gen.c + $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c +@@ -411,7 +411,7 @@ + @mkdir -p $(HTML_DIR) + cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb] + @USE_OLD_MAKERULES@ ln -sf ../src/*.ali . +-@USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali . ++@USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali . + @echo "Filtering generated files" + @for f in $(GEN_SRC); do \ + h=`basename $$f` ;\ +diff -Naur ncurses-5.9/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 ncurses-5.9.patch/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 +--- ncurses-5.9/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 2011-03-19 00:10:43.000000000 +0100 ++++ ncurses-5.9.patch/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 2014-09-01 16:33:22.225791905 +0200 +@@ -38,7 +38,7 @@ + ------------------------------------------------------------------------------ + -- Author: Juergen Pfeifer, 1996 + -- Version Control: +--- $Revision: 1.16 $ ++-- $Revision: 1.17 $ + -- Binding Version 01.00 + ------------------------------------------------------------------------------ + with Interfaces.C; +diff -Naur ncurses-5.9/Ada95/include/ncurses_defs ncurses-5.9.patch/Ada95/include/ncurses_defs +--- ncurses-5.9/Ada95/include/ncurses_defs 2008-11-16 01:19:59.000000000 +0100 ++++ ncurses-5.9.patch/Ada95/include/ncurses_defs 2014-09-01 16:33:22.225791905 +0200 +@@ -1,6 +1,6 @@ +-# $Id: ncurses_defs,v 1.41 2008/11/16 00:19:59 juergen Exp $ ++# $Id: ncurses_defs,v 1.44 2013/04/27 19:50:17 tom Exp $ + ############################################################################## +-# Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. # ++# Copyright (c) 2000-2012,2013 Free 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,6 @@ + + BROKEN_LINKER + BSD_TPUTS +-CC_HAS_PROTOS + CPP_HAS_PARAM_INIT + CURSES_ACS_ARRAY acs_map + CURSES_WACS_ARRAY _nc_wacs +@@ -120,7 +119,6 @@ + HAVE_SIZECHANGE + HAVE_SLK_COLOR + HAVE_SLK_INIT 1 +-HAVE_STRDUP + HAVE_STRSTR + HAVE_SYMLINK + HAVE_SYS_BSDTYPES_H +@@ -174,7 +172,6 @@ + NEED_PTEM_H + NO_LEAKS + PURE_TERMINFO +-RETSIGTYPE + STDC_HEADERS + SVR4_ACTION + SVR4_TERMIO +diff -Naur ncurses-5.9/Ada95/make-tar.sh ncurses-5.9.patch/Ada95/make-tar.sh +--- ncurses-5.9/Ada95/make-tar.sh 2011-03-26 20:07:38.000000000 +0100 ++++ ncurses-5.9.patch/Ada95/make-tar.sh 2014-09-01 16:33:22.226791906 +0200 +@@ -1,7 +1,7 @@ + #!/bin/sh +-# $Id: make-tar.sh,v 1.12 2011/03/26 19:07:38 tom Exp $ ++# $Id: make-tar.sh,v 1.14 2013/10/26 23:10:24 tom Exp $ + ############################################################################## +-# Copyright (c) 2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 2010-2011,2013 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -66,11 +66,11 @@ + make_changelog() { + test -f $1 && chmod u+w $1 + cat >$1 < + ++ + + + + ++ "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org"> + + Announcing ncurses @VERSION@ + +@@ -42,12 +42,13 @@ + + + +-

Announcing ncurses @VERSION@

The ncurses (new curses) +- library is a free software emulation of curses in System V +- Release 4.0, and more. It uses terminfo format, supports pads and +- color and multiple highlights and forms characters and +- function-key mapping, and has all the other SYSV-curses +- enhancements over BSD curses. ++

Announcing ncurses @VERSION@

++ ++

The ncurses (new curses) library is a free software emulation ++ of curses in System V Release 4.0, and more. It uses terminfo ++ format, supports pads and color and multiple highlights and forms ++ characters and function-key mapping, and has all the other ++ SYSV-curses enhancements over BSD curses.

+ +

In mid-June 1995, the maintainer of 4.4BSD curses declared + that he considered 4.4BSD curses obsolete, and encouraged the +@@ -73,38 +74,50 @@ + It is also available at ftp://invisible-island.net/ncurses/ .

+ +-

Release Notes

This release is designed to be upward +- compatible from ncurses 5.0 through 5.8; very few applications +- will require recompilation, depending on the platform. These are +- the highlights from the change-log since ncurses 5.8 release. +-

+- This is a bug-fix release, correcting a small number of urgent problems +- in the ncurses library from the 5.8 release. +-

+- It also improves the Ada95 binding: ++

Release Notes

++ ++

This release is designed to be upward compatible from ncurses ++ 5.0 through 5.8; very few applications will require ++ recompilation, depending on the platform. These are the ++ highlights from the change-log since ncurses 5.8 release.

++ ++

This is a bug-fix release, correcting a small number of urgent ++ problems in the ncurses library from the 5.8 release.

++ ++

It also improves the Ada95 binding:

++ +
    +-
  • fixes a longstanding portability problem with its use of the +- set_field_type +- function. Because that function uses variable-length argument lists, +- its interface with gnat does not work with certain platforms. +-
  • improves configurability and portability, particularly when built +- separately from the main ncurses tree. The 5.8 release introduced +- scripts which can be used to construct separate tarballs for the +- Ada95 and ncurses examples. +-

    Those were a proof of concept. For the 5.9 release, those +- scripts are augmented with rpm- and dpkg-scripts used in test builds +- against a variety of gnat- and system ncurses versions as old as +- gnat 3.15 and ncurses 5.4 (see snapshots and systems tested +- here. +-

  • additional improvements were made for portability of the +- ncurses examples, adding rpm- and dpkg-scripts for test-builds. +- See +- this page +- for snapshots and other information. ++
  • fixes a longstanding portability problem with its use of ++ the set_field_type ++ function. Because that function uses variable-length argument ++ lists, its interface with gnat does not work with certain ++ platforms.
  • ++ ++
  • improves configurability and portability, particularly when ++ built separately from the main ncurses tree. The 5.8 release ++ introduced scripts which can be used to construct separate ++ tarballs for the Ada95 and ncurses examples. ++ ++

    Those were a proof of concept. For the 5.9 release, those ++ scripts are augmented with rpm- and dpkg-scripts used in test ++ builds against a variety of gnat- and system ncurses versions ++ as old as gnat 3.15 and ncurses 5.4 (see snapshots and ++ systems tested here.

    ++
  • ++ ++
  • additional improvements were made for portability of the ++ ncurses examples, adding rpm- and dpkg-scripts for test-builds. ++ See this ++ page for snapshots and other information.
  • +
+ +-

Features of Ncurses

The ncurses package is fully +- compatible with SVr4 (System V Release 4) curses: ++

Features of Ncurses

++ ++

The ncurses package is fully compatible with SVr4 (System V ++ Release 4) curses:

+ +
    +
  • All 257 of the SVr4 calls have been implemented (and are +@@ -132,8 +145,10 @@ + entries for use with less capable + curses/terminfo versions such + as the HP/UX and AIX ports.
  • +-
The ncurses package also has many useful extensions over +- SVr4: ++ ++ ++

The ncurses package also has many useful extensions over ++ SVr4:

+ +
    +
  • The API is 8-bit clean and base-level conformant with the +@@ -249,12 +264,14 @@ + interface.
  • +
+ +-

State of the Package

Numerous bugs present in earlier +- versions have been fixed; the library is far more reliable than +- it used to be. Bounds checking in many `dangerous' entry points +- has been improved. The code is now type-safe according to gcc +- -Wall. The library has been checked for malloc leaks and arena +- corruption by the Purify memory-allocation tester. ++

State of the Package

++ ++

Numerous bugs present in earlier versions have been fixed; the ++ library is far more reliable than it used to be. Bounds checking ++ in many `dangerous' entry points has been improved. The code is ++ now type-safe according to gcc -Wall. The library has been ++ checked for malloc leaks and arena corruption by the Purify ++ memory-allocation tester.

+ +

The ncurses code has been tested with a wide variety of + applications including (versions starting with those noted):

+@@ -321,8 +338,10 @@ + +
newsreader, supporting color, MIME http://www.tin.org/
+- as well as some that use ncurses for the terminfo support +- alone: ++ ++ ++

as well as some that use ncurses for the terminfo support ++ alone:

+ +
+
minicom
+@@ -341,15 +360,17 @@ +

The ncurses distribution includes a selection of test programs + (including a few games).

+ +-

Who's Who and What's What

Zeyd Ben-Halim started it from +- a previous package pcurses, written by Pavel Curtis. Eric S. +- Raymond continued development. Jürgen Pfeifer wrote most of +- the form and menu libraries. Ongoing work is being done by +- Thomas Dickey. +- Thomas Dickey acts as the maintainer for the Free Software +- Foundation, which holds the copyright on ncurses. Contact the +- current maintainers at bug-ncurses@gnu.org. ++

Who's Who and What's What

++ ++

Zeyd Ben-Halim started it from a previous package pcurses, ++ written by Pavel Curtis. Eric S. Raymond continued development. ++ Jürgen Pfeifer wrote most of the form and menu libraries. ++ Ongoing work is being done by Thomas Dickey. Thomas ++ Dickey acts as the maintainer for the Free Software Foundation, ++ which holds the copyright on ncurses. Contact the current ++ maintainers at bug-ncurses@gnu.org.

+ +

To join the ncurses mailing list, please write email to + bug-ncurses-request@gnu.org containing the line:

+@@ -364,6 +385,13 @@ + are made available at ftp://invisible-island.net/ncurses/ .

+ ++

There is an archive of the mailing list here:

++ ++

http://lists.gnu.org/archive/html/bug-ncurses ++ (also https)

++ +

Future Plans

+ +
    +@@ -371,15 +399,19 @@ + support. + +
  • Ports to more systems, including DOS and Windows.
  • +-
We need people to help with these projects. If you are +- interested in working on them, please join the ncurses list. ++ ++ ++

We need people to help with these projects. If you are ++ interested in working on them, please join the ncurses list.

++ ++

Other Related Resources

+ +-

Other Related Resources

The distribution provides a newer +- version of the terminfo-format terminal description file once +- maintained by Eric ++

The distribution provides a newer version of the ++ terminfo-format terminal description file once maintained by ++ Eric + Raymond . Unlike the older version, the termcap and + terminfo data are provided in the same file, and provides several +- user-definable extensions beyond the X/Open specification. ++ user-definable extensions beyond the X/Open specification.

+ +

You can find lots of information on terminal-related topics + not covered in the terminfo file at (COLOR_PAIR(1)) : A_BOLD; + } + + // Attributes to use for menu and forms backgrounds + virtual chtype backgrounds() const { +- return b_Colors ? COLOR_PAIR(2) : A_NORMAL; ++ return b_Colors ? static_cast(COLOR_PAIR(2)) : A_NORMAL; + } + + // Attributes to use for inactive (menu) elements + virtual chtype inactives() const { +- return b_Colors ? (COLOR_PAIR(3)|A_DIM) : A_DIM; ++ return b_Colors ? static_cast(COLOR_PAIR(3)|A_DIM) : A_DIM; + } + + // Attributes to use for (form) labels and SLKs + virtual chtype labels() const { +- return b_Colors ? COLOR_PAIR(4) : A_NORMAL; ++ return b_Colors ? static_cast(COLOR_PAIR(4)) : A_NORMAL; + } + + // Attributes to use for form backgrounds + virtual chtype dialog_backgrounds() const { +- return b_Colors ? COLOR_PAIR(4) : A_NORMAL; ++ return b_Colors ? static_cast(COLOR_PAIR(4)) : A_NORMAL; + } + + // Attributes to use as default for (form) window backgrounds + virtual chtype window_backgrounds() const { +- return b_Colors ? COLOR_PAIR(5) : A_NORMAL; ++ return b_Colors ? static_cast(COLOR_PAIR(5)) : A_NORMAL; + } + + // Attributes to use for the title window + virtual chtype screen_titles() const { +- return b_Colors ? COLOR_PAIR(6) : A_BOLD; ++ return b_Colors ? static_cast(COLOR_PAIR(6)) : A_BOLD; + } + + }; +diff -Naur ncurses-5.9/c++/cursesf.cc ncurses-5.9.patch/c++/cursesf.cc +--- ncurses-5.9/c++/cursesf.cc 2005-08-13 20:09:06.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursesf.cc 2014-09-01 16:33:22.238791926 +0200 +@@ -1,6 +1,6 @@ + // * this is for making emacs happy: -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -35,7 +35,7 @@ + #include "cursesf.h" + #include "cursesapp.h" + +-MODULE_ID("$Id: cursesf.cc,v 1.21 2005/08/13 18:09:06 tom Exp $") ++MODULE_ID("$Id: cursesf.cc,v 1.22 2011/09/17 22:12:10 tom Exp $") + + NCursesFormField::~NCursesFormField () + { +@@ -234,11 +234,13 @@ + void + NCursesForm::On_Field_Init(NCursesFormField& field) + { ++ (void) field; + } + + void + NCursesForm::On_Field_Termination(NCursesFormField& field) + { ++ (void) field; + } + + // call the form driver and do basic error checking. +@@ -260,16 +262,19 @@ + + void NCursesForm::On_Request_Denied(int c) const + { ++ (void) c; + ::beep(); + } + + void NCursesForm::On_Invalid_Field(int c) const + { ++ (void) c; + ::beep(); + } + + void NCursesForm::On_Unknown_Command(int c) const + { ++ (void) c; + ::beep(); + } + +@@ -373,6 +378,7 @@ + // + bool _nc_xx_fld_fcheck(FIELD *f, const void *u) + { ++ (void) f; + NCursesFormField* F = reinterpret_cast(const_cast(u)); + assert(F != 0); + UserDefinedFieldType* udf = reinterpret_cast(F->fieldtype()); +@@ -405,6 +411,7 @@ + + bool _nc_xx_next_choice(FIELD *f, const void *u) + { ++ (void) f; + NCursesFormField* F = reinterpret_cast(const_cast(u)); + assert(F != 0); + UserDefinedFieldType_With_Choice* udf = +@@ -415,6 +422,7 @@ + + bool _nc_xx_prev_choice(FIELD *f, const void *u) + { ++ (void) f; + NCursesFormField* F = reinterpret_cast(const_cast(u)); + assert(F != 0); + UserDefinedFieldType_With_Choice* udf = +diff -Naur ncurses-5.9/c++/cursesf.h ncurses-5.9.patch/c++/cursesf.h +--- ncurses-5.9/c++/cursesf.h 2005-08-13 20:08:24.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursesf.h 2014-09-01 16:33:22.239791928 +0200 +@@ -1,6 +1,6 @@ + // * This makes emacs happy -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -31,7 +31,7 @@ + * Author: Juergen Pfeifer, 1997 * + ****************************************************************************/ + +-// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $ ++// $Id: cursesf.h,v 1.31 2012/12/29 21:49:58 tom Exp $ + + #ifndef NCURSES_CURSESF_H_incl + #define NCURSES_CURSESF_H_incl 1 +@@ -61,7 +61,7 @@ + protected: + FIELDTYPE* fieldtype; + +- inline void OnError(int err) const THROWS(NCursesFormException) { ++ inline void OnError(int err) const THROW2(NCursesException const, NCursesFormException) { + if (err!=E_OK) + THROW(new NCursesFormException (err)); + } +@@ -109,7 +109,7 @@ + NCursesFieldType* ftype; // Associated field type + + // Error handler +- inline void OnError (int err) const THROWS(NCursesFormException) { ++ inline void OnError (int err) const THROW2(NCursesException const, NCursesFormException) { + if (err != E_OK) + THROW(new NCursesFormException (err)); + } +@@ -391,7 +391,7 @@ + bool with_frame, + bool autoDeleteFields); + +- inline void OnError (int err) const THROWS(NCursesFormException) { ++ inline void OnError (int err) const THROW2(NCursesException const, NCursesFormException) { + if (err != E_OK) + THROW(new NCursesFormException (err)); + } +@@ -677,7 +677,7 @@ + } + + public: +- NCursesUserForm (NCursesFormField Fields[], ++ NCursesUserForm (NCursesFormField* Fields[], + const T* p_UserData = STATIC_CAST(T*)(0), + bool with_frame=FALSE, + bool autoDelete_Fields=FALSE) +@@ -686,7 +686,7 @@ + set_user (const_cast(p_UserData)); + }; + +- NCursesUserForm (NCursesFormField Fields[], ++ NCursesUserForm (NCursesFormField* Fields[], + int nlines, + int ncols, + int begin_y = 0, +diff -Naur ncurses-5.9/c++/cursesmain.cc ncurses-5.9.patch/c++/cursesmain.cc +--- ncurses-5.9/c++/cursesmain.cc 2007-04-07 19:10:11.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursesmain.cc 2014-09-01 16:33:22.239791928 +0200 +@@ -1,6 +1,6 @@ + // * this is for making emacs happy: -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2007,2013 Free 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,13 +35,15 @@ + #include "cursesapp.h" + + #if CPP_HAS_TRY_CATCH && HAVE_IOSTREAM ++#pragma GCC diagnostic ignored "-Weffc++" + #include ++#pragma GCC diagnostic warning "-Weffc++" + #else + #undef CPP_HAS_TRY_CATCH + #define CPP_HAS_TRY_CATCH 0 + #endif + +-MODULE_ID("$Id: cursesmain.cc,v 1.14 2007/04/07 17:10:11 tom Exp $") ++MODULE_ID("$Id: cursesmain.cc,v 1.15 2013/09/28 20:56:47 tom Exp $") + + #if HAVE_LOCALE_H + #include +diff -Naur ncurses-5.9/c++/cursesm.cc ncurses-5.9.patch/c++/cursesm.cc +--- ncurses-5.9/c++/cursesm.cc 2005-04-02 22:39:05.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursesm.cc 2014-09-01 16:33:22.239791928 +0200 +@@ -1,6 +1,6 @@ + // * this is for making emacs happy: -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -35,7 +35,7 @@ + #include "cursesm.h" + #include "cursesapp.h" + +-MODULE_ID("$Id: cursesm.cc,v 1.22 2005/04/02 20:39:05 tom Exp $") ++MODULE_ID("$Id: cursesm.cc,v 1.23 2011/09/17 22:11:32 tom Exp $") + + NCursesMenuItem::~NCursesMenuItem() + { +@@ -375,33 +375,39 @@ + void + NCursesMenu::On_Item_Init(NCursesMenuItem& item) + { ++ (void) item; + } + + void + NCursesMenu::On_Item_Termination(NCursesMenuItem& item) + { ++ (void) item; + } + + void + NCursesMenu::On_Request_Denied(int c) const + { ++ (void) c; + ::beep(); + } + + void + NCursesMenu::On_Not_Selectable(int c) const + { ++ (void) c; + ::beep(); + } + + void + NCursesMenu::On_No_Match(int c) const + { ++ (void) c; + ::beep(); + } + + void + NCursesMenu::On_Unknown_Command(int c) const + { ++ (void) c; + ::beep(); + } +diff -Naur ncurses-5.9/c++/cursesm.h ncurses-5.9.patch/c++/cursesm.h +--- ncurses-5.9/c++/cursesm.h 2005-08-13 20:10:36.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursesm.h 2014-09-01 16:33:22.239791928 +0200 +@@ -1,6 +1,6 @@ + // * This makes emacs happy -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -31,7 +31,7 @@ + * Author: Juergen Pfeifer, 1997 * + ****************************************************************************/ + +-// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $ ++// $Id: cursesm.h,v 1.29 2012/12/29 21:48:33 tom Exp $ + + #ifndef NCURSES_CURSESM_H_incl + #define NCURSES_CURSESM_H_incl 1 +@@ -53,7 +53,7 @@ + protected: + ITEM *item; + +- inline void OnError (int err) const THROWS(NCursesMenuException) { ++ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) { + if (err != E_OK) + THROW(new NCursesMenuException (err)); + } +@@ -82,6 +82,7 @@ + NCursesMenuItem(const NCursesMenuItem& rhs) + : item(0) + { ++ (void) rhs; + } + + virtual ~NCursesMenuItem (); +@@ -252,7 +253,7 @@ + bool with_frame, + bool autoDeleteItems); + +- inline void OnError (int err) const THROWS(NCursesMenuException) { ++ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) { + if (err != E_OK) + THROW(new NCursesMenuException (this, err)); + } +@@ -635,7 +636,7 @@ + } + + public: +- NCursesUserMenu (NCursesMenuItem Items[], ++ NCursesUserMenu (NCursesMenuItem* Items[], + const T* p_UserData = STATIC_CAST(T*)(0), + bool with_frame=FALSE, + bool autoDelete_Items=FALSE) +@@ -644,7 +645,7 @@ + set_user (const_cast(p_UserData)); + }; + +- NCursesUserMenu (NCursesMenuItem Items[], ++ NCursesUserMenu (NCursesMenuItem* Items[], + int nlines, + int ncols, + int begin_y = 0, +diff -Naur ncurses-5.9/c++/cursespad.cc ncurses-5.9.patch/c++/cursespad.cc +--- ncurses-5.9/c++/cursespad.cc 2008-08-04 20:59:22.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursespad.cc 2014-09-01 16:33:22.240791930 +0200 +@@ -1,6 +1,6 @@ + // * this is for making emacs happy: -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,10 +33,9 @@ + + #include "internal.h" + +-#include + #include + +-MODULE_ID("$Id: cursespad.cc,v 1.13 2008/08/04 18:59:22 tom Exp $") ++MODULE_ID("$Id: cursespad.cc,v 1.17 2013/03/30 19:45:36 tom Exp $") + + NCursesPad::NCursesPad(int nlines, int ncols) + : NCursesWindow(), +@@ -220,6 +219,7 @@ + + void NCursesFramedPad::OnOperation(int pad_req) + { ++ (void) pad_req; + NCursesWindow* W = Win(); + NCursesWindow* W2 = getWindow(); + +@@ -228,25 +228,45 @@ + int Height = W->height(); + int i, row, col, h_len, v_len; + +- h_len = (Width*Width + width() - 1)/width(); +- if (h_len==0) ++ int my_width = width(); ++ ++ if (my_width != 0) { ++ h_len = (Width*Width + my_width - 1) / my_width; ++ if (h_len==0) ++ h_len = 1; ++ if (h_len > Width) ++ h_len = Width; ++ } else { + h_len = 1; +- if (h_len > Width) +- h_len = Width; ++ } + +- v_len = (Height*Height + height() - 1)/height(); +- if (v_len==0) ++ int my_height = height(); ++ ++ if (my_height != 0) { ++ v_len = (Height*Height + my_height - 1) / my_height; ++ if (v_len==0) ++ v_len = 1; ++ if (v_len > Height) ++ v_len = Height; ++ } else { + v_len = 1; +- if (v_len > Height) +- v_len = Height; ++ } + +- col = (min_col * Width + width() - 1) / width(); +- if (col + h_len > Width) +- col = Width - h_len; +- +- row = (min_row * Height + height() - 1) / height(); +- if (row + v_len > Height) +- row = Height - v_len; ++ if (my_width != 0) { ++ col = (min_col * Width + my_width - 1) / my_width; ++ if (col + h_len > Width) ++ col = Width - h_len; ++ } else { ++ col = 0; ++ } ++ ++ if (my_height != 0) { ++ row = (min_row * Height + my_height - 1) / my_height; ++ if (row + v_len > Height) ++ row = Height - v_len; ++ } else { ++ row = 0; ++ } + + W2->vline(1,Width+1,Height); + W2->attron(A_REVERSE); +diff -Naur ncurses-5.9/c++/cursesp.h ncurses-5.9.patch/c++/cursesp.h +--- ncurses-5.9/c++/cursesp.h 2008-08-16 19:20:23.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursesp.h 2014-09-01 16:33:22.240791930 +0200 +@@ -1,6 +1,6 @@ + // * This makes emacs happy -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2008,2012 Free 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 @@ + #ifndef NCURSES_CURSESP_H_incl + #define NCURSES_CURSESP_H_incl 1 + +-// $Id: cursesp.h,v 1.29 2008/08/16 17:20:23 tom Exp $ ++// $Id: cursesp.h,v 1.30 2012/12/29 21:50:55 tom Exp $ + + #include + +@@ -86,7 +86,7 @@ + return result; + } + +- void OnError (int err) const THROWS(NCursesPanelException) ++ void OnError (int err) const THROW2(NCursesException const, NCursesPanelException) + { + if (err==ERR) + THROW(new NCursesPanelException (this, err)); +diff -Naur ncurses-5.9/c++/cursesw.cc ncurses-5.9.patch/c++/cursesw.cc +--- ncurses-5.9/c++/cursesw.cc 2009-03-28 22:31:37.000000000 +0100 ++++ ncurses-5.9.patch/c++/cursesw.cc 2014-09-01 16:33:22.240791930 +0200 +@@ -1,6 +1,6 @@ + // * this is for making emacs happy: -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2007-2012,2014 Free 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.51 2009/03/28 21:31:37 tom Exp $") ++MODULE_ID("$Id: cursesw.cc,v 1.54 2014/02/01 22:10:42 tom Exp $") + + #define COLORS_NEED_INITIALIZATION -1 + #define COLORS_NOT_INITIALIZED 0 +@@ -192,7 +192,6 @@ + constructing(); + + w = static_cast(0); +- set_keyboard(); + } + + NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x) +@@ -285,12 +284,14 @@ + NCursesWindow::NCursesWindow(WINDOW *win, int ncols) + : w(0), alloced(FALSE), par(0), subwins(0), sib(0) + { ++ (void) ncols; + initialize(); + w = win; + } + + int _nc_xx_ripoff_init(WINDOW *w, int ncols) + { ++ (void) ncols; + int res = ERR; + + RIPOFFINIT init = *prip++; +@@ -400,16 +401,16 @@ + } + } + +-short ++NCURSES_PAIRS_T + NCursesWindow::getPair() const + { +- return static_cast(PAIR_NUMBER(getattrs(w))); ++ return static_cast(PAIR_NUMBER(getattrs(w))); + } + +-short ++NCURSES_COLOR_T + NCursesWindow::getcolor(int getback) const + { +- short fore, back; ++ NCURSES_COLOR_T fore, back; + + if (HaveColors()) { + if (::pair_content(getPair(), &fore, &back) == ERR) +@@ -427,27 +428,27 @@ + return (HaveColors()) ? COLORS : 1; + } + +-short ++NCURSES_PAIRS_T + NCursesWindow::getcolor() const + { + return (HaveColors()) ? getPair() : 0; + } + + int +-NCursesWindow::setpalette(short fore, short back, short pair) ++NCursesWindow::setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back, NCURSES_PAIRS_T pair) + { + return (HaveColors()) ? ::init_pair(pair, fore, back) : OK; + } + + int +-NCursesWindow::setpalette(short fore, short back) ++NCursesWindow::setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back) + { + return setpalette(fore, back, getPair()); + } + + + int +-NCursesWindow::setcolor(short pair) ++NCursesWindow::setcolor(NCURSES_PAIRS_T pair) + { + if (HaveColors()) { + if ((pair < 1) || (pair > COLOR_PAIRS)) +diff -Naur ncurses-5.9/c++/cursesw.h ncurses-5.9.patch/c++/cursesw.h +--- ncurses-5.9/c++/cursesw.h 2008-01-19 22:09:10.000000000 +0100 ++++ ncurses-5.9.patch/c++/cursesw.h 2014-09-01 16:33:22.241791932 +0200 +@@ -1,7 +1,7 @@ + // * This makes emacs happy -*-Mode: C++;-*- + // vile:cppmode + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -31,7 +31,7 @@ + #ifndef NCURSES_CURSESW_H_incl + #define NCURSES_CURSESW_H_incl 1 + +-// $Id: cursesw.h,v 1.48 2008/01/19 21:09:10 tom Exp $ ++// $Id: cursesw.h,v 1.50 2014/02/01 22:17:37 tom Exp $ + + #include + +@@ -118,7 +118,7 @@ + #endif + + #ifdef chgat +-inline int UNDEF(chgat)(int n, attr_t attr, short color, const void *opts) { ++inline int UNDEF(chgat)(int n, attr_t attr, NCURSES_PAIRS_T color, const void *opts) { + return chgat(n, attr, color, opts); } + #undef chgat + #define chgat UNDEF(chgat) +@@ -151,7 +151,7 @@ + #endif + + #ifdef color_set +-inline chtype UNDEF(color_set)(short p, void* opts) { return color_set(p, opts); } ++inline chtype UNDEF(color_set)(NCURSES_PAIRS_T p, void* opts) { return color_set(p, opts); } + #undef color_set + #define color_set UNDEF(color_set) + #endif +@@ -361,7 +361,7 @@ + + #ifdef mvchgat + inline int UNDEF(mvchgat)(int y, int x, int n, +- attr_t attr, short color, const void *opts) { ++ attr_t attr, NCURSES_PAIRS_T color, const void *opts) { + return mvchgat(y, x, n, attr, color, opts); } + #undef mvchgat + #define mvchgat UNDEF(mvchgat) +@@ -463,7 +463,7 @@ + + #ifdef mvwchgat + inline int UNDEF(mvwchgat)(WINDOW *win, int y, int x, int n, +- attr_t attr, short color, const void *opts) { ++ attr_t attr, NCURSES_PAIRS_T color, const void *opts) { + return mvwchgat(win, y, x, n, attr, color, opts); } + #undef mvwchgat + #define mvwchgat UNDEF(mvwchgat) +@@ -763,10 +763,10 @@ + + void set_keyboard(); + +- short getcolor(int getback) const; +- short getPair() const; ++ NCURSES_COLOR_T getcolor(int getback) const; ++ NCURSES_PAIRS_T getPair() const; + +- static int setpalette(short fore, short back, short pair); ++ static int setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back, NCURSES_PAIRS_T pair); + static int colorInitialized; + + // This private constructor is only used during the initialization +@@ -896,19 +896,19 @@ + int maxy() const { return getmaxy(w) == ERR ? ERR : getmaxy(w)-1; } + // Largest y coord in window + +- short getcolor() const; ++ NCURSES_PAIRS_T getcolor() const; + // Actual color pair + +- short foreground() const { return getcolor(0); } ++ NCURSES_COLOR_T foreground() const { return getcolor(0); } + // Actual foreground color + +- short background() const { return getcolor(1); } ++ NCURSES_COLOR_T background() const { return getcolor(1); } + // Actual background color + +- int setpalette(short fore, short back); ++ int setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back); + // Set color palette entry + +- int setcolor(short pair); ++ int setcolor(NCURSES_PAIRS_T pair); + // Set actually used palette entry + + // ------------------------------------------------------------------------- +@@ -1107,18 +1107,18 @@ + chtype attrget() { return ::getattrs(w); } + // Get the window attributes; + +- int color_set(short color_pair_number, void* opts=NULL) { ++ int color_set(NCURSES_PAIRS_T color_pair_number, void* opts=NULL) { + return ::wcolor_set(w, color_pair_number, opts); } + // Set the window color attribute; + +- int chgat(int n, attr_t attr, short color, const void *opts=NULL) { ++ int chgat(int n, attr_t attr, NCURSES_PAIRS_T color, const void *opts=NULL) { + return ::wchgat(w, n, attr, color, opts); } + // Change the attributes of the next n characters in the current line. If + // n is negative or greater than the number of remaining characters in the + // line, the attributes will be changed up to the end of the line. + + int chgat(int y, int x, +- int n, attr_t attr, short color, const void *opts=NULL) { ++ int n, attr_t attr, NCURSES_PAIRS_T color, const void *opts=NULL) { + return ::mvwchgat(w, y, x, n, attr, color, opts); } + // Move the cursor to the requested position and then perform chgat() as + // described above. +@@ -1438,16 +1438,19 @@ + // The driver translates the keystroke c into an Pad_Request + + virtual void OnUnknownOperation(int pad_req) { ++ (void) pad_req; + ::beep(); + } + // This is called if the driver returns an unknown op-code + + virtual void OnNavigationError(int pad_req) { ++ (void) pad_req; + ::beep(); + } + // This is called if a navigation request couldn't be satisfied + + virtual void OnOperation(int pad_req) { ++ (void) pad_req; + }; + // OnOperation is called if a Pad_Operation was executed and just before + // the refresh() operation is done. +@@ -1542,11 +1545,15 @@ + } + + void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) { ++ (void) view; ++ (void) v_grid; ++ (void) h_grid; + err_handler("Operation not allowed"); + } + // Disable this call; the viewport is already defined + + void setSubWindow(NCursesWindow& sub) { ++ (void) sub; + err_handler("Operation not allowed"); + } + // Disable this call; the viewport subwindow is already defined +diff -Naur ncurses-5.9/c++/cursslk.cc ncurses-5.9.patch/c++/cursslk.cc +--- ncurses-5.9/c++/cursslk.cc 2005-08-07 00:12:36.000000000 +0200 ++++ ncurses-5.9.patch/c++/cursslk.cc 2014-09-01 16:33:22.241791932 +0200 +@@ -1,6 +1,6 @@ + // * this is for making emacs happy: -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2005,2012 Free 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,14 +35,15 @@ + #include "cursslk.h" + #include "cursesapp.h" + +-MODULE_ID("$Id: cursslk.cc,v 1.15 2005/08/06 22:12:36 tom Exp $") ++MODULE_ID("$Id: cursslk.cc,v 1.16 2012/02/23 10:41:56 tom Exp $") + + Soft_Label_Key_Set::Soft_Label_Key& + Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text) + { + delete[] label; +- label = new char[1 + ::strlen(text)]; +- (::strcpy)(label,text); ++ size_t need = 1 + ::strlen(text); ++ label = new char[need]; ++ ::_nc_STRCPY(label,text,need); + return *this; + } + +diff -Naur ncurses-5.9/c++/demo.cc ncurses-5.9.patch/c++/demo.cc +--- ncurses-5.9/c++/demo.cc 2008-12-07 03:07:34.000000000 +0100 ++++ ncurses-5.9.patch/c++/demo.cc 2014-09-01 16:33:22.241791932 +0200 +@@ -1,6 +1,6 @@ + // * This makes emacs happy -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 @@ + * Demo code for NCursesMenu and NCursesForm written by + * Juergen Pfeifer + * +- * $Id: demo.cc,v 1.39 2008/12/07 02:07:34 juergen Exp $ ++ * $Id: demo.cc,v 1.41 2012/02/23 10:41:56 tom Exp $ + */ + + #include "internal.h" +@@ -220,6 +220,7 @@ + int chk; + protected: + bool field_check(NCursesFormField& f) { ++ (void) f; + return TRUE; + } + bool char_check(int c) { +@@ -319,7 +320,7 @@ + for(int i=1; i <= S->labels(); i++) { + char buf[8]; + assert(i < 100); +- ::sprintf(buf, "Frm%02d", i); ++ ::_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "Frm%02d", i); + (*S)[i] = buf; // Text + (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification + } +@@ -539,7 +540,7 @@ + for(int i=1; i <= S.labels(); i++) { + char buf[8]; + assert(i < 100); +- ::sprintf(buf, "Key%02d", i); ++ ::_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "Key%02d", i); + S[i] = buf; // Text + S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification + } +diff -Naur ncurses-5.9/c++/etip.h.in ncurses-5.9.patch/c++/etip.h.in +--- ncurses-5.9/c++/etip.h.in 2008-08-30 21:27:32.000000000 +0200 ++++ ncurses-5.9.patch/c++/etip.h.in 2014-09-01 16:33:22.242791933 +0200 +@@ -1,6 +1,6 @@ + // * This makes emacs happy -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -31,7 +31,7 @@ + * Author: Juergen Pfeifer, 1997 * + ****************************************************************************/ + +-// $Id: etip.h.in,v 1.37 2008/08/30 19:27:32 tom Exp $ ++// $Id: etip.h.in,v 1.39 2012/12/29 21:50:44 tom Exp $ + + #ifndef NCURSES_ETIP_H_incl + #define NCURSES_ETIP_H_incl 1 +@@ -184,7 +184,7 @@ + + NCursesPanelException (const char *msg, int err) : + NCursesException (msg, err), +- p (NULL) ++ p (0) + {}; + + NCursesPanelException (const NCursesPanel* panel, +@@ -196,7 +196,7 @@ + + NCursesPanelException (int err) : + NCursesException ("panel library error", err), +- p (NULL) ++ p (0) + {}; + + NCursesPanelException (const NCursesPanel* panel, +@@ -235,7 +235,7 @@ + + NCursesMenuException (const char *msg, int err) : + NCursesException (msg, err), +- m (NULL) ++ m (0) + {}; + + NCursesMenuException (const NCursesMenu* menu, +@@ -247,7 +247,7 @@ + + NCursesMenuException (int err) : + NCursesException ("menu library error", err), +- m (NULL) ++ m (0) + {}; + + NCursesMenuException (const NCursesMenu* menu, +@@ -286,7 +286,7 @@ + + NCursesFormException (const char *msg, int err) : + NCursesException (msg, err), +- f (NULL) ++ f (0) + {}; + + NCursesFormException (const NCursesForm* form, +@@ -298,7 +298,7 @@ + + NCursesFormException (int err) : + NCursesException ("form library error", err), +- f (NULL) ++ f (0) + {}; + + NCursesFormException (const NCursesForm* form, +@@ -367,11 +367,13 @@ + #define NCURSES_CPP_TRY /* nothing */ + #define NCURSES_CPP_CATCH(e) if (false) + #define THROWS(s) /* nothing */ ++#define THROW2(s,t) /* nothing */ + #elif CPP_HAS_TRY_CATCH + throw *e; + #define NCURSES_CPP_TRY try + #define NCURSES_CPP_CATCH(e) catch(e) + #define THROWS(s) throw(s) ++#define THROW2(s,t) throw(s,t) + #endif + } + +diff -Naur ncurses-5.9/c++/internal.h ncurses-5.9.patch/c++/internal.h +--- ncurses-5.9/c++/internal.h 2008-12-07 03:07:34.000000000 +0100 ++++ ncurses-5.9.patch/c++/internal.h 2014-09-01 16:33:22.242791933 +0200 +@@ -1,6 +1,6 @@ + // * This makes emacs happy -*-Mode: C++;-*- + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2008,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -31,7 +31,7 @@ + * Author: Juergen Pfeifer, 1997 * + ****************************************************************************/ + +-// $Id: internal.h,v 1.17 2008/12/07 02:07:34 juergen Exp $ ++// $Id: internal.h,v 1.18 2012/02/23 10:41:56 tom Exp $ + + #ifndef NCURSES_CPLUS_INTERNAL_H + #define NCURSES_CPLUS_INTERNAL_H 1 +@@ -62,4 +62,6 @@ + #define NULL 0 + #endif + ++#include ++ + #endif /* NCURSES_CPLUS_INTERNAL_H */ +diff -Naur ncurses-5.9/c++/Makefile.in ncurses-5.9.patch/c++/Makefile.in +--- ncurses-5.9/c++/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/c++/Makefile.in 2014-09-01 16:33:22.237791925 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.93 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.106 2013/08/04 20:20:45 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -47,8 +47,12 @@ + srcdir = @srcdir@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL_CXX@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -65,6 +69,9 @@ + + AR = @AR@ + ARFLAGS = @ARFLAGS@ ++AWK = @AWK@ ++LD = @LD@ ++LN_S = @LN_S@ + + CXX_AR = @CXX_AR@ + CXX_ARFLAGS = @CXX_ARFLAGS@ +@@ -109,35 +116,41 @@ + LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.a + LIBNAME = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@ + +-MY_LIBRARY = ../lib/$(LIBNAME) ++LIBRARIES = @Libs_To_Make@ + + LINK_FLAGS = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@LIB_SUFFIX@ ++RPATH_LIST = @RPATH_LIST@ ++MK_SHARED_LIB = @MK_SHARED_LIB@ + +-LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(MY_LIBRARY) ++LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(LIBRARIES) + LINK_NORMAL = $(LINK_FLAGS) + LINK_DEBUG = $(LINK_FLAGS) + LINK_PROFILE = $(LINK_FLAGS) + LINK_SHARED = $(LINK_FLAGS) + ++# flags for test-programs + TEST_LIBS = @TEST_LIBS@ + TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ +- +-LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \ ++TEST_LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \ + @LD_MODEL@ $(TEST_LIBS) @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS) + +-LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL) +-LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL) +-LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG) +-LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE) +-LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@ ++LDFLAGS_LIBTOOL = $(TEST_LDFLAGS) $(CFLAGS_LIBTOOL) ++LDFLAGS_NORMAL = $(TEST_LDFLAGS) $(CFLAGS_NORMAL) ++LDFLAGS_DEBUG = $(TEST_LDFLAGS) $(CFLAGS_DEBUG) ++LDFLAGS_PROFILE = $(TEST_LDFLAGS) $(CFLAGS_PROFILE) ++LDFLAGS_SHARED = $(TEST_LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@ + + LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@) + ++# flags for library built by this makefile ++LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \ ++ @LD_MODEL@ $(TEST_LIBS) @LIBS@ $(CXXLIBS) ++ + AUTO_SRC = \ + etip.h + + all \ +-libs :: $(AUTO_SRC) $(MY_LIBRARY) ++libs :: $(AUTO_SRC) $(LIBRARIES) + + @MAKE_TESTS@all :: demo$x + +@@ -148,61 +161,16 @@ + tags: + $(CTAGS) *.[h] *.cc + +-# Build a conventional library for installing, since a shared library would +-# pull in all of the ncurses libraries (panel, menu, form, ncurses) as direct +-# dependencies. +-LIB_OBJS = \ +- $(MODEL)/cursesf$o \ +- $(MODEL)/cursesm$o \ +- $(MODEL)/cursesw$o \ +- $(MODEL)/cursespad$o \ +- $(MODEL)/cursesp$o \ +- $(MODEL)/cursslk$o \ +- $(MODEL)/cursesapp$o \ +- $(MODEL)/cursesmain$o +- +-../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS) +- $(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) \ +- $(LIBTOOL_VERSION) $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST) +- +-OBJS_DEMO = $(MODEL)/demo$o +- +-$(MODEL)/demo$o : $(srcdir)/demo.cc \ +- $(cursesf_h) $(cursesm_h) $(cursesapp_h) +- +-demo$x: $(OBJS_DEMO) \ +- $(MY_LIBRARY) \ +- @TEST_DEPS@ +- @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT) +- +-etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh +- cp $(srcdir)/etip.h.in $@ +- sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@ +- + $(DESTDIR)$(libdir) : + mkdir -p $@ + +-install \ +-install.libs:: $(MY_LIBRARY) $(DESTDIR)$(libdir) +- $(LIBTOOL_INSTALL) $(INSTALL_LIB) $(MY_LIBRARY) $(DESTDIR)$(libdir)/$(LIBNAME) +- +-uninstall \ +-uninstall.libs:: +- -$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME) +- + mostlyclean :: + -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace + + clean :: mostlyclean + -sh -c "if test -n '$x' ; then $(MAKE) clean x=''; fi" + -rm -rf $(MODEL)/SunWS_cache +- -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(MY_LIBRARY) $(LIB_OBJS) $(OBJS_DEMO) ++ -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(LIBRARIES) $(OBJS_DEMO) + -rm -rf .libs + + distclean :: clean +@@ -212,8 +180,16 @@ + + ############################################################################### + ++internal_h = $(srcdir)/internal.h \ ++ $(INCDIR)/ncurses_cfg.h \ ++ $(INCDIR)/nc_mingw.h \ ++ $(INCDIR)/nc_string.h ++ ++etip_h = etip.h \ ++ $(INCDIR)/ncurses_dll.h ++ + cursesw_h = $(srcdir)/cursesw.h \ +- etip.h \ ++ $(etip_h) \ + $(INCDIR)/curses.h + + cursesp_h = $(srcdir)/cursesp.h \ +@@ -244,5 +220,26 @@ + cd ../panel && $(MAKE) $@ + + ############################################################################### ++ ++OBJS_DEMO = $(MODEL)/demo$o ++ ++$(MODEL)/demo$o : $(srcdir)/demo.cc \ ++ $(internal_h) \ ++ $(cursesf_h) \ ++ $(cursesm_h) \ ++ $(cursesapp_h) ++ @echo 'compiling demo (obj_s)' ++ @$(LIBTOOL_COMPILE) $(CXX) $(CFLAGS_DEFAULT) -c $(srcdir)/demo.cc -o $@ ++ ++demo$x: $(OBJS_DEMO) \ ++ $(LIBRARIES) \ ++ @TEST_DEPS@ ++ @ECHO_LD@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT) ++ ++etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh ++ cp $(srcdir)/etip.h.in $@ ++ sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@ ++ ++############################################################################### + # The remainder of this file is automatically generated during configuration + ############################################################################### +diff -Naur ncurses-5.9/c++/modules ncurses-5.9.patch/c++/modules +--- ncurses-5.9/c++/modules 2006-12-24 01:53:08.000000000 +0100 ++++ ncurses-5.9.patch/c++/modules 2014-09-01 16:33:22.242791933 +0200 +@@ -1,7 +1,7 @@ + # Program modules +-# $Id: modules,v 1.7 2006/12/24 00:53:08 tom Exp $ ++# $Id: modules,v 1.11 2013/03/30 19:41:11 tom Exp $ + ############################################################################## +-# Copyright (c) 1998,2006 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2006,2013 Free 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"), # +@@ -32,14 +32,13 @@ + # + + @ base +-cursesf c++ $(srcdir) $(cursesf_h) $(cursesapp_h) +-cursesm c++ $(srcdir) $(cursesm_h) $(cursesapp_h) +-cursesp c++ $(srcdir) $(cursesp_h) +-cursesw c++ $(srcdir) $(cursesw_h) +-cursespad c++ $(srcdir) $(cursesw_h) +-cursslk c++ $(srcdir) $(cursslk_h) $(cursesapp_h) +-cursesapp c++ $(srcdir) $(cursesapp_h) +-cursesmain c++ $(srcdir) $(cursesapp_h) +-demo c++ $(srcdir) $(cursesf_h) $(cursesm_h) $(cursesapp_h) ++cursesf c++ $(srcdir) $(internal_h) $(cursesf_h) $(cursesapp_h) ++cursesm c++ $(srcdir) $(internal_h) $(cursesm_h) $(cursesapp_h) ++cursesw c++ $(srcdir) $(internal_h) $(cursesw_h) ++cursespad c++ $(srcdir) $(internal_h) $(cursesw_h) ++cursesp c++ $(srcdir) $(internal_h) $(cursesp_h) ++cursslk c++ $(srcdir) $(internal_h) $(cursesapp_h) ++cursesapp c++ $(srcdir) $(internal_h) $(cursesapp_h) ++cursesmain c++ $(srcdir) $(internal_h) $(cursesapp_h) $(INCDIR)/nc_alloc.h + + # vile:makemode +diff -Naur ncurses-5.9/config.guess ncurses-5.9.patch/config.guess +--- ncurses-5.9/config.guess 2010-09-29 01:11:39.000000000 +0200 ++++ ncurses-5.9.patch/config.guess 2014-09-01 16:33:22.243791935 +0200 +@@ -1,14 +1,12 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. ++# Copyright 1992-2013 Free Software Foundation, Inc. + +-timestamp='2010-09-24' ++timestamp='2013-06-10' + + # 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 +-# the Free Software Foundation; either version 2 of the License, or ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -17,26 +15,22 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +- +-# Originally written by Per Bothner. Please send patches (context +-# diff format) to and include a ChangeLog +-# entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# Originally written by Per Bothner. + # + # You can get the latest version of this script from: + # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++# ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++ + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -56,9 +50,7 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +-Software Foundation, Inc. ++Copyright 1992-2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -92,7 +84,7 @@ + exit 1 + fi + +-trap 'exit 1' HUP INT TERM ++trap 'exit 1' 1 2 15 + + # CC_FOR_BUILD -- compiler used by this script. Note that the use of a + # compiler to aid in system detection is discouraged as it requires +@@ -106,7 +98,7 @@ + + set_cc_for_build=' + trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; + : ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || +@@ -140,12 +132,33 @@ + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=gnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include ++ #if defined(__UCLIBC__) ++ LIBC=uclibc ++ #elif defined(__dietlibc__) ++ LIBC=dietlibc ++ #else ++ LIBC=gnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ ;; ++esac ++ + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -202,6 +215,10 @@ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -220,10 +237,10 @@ + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in +- *4.0) ++ *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; +- *5.*) ++ *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac +@@ -270,7 +287,10 @@ + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -301,7 +321,7 @@ + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -326,8 +346,8 @@ + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) +- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit ;; ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; +@@ -495,7 +515,7 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -597,50 +617,50 @@ + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include ++ #include + +- #define _HPUX_SOURCE +- #include +- #include +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -789,21 +809,26 @@ + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 +@@ -820,8 +845,8 @@ + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) +- echo ia64-unknown-interix${UNAME_RELEASE} +- exit ;; ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks +@@ -849,70 +874,81 @@ + exit ;; + *:GNU:*:*) + # the GNU system +- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland +- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=alphaev5 ;; +- EV56) UNAME_MACHINE=alphaev56 ;; +- PCA56) UNAME_MACHINE=alphapca56 ;; +- PCA57) UNAME_MACHINE=alphapca56 ;; +- EV6) UNAME_MACHINE=alphaev6 ;; +- EV67) UNAME_MACHINE=alphaev67 ;; +- EV68*) UNAME_MACHINE=alphaev68 ;; ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build +- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \ +- grep -q __ARM_EABI__ ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ + then +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi + fi + exit ;; + avr32*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) +- LIBC=gnu +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build +@@ -931,54 +967,63 @@ + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; ++ or1k:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu +- exit ;; ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + padre:Linux:*:*) +- echo sparc-unknown-linux-gnu ++ echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu +- exit ;; ++ echo hppa64-unknown-linux-${LIBC} ++ exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-unknown-linux-gnu ;; +- PA8*) echo hppa2.0-unknown-linux-gnu ;; +- *) echo hppa-unknown-linux-gnu ;; ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu ++ echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu ++ echo powerpc-unknown-linux-${LIBC} ++ exit ;; ++ ppc64le:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; ++ ppcle:Linux:*:*) ++ echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) +- echo ${UNAME_MACHINE}-ibm-linux ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) +- echo ${UNAME_MACHINE}-tilera-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) +- echo ${UNAME_MACHINE}-dec-linux-gnu ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. +@@ -1093,7 +1138,7 @@ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ +@@ -1136,8 +1181,8 @@ + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) +@@ -1165,9 +1210,9 @@ + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. +@@ -1182,6 +1227,9 @@ + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1208,26 +1256,28 @@ + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown +- case $UNAME_PROCESSOR in +- i386) +- eval $set_cc_for_build +- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +- grep IS_64BIT_ARCH >/dev/null +- then +- UNAME_PROCESSOR="x86_64" +- fi +- fi ;; +- unknown) UNAME_PROCESSOR=powerpc ;; +- esac ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" = unknown ; then ++ UNAME_PROCESSOR=powerpc ++ fi ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=x86_64 ;; ++ powerpc) UNAME_PROCESSOR=powerpc64 ;; ++ esac ++ fi ++ fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then +- UNAME_PROCESSOR=i386 +- UNAME_MACHINE=pc ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; +@@ -1237,7 +1287,7 @@ + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1306,11 +1356,11 @@ + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c < + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + +diff -Naur ncurses-5.9/config.sub ncurses-5.9.patch/config.sub +--- ncurses-5.9/config.sub 2010-09-11 00:25:58.000000000 +0200 ++++ ncurses-5.9.patch/config.sub 2014-09-01 16:33:22.244791936 +0200 +@@ -1,38 +1,31 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. +- +-timestamp='2010-09-11' +- +-# This file is (in principle) common to ALL GNU software. +-# The presence of a machine in this file suggests that SOME GNU software +-# can handle that machine. It does not imply ALL GNU software can. +-# +-# 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 +-# the Free Software Foundation; either version 2 of the License, or ++# Copyright 1992-2013 Free Software Foundation, Inc. ++ ++timestamp='2013-10-01' ++ ++# 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 ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches to . Submit a context +-# diff and a properly formatted GNU ChangeLog entry. ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. +@@ -75,9 +68,7 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +-Software Foundation, Inc. ++Copyright 1992-2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -125,13 +116,17 @@ + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; ++ android-linux) ++ os=-linux-android ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] +@@ -154,7 +149,7 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple | -axis | -knuth | -cray | -microblaze) ++ -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; +@@ -175,10 +170,10 @@ + os=-chorusos + basic_machine=$1 + ;; +- -chorusrdb) +- os=-chorusrdb ++ -chorusrdb) ++ os=-chorusrdb + basic_machine=$1 +- ;; ++ ;; + -hiux*) + os=-hiuxwe2 + ;; +@@ -223,6 +218,12 @@ + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -lynx*178) ++ os=-lynxos178 ++ ;; ++ -lynx*5) ++ os=-lynxos5 ++ ;; + -lynx*) + os=-lynxos + ;; +@@ -247,20 +248,28 @@ + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | arc | arceb \ ++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ ++ | avr | avr32 \ ++ | be32 | be64 \ + | bfin \ +- | c4x | clipper \ ++ | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ ++ | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ ++ | k1om \ ++ | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | mcore | mep | metag \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +@@ -278,30 +287,32 @@ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ +- | nds32 | nds32le | nds32be\ +- | nios | nios2 \ ++ | nds32 | nds32le | nds32be \ ++ | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ +- | or32 \ ++ | open8 \ ++ | or1k | or32 \ + | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ +- | rx \ ++ | rl78 | rx \ + | score \ + | 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 \ +- | spu | strongarm \ +- | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ +- | v850 | v850e \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ +- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; +@@ -314,8 +325,7 @@ + c6x) + basic_machine=tic6x-unknown + ;; +- m6811 | m68hc11 | m6812 | m68hc12 | picochip) +- # Motorola 68HC11/12. ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; +@@ -325,12 +335,27 @@ + basic_machine=mt-unknown + ;; + ++ strongarm | thumb | xscale) ++ basic_machine=arm-unknown ++ ;; ++ xgate) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ xscaleeb) ++ basic_machine=armeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=armel-unknown ++ ;; ++ + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; ++ basic_machine=$basic_machine-pc ++ ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +@@ -339,25 +364,31 @@ + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ ++ | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | clipper-* | craynv-* | cydra-* \ ++ | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ ++ | k1om-* \ ++ | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +@@ -375,31 +406,34 @@ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* \ ++ | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ +- | romp-* | rs6000-* | rx-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ + | 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-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ++ | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile-* | tilegx-* \ ++ | tile*-* \ + | tron-* \ + | ubicom32-* \ +- | v850-* | v850e-* | vax-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) +@@ -539,7 +573,7 @@ + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16) ++ cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; +@@ -697,7 +731,6 @@ + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +-# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 +@@ -755,11 +788,15 @@ + basic_machine=ns32k-utek + os=-sysv + ;; +- microblaze) ++ microblaze*) + basic_machine=microblaze-xilinx + ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ os=-mingw64 ++ ;; + mingw32) +- basic_machine=i386-pc ++ basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) +@@ -794,10 +831,18 @@ + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; ++ msys) ++ basic_machine=i686-pc ++ os=-msys ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ++ nacl) ++ basic_machine=le32-unknown ++ os=-nacl ++ ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 +@@ -950,9 +995,10 @@ + ;; + power) basic_machine=power-ibm + ;; +- ppc) basic_machine=powerpc-unknown ++ ppc | ppcbe) basic_machine=powerpc-unknown + ;; +- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ppc-* | ppcbe-*) ++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +@@ -977,7 +1023,11 @@ + basic_machine=i586-unknown + os=-pw32 + ;; +- rdos) ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ os=-rdos ++ ;; ++ rdos32) + basic_machine=i386-pc + os=-rdos + ;; +@@ -1046,6 +1096,9 @@ + basic_machine=i860-stratus + os=-sysv4 + ;; ++ strongarm-* | thumb-*) ++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -1102,13 +1155,8 @@ + basic_machine=t90-cray + os=-unicos + ;; +- # This must be matched before tile*. +- tilegx*) +- basic_machine=tilegx-unknown +- os=-linux-gnu +- ;; + tile*) +- basic_machine=tile-unknown ++ basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) +@@ -1178,6 +1226,9 @@ + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; + ymp) + basic_machine=ymp-cray + os=-unicos +@@ -1303,21 +1354,21 @@ + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ +- | -sym* | -kopensolaris* \ ++ | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -openbsd* | -solidbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ +- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-android* \ +- | -linux-newlib* | -linux-uclibc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +@@ -1449,9 +1500,6 @@ + -aros*) + os=-aros + ;; +- -kaos*) +- os=-kaos +- ;; + -zvmoe) + os=-zvmoe + ;; +@@ -1500,6 +1548,12 @@ + c4x-* | tic4x-*) + os=-coff + ;; ++ c8051-*) ++ os=-elf ++ ;; ++ hexagon-*) ++ os=-elf ++ ;; + tic54x-*) + os=-coff + ;; +@@ -1527,9 +1581,6 @@ + ;; + m68000-sun) + os=-sunos3 +- # This also exists in the configure program, but was not the +- # default. +- # os=-sunos4 + ;; + m68*-cisco) + os=-aout +@@ -1543,6 +1594,9 @@ + mips*-*) + os=-elf + ;; ++ or1k-*) ++ os=-elf ++ ;; + or32-*) + os=-coff + ;; +diff -Naur ncurses-5.9/configure ncurses-5.9.patch/configure +--- ncurses-5.9/configure 2011-04-01 01:35:51.000000000 +0200 ++++ ncurses-5.9.patch/configure 2014-09-01 16:34:19.468887101 +0200 +@@ -1,7 +1,7 @@ + #! /bin/sh +-# From configure.in Revision: 1.520 . ++# From configure.in Revision: 1.578 . + # Guess values for system-dependent variables and create Makefiles. +-# Generated by Autoconf 2.52.20101002. ++# Generated by Autoconf 2.52.20121002. + # + # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + # Free Software Foundation, Inc. +@@ -171,15 +171,16 @@ + bindir='${exec_prefix}/bin' + sbindir='${exec_prefix}/sbin' + libexecdir='${exec_prefix}/libexec' +-datadir='${prefix}/share' ++datarootdir='${prefix}/share' ++datadir='${datarootdir}' + sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' + libdir='${exec_prefix}/lib' + includedir='${prefix}/include' + oldincludedir='/usr/include' +-infodir='${prefix}/info' +-mandir='${prefix}/man' ++infodir='${datarootdir}/info' ++mandir='${datarootdir}/man' + + # Identity of this package. + PACKAGE_NAME= +@@ -230,6 +231,13 @@ + | --da=*) + datadir=$ac_optarg ;; + ++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ ++ | --dataroo | --dataro | --datar) ++ ac_prev=datarootdir ;; ++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ ++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) ++ datarootdir=$ac_optarg ;; ++ + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. +@@ -505,7 +513,7 @@ + done + + # Be sure to have absolute paths. +-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ++for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` +@@ -654,15 +662,16 @@ + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] +- --datadir=DIR read-only architecture-independent data [PREFIX/share] ++ --datarootdir=DIR read-only architecture-independent data [PREFIX/share] ++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] +- --infodir=DIR info documentation [PREFIX/info] +- --mandir=DIR man documentation [PREFIX/man] ++ --infodir=DIR info documentation [DATAROOTDIR/info] ++ --mandir=DIR man documentation [DATAROOTDIR/man] + EOF + + cat <<\EOF +@@ -694,14 +703,16 @@ + --with-rel-version=XXX override derived release version + --with-abi-version=XXX override derived ABI version + --with-system-type=XXX test: override derived host system-type ++ --without-ada suppress check for Ada95, don't build demo + --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 ++ --disable-db-install suppress install of terminal database + --without-manpages suppress install of manpages +- --without-progs suppress build with programs (e.g., tic) +- --without-tests suppress build with test-programs ++ --without-progs suppress build/install with programs (e.g., tic) ++ --without-tests suppress build/install with test-programs + --without-curses-h install curses.h as ncurses.h only + --with-pkg-config{=path} enable/disable use of pkg-config ++ --with-pkg-config-libdir=XXX use given directory for installing pc-files + --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) +@@ -719,6 +730,8 @@ + --with-normal generate normal-libraries (default) + --with-debug generate debug-libraries (default) + --with-profile generate profile-libraries ++ --with-cxx-shared generate C++ shared-libraries ++ --with-lib-prefix override library-prefix + --with-termlib generate separate terminfo library + --with-ticlib generate separate tic library + --with-gpm use Alessandro Rubini's GPM library +@@ -735,6 +748,7 @@ + --with-hashed-db specify hashed-database library + --with-fallbacks=XXX specify list of fallback terminal descriptions + --without-xterm-new specify if xterm terminfo should be old version ++ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL + --with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo) + --with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo) + --disable-big-core assume machine has little memory +@@ -759,6 +773,7 @@ + --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-tparm-arg=TYPE override parameter type of tparm + --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 +@@ -796,8 +811,9 @@ + --disable-scroll-hints compile without scroll-hints code + --enable-wgetch-events compile with experimental wgetch-events code + Testing/development Options: +- --enable-echo build: display "compiling" commands (default) ++ --disable-echo do not display "compiling" commands + --enable-warnings build: turn on GCC compiler warnings ++ --enable-string-hacks work around bogus compiler/loader warnings + --enable-assertions test: turn on generation of assertion code + --with-dmalloc test: use Gray Watson's dmalloc library + --with-dbmalloc test: use Conor Cahill's dbmalloc library +@@ -883,7 +899,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.20101002. Invocation command line was ++generated by GNU Autoconf 2.52.20121002. Invocation command line was + + $ $0 $@ + +@@ -1007,7 +1023,7 @@ + fi + for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then +- { echo "$as_me:1010: loading site script $ac_site_file" >&5 ++ { echo "$as_me:1026: 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" +@@ -1018,7 +1034,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:1021: loading cache $cache_file" >&5 ++ { echo "$as_me:1037: loading cache $cache_file" >&5 + echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; +@@ -1026,7 +1042,7 @@ + esac + fi + else +- { echo "$as_me:1029: creating cache $cache_file" >&5 ++ { echo "$as_me:1045: creating cache $cache_file" >&5 + echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file + fi +@@ -1042,21 +1058,21 @@ + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) +- { echo "$as_me:1045: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++ { echo "$as_me:1061: 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:1049: error: \`$ac_var' was not set in the previous run" >&5 ++ { echo "$as_me:1065: 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:1055: error: \`$ac_var' has changed since the previous run:" >&5 ++ { echo "$as_me:1071: 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:1057: former value: $ac_old_val" >&5 ++ { echo "$as_me:1073: former value: $ac_old_val" >&5 + echo "$as_me: former value: $ac_old_val" >&2;} +- { echo "$as_me:1059: current value: $ac_new_val" >&5 ++ { echo "$as_me:1075: current value: $ac_new_val" >&5 + echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; +@@ -1075,9 +1091,9 @@ + fi + done + if $ac_cache_corrupted; then +- { echo "$as_me:1078: error: changes in the environment can compromise the build" >&5 ++ { echo "$as_me:1094: 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:1080: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 ++ { { echo "$as_me:1096: 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 +@@ -1098,10 +1114,10 @@ + echo "#! $SHELL" >conftest.sh + echo "exit 0" >>conftest.sh + chmod +x conftest.sh +-if { (echo "$as_me:1101: PATH=\".;.\"; conftest.sh") >&5 ++if { (echo "$as_me:1117: PATH=\".;.\"; conftest.sh") >&5 + (PATH=".;."; conftest.sh) 2>&5 + ac_status=$? +- echo "$as_me:1104: \$? = $ac_status" >&5 ++ echo "$as_me:1120: \$? = $ac_status" >&5 + (exit $ac_status); }; then + ac_path_separator=';' + else +@@ -1114,7 +1130,7 @@ + + top_builddir=`pwd` + +-echo "$as_me:1117: checking for egrep" >&5 ++echo "$as_me:1133: 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 +@@ -1124,11 +1140,11 @@ + else ac_cv_prog_egrep='egrep' + fi + fi +-echo "$as_me:1127: result: $ac_cv_prog_egrep" >&5 ++echo "$as_me:1143: 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:1131: error: No egrep program found" >&5 ++test -z "$EGREP" && { { echo "$as_me:1147: error: No egrep program found" >&5 + echo "$as_me: error: No egrep program found" >&2;} + { (exit 1); exit 1; }; } + +@@ -1138,7 +1154,7 @@ + cf_cv_abi_version=${NCURSES_MAJOR} + cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR} + cf_cv_timestamp=`date` +-echo "$as_me:1141: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5 ++echo "$as_me:1157: 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 +@@ -1146,7 +1162,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:1149: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5 ++ { echo "$as_me:1165: 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; +@@ -1159,13 +1175,13 @@ + [0-9]*) #(vi + ;; + *) +- { { echo "$as_me:1162: error: Release major-version is not a number: $NCURSES_MAJOR" >&5 ++ { { echo "$as_me:1178: 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:1168: error: Release major-version value is empty" >&5 ++ { { echo "$as_me:1184: error: Release major-version value is empty" >&5 + echo "$as_me: error: Release major-version value is empty" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -1175,13 +1191,13 @@ + [0-9]*) #(vi + ;; + *) +- { { echo "$as_me:1178: error: Release minor-version is not a number: $NCURSES_MINOR" >&5 ++ { { echo "$as_me:1194: 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:1184: error: Release minor-version value is empty" >&5 ++ { { echo "$as_me:1200: error: Release minor-version value is empty" >&5 + echo "$as_me: error: Release minor-version value is empty" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -1191,7 +1207,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:1194: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5 ++ { echo "$as_me:1210: 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; +@@ -1201,13 +1217,13 @@ + [0-9]*) #(vi + ;; + *) +- { { echo "$as_me:1204: error: ABI version is not a number: $cf_cv_abi_version" >&5 ++ { { echo "$as_me:1220: 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:1210: error: ABI version value is empty" >&5 ++ { { echo "$as_me:1226: error: ABI version value is empty" >&5 + echo "$as_me: error: ABI version value is empty" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -1229,7 +1245,7 @@ + fi + done + if test -z "$ac_aux_dir"; then +- { { echo "$as_me:1232: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 ++ { { echo "$as_me:1248: 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 +@@ -1239,11 +1255,11 @@ + + # Make sure we can run config.sub. + $ac_config_sub sun4 >/dev/null 2>&1 || +- { { echo "$as_me:1242: error: cannot run $ac_config_sub" >&5 ++ { { echo "$as_me:1258: error: cannot run $ac_config_sub" >&5 + echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +-echo "$as_me:1246: checking build system type" >&5 ++echo "$as_me:1262: 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 +@@ -1252,23 +1268,23 @@ + test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` + test -z "$ac_cv_build_alias" && +- { { echo "$as_me:1255: error: cannot guess build type; you must specify one" >&5 ++ { { echo "$as_me:1271: 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:1259: error: $ac_config_sub $ac_cv_build_alias failed." >&5 ++ { { echo "$as_me:1275: 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:1264: result: $ac_cv_build" >&5 ++echo "$as_me:1280: 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:1271: checking host system type" >&5 ++echo "$as_me:1287: 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 +@@ -1277,12 +1293,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:1280: error: $ac_config_sub $ac_cv_host_alias failed" >&5 ++ { { echo "$as_me:1296: 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:1285: result: $ac_cv_host" >&5 ++echo "$as_me:1301: 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/'` +@@ -1290,7 +1306,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:1293: checking target system type" >&5 ++ echo "$as_me:1309: 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 +@@ -1299,12 +1315,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:1302: error: $ac_config_sub $ac_cv_target_alias failed" >&5 ++ { { echo "$as_me:1318: 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:1307: result: $ac_cv_target" >&5 ++echo "$as_me:1323: 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/'` +@@ -1324,7 +1340,8 @@ + system_name="`(hostname) 2>/dev/null`" + fi + fi +-test -n "$system_name" && cat >>confdefs.h <>confdefs.h <&5 ++test -n "$cf_cv_system_name" && echo "$as_me:1355: 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:1342: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 ++ echo "$as_me:1359: 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:1344: error: \"Please remove config.cache and try again.\"" >&5 ++ { { echo "$as_me:1361: 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 +@@ -1349,9 +1366,11 @@ + # 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:1352: WARNING: overriding system type to $withval" >&5 ++ { echo "$as_me:1369: WARNING: overriding system type to $withval" >&5 + echo "$as_me: WARNING: overriding system type to $withval" >&2;} +- cf_cv_system_name=$withval ++ cf_cv_system_name=$withval ++ host_os=$withval ++ + fi; + + ### Save the given $CFLAGS to allow user-override. +@@ -1359,23 +1378,23 @@ + + ### Default install-location + +-echo "$as_me:1362: checking for prefix" >&5 ++echo "$as_me:1381: 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 + # non-vendor systems don't have a conflict +- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) ++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*) + prefix=/usr + ;; + *) prefix=$ac_default_prefix + ;; + esac + fi +-echo "$as_me:1374: result: $prefix" >&5 ++echo "$as_me:1393: result: $prefix" >&5 + echo "${ECHO_T}$prefix" >&6 + + if test "x$prefix" = "xNONE" ; then +-echo "$as_me:1378: checking for default include-directory" >&5 ++echo "$as_me:1397: 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 \ +@@ -1398,11 +1417,26 @@ + fi + test -n "$verbose" && echo " tested $cf_dir" 1>&6 + done +-echo "$as_me:1401: result: $includedir" >&5 ++echo "$as_me:1420: result: $includedir" >&5 + echo "${ECHO_T}$includedir" >&6 + fi + + ### Checks for programs. ++ ++# Check whether --with-ada or --without-ada was given. ++if test "${with_ada+set}" = set; then ++ withval="$with_ada" ++ cf_with_ada=$withval ++else ++ cf_with_ada=yes ++fi; ++if test "x$cf_with_ada" = xyes ++then ++ cf_PROG_CC="gnatgcc gcc cc" ++else ++ cf_PROG_CC="gcc cc" ++fi ++ + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -1410,213 +1444,11 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_main_return=return + 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:1415: 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 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc" +-echo "$as_me:1430: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- echo "$as_me:1438: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6 +-else +- echo "$as_me:1441: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +-fi +-if test -z "$ac_cv_prog_CC"; then +- 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:1450: 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 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="gcc" +-echo "$as_me:1465: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-ac_ct_CC=$ac_cv_prog_ac_ct_CC +-if test -n "$ac_ct_CC"; then +- echo "$as_me:1473: result: $ac_ct_CC" >&5 +-echo "${ECHO_T}$ac_ct_CC" >&6 +-else +- echo "$as_me:1476: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- CC=$ac_ct_CC +-else +- CC="$ac_cv_prog_CC" +-fi +- +-if test -z "$CC"; then +- 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:1489: 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 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc" +-echo "$as_me:1504: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- echo "$as_me:1512: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6 +-else +- echo "$as_me:1515: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +-fi +-if test -z "$ac_cv_prog_CC"; then +- 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:1524: 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 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="cc" +-echo "$as_me:1539: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-ac_ct_CC=$ac_cv_prog_ac_ct_CC +-if test -n "$ac_ct_CC"; then +- echo "$as_me:1547: result: $ac_ct_CC" >&5 +-echo "${ECHO_T}$ac_ct_CC" >&6 +-else +- echo "$as_me:1550: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- CC=$ac_ct_CC +-else +- CC="$ac_cv_prog_CC" +-fi +- +-fi +-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:1563: 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 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else +- ac_prog_rejected=no +- 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 +-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then +- ac_prog_rejected=yes +- continue +-fi +-ac_cv_prog_CC="cc" +-echo "$as_me:1583: found $ac_dir/$ac_word" >&5 +-break +-done +- +-if test $ac_prog_rejected = yes; then +- # We found a bogon in the path, so make sure we never use it. +- set dummy $ac_cv_prog_CC +- shift +- if test $# != 0; then +- # We chose a different compiler from the bogus one. +- # However, it has the same basename, so the bogon will be chosen +- # first if we set CC to just the basename; use the full file name. +- shift +- set dummy "$ac_dir/$ac_word" ${1+"$@"} +- shift +- ac_cv_prog_CC="$@" +- fi +-fi +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- echo "$as_me:1605: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6 +-else +- echo "$as_me:1608: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +-fi +-if test -z "$CC"; then +- if test -n "$ac_tool_prefix"; then +- for ac_prog in cl ++ for ac_prog in $cf_PROG_CC + 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:1619: checking for $ac_word" >&5 ++echo "$as_me:1451: 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 +@@ -1631,7 +1463,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:1634: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1466: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1639,10 +1471,10 @@ + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$as_me:1642: result: $CC" >&5 ++ echo "$as_me:1474: result: $CC" >&5 + echo "${ECHO_T}$CC" >&6 + else +- echo "$as_me:1645: result: no" >&5 ++ echo "$as_me:1477: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1651,11 +1483,11 @@ + fi + if test -z "$CC"; then + ac_ct_CC=$CC +- for ac_prog in cl ++ for ac_prog in $cf_PROG_CC + 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:1658: checking for $ac_word" >&5 ++echo "$as_me:1490: 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 +@@ -1670,7 +1502,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:1673: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1505: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1678,10 +1510,10 @@ + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- echo "$as_me:1681: result: $ac_ct_CC" >&5 ++ echo "$as_me:1513: result: $ac_ct_CC" >&5 + echo "${ECHO_T}$ac_ct_CC" >&6 + else +- echo "$as_me:1684: result: no" >&5 ++ echo "$as_me:1516: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1691,34 +1523,32 @@ + CC=$ac_ct_CC + fi + +-fi +- +-test -z "$CC" && { { echo "$as_me:1696: error: no acceptable cc found in \$PATH" >&5 ++test -z "$CC" && { { echo "$as_me:1526: 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:1701:" \ ++echo "$as_me:1531:" \ + "checking for C compiler version" >&5 + ac_compiler=`set X $ac_compile; echo $2` +-{ (eval echo "$as_me:1704: \"$ac_compiler --version &5\"") >&5 ++{ (eval echo "$as_me:1534: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? +- echo "$as_me:1707: \$? = $ac_status" >&5 ++ echo "$as_me:1537: \$? = $ac_status" >&5 + (exit $ac_status); } +-{ (eval echo "$as_me:1709: \"$ac_compiler -v &5\"") >&5 ++{ (eval echo "$as_me:1539: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? +- echo "$as_me:1712: \$? = $ac_status" >&5 ++ echo "$as_me:1542: \$? = $ac_status" >&5 + (exit $ac_status); } +-{ (eval echo "$as_me:1714: \"$ac_compiler -V &5\"") >&5 ++{ (eval echo "$as_me:1544: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? +- echo "$as_me:1717: \$? = $ac_status" >&5 ++ echo "$as_me:1547: \$? = $ac_status" >&5 + (exit $ac_status); } + + cat >conftest.$ac_ext <<_ACEOF +-#line 1721 "configure" ++#line 1551 "configure" + #include "confdefs.h" + + int +@@ -1734,13 +1564,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:1737: checking for C compiler default output" >&5 ++echo "$as_me:1567: 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:1740: \"$ac_link_default\"") >&5 ++if { (eval echo "$as_me:1570: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? +- echo "$as_me:1743: \$? = $ac_status" >&5 ++ echo "$as_me:1573: \$? = $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 +@@ -1763,34 +1593,34 @@ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-{ { echo "$as_me:1766: error: C compiler cannot create executables" >&5 ++{ { echo "$as_me:1596: 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:1772: result: $ac_file" >&5 ++echo "$as_me:1602: 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:1777: checking whether the C compiler works" >&5 ++echo "$as_me:1607: 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:1783: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1613: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1786: \$? = $ac_status" >&5 ++ echo "$as_me:1616: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else +- { { echo "$as_me:1793: error: cannot run C compiled programs. ++ { { echo "$as_me:1623: 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;} +@@ -1798,24 +1628,24 @@ + fi + fi + fi +-echo "$as_me:1801: result: yes" >&5 ++echo "$as_me:1631: 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:1808: checking whether we are cross compiling" >&5 ++echo "$as_me:1638: checking whether we are cross compiling" >&5 + echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +-echo "$as_me:1810: result: $cross_compiling" >&5 ++echo "$as_me:1640: result: $cross_compiling" >&5 + echo "${ECHO_T}$cross_compiling" >&6 + +-echo "$as_me:1813: checking for executable suffix" >&5 ++echo "$as_me:1643: checking for executable suffix" >&5 + echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 +-if { (eval echo "$as_me:1815: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:1645: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:1818: \$? = $ac_status" >&5 ++ echo "$as_me:1648: \$? = $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 +@@ -1831,25 +1661,25 @@ + esac + done + else +- { { echo "$as_me:1834: error: cannot compute EXEEXT: cannot compile and link" >&5 ++ { { echo "$as_me:1664: 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:1840: result: $ac_cv_exeext" >&5 ++echo "$as_me:1670: 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:1846: checking for object suffix" >&5 ++echo "$as_me:1676: 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 1852 "configure" ++#line 1682 "configure" + #include "confdefs.h" + + int +@@ -1861,10 +1691,10 @@ + } + _ACEOF + rm -f conftest.o conftest.obj +-if { (eval echo "$as_me:1864: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1694: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1867: \$? = $ac_status" >&5 ++ echo "$as_me:1697: \$? = $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 +@@ -1876,24 +1706,24 @@ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-{ { echo "$as_me:1879: error: cannot compute OBJEXT: cannot compile" >&5 ++{ { echo "$as_me:1709: 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:1886: result: $ac_cv_objext" >&5 ++echo "$as_me:1716: result: $ac_cv_objext" >&5 + echo "${ECHO_T}$ac_cv_objext" >&6 + OBJEXT=$ac_cv_objext + ac_objext=$OBJEXT +-echo "$as_me:1890: checking whether we are using the GNU C compiler" >&5 ++echo "$as_me:1720: 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 1896 "configure" ++#line 1726 "configure" + #include "confdefs.h" + + int +@@ -1908,16 +1738,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1911: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1741: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1914: \$? = $ac_status" >&5 ++ echo "$as_me:1744: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1917: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1747: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1920: \$? = $ac_status" >&5 ++ echo "$as_me:1750: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes + else +@@ -1929,19 +1759,19 @@ + ac_cv_c_compiler_gnu=$ac_compiler_gnu + + fi +-echo "$as_me:1932: result: $ac_cv_c_compiler_gnu" >&5 ++echo "$as_me:1762: 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:1938: checking whether $CC accepts -g" >&5 ++echo "$as_me:1768: 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 1944 "configure" ++#line 1774 "configure" + #include "confdefs.h" + + int +@@ -1953,16 +1783,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1956: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1786: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1959: \$? = $ac_status" >&5 ++ echo "$as_me:1789: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1962: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1792: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1965: \$? = $ac_status" >&5 ++ echo "$as_me:1795: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes + else +@@ -1972,7 +1802,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:1975: result: $ac_cv_prog_cc_g" >&5 ++echo "$as_me:1805: 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 +@@ -1999,16 +1829,16 @@ + #endif + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2002: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1832: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2005: \$? = $ac_status" >&5 ++ echo "$as_me:1835: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2008: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1838: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2011: \$? = $ac_status" >&5 ++ echo "$as_me:1841: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ +@@ -2020,7 +1850,7 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line 2023 "configure" ++#line 1853 "configure" + #include "confdefs.h" + #include + $ac_declaration +@@ -2033,16 +1863,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2036: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1866: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2039: \$? = $ac_status" >&5 ++ echo "$as_me:1869: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2042: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1872: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2045: \$? = $ac_status" >&5 ++ echo "$as_me:1875: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -2052,7 +1882,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 2055 "configure" ++#line 1885 "configure" + #include "confdefs.h" + $ac_declaration + int +@@ -2064,16 +1894,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2067: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1897: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2070: \$? = $ac_status" >&5 ++ echo "$as_me:1900: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2073: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1903: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2076: \$? = $ac_status" >&5 ++ echo "$as_me:1906: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -2103,60 +1933,251 @@ + + GCC_VERSION=none + if test "$GCC" = yes ; then +- echo "$as_me:2106: checking version of $CC" >&5 ++ echo "$as_me:1936: checking version of $CC" >&5 + echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 +- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" ++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" + test -z "$GCC_VERSION" && GCC_VERSION=unknown +- echo "$as_me:2110: result: $GCC_VERSION" >&5 ++ echo "$as_me:1940: result: $GCC_VERSION" >&5 + echo "${ECHO_T}$GCC_VERSION" >&6 + fi + +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-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:2120: 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 +- CPP= +-fi +-if test -z "$CPP"; then +- if test "${ac_cv_prog_CPP+set}" = set; then ++echo "$as_me:1944: 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 + else +- # Double quotes because CPP needs to be expanded +- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" +- do +- ac_preproc_ok=false +-for ac_c_preproc_warn_flag in '' yes +-do +- # Use a header file that comes with gcc, so configuring glibc +- # with a fresh cross-compiler works. +- # 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 2141 "configure" ++ ac_cv_prog_cc_stdc=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++#line 1952 "configure" + #include "confdefs.h" +-#include +- Syntax error ++#include ++#include ++#include ++#include ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} + _ACEOF +-if { (eval echo "$as_me:2146: \"$ac_cpp conftest.$ac_ext\"") >&5 +- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++# Don't try gcc -ansi; that turns off useful extensions and ++# breaks some systems' header files. ++# AIX -qlanglvl=ansi ++# Ultrix and OSF/1 -std1 ++# HP-UX 10.20 and later -Ae ++# HP-UX older versions -Aa -D_HPUX_SOURCE ++# SVR4 -Xc -D__EXTENSIONS__ ++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (eval echo "$as_me:2001: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- egrep -v '^ *\+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:2152: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else ++ echo "$as_me:2004: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:2007: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:2010: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_stdc=$ac_arg ++break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext ++done ++rm -f conftest.$ac_ext conftest.$ac_objext ++CC=$ac_save_CC ++ ++fi ++ ++case "x$ac_cv_prog_cc_stdc" in ++ x|xno) ++ echo "$as_me:2027: result: none needed" >&5 ++echo "${ECHO_T}none needed" >&6 ;; ++ *) ++ echo "$as_me:2030: result: $ac_cv_prog_cc_stdc" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 ++ CC="$CC $ac_cv_prog_cc_stdc" ;; ++esac ++ ++# This should have been defined by AC_PROG_CC ++: ${CC:=cc} ++ ++echo "$as_me:2038: checking \$CC variable" >&5 ++echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 ++case "$CC" in #(vi ++*[\ \ ]-[IUD]*) ++ echo "$as_me:2042: result: broken" >&5 ++echo "${ECHO_T}broken" >&6 ++ { echo "$as_me:2044: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 ++echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} ++ # humor him... ++ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'` ++ CC=`echo "$CC" | sed -e 's/[ ].*//'` ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_flags ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ ;; ++*) ++ echo "$as_me:2130: result: ok" >&5 ++echo "${ECHO_T}ok" >&6 ++ ;; ++esac ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++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:2141: 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 ++ CPP= ++fi ++if test -z "$CPP"; then ++ if test "${ac_cv_prog_CPP+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ # Double quotes because CPP needs to be expanded ++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # 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 2162 "configure" ++#include "confdefs.h" ++#include ++ Syntax error ++_ACEOF ++if { (eval echo "$as_me:2167: \"$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:2173: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else + ac_cpp_err=yes + fi + if test -z "$ac_cpp_err"; then +@@ -2172,17 +2193,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 2175 "configure" ++#line 2196 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:2179: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2200: \"$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:2185: \$? = $ac_status" >&5 ++ echo "$as_me:2206: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -2219,7 +2240,7 @@ + else + ac_cv_prog_CPP=$CPP + fi +-echo "$as_me:2222: result: $CPP" >&5 ++echo "$as_me:2243: result: $CPP" >&5 + echo "${ECHO_T}$CPP" >&6 + ac_preproc_ok=false + for ac_c_preproc_warn_flag in '' yes +@@ -2229,18 +2250,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 2232 "configure" ++#line 2253 "configure" + #include "confdefs.h" + #include + Syntax error + _ACEOF +-if { (eval echo "$as_me:2237: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2258: \"$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:2243: \$? = $ac_status" >&5 ++ echo "$as_me:2264: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -2263,17 +2284,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 2266 "configure" ++#line 2287 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:2270: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2291: \"$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:2276: \$? = $ac_status" >&5 ++ echo "$as_me:2297: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -2301,7 +2322,7 @@ + if $ac_preproc_ok; then + : + else +- { { echo "$as_me:2304: error: C preprocessor \"$CPP\" fails sanity check" >&5 ++ { { echo "$as_me:2325: error: C preprocessor \"$CPP\" fails sanity check" >&5 + echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -2314,14 +2335,14 @@ + ac_main_return=return + + if test $ac_cv_c_compiler_gnu = yes; then +- echo "$as_me:2317: checking whether $CC needs -traditional" >&5 ++ echo "$as_me:2338: 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 2324 "configure" ++#line 2345 "configure" + #include "confdefs.h" + #include + int Autoconf = TIOCGETP; +@@ -2336,7 +2357,7 @@ + + if test $ac_cv_prog_gcc_traditional = no; then + cat >conftest.$ac_ext <<_ACEOF +-#line 2339 "configure" ++#line 2360 "configure" + #include "confdefs.h" + #include + int Autoconf = TCGETA; +@@ -2349,14 +2370,14 @@ + + fi + fi +-echo "$as_me:2352: result: $ac_cv_prog_gcc_traditional" >&5 ++echo "$as_me:2373: 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:2359: checking whether $CC understands -c and -o together" >&5 ++echo "$as_me:2380: 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 +@@ -2372,15 +2393,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:2375: \"$ac_try\"") >&5 ++if { (eval echo "$as_me:2396: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2378: \$? = $ac_status" >&5 ++ echo "$as_me:2399: \$? = $ac_status" >&5 + (exit $ac_status); } && +- test -f conftest2.$ac_objext && { (eval echo "$as_me:2380: \"$ac_try\"") >&5 ++ test -f conftest2.$ac_objext && { (eval echo "$as_me:2401: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2383: \$? = $ac_status" >&5 ++ echo "$as_me:2404: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + eval cf_cv_prog_CC_c_o=yes +@@ -2391,581 +2412,287 @@ + + fi + if test $cf_cv_prog_CC_c_o = yes; then +- echo "$as_me:2394: result: yes" >&5 ++ echo "$as_me:2415: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else +- echo "$as_me:2397: result: no" >&5 ++ echo "$as_me:2418: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +-echo "$as_me:2401: 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:2406: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- ISC=yes # If later tests want to check for ISC. ++if test "$cross_compiling" = yes ; then ++ LDCONFIG=: ++else ++case "$cf_cv_system_name" in #(vi ++dragonfly*|mirbsd*|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:2432: 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 ++else ++ case $LDCONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS=$IFS; IFS=$ac_path_separator ++ac_dummy="$LDPATH" ++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_LDCONFIG="$ac_dir/$ac_word" ++ echo "$as_me:2449: found $ac_dir/$ac_word" >&5 ++ break ++fi ++done + +-cat >>confdefs.h <<\EOF +-#define _POSIX_SOURCE 1 +-EOF ++ ;; ++esac ++fi ++LDCONFIG=$ac_cv_path_LDCONFIG + +- if test "$GCC" = yes; then +- CC="$CC -posix" +- else +- CC="$CC -Xp" +- fi ++if test -n "$LDCONFIG"; then ++ echo "$as_me:2460: result: $LDCONFIG" >&5 ++echo "${ECHO_T}$LDCONFIG" >&6 + else +- echo "$as_me:2420: result: no" >&5 ++ echo "$as_me:2463: result: no" >&5 + echo "${ECHO_T}no" >&6 +- ISC= + fi + +-echo "$as_me:2425: 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 ++ ;; ++esac ++fi ++ ++echo "$as_me:2471: 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. ++if test "${with_cxx+set}" = set; then ++ withval="$with_cxx" ++ cf_with_cxx=$withval ++else ++ cf_with_cxx=yes ++fi; ++echo "$as_me:2481: result: $cf_with_cxx" >&5 ++echo "${ECHO_T}$cf_with_cxx" >&6 ++if test "X$cf_with_cxx" = Xno ; then ++ CXX="" ++ GXX="" ++else ++ # with autoconf 2.13, we can change the error to a warning: ++ ac_ext=cc ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++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 ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC ++ 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:2499: 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 + else ++ if test -n "$CXX"; then ++ ac_cv_prog_CXX="$CXX" # 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_CXX="$ac_tool_prefix$ac_prog" ++echo "$as_me:2514: found $ac_dir/$ac_word" >&5 ++break ++done + +-cf_cv_ansi_cc=no +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc +-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) +-for cf_arg in "-DCC_HAS_PROTOS" \ +- "" \ +- -qlanglvl=ansi \ +- -std1 \ +- -Ae \ +- "-Aa -D_HPUX_SOURCE" \ +- -Xc +-do ++fi ++fi ++CXX=$ac_cv_prog_CXX ++if test -n "$CXX"; then ++ echo "$as_me:2522: result: $CXX" >&5 ++echo "${ECHO_T}$CXX" >&6 ++else ++ echo "$as_me:2525: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_arg ++ test -n "$CXX" && break ++ done ++fi ++if test -z "$CXX"; then ++ ac_ct_CXX=$CXX ++ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC + 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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 ++ # 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:2538: 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 ++else ++ if test -n "$ac_ct_CXX"; then ++ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_CXX="$ac_prog" ++echo "$as_me:2553: found $ac_dir/$ac_word" >&5 ++break + done + +-if test -n "$cf_new_cflags" ; then +- +- CFLAGS="$CFLAGS $cf_new_cflags" + fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ac_ct_CXX=$ac_cv_prog_ac_ct_CXX ++if test -n "$ac_ct_CXX"; then ++ echo "$as_me:2561: result: $ac_ct_CXX" >&5 ++echo "${ECHO_T}$ac_ct_CXX" >&6 ++else ++ echo "$as_me:2564: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-if test -n "$cf_new_extra_cppflags" ; then ++ test -n "$ac_ct_CXX" && break ++done ++test -n "$ac_ct_CXX" || ac_ct_CXX="g++" + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++ CXX=$ac_ct_CXX + fi + +- cat >conftest.$ac_ext <<_ACEOF +-#line 2529 "configure" +-#include "confdefs.h" ++# Provide some information about the compiler. ++echo "$as_me:2576:" \ ++ "checking for C++ compiler version" >&5 ++ac_compiler=`set X $ac_compile; echo $2` ++{ (eval echo "$as_me:2579: \"$ac_compiler --version &5\"") >&5 ++ (eval $ac_compiler --version &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:2582: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:2584: \"$ac_compiler -v &5\"") >&5 ++ (eval $ac_compiler -v &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:2587: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:2589: \"$ac_compiler -V &5\"") >&5 ++ (eval $ac_compiler -V &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:2592: \$? = $ac_status" >&5 ++ (exit $ac_status); } + +-#ifndef CC_HAS_PROTOS +-#if !defined(__STDC__) || (__STDC__ != 1) +-choke me +-#endif +-#endif ++echo "$as_me:2595: 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 2601 "configure" ++#include "confdefs.h" + + int + main () + { ++#ifndef __GNUC__ ++ choke me ++#endif + +- int test (int i, double x); +- struct s1 {int (*f) (int a);}; +- struct s2 {int (*f) (double a);}; + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2550: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:2616: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2553: \$? = $ac_status" >&5 ++ echo "$as_me:2619: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2556: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:2622: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2559: \$? = $ac_status" >&5 ++ echo "$as_me:2625: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ansi_cc="$cf_arg"; break ++ ac_compiler_gnu=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++ac_compiler_gnu=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-done +-CFLAGS="$cf_save_CFLAGS" +-CPPFLAGS="$cf_save_CPPFLAGS" +- +-fi +-echo "$as_me:2572: result: $cf_cv_ansi_cc" >&5 +-echo "${ECHO_T}$cf_cv_ansi_cc" >&6 +- +-if test "$cf_cv_ansi_cc" != "no"; then +-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_cv_ansi_cc +-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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then ++ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + fi ++echo "$as_me:2637: 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:2643: 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 2649 "configure" ++#include "confdefs.h" + +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:2661: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:2664: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:2667: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:2670: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cxx_g=yes + else +- cat >>confdefs.h <<\EOF +-#define CC_HAS_PROTOS 1 +-EOF +- ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_prog_cxx_g=no + fi ++rm -f conftest.$ac_objext conftest.$ac_ext + fi +- +-if test "$cf_cv_ansi_cc" = "no"; then +- { { echo "$as_me:2665: 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 +- c. use a wrapper such as unproto" >&5 +-echo "$as_me: 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 +- c. use a wrapper such as unproto" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +-case $cf_cv_system_name in +-os2*) +- CFLAGS="$CFLAGS -Zmt" +- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__" +- CXXFLAGS="$CXXFLAGS -Zmt" +- # autoconf's macro sets -Zexe and suffix both, which conflict:w +- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" +- ac_cv_exeext=.exe +- ;; +-esac +- +-PROG_EXT="$EXEEXT" +- +-test -n "$PROG_EXT" && cat >>confdefs.h <&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 +-else +- case $LDCONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path. +- ;; +- *) +- ac_save_IFS=$IFS; IFS=$ac_path_separator +-ac_dummy="$LDPATH" +-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_LDCONFIG="$ac_dir/$ac_word" +- echo "$as_me:2722: found $ac_dir/$ac_word" >&5 +- break +-fi +-done +- +- ;; +-esac +-fi +-LDCONFIG=$ac_cv_path_LDCONFIG +- +-if test -n "$LDCONFIG"; then +- echo "$as_me:2733: result: $LDCONFIG" >&5 +-echo "${ECHO_T}$LDCONFIG" >&6 +-else +- echo "$as_me:2736: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- ;; +-esac +-fi +- +-echo "$as_me:2744: 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. +-if test "${with_cxx+set}" = set; then +- withval="$with_cxx" +- cf_with_cxx=$withval +-else +- cf_with_cxx=yes +-fi; +-echo "$as_me:2754: result: $cf_with_cxx" >&5 +-echo "${ECHO_T}$cf_with_cxx" >&6 +-if test "X$cf_with_cxx" = Xno ; then +- CXX="" +- GXX="" +-else +- # with autoconf 2.13, we can change the error to a warning: +- ac_ext=cc +-ac_cpp='$CXXCPP $CPPFLAGS' +-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-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 +-if test -n "$ac_tool_prefix"; then +- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC +- 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:2772: 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 +-else +- if test -n "$CXX"; then +- ac_cv_prog_CXX="$CXX" # 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_CXX="$ac_tool_prefix$ac_prog" +-echo "$as_me:2787: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-CXX=$ac_cv_prog_CXX +-if test -n "$CXX"; then +- echo "$as_me:2795: result: $CXX" >&5 +-echo "${ECHO_T}$CXX" >&6 +-else +- echo "$as_me:2798: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- test -n "$CXX" && break +- done +-fi +-if test -z "$CXX"; then +- ac_ct_CXX=$CXX +- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC +-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:2811: 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 +-else +- if test -n "$ac_ct_CXX"; then +- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_CXX="$ac_prog" +-echo "$as_me:2826: found $ac_dir/$ac_word" >&5 +-break +-done +- +-fi +-fi +-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +-if test -n "$ac_ct_CXX"; then +- echo "$as_me:2834: result: $ac_ct_CXX" >&5 +-echo "${ECHO_T}$ac_ct_CXX" >&6 +-else +- echo "$as_me:2837: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- test -n "$ac_ct_CXX" && break +-done +-test -n "$ac_ct_CXX" || ac_ct_CXX="g++" +- +- CXX=$ac_ct_CXX +-fi +- +-# Provide some information about the compiler. +-echo "$as_me:2849:" \ +- "checking for C++ compiler version" >&5 +-ac_compiler=`set X $ac_compile; echo $2` +-{ (eval echo "$as_me:2852: \"$ac_compiler --version &5\"") >&5 +- (eval $ac_compiler --version &5) 2>&5 +- ac_status=$? +- echo "$as_me:2855: \$? = $ac_status" >&5 +- (exit $ac_status); } +-{ (eval echo "$as_me:2857: \"$ac_compiler -v &5\"") >&5 +- (eval $ac_compiler -v &5) 2>&5 +- ac_status=$? +- echo "$as_me:2860: \$? = $ac_status" >&5 +- (exit $ac_status); } +-{ (eval echo "$as_me:2862: \"$ac_compiler -V &5\"") >&5 +- (eval $ac_compiler -V &5) 2>&5 +- ac_status=$? +- echo "$as_me:2865: \$? = $ac_status" >&5 +- (exit $ac_status); } +- +-echo "$as_me:2868: 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 2874 "configure" +-#include "confdefs.h" +- +-int +-main () +-{ +-#ifndef __GNUC__ +- choke me +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2889: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:2892: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2895: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:2898: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_compiler_gnu=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_compiler_gnu=no +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu +- +-fi +-echo "$as_me:2910: 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:2916: 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 2922 "configure" +-#include "confdefs.h" +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2934: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:2937: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2940: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:2943: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_prog_cxx_g=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_prog_cxx_g=no +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-fi +-echo "$as_me:2953: 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 +-elif test $ac_cv_prog_cxx_g = yes; then +- if test "$GXX" = yes; then +- CXXFLAGS="-g -O2" +- else +- CXXFLAGS="-g" +- fi +-else +- if test "$GXX" = yes; then +- CXXFLAGS="-O2" +- else +- CXXFLAGS= +- fi ++echo "$as_me:2680: 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 ++elif test $ac_cv_prog_cxx_g = yes; then ++ if test "$GXX" = yes; then ++ CXXFLAGS="-g -O2" ++ else ++ CXXFLAGS="-g" ++ fi ++else ++ if test "$GXX" = yes; then ++ CXXFLAGS="-O2" ++ else ++ CXXFLAGS= ++ fi + fi + for ac_declaration in \ + ''\ +@@ -2977,7 +2704,7 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line 2980 "configure" ++#line 2707 "configure" + #include "confdefs.h" + #include + $ac_declaration +@@ -2990,16 +2717,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2993: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:2720: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2996: \$? = $ac_status" >&5 ++ echo "$as_me:2723: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2999: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:2726: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3002: \$? = $ac_status" >&5 ++ echo "$as_me:2729: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -3009,7 +2736,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 3012 "configure" ++#line 2739 "configure" + #include "confdefs.h" + $ac_declaration + int +@@ -3021,16 +2748,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3024: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:2751: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3027: \$? = $ac_status" >&5 ++ echo "$as_me:2754: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3030: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:2757: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3033: \$? = $ac_status" >&5 ++ echo "$as_me:2760: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -3053,11 +2780,11 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_main_return=return + +- # autoconf 2.5x removed the error - by hardcoding it to g++. ++ # autoconf 2.5x removed the error (hardcoding it to g++, or just blank) + 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:3060: checking for $ac_word" >&5 ++echo "$as_me:2787: 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 +@@ -3074,7 +2801,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:3077: found $ac_dir/$ac_word" >&5 ++ echo "$as_me:2804: found $ac_dir/$ac_word" >&5 + break + fi + done +@@ -3085,28 +2812,30 @@ + CXX=$ac_cv_path_CXX + + if test -n "$CXX"; then +- echo "$as_me:3088: result: $CXX" >&5 ++ echo "$as_me:2815: result: $CXX" >&5 + echo "${ECHO_T}$CXX" >&6 + else +- echo "$as_me:3091: result: no" >&5 ++ echo "$as_me:2818: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi +- if test "$CXX" = "g++" ; then +- { echo "$as_me:3097: WARNING: ignoring hardcoded g++" >&5 +-echo "$as_me: WARNING: ignoring hardcoded g++" >&2;} ++ case "x$CXX" in #(vi ++ x|xg++) ++ { echo "$as_me:2825: WARNING: You don't have any C++ compiler, too bad" >&5 ++echo "$as_me: WARNING: You don't have any C++ compiler, too bad" >&2;} + cf_with_cxx=no; CXX=""; GXX=""; +- fi ++ ;; ++ esac + fi + + GXX_VERSION=none + if test "$GXX" = yes; then +- echo "$as_me:3105: checking version of g++" >&5 +-echo $ECHO_N "checking version of g++... $ECHO_C" >&6 ++ echo "$as_me:2834: checking version of ${CXX:-g++}" >&5 ++echo $ECHO_N "checking version of ${CXX:-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:3109: result: $GXX_VERSION" >&5 ++ echo "$as_me:2838: result: $GXX_VERSION" >&5 + echo "${ECHO_T}$GXX_VERSION" >&6 + fi + +@@ -3114,12 +2843,12 @@ + 1*|2.[0-6]*) + # GXX=""; CXX=""; ac_cv_prog_gxx=no + # cf_cxx_library=no +- { echo "$as_me:3117: WARNING: templates do not work" >&5 ++ { echo "$as_me:2846: WARNING: templates do not work" >&5 + echo "$as_me: WARNING: templates do not work" >&2;} + ;; + esac + +-echo "$as_me:3122: checking if you want to build C++ binding and demo" >&5 ++echo "$as_me:2851: 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. +@@ -3129,23 +2858,28 @@ + else + cf_with_cxx_binding=$cf_with_cxx + fi; +-echo "$as_me:3132: result: $cf_with_cxx_binding" >&5 ++echo "$as_me:2861: result: $cf_with_cxx_binding" >&5 + echo "${ECHO_T}$cf_with_cxx_binding" >&6 + +-echo "$as_me:3135: checking if you want to build with Ada95" >&5 ++echo "$as_me:2864: checking if you want to build with Ada95" >&5 + echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6 ++echo "$as_me:2866: result: $cf_with_ada" >&5 ++echo "${ECHO_T}$cf_with_ada" >&6 + +-# Check whether --with-ada or --without-ada was given. +-if test "${with_ada+set}" = set; then +- withval="$with_ada" +- cf_with_ada=$withval ++echo "$as_me:2869: checking if you want to install terminal database" >&5 ++echo $ECHO_N "checking if you want to install terminal database... $ECHO_C" >&6 ++ ++# Check whether --enable-db-install or --disable-db-install was given. ++if test "${enable_db_install+set}" = set; then ++ enableval="$enable_db_install" ++ cf_with_db_install=$enableval + else +- cf_with_ada=yes ++ cf_with_db_install=yes + fi; +-echo "$as_me:3145: result: $cf_with_ada" >&5 +-echo "${ECHO_T}$cf_with_ada" >&6 ++echo "$as_me:2879: result: $cf_with_db_install" >&5 ++echo "${ECHO_T}$cf_with_db_install" >&6 + +-echo "$as_me:3148: checking if you want to install manpages" >&5 ++echo "$as_me:2882: 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. +@@ -3155,10 +2889,10 @@ + else + cf_with_manpages=yes + fi; +-echo "$as_me:3158: result: $cf_with_manpages" >&5 ++echo "$as_me:2892: result: $cf_with_manpages" >&5 + echo "${ECHO_T}$cf_with_manpages" >&6 + +-echo "$as_me:3161: checking if you want to build programs such as tic" >&5 ++echo "$as_me:2895: 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. +@@ -3168,10 +2902,10 @@ + else + cf_with_progs=yes + fi; +-echo "$as_me:3171: result: $cf_with_progs" >&5 ++echo "$as_me:2905: result: $cf_with_progs" >&5 + echo "${ECHO_T}$cf_with_progs" >&6 + +-echo "$as_me:3174: checking if you want to build test-programs" >&5 ++echo "$as_me:2908: checking if you want to build test-programs" >&5 + echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6 + + # Check whether --with-tests or --without-tests was given. +@@ -3181,10 +2915,10 @@ + else + cf_with_tests=yes + fi; +-echo "$as_me:3184: result: $cf_with_tests" >&5 ++echo "$as_me:2918: result: $cf_with_tests" >&5 + echo "${ECHO_T}$cf_with_tests" >&6 + +-echo "$as_me:3187: checking if you wish to install curses.h" >&5 ++echo "$as_me:2921: 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. +@@ -3194,7 +2928,7 @@ + else + with_curses_h=yes + fi; +-echo "$as_me:3197: result: $with_curses_h" >&5 ++echo "$as_me:2931: result: $with_curses_h" >&5 + echo "${ECHO_T}$with_curses_h" >&6 + + modules_to_build="ncurses" +@@ -3220,7 +2954,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:3223: checking for $ac_word" >&5 ++echo "$as_me:2957: 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 +@@ -3235,7 +2969,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_AWK="$ac_prog" +-echo "$as_me:3238: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2972: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3243,21 +2977,21 @@ + fi + AWK=$ac_cv_prog_AWK + if test -n "$AWK"; then +- echo "$as_me:3246: result: $AWK" >&5 ++ echo "$as_me:2980: result: $AWK" >&5 + echo "${ECHO_T}$AWK" >&6 + else +- echo "$as_me:3249: result: no" >&5 ++ echo "$as_me:2983: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + test -n "$AWK" && break + done + +-test -z "$AWK" && { { echo "$as_me:3256: error: No awk program found" >&5 ++test -z "$AWK" && { { echo "$as_me:2990: error: No awk program found" >&5 + echo "$as_me: error: No awk program found" >&2;} + { (exit 1); exit 1; }; } + +-echo "$as_me:3260: checking for egrep" >&5 ++echo "$as_me:2994: 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 +@@ -3267,11 +3001,11 @@ + else ac_cv_prog_egrep='egrep' + fi + fi +-echo "$as_me:3270: result: $ac_cv_prog_egrep" >&5 ++echo "$as_me:3004: 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:3274: error: No egrep program found" >&5 ++test -z "$EGREP" && { { echo "$as_me:3008: error: No egrep program found" >&5 + echo "$as_me: error: No egrep program found" >&2;} + { (exit 1); exit 1; }; } + +@@ -3287,7 +3021,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:3290: checking for a BSD compatible install" >&5 ++echo "$as_me:3024: 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 +@@ -3336,7 +3070,7 @@ + INSTALL=$ac_install_sh + fi + fi +-echo "$as_me:3339: result: $INSTALL" >&5 ++echo "$as_me:3073: result: $INSTALL" >&5 + echo "${ECHO_T}$INSTALL" >&6 + + # Use test -z because SunOS4 sh mishandles braces in ${var-val}. +@@ -3361,7 +3095,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:3364: checking for $ac_word" >&5 ++echo "$as_me:3098: 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 +@@ -3376,7 +3110,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_LINT="$ac_prog" +-echo "$as_me:3379: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3113: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3384,28 +3118,28 @@ + fi + LINT=$ac_cv_prog_LINT + if test -n "$LINT"; then +- echo "$as_me:3387: result: $LINT" >&5 ++ echo "$as_me:3121: result: $LINT" >&5 + echo "${ECHO_T}$LINT" >&6 + else +- echo "$as_me:3390: result: no" >&5 ++ echo "$as_me:3124: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + test -n "$LINT" && break + done + +-echo "$as_me:3397: checking whether ln -s works" >&5 ++echo "$as_me:3131: 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:3401: result: yes" >&5 ++ echo "$as_me:3135: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else +- echo "$as_me:3404: result: no, using $LN_S" >&5 ++ echo "$as_me:3138: result: no, using $LN_S" >&5 + echo "${ECHO_T}no, using $LN_S" >&6 + fi + +-echo "$as_me:3408: checking if $LN_S -f options work" >&5 ++echo "$as_me:3142: checking if $LN_S -f options work" >&5 + echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6 + + rm -f conf$$.src conf$$dst +@@ -3417,12 +3151,12 @@ + cf_prog_ln_sf=no + fi + rm -f conf$$.dst conf$$src +-echo "$as_me:3420: result: $cf_prog_ln_sf" >&5 ++echo "$as_me:3154: result: $cf_prog_ln_sf" >&5 + echo "${ECHO_T}$cf_prog_ln_sf" >&6 + + test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" + +-echo "$as_me:3425: checking for long file names" >&5 ++echo "$as_me:3159: 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 +@@ -3461,7 +3195,7 @@ + rm -rf $ac_xdir 2>/dev/null + done + fi +-echo "$as_me:3464: result: $ac_cv_sys_long_file_names" >&5 ++echo "$as_me:3198: 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 + +@@ -3473,7 +3207,7 @@ + + # if we find pkg-config, check if we should install the ".pc" files. + +-echo "$as_me:3476: checking if you want to use pkg-config" >&5 ++echo "$as_me:3210: 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. +@@ -3483,7 +3217,7 @@ + else + cf_pkg_config=yes + fi; +-echo "$as_me:3486: result: $cf_pkg_config" >&5 ++echo "$as_me:3220: result: $cf_pkg_config" >&5 + echo "${ECHO_T}$cf_pkg_config" >&6 + + case $cf_pkg_config in #(vi +@@ -3491,10 +3225,11 @@ + PKG_CONFIG=none + ;; + yes) #(vi +- if test -n "$ac_tool_prefix"; then ++ ++if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. + set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +-echo "$as_me:3497: checking for $ac_word" >&5 ++echo "$as_me:3232: 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 +@@ -3511,7 +3246,7 @@ + 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:3514: found $ac_dir/$ac_word" >&5 ++ echo "$as_me:3249: found $ac_dir/$ac_word" >&5 + break + fi + done +@@ -3522,10 +3257,10 @@ + PKG_CONFIG=$ac_cv_path_PKG_CONFIG + + if test -n "$PKG_CONFIG"; then +- echo "$as_me:3525: result: $PKG_CONFIG" >&5 ++ echo "$as_me:3260: result: $PKG_CONFIG" >&5 + echo "${ECHO_T}$PKG_CONFIG" >&6 + else +- echo "$as_me:3528: result: no" >&5 ++ echo "$as_me:3263: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3534,7 +3269,7 @@ + ac_pt_PKG_CONFIG=$PKG_CONFIG + # 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:3537: checking for $ac_word" >&5 ++echo "$as_me:3272: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -3551,7 +3286,7 @@ + test -z "$ac_dir" && ac_dir=. + if $as_executable_p "$ac_dir/$ac_word"; then + ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:3554: found $ac_dir/$ac_word" >&5 ++ echo "$as_me:3289: found $ac_dir/$ac_word" >&5 + break + fi + done +@@ -3563,10 +3298,10 @@ + ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG + + if test -n "$ac_pt_PKG_CONFIG"; then +- echo "$as_me:3566: result: $ac_pt_PKG_CONFIG" >&5 ++ echo "$as_me:3301: result: $ac_pt_PKG_CONFIG" >&5 + echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 + else +- echo "$as_me:3569: result: no" >&5 ++ echo "$as_me:3304: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3597,7 +3332,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval PKG_CONFIG="$PKG_CONFIG" + case ".$PKG_CONFIG" in #(vi + .NONE/*) +@@ -3609,7 +3344,7 @@ + PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:3612: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 ++ { { echo "$as_me:3347: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 + echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;} + { (exit 1); exit 1; }; } + ;; +@@ -3617,16 +3352,51 @@ + + fi + +-if test "$PKG_CONFIG" != no ; then +- echo "$as_me:3621: 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 ++if test "$PKG_CONFIG" != none ; then ++ echo "$as_me:3356: checking for $PKG_CONFIG library directory" >&5 ++echo $ECHO_N "checking for $PKG_CONFIG library directory... $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 +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then ++# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given. ++if test "${with_pkg_config_libdir+set}" = set; then ++ withval="$with_pkg_config_libdir" ++ PKG_CONFIG_LIBDIR=$withval ++else ++ PKG_CONFIG_LIBDIR=yes ++fi; ++ ++ case x$PKG_CONFIG_LIBDIR in #(vi ++ x/*) #(vi ++ ;; ++ xyes) #(vi ++ # look for the library directory using the same prefix as the executable ++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'` ++ case x`(arch) 2>/dev/null` in #(vi ++ *64) #(vi ++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib ++ do ++ if test -d $cf_config/pkgconfig ++ then ++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig ++ break ++ fi ++ done ++ ;; ++ *) ++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ++ echo "$as_me:3393: result: $PKG_CONFIG_LIBDIR" >&5 ++echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6 ++fi ++ ++if test "$PKG_CONFIG" != none ; then ++ echo "$as_me:3398: 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 + + # Check whether --enable-pc-files or --disable-pc-files was given. + if test "${enable_pc_files+set}" = set; then +@@ -3635,18 +3405,48 @@ + else + enable_pc_files=no + fi; +- echo "$as_me:3638: result: $enable_pc_files" >&5 ++ echo "$as_me:3408: result: $enable_pc_files" >&5 + echo "${ECHO_T}$enable_pc_files" >&6 +- else +- echo "$as_me:3641: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- { echo "$as_me:3643: 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 ++ if test "$enable_pc_files" != no ++ then ++ ++if test "x$prefix" != xNONE; then ++ cf_path_syntax="$prefix" ++else ++ cf_path_syntax="$ac_default_prefix" ++fi ++ ++case ".$PKG_CONFIG_LIBDIR" in #(vi ++.\$\(*\)*|.\'*\'*) #(vi ++ ;; ++..|./*|.\\*) #(vi ++ ;; ++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ++ ;; ++.\${*prefix}*|.\${*dir}*) #(vi ++ eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR" ++ case ".$PKG_CONFIG_LIBDIR" in #(vi ++ .NONE/*) ++ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++ esac ++ ;; #(vi ++.no|.NONE/*) ++ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++*) ++ { { echo "$as_me:3438: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5 ++echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++esac ++ + fi ++else ++ enable_pc_files=no + fi + +-echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5 ++echo "$as_me:3449: 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. +@@ -3656,11 +3456,11 @@ + else + enable_mixedcase=auto + fi; +-echo "$as_me:3659: result: $enable_mixedcase" >&5 ++echo "$as_me:3459: result: $enable_mixedcase" >&5 + echo "${ECHO_T}$enable_mixedcase" >&6 + if test "$enable_mixedcase" = "auto" ; then + +-echo "$as_me:3663: checking if filesystem supports mixed-case filenames" >&5 ++echo "$as_me:3463: 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 +@@ -3668,7 +3468,7 @@ + + if test "$cross_compiling" = yes ; then + case $target_alias in #(vi +- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi ++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) +@@ -3687,16 +3487,18 @@ + fi + + fi +-echo "$as_me:3690: result: $cf_cv_mixedcase" >&5 ++echo "$as_me:3490: result: $cf_cv_mixedcase" >&5 + echo "${ECHO_T}$cf_cv_mixedcase" >&6 +-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_mixedcase" = yes && ++cat >>confdefs.h <<\EOF + #define MIXEDCASE_FILENAMES 1 + EOF + + else + cf_cv_mixedcase=$enable_mixedcase +- if test "$enable_mixedcase" = "yes" ; then +- cat >>confdefs.h <<\EOF ++ if test "x$enable_mixedcase" = "xyes" ; then ++ ++cat >>confdefs.h <<\EOF + #define MIXEDCASE_FILENAMES 1 + EOF + +@@ -3704,7 +3506,7 @@ + fi + + # do this after mixed-case option (tags/TAGS is not as important as tic). +-echo "$as_me:3707: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "$as_me:3509: 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 +@@ -3724,11 +3526,11 @@ + rm -f conftest.make + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then +- echo "$as_me:3727: result: yes" >&5 ++ echo "$as_me:3529: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + SET_MAKE= + else +- echo "$as_me:3731: result: no" >&5 ++ echo "$as_me:3533: result: no" >&5 + echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" + fi +@@ -3737,7 +3539,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:3740: checking for $ac_word" >&5 ++echo "$as_me:3542: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_CTAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -3752,7 +3554,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_CTAGS="$ac_prog" +-echo "$as_me:3755: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3557: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3760,10 +3562,10 @@ + fi + CTAGS=$ac_cv_prog_CTAGS + if test -n "$CTAGS"; then +- echo "$as_me:3763: result: $CTAGS" >&5 ++ echo "$as_me:3565: result: $CTAGS" >&5 + echo "${ECHO_T}$CTAGS" >&6 + else +- echo "$as_me:3766: result: no" >&5 ++ echo "$as_me:3568: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3774,7 +3576,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:3777: checking for $ac_word" >&5 ++echo "$as_me:3579: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ETAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -3789,7 +3591,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_ETAGS="$ac_prog" +-echo "$as_me:3792: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3594: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3797,10 +3599,10 @@ + fi + ETAGS=$ac_cv_prog_ETAGS + if test -n "$ETAGS"; then +- echo "$as_me:3800: result: $ETAGS" >&5 ++ echo "$as_me:3602: result: $ETAGS" >&5 + echo "${ECHO_T}$ETAGS" >&6 + else +- echo "$as_me:3803: result: no" >&5 ++ echo "$as_me:3605: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3809,7 +3611,7 @@ + + # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args. + set dummy ${CTAGS:-ctags}; ac_word=$2 +-echo "$as_me:3812: checking for $ac_word" >&5 ++echo "$as_me:3614: 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 +@@ -3824,7 +3626,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:3827: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3629: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3833,17 +3635,17 @@ + fi + MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS + if test -n "$MAKE_LOWER_TAGS"; then +- echo "$as_me:3836: result: $MAKE_LOWER_TAGS" >&5 ++ echo "$as_me:3638: result: $MAKE_LOWER_TAGS" >&5 + echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 + else +- echo "$as_me:3839: result: no" >&5 ++ echo "$as_me:3641: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + if test "$cf_cv_mixedcase" = yes ; then + # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args. + set dummy ${ETAGS:-etags}; ac_word=$2 +-echo "$as_me:3846: checking for $ac_word" >&5 ++echo "$as_me:3648: 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 +@@ -3858,7 +3660,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:3861: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3663: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3867,10 +3669,10 @@ + fi + MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS + if test -n "$MAKE_UPPER_TAGS"; then +- echo "$as_me:3870: result: $MAKE_UPPER_TAGS" >&5 ++ echo "$as_me:3672: result: $MAKE_UPPER_TAGS" >&5 + echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 + else +- echo "$as_me:3873: result: no" >&5 ++ echo "$as_me:3675: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3890,7 +3692,7 @@ + MAKE_LOWER_TAGS="#" + fi + +-echo "$as_me:3893: checking for makeflags variable" >&5 ++echo "$as_me:3695: 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 +@@ -3924,13 +3726,13 @@ + rm -f cf_makeflags.tmp + + fi +-echo "$as_me:3927: result: $cf_cv_makeflags" >&5 ++echo "$as_me:3729: 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:3933: checking for $ac_word" >&5 ++echo "$as_me:3735: 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 +@@ -3945,7 +3747,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:3948: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3750: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3953,10 +3755,10 @@ + fi + RANLIB=$ac_cv_prog_RANLIB + if test -n "$RANLIB"; then +- echo "$as_me:3956: result: $RANLIB" >&5 ++ echo "$as_me:3758: result: $RANLIB" >&5 + echo "${ECHO_T}$RANLIB" >&6 + else +- echo "$as_me:3959: result: no" >&5 ++ echo "$as_me:3761: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -3965,7 +3767,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:3968: checking for $ac_word" >&5 ++echo "$as_me:3770: 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 +@@ -3980,7 +3782,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:3983: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3785: found $ac_dir/$ac_word" >&5 + break + done + +@@ -3989,10 +3791,10 @@ + fi + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB + if test -n "$ac_ct_RANLIB"; then +- echo "$as_me:3992: result: $ac_ct_RANLIB" >&5 ++ echo "$as_me:3794: result: $ac_ct_RANLIB" >&5 + echo "${ECHO_T}$ac_ct_RANLIB" >&6 + else +- echo "$as_me:3995: result: no" >&5 ++ echo "$as_me:3797: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4004,7 +3806,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:4007: checking for $ac_word" >&5 ++echo "$as_me:3809: 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 +@@ -4019,7 +3821,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:4022: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3824: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4027,10 +3829,10 @@ + fi + LD=$ac_cv_prog_LD + if test -n "$LD"; then +- echo "$as_me:4030: result: $LD" >&5 ++ echo "$as_me:3832: result: $LD" >&5 + echo "${ECHO_T}$LD" >&6 + else +- echo "$as_me:4033: result: no" >&5 ++ echo "$as_me:3835: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4039,7 +3841,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:4042: checking for $ac_word" >&5 ++echo "$as_me:3844: 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 +@@ -4054,7 +3856,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:4057: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3859: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4063,10 +3865,10 @@ + fi + ac_ct_LD=$ac_cv_prog_ac_ct_LD + if test -n "$ac_ct_LD"; then +- echo "$as_me:4066: result: $ac_ct_LD" >&5 ++ echo "$as_me:3868: result: $ac_ct_LD" >&5 + echo "${ECHO_T}$ac_ct_LD" >&6 + else +- echo "$as_me:4069: result: no" >&5 ++ echo "$as_me:3871: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4078,7 +3880,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:4081: checking for $ac_word" >&5 ++echo "$as_me:3883: 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 +@@ -4093,7 +3895,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:4096: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3898: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4101,10 +3903,10 @@ + fi + AR=$ac_cv_prog_AR + if test -n "$AR"; then +- echo "$as_me:4104: result: $AR" >&5 ++ echo "$as_me:3906: result: $AR" >&5 + echo "${ECHO_T}$AR" >&6 + else +- echo "$as_me:4107: result: no" >&5 ++ echo "$as_me:3909: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4113,7 +3915,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:4116: checking for $ac_word" >&5 ++echo "$as_me:3918: 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 +@@ -4128,7 +3930,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:4131: found $ac_dir/$ac_word" >&5 ++echo "$as_me:3933: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4137,10 +3939,10 @@ + fi + ac_ct_AR=$ac_cv_prog_ac_ct_AR + if test -n "$ac_ct_AR"; then +- echo "$as_me:4140: result: $ac_ct_AR" >&5 ++ echo "$as_me:3942: result: $ac_ct_AR" >&5 + echo "${ECHO_T}$ac_ct_AR" >&6 + else +- echo "$as_me:4143: result: no" >&5 ++ echo "$as_me:3945: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4150,9 +3952,83 @@ + fi + + if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args. ++set dummy ${ac_tool_prefix}nm; ac_word=$2 ++echo "$as_me:3957: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_NM+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$NM"; then ++ ac_cv_prog_NM="$NM" # 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_NM="${ac_tool_prefix}nm" ++echo "$as_me:3972: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi ++fi ++NM=$ac_cv_prog_NM ++if test -n "$NM"; then ++ echo "$as_me:3980: result: $NM" >&5 ++echo "${ECHO_T}$NM" >&6 ++else ++ echo "$as_me:3983: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$ac_cv_prog_NM"; then ++ ac_ct_NM=$NM ++ # Extract the first word of "nm", so it can be a program name with args. ++set dummy nm; ac_word=$2 ++echo "$as_me:3992: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_NM+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_NM"; then ++ ac_cv_prog_ac_ct_NM="$ac_ct_NM" # 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_NM="nm" ++echo "$as_me:4007: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++ test -z "$ac_cv_prog_ac_ct_NM" && ac_cv_prog_ac_ct_NM="nm" ++fi ++fi ++ac_ct_NM=$ac_cv_prog_ac_ct_NM ++if test -n "$ac_ct_NM"; then ++ echo "$as_me:4016: result: $ac_ct_NM" >&5 ++echo "${ECHO_T}$ac_ct_NM" >&6 ++else ++ echo "$as_me:4019: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ NM=$ac_ct_NM ++else ++ NM="$ac_cv_prog_NM" ++fi ++ ++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:4155: checking for $ac_word" >&5 ++echo "$as_me:4031: 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 +@@ -4167,7 +4043,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:4170: found $ac_dir/$ac_word" >&5 ++echo "$as_me:4046: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4175,10 +4051,10 @@ + fi + AR=$ac_cv_prog_AR + if test -n "$AR"; then +- echo "$as_me:4178: result: $AR" >&5 ++ echo "$as_me:4054: result: $AR" >&5 + echo "${ECHO_T}$AR" >&6 + else +- echo "$as_me:4181: result: no" >&5 ++ echo "$as_me:4057: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4187,7 +4063,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:4190: checking for $ac_word" >&5 ++echo "$as_me:4066: 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 +@@ -4202,7 +4078,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:4205: found $ac_dir/$ac_word" >&5 ++echo "$as_me:4081: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4211,10 +4087,10 @@ + fi + ac_ct_AR=$ac_cv_prog_ac_ct_AR + if test -n "$ac_ct_AR"; then +- echo "$as_me:4214: result: $ac_ct_AR" >&5 ++ echo "$as_me:4090: result: $ac_ct_AR" >&5 + echo "${ECHO_T}$ac_ct_AR" >&6 + else +- echo "$as_me:4217: result: no" >&5 ++ echo "$as_me:4093: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4223,7 +4099,7 @@ + AR="$ac_cv_prog_AR" + fi + +-echo "$as_me:4226: checking for options to update archives" >&5 ++echo "$as_me:4102: 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 +@@ -4246,13 +4122,13 @@ + rm -f conftest.a + + cat >conftest.$ac_ext <&5 ++ if { (eval echo "$as_me:4128: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4255: \$? = $ac_status" >&5 ++ echo "$as_me:4131: \$? = $ac_status" >&5 + (exit $ac_status); } ; then + echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5 + $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null +@@ -4263,7 +4139,7 @@ + else + test -n "$verbose" && echo " cannot compile test-program" 1>&6 + +-echo "${as_me:-configure}:4266: testing cannot compile test-program ..." 1>&5 ++echo "${as_me:-configure}:4142: testing cannot compile test-program ..." 1>&5 + + break + fi +@@ -4271,7 +4147,7 @@ + rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext + + fi +-echo "$as_me:4274: result: $cf_cv_ar_flags" >&5 ++echo "$as_me:4150: result: $cf_cv_ar_flags" >&5 + echo "${ECHO_T}$cf_cv_ar_flags" >&6 + + if test -n "$ARFLAGS" ; then +@@ -4282,20 +4158,20 @@ + ARFLAGS=$cf_cv_ar_flags + fi + +-echo "$as_me:4285: checking if you have specified an install-prefix" >&5 ++echo "$as_me:4161: 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. + if test "${with_install_prefix+set}" = set; then + withval="$with_install_prefix" +- case "$withval" in #(vi +- yes|no) #(vi ++ case "x$withval" in #(vi ++ xyes|xno) #(vi + ;; + *) DESTDIR="$withval" + ;; + esac + fi; +-echo "$as_me:4298: result: $DESTDIR" >&5 ++echo "$as_me:4174: result: $DESTDIR" >&5 + echo "${ECHO_T}$DESTDIR" >&6 + + ############################################################################### +@@ -4323,7 +4199,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:4326: checking for $ac_word" >&5 ++echo "$as_me:4202: 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 +@@ -4338,7 +4214,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:4341: found $ac_dir/$ac_word" >&5 ++echo "$as_me:4217: found $ac_dir/$ac_word" >&5 + break + done + +@@ -4346,10 +4222,10 @@ + fi + BUILD_CC=$ac_cv_prog_BUILD_CC + if test -n "$BUILD_CC"; then +- echo "$as_me:4349: result: $BUILD_CC" >&5 ++ echo "$as_me:4225: result: $BUILD_CC" >&5 + echo "${ECHO_T}$BUILD_CC" >&6 + else +- echo "$as_me:4352: result: no" >&5 ++ echo "$as_me:4228: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -4357,12 +4233,12 @@ + done + + fi; +- echo "$as_me:4360: checking for native build C compiler" >&5 ++ echo "$as_me:4236: checking for native build C compiler" >&5 + echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6 +- echo "$as_me:4362: result: $BUILD_CC" >&5 ++ echo "$as_me:4238: result: $BUILD_CC" >&5 + echo "${ECHO_T}$BUILD_CC" >&6 + +- echo "$as_me:4365: checking for native build C preprocessor" >&5 ++ echo "$as_me:4241: 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. +@@ -4372,10 +4248,10 @@ + else + BUILD_CPP='${BUILD_CC} -E' + fi; +- echo "$as_me:4375: result: $BUILD_CPP" >&5 ++ echo "$as_me:4251: result: $BUILD_CPP" >&5 + echo "${ECHO_T}$BUILD_CPP" >&6 + +- echo "$as_me:4378: checking for native build C flags" >&5 ++ echo "$as_me:4254: 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. +@@ -4383,10 +4259,10 @@ + withval="$with_build_cflags" + BUILD_CFLAGS="$withval" + fi; +- echo "$as_me:4386: result: $BUILD_CFLAGS" >&5 ++ echo "$as_me:4262: result: $BUILD_CFLAGS" >&5 + echo "${ECHO_T}$BUILD_CFLAGS" >&6 + +- echo "$as_me:4389: checking for native build C preprocessor-flags" >&5 ++ echo "$as_me:4265: 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. +@@ -4394,10 +4270,10 @@ + withval="$with_build_cppflags" + BUILD_CPPFLAGS="$withval" + fi; +- echo "$as_me:4397: result: $BUILD_CPPFLAGS" >&5 ++ echo "$as_me:4273: result: $BUILD_CPPFLAGS" >&5 + echo "${ECHO_T}$BUILD_CPPFLAGS" >&6 + +- echo "$as_me:4400: checking for native build linker-flags" >&5 ++ echo "$as_me:4276: 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. +@@ -4405,10 +4281,10 @@ + withval="$with_build_ldflags" + BUILD_LDFLAGS="$withval" + fi; +- echo "$as_me:4408: result: $BUILD_LDFLAGS" >&5 ++ echo "$as_me:4284: result: $BUILD_LDFLAGS" >&5 + echo "${ECHO_T}$BUILD_LDFLAGS" >&6 + +- echo "$as_me:4411: checking for native build linker-libraries" >&5 ++ echo "$as_me:4287: 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. +@@ -4416,7 +4292,7 @@ + withval="$with_build_libs" + BUILD_LIBS="$withval" + fi; +- echo "$as_me:4419: result: $BUILD_LIBS" >&5 ++ echo "$as_me:4295: result: $BUILD_LIBS" >&5 + echo "${ECHO_T}$BUILD_LIBS" >&6 + + # this assumes we're on Unix. +@@ -4426,7 +4302,7 @@ + : ${BUILD_CC:='${CC}'} + + if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then +- { { echo "$as_me:4429: error: Cross-build requires two compilers. ++ { { echo "$as_me:4305: 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;} +@@ -4451,7 +4327,7 @@ + ### shared, for example. + cf_list_models="" + +-echo "$as_me:4454: checking if libtool -version-number should be used" >&5 ++echo "$as_me:4330: checking if libtool -version-number should be used" >&5 + echo $ECHO_N "checking if libtool -version-number should be used... $ECHO_C" >&6 + + # Check whether --enable-libtool-version or --disable-libtool-version was given. +@@ -4468,7 +4344,7 @@ + cf_libtool_version=yes + + fi; +-echo "$as_me:4471: result: $cf_libtool_version" >&5 ++echo "$as_me:4347: result: $cf_libtool_version" >&5 + echo "${ECHO_T}$cf_libtool_version" >&6 + + if test "$cf_libtool_version" = yes ; then +@@ -4493,7 +4369,7 @@ + LIB_INSTALL= + LIB_UNINSTALL= + +-echo "$as_me:4496: checking if you want to build libraries with libtool" >&5 ++echo "$as_me:4372: 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. +@@ -4503,7 +4379,7 @@ + else + with_libtool=no + fi; +-echo "$as_me:4506: result: $with_libtool" >&5 ++echo "$as_me:4382: result: $with_libtool" >&5 + echo "${ECHO_T}$with_libtool" >&6 + if test "$with_libtool" != "no"; then + +@@ -4522,7 +4398,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval with_libtool="$with_libtool" + case ".$with_libtool" in #(vi + .NONE/*) +@@ -4534,7 +4410,7 @@ + with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:4537: error: expected a pathname, not \"$with_libtool\"" >&5 ++ { { echo "$as_me:4413: error: expected a pathname, not \"$with_libtool\"" >&5 + echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;} + { (exit 1); exit 1; }; } + ;; +@@ -4542,50 +4418,199 @@ + + LIBTOOL=$with_libtool + else +- # Extract the first word of "libtool", so it can be a program name with args. +-set dummy libtool; ac_word=$2 +-echo "$as_me:4547: checking for $ac_word" >&5 ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in libtool glibtool ++ 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:4426: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_LIBTOOL+set}" = set; then ++if test "${ac_cv_prog_LIBTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- case $LIBTOOL in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_LIBTOOL="$LIBTOOL" # Let the user override the test with a path. +- ;; +- *) ++ if test -n "$LIBTOOL"; then ++ ac_cv_prog_LIBTOOL="$LIBTOOL" # 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=. +- if $as_executable_p "$ac_dir/$ac_word"; then +- ac_cv_path_LIBTOOL="$ac_dir/$ac_word" +- echo "$as_me:4564: found $ac_dir/$ac_word" >&5 +- break ++ $as_executable_p "$ac_dir/$ac_word" || continue ++ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog" ++echo "$as_me:4441: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi ++fi ++LIBTOOL=$ac_cv_prog_LIBTOOL ++if test -n "$LIBTOOL"; then ++ echo "$as_me:4449: result: $LIBTOOL" >&5 ++echo "${ECHO_T}$LIBTOOL" >&6 ++else ++ echo "$as_me:4452: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$LIBTOOL" && break ++ done ++fi ++if test -z "$LIBTOOL"; then ++ ac_ct_LIBTOOL=$LIBTOOL ++ for ac_prog in libtool glibtool ++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:4465: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_LIBTOOL"; then ++ ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # 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_LIBTOOL="$ac_prog" ++echo "$as_me:4480: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi + fi ++ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL ++if test -n "$ac_ct_LIBTOOL"; then ++ echo "$as_me:4488: result: $ac_ct_LIBTOOL" >&5 ++echo "${ECHO_T}$ac_ct_LIBTOOL" >&6 ++else ++ echo "$as_me:4491: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$ac_ct_LIBTOOL" && break + done ++test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none" + +- ;; +-esac ++ LIBTOOL=$ac_ct_LIBTOOL ++fi ++ ++if test -n "$LIBTOOL" && test "$LIBTOOL" != none ++then ++ 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.].*//'` ++else ++ cf_cv_libtool_version= + fi +-LIBTOOL=$ac_cv_path_LIBTOOL ++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version ++ ++ if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool ++ then ++ ++unset ac_cv_prog_ac_ct_LIBTOOL ++unset ac_ct_LIBTOOL ++unset LIBTOOL ++ ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in glibtool ++ 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:4522: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_LIBTOOL+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$LIBTOOL"; then ++ ac_cv_prog_LIBTOOL="$LIBTOOL" # 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_LIBTOOL="$ac_tool_prefix$ac_prog" ++echo "$as_me:4537: found $ac_dir/$ac_word" >&5 ++break ++done + ++fi ++fi ++LIBTOOL=$ac_cv_prog_LIBTOOL + if test -n "$LIBTOOL"; then +- echo "$as_me:4575: result: $LIBTOOL" >&5 ++ echo "$as_me:4545: result: $LIBTOOL" >&5 + echo "${ECHO_T}$LIBTOOL" >&6 + else +- echo "$as_me:4578: result: no" >&5 ++ echo "$as_me:4548: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$LIBTOOL" && break ++ done ++fi ++if test -z "$LIBTOOL"; then ++ ac_ct_LIBTOOL=$LIBTOOL ++ for ac_prog in glibtool ++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:4561: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_LIBTOOL"; then ++ ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # 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_LIBTOOL="$ac_prog" ++echo "$as_me:4576: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi ++fi ++ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL ++if test -n "$ac_ct_LIBTOOL"; then ++ echo "$as_me:4584: result: $ac_ct_LIBTOOL" >&5 ++echo "${ECHO_T}$ac_ct_LIBTOOL" >&6 ++else ++ echo "$as_me:4587: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + ++ test -n "$ac_ct_LIBTOOL" && break ++done ++test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none" ++ ++ LIBTOOL=$ac_ct_LIBTOOL ++fi ++ ++if test -n "$LIBTOOL" && test "$LIBTOOL" != none ++then ++ 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.].*//'` ++else ++ cf_cv_libtool_version= ++fi ++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version ++ ++ fi + fi + if test -z "$LIBTOOL" ; then +- { { echo "$as_me:4584: error: Cannot find libtool" >&5 ++ { { echo "$as_me:4609: 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} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o' ++ LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' + LIB_OBJECT='${OBJECTS:.o=.lo}' + LIB_SUFFIX=.la + LIB_CLEAN='${LIBTOOL} --mode=clean' +@@ -4595,26 +4620,36 @@ + LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' + LIB_PREP=: + +- # Show the version of libtool +- echo "$as_me:4599: 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. "(" ++if test -n "$LIBTOOL" && test "$LIBTOOL" != none ++then ++ echo "$as_me:4625: checking version of $LIBTOOL" >&5 ++echo $ECHO_N "checking version of $LIBTOOL... $ECHO_C" >&6 ++ ++if test -n "$LIBTOOL" && test "$LIBTOOL" != none ++then + 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:4606: result: $cf_cv_libtool_version" >&5 ++else ++ cf_cv_libtool_version= ++fi ++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version ++ ++ echo "$as_me:4636: 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:4609: error: This is not GNU libtool" >&5 ++ { { echo "$as_me:4639: error: This is not GNU libtool" >&5 + echo "$as_me: error: This is not GNU libtool" >&2;} + { (exit 1); exit 1; }; } + fi ++else ++ { { echo "$as_me:4644: error: GNU libtool has not been found" >&5 ++echo "$as_me: error: GNU libtool has not been found" >&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 ++ cygwin*|msys*|mingw32*|uwin*|aix[4-7]) #(vi + LT_UNDEF=-no-undefined + ;; + esac +@@ -4642,7 +4677,7 @@ + + else + +-echo "$as_me:4645: checking if you want to build shared libraries" >&5 ++echo "$as_me:4680: 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. +@@ -4652,11 +4687,11 @@ + else + with_shared=no + fi; +-echo "$as_me:4655: result: $with_shared" >&5 ++echo "$as_me:4690: result: $with_shared" >&5 + echo "${ECHO_T}$with_shared" >&6 +-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" ++test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared" + +-echo "$as_me:4659: checking if you want to build static libraries" >&5 ++echo "$as_me:4694: 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. +@@ -4666,11 +4701,11 @@ + else + with_normal=yes + fi; +-echo "$as_me:4669: result: $with_normal" >&5 ++echo "$as_me:4704: result: $with_normal" >&5 + echo "${ECHO_T}$with_normal" >&6 +-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal" ++test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal" + +-echo "$as_me:4673: checking if you want to build debug libraries" >&5 ++echo "$as_me:4708: 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. +@@ -4680,11 +4715,11 @@ + else + with_debug=yes + fi; +-echo "$as_me:4683: result: $with_debug" >&5 ++echo "$as_me:4718: result: $with_debug" >&5 + echo "${ECHO_T}$with_debug" >&6 +-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug" ++test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug" + +-echo "$as_me:4687: checking if you want to build profiling libraries" >&5 ++echo "$as_me:4722: 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. +@@ -4694,27 +4729,44 @@ + else + with_profile=no + fi; +-echo "$as_me:4697: result: $with_profile" >&5 ++echo "$as_me:4732: result: $with_profile" >&5 + echo "${ECHO_T}$with_profile" >&6 +-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" ++test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile" ++ ++fi ++ ++if test "X$cf_with_cxx_binding" != Xno; then ++if test "x$with_shared" = "xyes"; then ++echo "$as_me:4740: checking if you want to build C++ shared libraries" >&5 ++echo $ECHO_N "checking if you want to build C++ shared libraries... $ECHO_C" >&6 + ++# Check whether --with-cxx-shared or --without-cxx-shared was given. ++if test "${with_cxx_shared+set}" = set; then ++ withval="$with_cxx_shared" ++ with_shared_cxx=$withval ++else ++ with_shared_cxx=no ++fi; ++echo "$as_me:4750: result: $with_shared_cxx" >&5 ++echo "${ECHO_T}$with_shared_cxx" >&6 ++fi + fi + + ############################################################################### + +-echo "$as_me:4705: checking for specified models" >&5 ++echo "$as_me:4757: 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:4709: result: $cf_list_models" >&5 ++echo "$as_me:4761: 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:4714: checking for default model" >&5 ++echo "$as_me:4766: 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:4717: result: $DFT_LWR_MODEL" >&5 ++echo "$as_me:4769: result: $DFT_LWR_MODEL" >&5 + echo "${ECHO_T}$DFT_LWR_MODEL" >&6 + + DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +@@ -4728,6 +4780,22 @@ + LIB_DIR=../lib + LIB_2ND=../../lib + ++echo "$as_me:4783: checking if you want to have a library-prefix" >&5 ++echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6 ++ ++# Check whether --with-lib-prefix or --without-lib-prefix was given. ++if test "${with_lib_prefix+set}" = set; then ++ withval="$with_lib_prefix" ++ with_lib_prefix=$withval ++else ++ with_lib_prefix=auto ++fi; ++echo "$as_me:4793: result: $with_lib_prefix" >&5 ++echo "${ECHO_T}$with_lib_prefix" >&6 ++ ++if test $with_lib_prefix = auto ++then ++ + case $cf_cv_system_name in #(vi + OS/2*|os2*) #(vi + LIB_PREFIX='' +@@ -4737,13 +4805,28 @@ + esac + cf_prefix=$LIB_PREFIX + +-LIB_PREFIX=$cf_prefix ++elif test $with_lib_prefix = no ++then ++ LIB_PREFIX= ++else ++ LIB_PREFIX=$with_lib_prefix ++fi + + LIB_SUFFIX= + ++ echo "$as_me:4817: checking for PATH separator" >&5 ++echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6 ++ case $cf_cv_system_name in ++ os2*) PATH_SEPARATOR=';' ;; ++ *) ${PATH_SEPARATOR:=':'} ;; ++ esac ++ ++ echo "$as_me:4824: result: $PATH_SEPARATOR" >&5 ++echo "${ECHO_T}$PATH_SEPARATOR" >&6 ++ + ############################################################################### + +-echo "$as_me:4746: checking if you want to build a separate terminfo library" >&5 ++echo "$as_me:4829: 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. +@@ -4753,10 +4836,10 @@ + else + with_termlib=no + fi; +-echo "$as_me:4756: result: $with_termlib" >&5 ++echo "$as_me:4839: result: $with_termlib" >&5 + echo "${ECHO_T}$with_termlib" >&6 + +-echo "$as_me:4759: checking if you want to build a separate tic library" >&5 ++echo "$as_me:4842: 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. +@@ -4766,13 +4849,13 @@ + else + with_ticlib=no + fi; +-echo "$as_me:4769: result: $with_ticlib" >&5 ++echo "$as_me:4852: result: $with_ticlib" >&5 + echo "${ECHO_T}$with_ticlib" >&6 + + ### Checks for special libraries, must be done up-front. + SHLIB_LIST="" + +-echo "$as_me:4775: checking if you want to link with the GPM mouse library" >&5 ++echo "$as_me:4858: 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. +@@ -4782,27 +4865,27 @@ + else + with_gpm=maybe + fi; +-echo "$as_me:4785: result: $with_gpm" >&5 ++echo "$as_me:4868: result: $with_gpm" >&5 + echo "${ECHO_T}$with_gpm" >&6 + + if test "$with_gpm" != no ; then +- echo "$as_me:4789: checking for gpm.h" >&5 ++ echo "$as_me:4872: 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 4795 "configure" ++#line 4878 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:4799: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:4882: \"$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:4805: \$? = $ac_status" >&5 ++ echo "$as_me:4888: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -4821,25 +4904,25 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:4824: result: $ac_cv_header_gpm_h" >&5 ++echo "$as_me:4907: 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 + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_GPM_H 1 + EOF + + 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}:4835: testing assuming we really have GPM library ..." 1>&5 ++echo "${as_me:-configure}:4918: testing assuming we really have GPM library ..." 1>&5 + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_LIBGPM 1 + EOF + + else +- echo "$as_me:4842: checking for Gpm_Open in -lgpm" >&5 ++ echo "$as_me:4925: 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 +@@ -4847,7 +4930,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgpm $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 4850 "configure" ++#line 4933 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -4866,16 +4949,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:4869: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:4952: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:4872: \$? = $ac_status" >&5 ++ echo "$as_me:4955: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:4875: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4958: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4878: \$? = $ac_status" >&5 ++ echo "$as_me:4961: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gpm_Gpm_Open=yes + else +@@ -4886,13 +4969,13 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:4889: result: $ac_cv_lib_gpm_Gpm_Open" >&5 ++echo "$as_me:4972: 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:4895: error: Cannot link with GPM library" >&5 ++ { { echo "$as_me:4978: error: Cannot link with GPM library" >&5 + echo "$as_me: error: Cannot link with GPM library" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -4902,7 +4985,7 @@ + + else + +- test "$with_gpm" != maybe && { echo "$as_me:4905: WARNING: Cannot find GPM header" >&5 ++ test "$with_gpm" != maybe && { echo "$as_me:4988: WARNING: Cannot find GPM header" >&5 + echo "$as_me: WARNING: Cannot find GPM header" >&2;} + with_gpm=no + +@@ -4911,7 +4994,7 @@ + fi + + if test "$with_gpm" != no ; then +- echo "$as_me:4914: checking if you want to load GPM dynamically" >&5 ++ echo "$as_me:4997: 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. +@@ -4921,18 +5004,18 @@ + else + with_dlsym=yes + fi; +- echo "$as_me:4924: result: $with_dlsym" >&5 ++ echo "$as_me:5007: result: $with_dlsym" >&5 + echo "${ECHO_T}$with_dlsym" >&6 +- if test "$with_dlsym" = yes ; then ++ if test "x$with_dlsym" = xyes ; then + + cf_have_dlsym=no +-echo "$as_me:4929: checking for dlsym" >&5 ++echo "$as_me:5012: 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 4935 "configure" ++#line 5018 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlsym (); below. */ +@@ -4955,7 +5038,7 @@ + #if defined (__stub_dlsym) || defined (__stub___dlsym) + choke me + #else +-f = dlsym; ++f = dlsym; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -4963,16 +5046,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:4966: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5049: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:4969: \$? = $ac_status" >&5 ++ echo "$as_me:5052: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:4972: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5055: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4975: \$? = $ac_status" >&5 ++ echo "$as_me:5058: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_dlsym=yes + else +@@ -4982,14 +5065,14 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:4985: result: $ac_cv_func_dlsym" >&5 ++echo "$as_me:5068: 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:4992: checking for dlsym in -ldl" >&5 ++echo "$as_me:5075: 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 +@@ -4997,7 +5080,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-ldl $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5000 "configure" ++#line 5083 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -5016,16 +5099,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5019: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5102: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5022: \$? = $ac_status" >&5 ++ echo "$as_me:5105: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5025: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5108: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5028: \$? = $ac_status" >&5 ++ echo "$as_me:5111: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlsym=yes + else +@@ -5036,7 +5119,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:5039: result: $ac_cv_lib_dl_dlsym" >&5 ++echo "$as_me:5122: 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 + +@@ -5049,10 +5132,10 @@ + if test "$cf_have_dlsym" = yes ; then + test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS" + +- echo "$as_me:5052: checking whether able to link to dl*() functions" >&5 ++ echo "$as_me:5135: 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 5055 "configure" ++#line 5138 "configure" + #include "confdefs.h" + #include + int +@@ -5070,19 +5153,19 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5073: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5156: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5076: \$? = $ac_status" >&5 ++ echo "$as_me:5159: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5079: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5162: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5082: \$? = $ac_status" >&5 ++ echo "$as_me:5165: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_LIBDL 1 + EOF + +@@ -5090,28 +5173,28 @@ + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + +- { { echo "$as_me:5093: error: Cannot link test program for libdl" >&5 ++ { { echo "$as_me:5176: 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:5098: result: ok" >&5 ++ echo "$as_me:5181: result: ok" >&5 + echo "${ECHO_T}ok" >&6 + else +- { { echo "$as_me:5101: error: Cannot find dlsym function" >&5 ++ { { echo "$as_me:5184: error: Cannot find dlsym function" >&5 + echo "$as_me: error: Cannot find dlsym function" >&2;} + { (exit 1); exit 1; }; } + fi + +- if test "$with_gpm" != yes ; then ++ if test "x$with_gpm" != xyes ; then + test -n "$verbose" && echo " assuming soname for gpm is $with_gpm" 1>&6 + +-echo "${as_me:-configure}:5109: testing assuming soname for gpm is $with_gpm ..." 1>&5 ++echo "${as_me:-configure}:5192: testing assuming soname for gpm is $with_gpm ..." 1>&5 + + cf_cv_gpm_soname="$with_gpm" + else + +-echo "$as_me:5114: checking for soname of gpm library" >&5 ++echo "$as_me:5197: 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 +@@ -5129,15 +5212,15 @@ + CF_EOF + cf_save_LIBS="$LIBS" + LIBS="-lgpm $LIBS" +- if { (eval echo "$as_me:5132: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:5215: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5135: \$? = $ac_status" >&5 ++ echo "$as_me:5218: \$? = $ac_status" >&5 + (exit $ac_status); } ; then +- if { (eval echo "$as_me:5137: \"$ac_link\"") >&5 ++ if { (eval echo "$as_me:5220: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5140: \$? = $ac_status" >&5 ++ echo "$as_me:5223: \$? = $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 +@@ -5148,11 +5231,12 @@ + fi + + fi +-echo "$as_me:5151: result: $cf_cv_gpm_soname" >&5 ++echo "$as_me:5234: result: $cf_cv_gpm_soname" >&5 + echo "${ECHO_T}$cf_cv_gpm_soname" >&6 + + fi +- test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <>confdefs.h <>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_LIBGPM 1 + EOF + +-echo "$as_me:5168: checking for Gpm_Wgetch in -lgpm" >&5 ++echo "$as_me:5253: 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 +@@ -5173,7 +5258,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgpm $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5176 "configure" ++#line 5261 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -5192,16 +5277,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5195: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5280: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5198: \$? = $ac_status" >&5 ++ echo "$as_me:5283: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5201: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5286: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5204: \$? = $ac_status" >&5 ++ echo "$as_me:5289: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gpm_Gpm_Wgetch=yes + else +@@ -5212,11 +5297,11 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:5215: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5 ++echo "$as_me:5300: 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:5219: checking if GPM is weakly bound to curses library" >&5 ++echo "$as_me:5304: 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 +@@ -5240,15 +5325,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:5243: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:5328: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5246: \$? = $ac_status" >&5 ++ echo "$as_me:5331: \$? = $ac_status" >&5 + (exit $ac_status); } ; then +- if { (eval echo "$as_me:5248: \"$ac_link\"") >&5 ++ if { (eval echo "$as_me:5333: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5251: \$? = $ac_status" >&5 ++ echo "$as_me:5336: \$? = $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 +@@ -5260,11 +5345,11 @@ + fi + + fi +-echo "$as_me:5263: result: $cf_cv_check_gpm_wgetch" >&5 ++echo "$as_me:5348: 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:5267: WARNING: GPM library is already linked with curses - read the FAQ" >&5 ++ { echo "$as_me:5352: 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 + +@@ -5274,7 +5359,7 @@ + + # not everyone has "test -c" + if test -c /dev/sysmouse 2>/dev/null ; then +-echo "$as_me:5277: checking if you want to use sysmouse" >&5 ++echo "$as_me:5362: 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. +@@ -5286,7 +5371,7 @@ + fi; + if test "$cf_with_sysmouse" != no ; then + cat >conftest.$ac_ext <<_ACEOF +-#line 5289 "configure" ++#line 5374 "configure" + #include "confdefs.h" + + #include +@@ -5309,16 +5394,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5312: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5397: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5315: \$? = $ac_status" >&5 ++ echo "$as_me:5400: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5318: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5403: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5321: \$? = $ac_status" >&5 ++ echo "$as_me:5406: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_with_sysmouse=yes + else +@@ -5328,9 +5413,10 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:5331: result: $cf_with_sysmouse" >&5 ++echo "$as_me:5416: result: $cf_with_sysmouse" >&5 + echo "${ECHO_T}$cf_with_sysmouse" >&6 +-test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF ++test "$cf_with_sysmouse" = yes && ++cat >>confdefs.h <<\EOF + #define USE_SYSMOUSE 1 + EOF + +@@ -5338,15 +5424,15 @@ + + if test X"$CC_G_OPT" = X"" ; then + CC_G_OPT='-g' +- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' ++ test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT='' + fi + + if test X"$CXX_G_OPT" = X"" ; then + CXX_G_OPT='-g' +- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' ++ test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT='' + fi + +-echo "$as_me:5349: checking for default loader flags" >&5 ++echo "$as_me:5435: 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='' ;; +@@ -5355,13 +5441,13 @@ + profile) LD_MODEL='-pg';; + shared) LD_MODEL='' ;; + esac +-echo "$as_me:5358: result: $LD_MODEL" >&5 ++echo "$as_me:5444: result: $LD_MODEL" >&5 + echo "${ECHO_T}$LD_MODEL" >&6 + + case $DFT_LWR_MODEL in + shared) + +-echo "$as_me:5364: checking if rpath option should be used" >&5 ++echo "$as_me:5450: 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. +@@ -5371,10 +5457,10 @@ + else + cf_cv_enable_rpath=no + fi; +-echo "$as_me:5374: result: $cf_cv_enable_rpath" >&5 ++echo "$as_me:5460: result: $cf_cv_enable_rpath" >&5 + echo "${ECHO_T}$cf_cv_enable_rpath" >&6 + +-echo "$as_me:5377: checking if shared libraries should be relinked during install" >&5 ++echo "$as_me:5463: 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. +@@ -5384,13 +5470,16 @@ + else + cf_cv_do_relink=yes + fi; +-echo "$as_me:5387: result: $cf_cv_do_relink" >&5 ++echo "$as_me:5473: result: $cf_cv_do_relink" >&5 + echo "${ECHO_T}$cf_cv_do_relink" >&6 + ;; + esac + ++# we will build libraries one-level down. ++rel_builddir=.. ++ + LD_RPATH_OPT= +-echo "$as_me:5393: checking for an rpath option" >&5 ++echo "$as_me:5482: checking for an rpath option" >&5 + echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6 + case $cf_cv_system_name in #(vi + irix*) #(vi +@@ -5403,10 +5492,10 @@ + linux*|gnu*|k*bsd*-gnu) #(vi + LD_RPATH_OPT="-Wl,-rpath," + ;; +-openbsd[2-9].*) #(vi ++openbsd[2-9].*|mirbsd*) #(vi + LD_RPATH_OPT="-Wl,-rpath," + ;; +-freebsd*) #(vi ++dragonfly*|freebsd*) #(vi + LD_RPATH_OPT="-rpath " + ;; + netbsd*) #(vi +@@ -5421,17 +5510,17 @@ + *) + ;; + esac +-echo "$as_me:5424: result: $LD_RPATH_OPT" >&5 ++echo "$as_me:5513: result: $LD_RPATH_OPT" >&5 + echo "${ECHO_T}$LD_RPATH_OPT" >&6 + + case "x$LD_RPATH_OPT" in #(vi + x-R*) +- echo "$as_me:5429: checking if we need a space after rpath option" >&5 ++ echo "$as_me:5518: 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="${LD_RPATH_OPT}$libdir $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5434 "configure" ++#line 5523 "configure" + #include "confdefs.h" + + int +@@ -5443,16 +5532,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5446: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5535: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5449: \$? = $ac_status" >&5 ++ echo "$as_me:5538: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5452: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5541: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5455: \$? = $ac_status" >&5 ++ echo "$as_me:5544: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_rpath_space=no + else +@@ -5462,22 +5551,28 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS="$cf_save_LIBS" +- echo "$as_me:5465: result: $cf_rpath_space" >&5 ++ echo "$as_me:5554: result: $cf_rpath_space" >&5 + echo "${ECHO_T}$cf_rpath_space" >&6 + test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " + ;; + esac + ++ RM_SHARED_OPTS= + LOCAL_LDFLAGS= + LOCAL_LDFLAGS2= + LD_SHARED_OPTS= + INSTALL_LIB="-m 644" ++ : ${rel_builddir:=.} ++ ++ shlibdir=$libdir ++ ++ MAKE_DLLS="#" + + cf_cv_do_symlinks=no + cf_ld_rpath_opt= + test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT" + +- echo "$as_me:5480: checking if release/abi version should be used for shared libs" >&5 ++ echo "$as_me:5575: 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. +@@ -5492,7 +5587,7 @@ + cf_cv_shlib_version=$withval + ;; + *) +- { { echo "$as_me:5495: error: option value must be one of: rel, abi, auto or no" >&5 ++ { { echo "$as_me:5590: 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; }; } + ;; +@@ -5501,23 +5596,24 @@ + else + cf_cv_shlib_version=auto + fi; +- echo "$as_me:5504: result: $cf_cv_shlib_version" >&5 ++ echo "$as_me:5599: result: $cf_cv_shlib_version" >&5 + echo "${ECHO_T}$cf_cv_shlib_version" >&6 + + cf_cv_rm_so_locs=no ++ cf_try_cflags= + + # Some less-capable ports of gcc support only -fpic + CC_SHARED_OPTS= + if test "$GCC" = yes + then +- echo "$as_me:5513: checking which $CC option to use" >&5 ++ echo "$as_me:5609: 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 5520 "configure" ++#line 5616 "configure" + #include "confdefs.h" + #include + int +@@ -5529,16 +5625,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5532: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5628: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5535: \$? = $ac_status" >&5 ++ echo "$as_me:5631: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5538: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5634: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5541: \$? = $ac_status" >&5 ++ echo "$as_me:5637: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -5547,7 +5643,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + done +- echo "$as_me:5550: result: $CC_SHARED_OPTS" >&5 ++ echo "$as_me:5646: result: $CC_SHARED_OPTS" >&5 + echo "${ECHO_T}$CC_SHARED_OPTS" >&6 + CFLAGS="$cf_save_CFLAGS" + fi +@@ -5555,10 +5651,14 @@ + cf_cv_shlib_version_infix=no + + case $cf_cv_system_name in #(vi +- aix[56]*) #(vi ++ aix4.3-9*|aix[5-7]*) #(vi + if test "$GCC" = yes; then + CC_SHARED_OPTS= +- MK_SHARED_LIB='$(CC) -shared' ++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' ++ else ++ # CC_SHARED_OPTS='-qpic=large -G' ++ # perhaps "-bM:SRE -bnoentry -bexpall" ++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' + fi + ;; + beos*) #(vi +@@ -5566,9 +5666,12 @@ + ;; + cygwin*) #(vi + CC_SHARED_OPTS= +- MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" + cf_cv_shlib_version=cygdll + cf_cv_shlib_version_infix=cygdll ++ shlibdir=$bindir ++ MAKE_DLLS= + cat >mk_shared_lib.sh <<-CF_EOF + #!/bin/sh + SHARED_LIB=\$1 +@@ -5579,26 +5682,48 @@ + ** SHARED_LIB \$SHARED_LIB + ** IMPORT_LIB \$IMPORT_LIB + EOF +- exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB} ++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} + CF_EOF + chmod +x mk_shared_lib.sh + ;; +- darwin*) #(vi +- EXTRA_CFLAGS="-no-cpp-precomp" +- CC_SHARED_OPTS="-dynamic" +- 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:5592: 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 +-else ++ msys*) #(vi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cf_cv_shlib_version=msysdll ++ cf_cv_shlib_version_infix=msysdll ++ shlibdir=$bindir ++ MAKE_DLLS= ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\$1 ++ IMPORT_LIB=\`echo "\$1" | sed -e 's/msys-/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \$SHARED_LIB ++ ** IMPORT_LIB \$IMPORT_LIB ++EOF ++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ darwin*) #(vi ++ cf_try_cflags="no-cpp-precomp" ++ CC_SHARED_OPTS="-dynamic" ++ 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:5717: 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 ++else + + cf_save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + cat >conftest.$ac_ext <<_ACEOF +-#line 5601 "configure" ++#line 5726 "configure" + #include "confdefs.h" + + int +@@ -5610,16 +5735,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5613: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5738: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5616: \$? = $ac_status" >&5 ++ echo "$as_me:5741: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5619: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5744: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5622: \$? = $ac_status" >&5 ++ echo "$as_me:5747: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_ldflags_search_paths_first=yes + else +@@ -5630,12 +5755,20 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$cf_save_LDFLAGS + fi +-echo "$as_me:5633: result: $cf_cv_ldflags_search_paths_first" >&5 ++echo "$as_me:5758: 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" + fi + ;; ++ hpux[7-8]*) #(vi ++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list ++ if test "$GCC" != yes; then ++ CC_SHARED_OPTS='+Z' ++ fi ++ MK_SHARED_LIB='${LD} -b -o $@' ++ INSTALL_LIB="-m 555" ++ ;; + hpux*) #(vi + # (tested with gcc 2.7.2 -- I don't have c89) + if test "$GCC" = yes; then +@@ -5649,9 +5782,19 @@ + # readonly to exploit a quirk in the memory manager. + INSTALL_LIB="-m 555" + ;; ++ interix*) ++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ++ if test "$cf_cv_shlib_version" = rel; then ++ cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}' ++ else ++ cf_shared_soname='`basename `' ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o ' ++ ;; + irix*) #(vi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + # tested with IRIX 5.2 and 'cc'. + if test "$GCC" != yes; then +@@ -5668,7 +5811,7 @@ + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel +@@ -5680,13 +5823,40 @@ + + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@' + ;; +- openbsd[2-9].*) #(vi ++ mingw*) #(vi ++ cf_cv_shlib_version=mingw ++ cf_cv_shlib_version_infix=mingw ++ shlibdir=$bindir ++ MAKE_DLLS= ++ if test "$DFT_LWR_MODEL" = "shared" ; then ++ LOCAL_LDFLAGS="-Wl,--enable-auto-import" ++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" ++ fi ++ CC_SHARED_OPTS= ++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' ++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" ++ cat >mk_shared_lib.sh <<-CF_EOF ++ #!/bin/sh ++ SHARED_LIB=\$1 ++ IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\` ++ shift ++ cat <<-EOF ++ Linking shared library ++ ** SHARED_LIB \$SHARED_LIB ++ ** IMPORT_LIB \$IMPORT_LIB ++EOF ++ exec \$* -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} ++CF_EOF ++ chmod +x mk_shared_lib.sh ++ ;; ++ openbsd[2-9].*|mirbsd*) #(vi + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" + fi + if test "$cf_cv_enable_rpath" = yes ; then +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + +@@ -5704,12 +5874,12 @@ + MK_SHARED_LIB='${LD} -Bshareable -o $@' + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + ;; +- freebsd*) #(vi ++ dragonfly*|freebsd*) #(vi + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" +- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + fi + + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel +@@ -5726,7 +5896,7 @@ + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then + LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" +- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS" ++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" + if test "$cf_cv_shlib_version" = auto; then + if test -f /usr/libexec/ld.elf_so; then + cf_cv_shlib_version=abi +@@ -5744,7 +5914,7 @@ + + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@' + else +- MK_SHARED_LIB='${LD} -shared -Bshareable -o $@' ++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $@' + fi + ;; + osf*|mls+*) #(vi +@@ -5810,7 +5980,7 @@ + do + CFLAGS="$cf_shared_opts $cf_save_CFLAGS" + cat >conftest.$ac_ext <<_ACEOF +-#line 5813 "configure" ++#line 5983 "configure" + #include "confdefs.h" + #include + int +@@ -5822,16 +5992,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5825: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5995: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5828: \$? = $ac_status" >&5 ++ echo "$as_me:5998: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5831: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6001: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5834: \$? = $ac_status" >&5 ++ echo "$as_me:6004: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -5868,21 +6038,64 @@ + test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes + ;; + *) +- { echo "$as_me:5871: WARNING: ignored --with-shlib-version" >&5 ++ { echo "$as_me:6041: 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 +- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" ++ if test -n "$cf_try_cflags" ++ then ++cat > conftest.$ac_ext < ++int main(int argc, char *argv[]) ++{ ++ printf("hello\n"); ++ return (argv[argc-1] == 0) ; ++} ++EOF ++ cf_save_CFLAGS="$CFLAGS" ++ for cf_opt in $cf_try_cflags ++ do ++ CFLAGS="$cf_save_CFLAGS -$cf_opt" ++ echo "$as_me:6063: checking if CFLAGS option -$cf_opt works" >&5 ++echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6 ++ if { (eval echo "$as_me:6065: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:6068: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ echo "$as_me:6070: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ cf_save_CFLAGS="$CFLAGS" ++ else ++ echo "$as_me:6074: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ fi ++ done ++ CFLAGS="$cf_save_CFLAGS" + fi + ++ # RPATH_LIST is a colon-separated list of directories ++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" ++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" ++ ++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" ++ ++ test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6 ++ ++echo "${as_me:-configure}:6089: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5 ++ ++ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6 ++ ++echo "${as_me:-configure}:6093: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5 ++ + if test "$CC_SHARED_OPTS" = "unknown"; then + for model in $cf_list_models; do + if test "$model" = "shared"; then +- { { echo "$as_me:5885: error: Shared libraries are not supported in this version" >&5 ++ { { echo "$as_me:6098: 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 +@@ -5892,7 +6105,7 @@ + ### If we're building with rpath, try to link non-standard libs that way too. + if test "$DFT_LWR_MODEL" = "shared"; then + +-echo "$as_me:5895: checking if rpath-hack should be disabled" >&5 ++echo "$as_me:6108: checking if rpath-hack should be disabled" >&5 + echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6 + + # Check whether --enable-rpath-hack or --disable-rpath-hack was given. +@@ -5909,21 +6122,21 @@ + cf_disable_rpath_hack=no + + fi; +-echo "$as_me:5912: result: $cf_disable_rpath_hack" >&5 ++echo "$as_me:6125: result: $cf_disable_rpath_hack" >&5 + echo "${ECHO_T}$cf_disable_rpath_hack" >&6 + if test "$cf_disable_rpath_hack" = no ; then + +-echo "$as_me:5916: checking for updated LDFLAGS" >&5 ++echo "$as_me:6129: checking for updated LDFLAGS" >&5 + echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6 + if test -n "$LD_RPATH_OPT" ; then +- echo "$as_me:5919: result: maybe" >&5 ++ echo "$as_me:6132: result: maybe" >&5 + echo "${ECHO_T}maybe" >&6 + + for ac_prog in ldd + 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:5926: checking for $ac_word" >&5 ++echo "$as_me:6139: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -5938,7 +6151,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_cf_ldd_prog="$ac_prog" +-echo "$as_me:5941: found $ac_dir/$ac_word" >&5 ++echo "$as_me:6154: found $ac_dir/$ac_word" >&5 + break + done + +@@ -5946,10 +6159,10 @@ + fi + cf_ldd_prog=$ac_cv_prog_cf_ldd_prog + if test -n "$cf_ldd_prog"; then +- echo "$as_me:5949: result: $cf_ldd_prog" >&5 ++ echo "$as_me:6162: result: $cf_ldd_prog" >&5 + echo "${ECHO_T}$cf_ldd_prog" >&6 + else +- echo "$as_me:5952: result: no" >&5 ++ echo "$as_me:6165: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -5963,7 +6176,7 @@ + cf_rpath_oops= + + cat >conftest.$ac_ext <<_ACEOF +-#line 5966 "configure" ++#line 6179 "configure" + #include "confdefs.h" + #include + int +@@ -5975,19 +6188,19 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5978: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6191: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5981: \$? = $ac_status" >&5 ++ echo "$as_me:6194: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5984: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6197: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5987: \$? = $ac_status" >&5 ++ echo "$as_me:6200: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u` +- cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort -u` ++ cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq` ++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq` + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +@@ -6012,7 +6225,7 @@ + then + test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6 + +-echo "${as_me:-configure}:6015: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5 ++echo "${as_me:-configure}:6228: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5 + + LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib" + break +@@ -6024,11 +6237,11 @@ + + test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 + +-echo "${as_me:-configure}:6027: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 ++echo "${as_me:-configure}:6240: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 + + test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6 + +-echo "${as_me:-configure}:6031: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5 ++echo "${as_me:-configure}:6244: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5 + + cf_rpath_dst= + for cf_rpath_src in $LDFLAGS +@@ -6065,7 +6278,7 @@ + then + test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 + +-echo "${as_me:-configure}:6068: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 ++echo "${as_me:-configure}:6281: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 + + EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" + fi +@@ -6078,11 +6291,11 @@ + + test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6 + +-echo "${as_me:-configure}:6081: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5 ++echo "${as_me:-configure}:6294: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5 + + test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6 + +-echo "${as_me:-configure}:6085: testing ...checking LIBS $LIBS ..." 1>&5 ++echo "${as_me:-configure}:6298: testing ...checking LIBS $LIBS ..." 1>&5 + + cf_rpath_dst= + for cf_rpath_src in $LIBS +@@ -6119,7 +6332,7 @@ + then + test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 + +-echo "${as_me:-configure}:6122: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 ++echo "${as_me:-configure}:6335: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 + + EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" + fi +@@ -6132,12 +6345,15 @@ + + test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6 + +-echo "${as_me:-configure}:6135: testing ...checked LIBS $LIBS ..." 1>&5 ++echo "${as_me:-configure}:6348: testing ...checked LIBS $LIBS ..." 1>&5 + + test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 + +-echo "${as_me:-configure}:6139: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 ++echo "${as_me:-configure}:6352: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 + ++else ++ echo "$as_me:6355: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + + fi +@@ -6147,7 +6363,7 @@ + ############################################################################### + + ### use option --disable-overwrite to leave out the link to -lcurses +-echo "$as_me:6150: checking if you wish to install ncurses overwriting curses" >&5 ++echo "$as_me:6366: 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. +@@ -6157,10 +6373,10 @@ + else + if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi + fi; +-echo "$as_me:6160: result: $with_overwrite" >&5 ++echo "$as_me:6376: result: $with_overwrite" >&5 + echo "${ECHO_T}$with_overwrite" >&6 + +-echo "$as_me:6163: checking if external terminfo-database is used" >&5 ++echo "$as_me:6379: 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. +@@ -6170,7 +6386,7 @@ + else + use_database=yes + fi; +-echo "$as_me:6173: result: $use_database" >&5 ++echo "$as_me:6389: result: $use_database" >&5 + echo "${ECHO_T}$use_database" >&6 + + case $host_os in #(vi +@@ -6182,17 +6398,11 @@ + ;; + esac + +- case $cf_cv_system_name in +- os2*) PATH_SEPARATOR=';' ;; +- *) PATH_SEPARATOR=':' ;; +- esac +- ++NCURSES_USE_DATABASE=0 + if test "$use_database" != no ; then +- cat >>confdefs.h <<\EOF +-#define USE_DATABASE 1 +-EOF ++ NCURSES_USE_DATABASE=1 + +- echo "$as_me:6195: checking which terminfo source-file will be installed" >&5 ++ echo "$as_me:6405: 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 --with-database or --without-database was given. +@@ -6200,10 +6410,10 @@ + withval="$with_database" + TERMINFO_SRC=$withval + fi; +- echo "$as_me:6203: result: $TERMINFO_SRC" >&5 ++ echo "$as_me:6413: result: $TERMINFO_SRC" >&5 + echo "${ECHO_T}$TERMINFO_SRC" >&6 + +- echo "$as_me:6206: checking whether to use hashed database instead of directory/tree" >&5 ++ echo "$as_me:6416: 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. +@@ -6213,13 +6423,13 @@ + else + with_hashed_db=no + fi; +- echo "$as_me:6216: result: $with_hashed_db" >&5 ++ echo "$as_me:6426: result: $with_hashed_db" >&5 + echo "${ECHO_T}$with_hashed_db" >&6 + else + with_hashed_db=no + fi + +-echo "$as_me:6222: checking for list of fallback descriptions" >&5 ++echo "$as_me:6432: 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. +@@ -6229,11 +6439,11 @@ + else + with_fallback= + fi; +-echo "$as_me:6232: result: $with_fallback" >&5 ++echo "$as_me:6442: result: $with_fallback" >&5 + echo "${ECHO_T}$with_fallback" >&6 + FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'` + +-echo "$as_me:6236: checking if you want modern xterm or antique" >&5 ++echo "$as_me:6446: 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. +@@ -6247,17 +6457,42 @@ + no) with_xterm_new=xterm-old;; + *) with_xterm_new=xterm-new;; + esac +-echo "$as_me:6250: result: $with_xterm_new" >&5 ++echo "$as_me:6460: result: $with_xterm_new" >&5 + echo "${ECHO_T}$with_xterm_new" >&6 + WHICH_XTERM=$with_xterm_new + ++echo "$as_me:6464: checking if xterm backspace sends BS or DEL" >&5 ++echo $ECHO_N "checking if xterm backspace sends BS or DEL... $ECHO_C" >&6 ++ ++# Check whether --with-xterm-kbs or --without-xterm-kbs was given. ++if test "${with_xterm_kbs+set}" = set; then ++ withval="$with_xterm_kbs" ++ with_xterm_kbs=$withval ++else ++ with_xterm_kbs=BS ++fi; ++case x$with_xterm_kbs in ++xyes|xno|xBS|xbs|x8) ++ with_xterm_kbs=BS ++ ;; ++xDEL|xdel|x127) ++ with_xterm_kbs=DEL ++ ;; ++*) ++ with_xterm_kbs=$withval ++ ;; ++esac ++echo "$as_me:6485: result: $with_xterm_kbs" >&5 ++echo "${ECHO_T}$with_xterm_kbs" >&6 ++XTERM_KBS=$with_xterm_kbs ++ + MAKE_TERMINFO= + if test "$use_database" = no ; then + TERMINFO="${datadir}/terminfo" + MAKE_TERMINFO="#" + else + +-echo "$as_me:6260: checking for list of terminfo directories" >&5 ++echo "$as_me:6495: 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. +@@ -6285,7 +6520,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval cf_src_path="$cf_src_path" + case ".$cf_src_path" in #(vi + .NONE/*) +@@ -6297,26 +6532,37 @@ + cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:6300: error: expected a pathname, not \"$cf_src_path\"" >&5 ++ { { echo "$as_me:6535: 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; }; } + ;; + esac + +- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" ++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR" + cf_dst_path="${cf_dst_path}${cf_src_path}" + done + IFS="$ac_save_ifs" + +-eval 'TERMINFO_DIRS="$cf_dst_path"' ++# This may use the prefix/exec_prefix symbols which will only yield "NONE" ++# so we have to check/work around. We do prefer the result of "eval"... ++eval cf_dst_eval="$cf_dst_path" ++case "x$cf_dst_eval" in #(vi ++xNONE*) #(vi ++ TERMINFO_DIRS=$cf_dst_path ++ ;; ++*) ++ TERMINFO_DIRS="$cf_dst_eval" ++ ;; ++esac + +-echo "$as_me:6313: result: $TERMINFO_DIRS" >&5 ++echo "$as_me:6558: result: $TERMINFO_DIRS" >&5 + echo "${ECHO_T}$TERMINFO_DIRS" >&6 +-test -n "$TERMINFO_DIRS" && cat >>confdefs.h <>confdefs.h <&5 ++echo "$as_me:6565: 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. +@@ -6340,7 +6586,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval withval="$withval" + case ".$withval" in #(vi + .NONE/*) +@@ -6352,17 +6598,18 @@ + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:6355: error: expected a pathname, not \"$withval\"" >&5 ++ { { echo "$as_me:6601: error: expected a pathname, not \"$withval\"" >&5 + echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + fi +-TERMINFO="$withval" ++eval TERMINFO="$withval" + +-echo "$as_me:6364: result: $TERMINFO" >&5 ++echo "$as_me:6610: result: $TERMINFO" >&5 + echo "${ECHO_T}$TERMINFO" >&6 ++ + cat >>confdefs.h <&5 ++echo "$as_me:6621: 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. +@@ -6383,7 +6630,7 @@ + with_big_core=no + else + cat >conftest.$ac_ext <<_ACEOF +-#line 6386 "configure" ++#line 6633 "configure" + #include "confdefs.h" + + #include +@@ -6397,15 +6644,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:6400: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6647: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6403: \$? = $ac_status" >&5 ++ echo "$as_me:6650: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:6405: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6652: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6408: \$? = $ac_status" >&5 ++ echo "$as_me:6655: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + with_big_core=yes + else +@@ -6417,16 +6664,17 @@ + rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi; +-echo "$as_me:6420: result: $with_big_core" >&5 ++echo "$as_me:6667: result: $with_big_core" >&5 + echo "${ECHO_T}$with_big_core" >&6 +-test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF ++test "x$with_big_core" = "xyes" && ++cat >>confdefs.h <<\EOF + #define HAVE_BIG_CORE 1 + EOF + + ### 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:6429: checking if big-strings option selected" >&5 ++echo "$as_me:6677: 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. +@@ -6440,8 +6688,8 @@ + 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 ++ if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \ ++ | $AWK '{ printf "%d\n", length($0); }' 2>/dev/null | $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 +@@ -6450,14 +6698,14 @@ + esac + + fi; +-echo "$as_me:6453: result: $with_big_strings" >&5 ++echo "$as_me:6701: 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 ++test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1 + + ### use option --enable-termcap to compile in the termcap fallback support +-echo "$as_me:6460: checking if you want termcap-fallback support" >&5 ++echo "$as_me:6708: 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. +@@ -6467,34 +6715,33 @@ + else + with_termcap=no + fi; +-echo "$as_me:6470: result: $with_termcap" >&5 ++echo "$as_me:6718: result: $with_termcap" >&5 + echo "${ECHO_T}$with_termcap" >&6 + +-if test "$with_termcap" != "yes" ; then ++NCURSES_USE_TERMCAP=0 ++if test "x$with_termcap" != "xyes" ; then + if test "$use_database" = no ; then + if test -z "$with_fallback" ; then +- { { echo "$as_me:6476: error: You have disabled the database w/o specifying fallbacks" >&5 ++ { { echo "$as_me:6725: 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 + fi +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define PURE_TERMINFO 1 + EOF + + else + +-if test "$with_ticlib" != no ; then +- { { echo "$as_me:6488: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5 ++ if test "$with_ticlib" != no ; then ++ { { echo "$as_me:6738: 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 +- +-cat >>confdefs.h <<\EOF +-#define USE_TERMCAP 1 +-EOF ++ fi + +-echo "$as_me:6497: checking for list of termcap files" >&5 ++ NCURSES_USE_TERMCAP=1 ++ echo "$as_me:6744: 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. +@@ -6522,7 +6769,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval cf_src_path="$cf_src_path" + case ".$cf_src_path" in #(vi + .NONE/*) +@@ -6534,27 +6781,38 @@ + cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:6537: error: expected a pathname, not \"$cf_src_path\"" >&5 ++ { { echo "$as_me:6784: 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; }; } + ;; + esac + +- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" ++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR" + cf_dst_path="${cf_dst_path}${cf_src_path}" + done + IFS="$ac_save_ifs" + +-eval 'TERMPATH="$cf_dst_path"' ++# This may use the prefix/exec_prefix symbols which will only yield "NONE" ++# so we have to check/work around. We do prefer the result of "eval"... ++eval cf_dst_eval="$cf_dst_path" ++case "x$cf_dst_eval" in #(vi ++xNONE*) #(vi ++ TERMPATH=$cf_dst_path ++ ;; ++*) ++ TERMPATH="$cf_dst_eval" ++ ;; ++esac + +-echo "$as_me:6550: result: $TERMPATH" >&5 ++ echo "$as_me:6807: result: $TERMPATH" >&5 + echo "${ECHO_T}$TERMPATH" >&6 +-test -n "$TERMPATH" && cat >>confdefs.h <>confdefs.h <&5 ++ ### use option --enable-getcap to use a hacked getcap for reading termcaps ++ echo "$as_me:6815: 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. +@@ -6564,13 +6822,14 @@ + else + with_getcap=no + fi; +-echo "$as_me:6567: result: $with_getcap" >&5 ++ echo "$as_me:6825: result: $with_getcap" >&5 + echo "${ECHO_T}$with_getcap" >&6 +-test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF ++ test "x$with_getcap" = "xyes" && ++cat >>confdefs.h <<\EOF + #define USE_GETCAP 1 + EOF + +-echo "$as_me:6573: checking if translated termcaps will be cached in ~/.terminfo" >&5 ++ echo "$as_me:6832: 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. +@@ -6580,16 +6839,17 @@ + else + with_getcap_cache=no + fi; +-echo "$as_me:6583: result: $with_getcap_cache" >&5 ++ echo "$as_me:6842: result: $with_getcap_cache" >&5 + echo "${ECHO_T}$with_getcap_cache" >&6 +-test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF ++ test "x$with_getcap_cache" = "xyes" && ++cat >>confdefs.h <<\EOF + #define USE_GETCAP_CACHE 1 + EOF + + fi + + ### Use option --disable-home-terminfo to completely remove ~/.terminfo +-echo "$as_me:6592: checking if ~/.terminfo is wanted" >&5 ++echo "$as_me:6852: 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. +@@ -6599,13 +6859,14 @@ + else + with_home_terminfo=yes + fi; +-echo "$as_me:6602: result: $with_home_terminfo" >&5 ++echo "$as_me:6862: result: $with_home_terminfo" >&5 + echo "${ECHO_T}$with_home_terminfo" >&6 +-test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF ++test "x$with_home_terminfo" = "xyes" && ++cat >>confdefs.h <<\EOF + #define USE_HOME_TERMINFO 1 + EOF + +-echo "$as_me:6608: checking if you want to use restricted environment when running as root" >&5 ++echo "$as_me:6869: 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. +@@ -6615,9 +6876,10 @@ + else + with_root_environ=yes + fi; +-echo "$as_me:6618: result: $with_root_environ" >&5 ++echo "$as_me:6879: result: $with_root_environ" >&5 + echo "${ECHO_T}$with_root_environ" >&6 +-test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF ++test "x$with_root_environ" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_ROOT_ENVIRON 1 + EOF + +@@ -6629,13 +6891,13 @@ + unlink + do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +-echo "$as_me:6632: checking for $ac_func" >&5 ++echo "$as_me:6894: 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 6638 "configure" ++#line 6900 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +@@ -6658,7 +6920,7 @@ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else +-f = $ac_func; ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -6666,16 +6928,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6669: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6931: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6672: \$? = $ac_status" >&5 ++ echo "$as_me:6934: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6675: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6937: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6678: \$? = $ac_status" >&5 ++ echo "$as_me:6940: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" + else +@@ -6685,7 +6947,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:6688: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "$as_me:6950: 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 $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_var+set}\" = set"; then ++for ac_func in \ ++ link \ ++ symlink ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:6967: 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 6973 "configure" ++#include "confdefs.h" ++/* 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. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (); ++char (*f) (); ++ ++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 ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:7004: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:7007: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:7010: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7013: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++eval "$as_ac_var=no" ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:7023: 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 $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 ++else ++ ++ cf_cv_link_funcs= ++ for cf_func in link symlink ; do ++ if test "$cross_compiling" = yes; then ++ ++ eval 'ac_cv_func_'$cf_func'=error' ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7047 "configure" ++#include "confdefs.h" ++ ++#include ++#include ++#ifdef HAVE_UNISTD_H ++#include ++#endif ++int main() ++{ ++ int fail = 0; ++ char *src = "config.log"; ++ char *dst = "conftest.chk"; ++ struct stat src_sb; ++ struct stat dst_sb; ++ ++ stat(src, &src_sb); ++ fail = ($cf_func("config.log", "conftest.chk") < 0) ++ || (stat(dst, &dst_sb) < 0) ++ || (dst_sb.st_mtime != src_sb.st_mtime); ++#ifdef HAVE_UNLINK ++ unlink(dst); ++#else ++ remove(dst); ++#endif ++ ${cf_cv_main_return:-return} (fail); ++} ++ ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:7077: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:7080: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:7082: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7085: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ++ cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" ++ eval 'ac_cv_func_'$cf_func'=yes' ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ ++ eval 'ac_cv_func_'$cf_func'=no' ++fi ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ done ++ test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no ++ ++fi ++echo "$as_me:7103: 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 ++EOF ++ ++ test "$ac_cv_func_symlink" = yes && ++cat >>confdefs.h <<\EOF ++#define HAVE_SYMLINK 1 ++EOF ++ ++fi ++ ++with_links=no ++with_symlinks=no ++ ++# 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 "x$ac_cv_func_symlink" = xyes ; then ++ echo "$as_me:7123: 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. ++if test "${enable_symlinks+set}" = set; then ++ enableval="$enable_symlinks" ++ with_symlinks=$enableval ++else ++ with_symlinks=no ++fi; ++ echo "$as_me:7133: 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:7140: checking if tic should use hard links" >&5 ++echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6 ++ if test "x$ac_cv_func_link" = xyes ; then ++ with_links=yes ++ else ++ with_links=no ++ fi ++ echo "$as_me:7147: result: $with_links" >&5 ++echo "${ECHO_T}$with_links" >&6 ++fi ++ ++test "x$with_links" = xyes && ++cat >>confdefs.h <<\EOF ++#define USE_LINKS 1 ++EOF ++ ++test "x$with_symlinks" = xyes && ++cat >>confdefs.h <<\EOF ++#define USE_SYMLINKS 1 ++EOF ++ ++### use option --enable-broken-linker to force on use of broken-linker support ++echo "$as_me:7162: 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. ++if test "${enable_broken_linker+set}" = set; then ++ enableval="$enable_broken_linker" ++ with_broken_linker=$enableval ++else ++ with_broken_linker=${BROKEN_LINKER:-no} ++fi; ++echo "$as_me:7172: result: $with_broken_linker" >&5 ++echo "${ECHO_T}$with_broken_linker" >&6 ++ ++BROKEN_LINKER=0 ++if test "x$with_broken_linker" = xyes ; then ++ ++cat >>confdefs.h <<\EOF ++#define BROKEN_LINKER 1 ++EOF ++ ++ BROKEN_LINKER=1 ++elif test "$DFT_LWR_MODEL" = shared ; then ++ case $cf_cv_system_name in #(vi ++ cygwin*) ++ ++cat >>confdefs.h <<\EOF ++#define BROKEN_LINKER 1 ++EOF ++ ++ BROKEN_LINKER=1 ++ test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6 ++ ++echo "${as_me:-configure}:7194: 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:7201: 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. ++if test "${enable_bsdpad+set}" = set; then ++ enableval="$enable_bsdpad" ++ with_bsdpad=$enableval ++else ++ with_bsdpad=no ++fi; ++echo "$as_me:7211: result: $with_bsdpad" >&5 ++echo "${ECHO_T}$with_bsdpad" >&6 ++test "x$with_bsdpad" = xyes && ++cat >>confdefs.h <<\EOF ++#define BSD_TPUTS 1 ++EOF ++ ++### use option --enable-widec to turn on use of wide-character support ++NCURSES_CH_T=chtype ++NCURSES_LIBUTF8=0 ++ ++NEED_WCHAR_H=0 ++NCURSES_MBSTATE_T=0 ++NCURSES_WCHAR_T=0 ++NCURSES_WINT_T=0 ++ ++# Check to define _XOPEN_SOURCE "automatically" ++ ++cf_XOPEN_SOURCE=500 ++cf_POSIX_C_SOURCE=199506L ++cf_xopen_source= ++ ++case $host_os in #(vi ++aix[4-7]*) #(vi ++ cf_xopen_source="-D_ALL_SOURCE" ++ ;; ++cygwin|msys) #(vi ++ cf_XOPEN_SOURCE=600 ++ ;; ++darwin[0-8].*) #(vi ++ cf_xopen_source="-D_APPLE_C_SOURCE" ++ ;; ++darwin*) #(vi ++ cf_xopen_source="-D_DARWIN_C_SOURCE" ++ cf_XOPEN_SOURCE= ++ ;; ++freebsd*|dragonfly*) #(vi ++ # 5.x headers associate ++ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L ++ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L ++ cf_POSIX_C_SOURCE=200112L ++ cf_XOPEN_SOURCE=600 ++ cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ ;; ++hpux11*) #(vi ++ cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" ++ ;; ++hpux*) #(vi ++ cf_xopen_source="-D_HPUX_SOURCE" ++ ;; ++irix[56].*) #(vi ++ cf_xopen_source="-D_SGI_SOURCE" ++ cf_XOPEN_SOURCE= ++ ;; ++linux*|gnu*|mint*|k*bsd*-gnu) #(vi ++ ++echo "$as_me:7267: 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 7274 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7289: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7292: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7295: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7298: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_gnu_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7307 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7322: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7325: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7328: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7331: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_gnu_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_gnu_source=yes ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS="$cf_save" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:7346: 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" ++ ++ ;; ++mirbsd*) #(vi ++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks and other headers which use u_int / u_short types ++ cf_XOPEN_SOURCE= ++ ++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE ++ ++cf_save_CFLAGS="$CFLAGS" ++cf_save_CPPFLAGS="$CPPFLAGS" ++ ++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++echo "$as_me:7368: 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}:7374: testing if the symbol is already defined go no further ..." 1>&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7377 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifndef _POSIX_C_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7392: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7395: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7398: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7401: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_posix_c_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_want_posix_source=no ++ case .$cf_POSIX_C_SOURCE in #(vi ++ .[12]??*) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ ;; ++ .2) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ cf_want_posix_source=yes ++ ;; ++ .*) ++ cf_want_posix_source=yes ++ ;; ++ esac ++ if test "$cf_want_posix_source" = yes ; then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7422 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifdef _POSIX_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7437: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7440: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7443: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7446: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ fi ++ ++echo "${as_me:-configure}:7457: 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}:7462: testing if the second compile does not leave our definition intact error ..." 1>&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7465 "configure" ++#include "confdefs.h" ++#include ++int ++main () ++{ ++ ++#ifndef _POSIX_C_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7480: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:7483: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7486: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:7489: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_posix_c_source=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$cf_save_CFLAGS" ++ CPPFLAGS="$cf_save_CPPFLAGS" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:7505: 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 ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS" ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_cv_posix_c_source ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++fi ++ ++ ;; ++netbsd*) #(vi ++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ ;; ++openbsd[4-9]*) #(vi ++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw ++ cf_xopen_source="-D_BSD_SOURCE" ++ cf_XOPEN_SOURCE=600 ++ ;; ++openbsd*) #(vi ++ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw ++ ;; ++osf[45]*) #(vi ++ cf_xopen_source="-D_OSF_SOURCE" ++ ;; ++nto-qnx*) #(vi ++ cf_xopen_source="-D_QNX_SOURCE" ++ ;; ++sco*) #(vi ++ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ++ ;; ++solaris2.*) #(vi ++ cf_xopen_source="-D__EXTENSIONS__" ++ cf_cv_xopen_source=broken ++ ;; ++*) ++ ++echo "$as_me:7619: 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 6711 "configure" ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7626 "configure" + #include "confdefs.h" +-/* 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. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 (); +-char (*f) (); ++ ++#include ++#include ++#include + + 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 +-f = $ac_func; +-#endif + ++#ifndef _XOPEN_SOURCE ++make an error ++#endif + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6742: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7645: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6745: \$? = $ac_status" >&5 ++ echo "$as_me:7648: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6748: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7651: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6751: \$? = $ac_status" >&5 ++ echo "$as_me:7654: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_var=yes" ++ cf_cv_xopen_source=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_var=no" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:6761: 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 $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 +-else +- +- cf_cv_link_funcs= +- for cf_func in link symlink ; do +- if test "$cross_compiling" = yes; then +- +- eval 'ac_cv_func_'$cf_func'=error' +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 6785 "configure" ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7663 "configure" + #include "confdefs.h" + ++#include ++#include + #include +-#include +-#ifdef HAVE_UNISTD_H +-#include +-#endif +-int main() ++ ++int ++main () + { +- int fail = 0; +- char *src = "config.log"; +- char *dst = "conftest.chk"; +- struct stat src_sb; +- struct stat dst_sb; + +- stat(src, &src_sb); +- fail = ($cf_func("config.log", "conftest.chk") < 0) +- || (stat(dst, &dst_sb) < 0) +- || (dst_sb.st_mtime != src_sb.st_mtime); +-#ifdef HAVE_UNLINK +- unlink(dst); +-#else +- remove(dst); ++#ifdef _XOPEN_SOURCE ++make an error + #endif +- ${cf_cv_main_return:-return} (fail); ++ ; ++ return 0; + } +- + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:6815: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7682: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6818: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:6820: \"$ac_try\"") >&5 ++ echo "$as_me:7685: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7688: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6823: \$? = $ac_status" >&5 ++ echo "$as_me:7691: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" +- eval 'ac_cv_func_'$cf_func'=yes' ++ cf_cv_xopen_source=no + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +- +- eval 'ac_cv_func_'$cf_func'=no' ++cf_cv_xopen_source=$cf_XOPEN_SOURCE + fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS="$cf_save" ++ + fi +- done +- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no ++rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:6841: 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 +-EOF ++echo "$as_me:7706: result: $cf_cv_xopen_source" >&5 ++echo "${ECHO_T}$cf_cv_xopen_source" >&6 + +- test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF +-#define HAVE_SYMLINK 1 +-EOF ++if test "$cf_cv_xopen_source" != no ; then + +-fi ++CFLAGS=`echo "$CFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +-with_links=no +-with_symlinks=no ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +-# 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:6859: checking if tic should use symbolic links" >&5 +-echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6 ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + +-# Check whether --enable-symlinks or --disable-symlinks was given. +-if test "${enable_symlinks+set}" = set; then +- enableval="$enable_symlinks" +- with_symlinks=$enableval +-else +- with_symlinks=no +-fi; +- echo "$as_me:6869: result: $with_symlinks" >&5 +-echo "${ECHO_T}$with_symlinks" >&6 +-fi ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= + +-# 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:6876: 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:6883: result: $with_links" >&5 +-echo "${ECHO_T}$with_links" >&6 +-fi ++for cf_add_cflags in $cf_temp_xopen_source ++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 "$with_links" = yes && cat >>confdefs.h <<\EOF +-#define USE_LINKS 1 +-EOF ++ test "${cf_add_cflags}" != "${cf_tst_cflags}" \ ++ && test -z "${cf_tst_cflags}" \ ++ && cf_fix_cppflags=yes + +-test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF +-#define USE_SYMLINKS 1 +-EOF ++ 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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + +-### use option --enable-broken-linker to force on use of broken-linker support +-echo "$as_me:6896: checking if you want broken-linker support code" >&5 +-echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6 ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` + +-# Check whether --enable-broken_linker or --disable-broken_linker was given. +-if test "${enable_broken_linker+set}" = set; then +- enableval="$enable_broken_linker" +- with_broken_linker=$enableval +-else +- with_broken_linker=${BROKEN_LINKER:-no} +-fi; +-echo "$as_me:6906: result: $with_broken_linker" >&5 +-echo "${ECHO_T}$with_broken_linker" >&6 ++ ;; ++ esac ++ 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" + +-BROKEN_LINKER=0 +-if test "$with_broken_linker" = yes ; then +- cat >>confdefs.h <<\EOF +-#define BROKEN_LINKER 1 +-EOF ++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + +- BROKEN_LINKER=1 +-elif test "$DFT_LWR_MODEL" = shared ; then +- case $cf_cv_system_name in #(vi +- cygwin*) +- cat >>confdefs.h <<\EOF +-#define BROKEN_LINKER 1 +-EOF ++ test "${cf_add_cflags}" != "${cf_tst_cflags}" \ ++ && test -z "${cf_tst_cflags}" \ ++ && cf_fix_cppflags=no ++ ;; ++esac ++done + +- BROKEN_LINKER=1 +- test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6 ++if test -n "$cf_new_cflags" ; then ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi + +-echo "${as_me:-configure}:6926: testing cygwin linker is broken anyway ..." 1>&5 ++if test -n "$cf_new_cppflags" ; then + +- ;; +- esac ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + fi + +-### use option --enable-bsdpad to have tputs process BSD-style prefix padding +-echo "$as_me:6933: 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 ++if test -n "$cf_new_extra_cppflags" ; then + +-# Check whether --enable-bsdpad or --disable-bsdpad was given. +-if test "${enable_bsdpad+set}" = set; then +- enableval="$enable_bsdpad" +- with_bsdpad=$enableval +-else +- with_bsdpad=no +-fi; +-echo "$as_me:6943: result: $with_bsdpad" >&5 +-echo "${ECHO_T}$with_bsdpad" >&6 +-test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF +-#define BSD_TPUTS 1 +-EOF ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi + +-### use option --enable-widec to turn on use of wide-character support +-NCURSES_CH_T=chtype +-NCURSES_LIBUTF8=0 ++fi + +-NEED_WCHAR_H=0 +-NCURSES_MBSTATE_T=0 +-NCURSES_WCHAR_T=0 +-NCURSES_WINT_T=0 ++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE + +-# Check to define _XOPEN_SOURCE "automatically" ++cf_save_CFLAGS="$CFLAGS" ++cf_save_CPPFLAGS="$CPPFLAGS" + +-cf_XOPEN_SOURCE=500 +-cf_POSIX_C_SOURCE=199506L +-cf_xopen_source= ++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +-case $host_os in #(vi +-aix[456]*) #(vi +- cf_xopen_source="-D_ALL_SOURCE" +- ;; +-cygwin) #(vi +- cf_XOPEN_SOURCE=600 +- ;; +-darwin[0-8].*) #(vi +- cf_xopen_source="-D_APPLE_C_SOURCE" +- ;; +-darwin*) #(vi +- cf_xopen_source="-D_DARWIN_C_SOURCE" +- ;; +-freebsd*|dragonfly*) #(vi +- # 5.x headers associate +- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L +- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L +- cf_POSIX_C_SOURCE=200112L +- cf_XOPEN_SOURCE=600 +- cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-hpux11*) #(vi +- cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" +- ;; +-hpux*) #(vi +- cf_xopen_source="-D_HPUX_SOURCE" +- ;; +-irix[56].*) #(vi +- cf_xopen_source="-D_SGI_SOURCE" +- ;; +-linux*|gnu*|mint*|k*bsd*-gnu) #(vi ++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +-echo "$as_me:6996: 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 "$as_me:7814: 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 + +-cat >conftest.$ac_ext <<_ACEOF +-#line 7003 "configure" ++echo "${as_me:-configure}:7820: testing if the symbol is already defined go no further ..." 1>&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7823 "configure" + #include "confdefs.h" + #include + int + main () + { + +-#ifndef _XOPEN_SOURCE ++#ifndef _POSIX_C_SOURCE + make an error + #endif + ; +@@ -7015,32 +7835,44 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7018: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:7838: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7021: \$? = $ac_status" >&5 ++ echo "$as_me:7841: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7024: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7844: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7027: \$? = $ac_status" >&5 ++ echo "$as_me:7847: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_gnu_source=no ++ cf_cv_posix_c_source=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" +- cat >conftest.$ac_ext <<_ACEOF +-#line 7036 "configure" ++cf_want_posix_source=no ++ case .$cf_POSIX_C_SOURCE in #(vi ++ .[12]??*) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ ;; ++ .2) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ cf_want_posix_source=yes ++ ;; ++ .*) ++ cf_want_posix_source=yes ++ ;; ++ esac ++ if test "$cf_want_posix_source" = yes ; then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7868 "configure" + #include "confdefs.h" + #include + int + main () + { + +-#ifdef _XOPEN_SOURCE ++#ifdef _POSIX_SOURCE + make an error + #endif + ; +@@ -7048,108 +7880,42 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7051: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:7883: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7054: \$? = $ac_status" >&5 ++ echo "$as_me:7886: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7057: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7889: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7060: \$? = $ac_status" >&5 ++ echo "$as_me:7892: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_gnu_source=no ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_gnu_source=yes +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS="$cf_save" +- ++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" + fi + rm -f conftest.$ac_objext conftest.$ac_ext ++ fi + +-fi +-echo "$as_me:7075: 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" ++echo "${as_me:-configure}:7903: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 + +- ;; +-mirbsd*) #(vi +- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks +- ;; +-netbsd*) #(vi +- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw +- ;; +-openbsd*) #(vi +- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw +- ;; +-osf[45]*) #(vi +- cf_xopen_source="-D_OSF_SOURCE" +- ;; +-nto-qnx*) #(vi +- cf_xopen_source="-D_QNX_SOURCE" +- ;; +-sco*) #(vi +- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer +- ;; +-solaris2.1[0-9]) #(vi +- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-solaris2.[1-9]) #(vi +- cf_xopen_source="-D__EXTENSIONS__" +- ;; +-*) +- echo "$as_me:7105: 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 ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" + +- cat >conftest.$ac_ext <<_ACEOF +-#line 7112 "configure" +-#include "confdefs.h" +-#include +-int +-main () +-{ ++echo "${as_me:-configure}:7908: testing if the second compile does not leave our definition intact error ..." 1>&5 + +-#ifndef _XOPEN_SOURCE +-make an error +-#endif +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7127: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:7130: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7133: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:7136: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_cv_xopen_source=no +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + cat >conftest.$ac_ext <<_ACEOF +-#line 7145 "configure" ++#line 7911 "configure" + #include "confdefs.h" + #include + int + main () + { + +-#ifdef _XOPEN_SOURCE ++#ifndef _POSIX_C_SOURCE + make an error + #endif + ; +@@ -7157,50 +7923,129 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7160: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:7926: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7163: \$? = $ac_status" >&5 ++ echo "$as_me:7929: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7166: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7932: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7169: \$? = $ac_status" >&5 ++ echo "$as_me:7935: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_xopen_source=no ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_xopen_source=$cf_XOPEN_SOURCE ++cf_cv_posix_c_source=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS="$cf_save" ++ CFLAGS="$cf_save_CFLAGS" ++ CPPFLAGS="$cf_save_CPPFLAGS" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:7951: 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 ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS" ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_cv_posix_c_source ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then + ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:7184: result: $cf_cv_xopen_source" >&5 +-echo "${ECHO_T}$cf_cv_xopen_source" >&6 +- if test "$cf_cv_xopen_source" != no ; then +- +-CFLAGS=`echo "$CFLAGS" | \ +- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ;; ++esac + +- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++if test -n "$cf_xopen_source" ; then + + cf_fix_cppflags=no + cf_new_cflags= + cf_new_cppflags= + cf_new_extra_cppflags= + +-for cf_add_cflags in $cf_temp_xopen_source ++for cf_add_cflags in $cf_xopen_source + do + case $cf_fix_cppflags in + no) +@@ -7273,38 +8118,20 @@ + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +- fi +- +-cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE +- +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +- +-cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ +- sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` +- +-cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ +- sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` +- +-echo "$as_me:7291: 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}:7297: testing if the symbol is already defined go no further ..." 1>&5 ++fi + ++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then ++ echo "$as_me:8124: checking if _XOPEN_SOURCE really is set" >&5 ++echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line 7300 "configure" ++#line 8127 "configure" + #include "confdefs.h" +-#include ++#include + int + main () + { + +-#ifndef _POSIX_C_SOURCE ++#ifndef _XOPEN_SOURCE + make an error + #endif + ; +@@ -7312,44 +8139,37 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7315: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8142: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7318: \$? = $ac_status" >&5 ++ echo "$as_me:8145: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7321: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8148: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7324: \$? = $ac_status" >&5 ++ echo "$as_me:8151: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_posix_c_source=no ++ cf_XOPEN_SOURCE_set=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_want_posix_source=no +- case .$cf_POSIX_C_SOURCE in #(vi +- .[12]??*) #(vi +- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" +- ;; +- .2) #(vi +- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" +- cf_want_posix_source=yes +- ;; +- .*) +- cf_want_posix_source=yes +- ;; +- esac +- if test "$cf_want_posix_source" = yes ; then ++cf_XOPEN_SOURCE_set=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ echo "$as_me:8160: result: $cf_XOPEN_SOURCE_set" >&5 ++echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6 ++ if test $cf_XOPEN_SOURCE_set = yes ++ then + cat >conftest.$ac_ext <<_ACEOF +-#line 7345 "configure" ++#line 8165 "configure" + #include "confdefs.h" +-#include ++#include + int + main () + { + +-#ifdef _POSIX_SOURCE ++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE + make an error + #endif + ; +@@ -7357,42 +8177,87 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7360: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8180: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7363: \$? = $ac_status" >&5 ++ echo "$as_me:8183: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7366: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8186: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7369: \$? = $ac_status" >&5 ++ echo "$as_me:8189: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ cf_XOPEN_SOURCE_set_ok=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" ++cf_XOPEN_SOURCE_set_ok=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- fi ++ if test $cf_XOPEN_SOURCE_set_ok = no ++ then ++ { echo "$as_me:8200: WARNING: _XOPEN_SOURCE is lower than requested" >&5 ++echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;} ++ fi ++ else ++ ++echo "$as_me:8205: 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 + +-echo "${as_me:-configure}:7380: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8212 "configure" ++#include "confdefs.h" + +- CFLAGS="$cf_trim_CFLAGS" +- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" ++#include ++#include ++#include + +-echo "${as_me:-configure}:7385: testing if the second compile does not leave our definition intact error ..." 1>&5 ++int ++main () ++{ + ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8231: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8234: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8237: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8240: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xopen_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + cat >conftest.$ac_ext <<_ACEOF +-#line 7388 "configure" ++#line 8249 "configure" + #include "confdefs.h" ++ ++#include ++#include + #include ++ + int + main () + { + +-#ifndef _POSIX_C_SOURCE ++#ifdef _XOPEN_SOURCE + make an error + #endif + ; +@@ -7400,129 +8265,51 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7403: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8268: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7406: \$? = $ac_status" >&5 ++ echo "$as_me:8271: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7409: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8274: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7412: \$? = $ac_status" >&5 ++ echo "$as_me:8277: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ cf_cv_xopen_source=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_posix_c_source=no ++cf_cv_xopen_source=$cf_XOPEN_SOURCE + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- CFLAGS="$cf_save_CFLAGS" +- CPPFLAGS="$cf_save_CPPFLAGS" ++ CPPFLAGS="$cf_save" + + fi + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:7428: 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 +- CFLAGS="$cf_trim_CFLAGS" +- CPPFLAGS="$cf_trim_CPPFLAGS" +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_cv_posix_c_source +-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[^=]*='\''\"[^"]*//'` ++echo "$as_me:8292: result: $cf_cv_xopen_source" >&5 ++echo "${ECHO_T}$cf_cv_xopen_source" >&6 + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes ++if test "$cf_cv_xopen_source" != no ; then + +- 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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++CFLAGS=`echo "$CFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + + CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi +- +-fi +- +- ;; +-esac ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +-if test -n "$cf_xopen_source" ; then ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + + cf_fix_cppflags=no + cf_new_cflags= + cf_new_cppflags= + cf_new_extra_cppflags= + +-for cf_add_cflags in $cf_xopen_source ++for cf_add_cflags in $cf_temp_xopen_source + do + case $cf_fix_cppflags in + no) +@@ -7597,16 +8384,19 @@ + + fi + ++ fi ++fi ++ + # Work around breakage on OS X + +-echo "$as_me:7602: checking if SIGWINCH is defined" >&5 ++echo "$as_me:8392: 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 7609 "configure" ++#line 8399 "configure" + #include "confdefs.h" + + #include +@@ -7621,23 +8411,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7624: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8414: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7627: \$? = $ac_status" >&5 ++ echo "$as_me:8417: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7630: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8420: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7633: \$? = $ac_status" >&5 ++ echo "$as_me:8423: \$? = $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 7640 "configure" ++#line 8430 "configure" + #include "confdefs.h" + + #undef _XOPEN_SOURCE +@@ -7655,16 +8445,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7658: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8448: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7661: \$? = $ac_status" >&5 ++ echo "$as_me:8451: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7664: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8454: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7667: \$? = $ac_status" >&5 ++ echo "$as_me:8457: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_define_sigwinch=maybe + else +@@ -7678,11 +8468,11 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:7681: result: $cf_cv_define_sigwinch" >&5 ++echo "$as_me:8471: 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:7685: checking for actual SIGWINCH definition" >&5 ++echo "$as_me:8475: 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 +@@ -7693,7 +8483,7 @@ + while test $cf_sigwinch != 1 + do + cat >conftest.$ac_ext <<_ACEOF +-#line 7696 "configure" ++#line 8486 "configure" + #include "confdefs.h" + + #undef _XOPEN_SOURCE +@@ -7715,16 +8505,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7718: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8508: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7721: \$? = $ac_status" >&5 ++ echo "$as_me:8511: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7724: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8514: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7727: \$? = $ac_status" >&5 ++ echo "$as_me:8517: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_fixup_sigwinch=$cf_sigwinch + break +@@ -7738,7 +8528,7 @@ + done + + fi +-echo "$as_me:7741: result: $cf_cv_fixup_sigwinch" >&5 ++echo "$as_me:8531: result: $cf_cv_fixup_sigwinch" >&5 + echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6 + + if test "$cf_cv_fixup_sigwinch" != unknown ; then +@@ -7748,13 +8538,13 @@ + + # Checks for CODESET support. + +- echo "$as_me:7751: checking for nl_langinfo and CODESET" >&5 ++ echo "$as_me:8541: 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 7757 "configure" ++#line 8547 "configure" + #include "confdefs.h" + #include + int +@@ -7766,16 +8556,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7769: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8559: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7772: \$? = $ac_status" >&5 ++ echo "$as_me:8562: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7775: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8565: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7778: \$? = $ac_status" >&5 ++ echo "$as_me:8568: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_langinfo_codeset=yes + else +@@ -7786,7 +8576,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + + fi +-echo "$as_me:7789: result: $am_cv_langinfo_codeset" >&5 ++echo "$as_me:8579: result: $am_cv_langinfo_codeset" >&5 + echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 + if test $am_cv_langinfo_codeset = yes; then + +@@ -7800,7 +8590,7 @@ + NCURSES_OK_WCHAR_T= + NCURSES_OK_WINT_T= + +-echo "$as_me:7803: checking if you want wide-character code" >&5 ++echo "$as_me:8593: 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. +@@ -7810,23 +8600,72 @@ + else + with_widec=no + fi; +-echo "$as_me:7813: result: $with_widec" >&5 ++echo "$as_me:8603: result: $with_widec" >&5 + echo "${ECHO_T}$with_widec" >&6 +-if test "$with_widec" = yes ; then ++if test "x$with_widec" = xyes ; then + LIB_SUFFIX="w${LIB_SUFFIX}" +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_WIDEC_SUPPORT 1 + EOF + +- case "$CFLAGS $CPPFLAGS" in #(vi +- *-D_XOPEN_SOURCE=500) #(vi +- ;; +- *) ++cat >>confdefs.h <<\EOF ++#define NCURSES_WIDECHAR 1 ++EOF ++ ++echo "$as_me:8616: checking if wchar.h can be used as is" >&5 ++echo $ECHO_N "checking if wchar.h can be used as is... $ECHO_C" >&6 ++if test "${cf_cv_wchar_h_okay+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++cat >conftest.$ac_ext <<_ACEOF ++#line 8623 "configure" ++#include "confdefs.h" ++ ++#include ++#include ++ ++int ++main () ++{ ++ ++ wint_t foo = 0; ++ int bar = iswpunct(foo) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:8640: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:8643: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:8646: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8649: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_wchar_h_okay=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_wchar_h_okay=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:8659: result: $cf_cv_wchar_h_okay" >&5 ++echo "${ECHO_T}$cf_cv_wchar_h_okay" >&6 ++ ++if test $cf_cv_wchar_h_okay = no ++then + +-echo "$as_me:7826: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 ++echo "$as_me:8665: 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 7829 "configure" ++#line 8668 "configure" + #include "confdefs.h" + #include + +@@ -7842,16 +8681,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7845: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8684: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7848: \$? = $ac_status" >&5 ++ echo "$as_me:8687: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7851: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8690: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7854: \$? = $ac_status" >&5 ++ echo "$as_me:8693: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_result=no + else +@@ -7860,16 +8699,16 @@ + cf_result=yes + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:7863: result: $cf_result" >&5 ++echo "$as_me:8702: 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:7869: checking checking for compatible value versus " >&5 ++ echo "$as_me:8708: 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 7872 "configure" ++#line 8711 "configure" + #include "confdefs.h" + #include + +@@ -7885,16 +8724,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7888: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8727: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7891: \$? = $ac_status" >&5 ++ echo "$as_me:8730: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7894: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8733: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7897: \$? = $ac_status" >&5 ++ echo "$as_me:8736: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_result=yes + else +@@ -7903,7 +8742,7 @@ + cf_result=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- echo "$as_me:7906: result: $cf_result" >&5 ++ echo "$as_me:8745: result: $cf_result" >&5 + echo "${ECHO_T}$cf_result" >&6 + if test "$cf_result" = no ; then + # perhaps we can override it - try... +@@ -7911,8 +8750,7 @@ + fi + fi + +- ;; +- esac ++fi + + # with_overwrite=no + NCURSES_CH_T=cchar_t +@@ -7920,13 +8758,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:7923: checking for $ac_func" >&5 ++echo "$as_me:8761: 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 7929 "configure" ++#line 8767 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +@@ -7949,7 +8787,7 @@ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else +-f = $ac_func; ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -7957,16 +8795,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7960: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8798: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7963: \$? = $ac_status" >&5 ++ echo "$as_me:8801: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7966: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8804: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7969: \$? = $ac_status" >&5 ++ echo "$as_me:8807: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" + else +@@ -7976,7 +8814,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:7979: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "$as_me:8817: 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:8829: 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 +@@ -7996,7 +8834,7 @@ + + cf_save_LIBS="$LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 7999 "configure" ++#line 8837 "configure" + #include "confdefs.h" + + #include +@@ -8009,16 +8847,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8012: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8850: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8015: \$? = $ac_status" >&5 ++ echo "$as_me:8853: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8018: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8856: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8021: \$? = $ac_status" >&5 ++ echo "$as_me:8859: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_utf8_lib=yes + else +@@ -8030,12 +8868,12 @@ + cf_cv_header_path_utf8= + cf_cv_library_path_utf8= + +-echo "${as_me:-configure}:8033: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "${as_me:-configure}:8871: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 + + cf_save_LIBS="$LIBS" + + cat >conftest.$ac_ext <<_ACEOF +-#line 8038 "configure" ++#line 8876 "configure" + #include "confdefs.h" + + #include +@@ -8048,16 +8886,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8051: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8889: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8054: \$? = $ac_status" >&5 ++ echo "$as_me:8892: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8057: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8895: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8060: \$? = $ac_status" >&5 ++ echo "$as_me:8898: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_find_linkage_utf8=yes +@@ -8071,7 +8909,7 @@ + LIBS="-lutf8 $cf_save_LIBS" + + cat >conftest.$ac_ext <<_ACEOF +-#line 8074 "configure" ++#line 8912 "configure" + #include "confdefs.h" + + #include +@@ -8084,16 +8922,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8087: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8925: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8090: \$? = $ac_status" >&5 ++ echo "$as_me:8928: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8093: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8931: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8096: \$? = $ac_status" >&5 ++ echo "$as_me:8934: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_find_linkage_utf8=yes +@@ -8110,9 +8948,9 @@ + + test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 + +-echo "${as_me:-configure}:8113: testing find linkage for utf8 library ..." 1>&5 ++echo "${as_me:-configure}:8951: testing find linkage for utf8 library ..." 1>&5 + +-echo "${as_me:-configure}:8115: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "${as_me:-configure}:8953: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 + + cf_save_CPPFLAGS="$CPPFLAGS" + cf_test_CPPFLAGS="$CPPFLAGS" +@@ -8128,7 +8966,7 @@ + -I*) + cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` + +-test "$cf_header_path" != "NONE" && \ ++test "x$cf_header_path" != "xNONE" && \ + test -d "$cf_header_path" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" +@@ -8149,9 +8987,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /usr" + test -d /usr/include && cf_search="$cf_search /usr/include" + test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8" +@@ -8160,7 +8998,7 @@ + test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8" + } + +-test "$prefix" != "NONE" && \ ++test "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $prefix" +@@ -8171,9 +9009,9 @@ + test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8" + } + +-test "/usr/local" != "$prefix" && \ ++test "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /usr/local" + test -d /usr/local/include && cf_search="$cf_search /usr/local/include" + test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8" +@@ -8182,9 +9020,9 @@ + test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8" + } + +-test "/opt" != "$prefix" && \ ++test "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /opt" + test -d /opt/include && cf_search="$cf_search /opt/include" + test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8" +@@ -8193,9 +9031,9 @@ + test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8" + } + +-test "$HOME" != "$prefix" && \ ++test "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under $HOME" + test -d $HOME/include && cf_search="$cf_search $HOME/include" + test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8" +@@ -8225,11 +9063,11 @@ + 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}:8228: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:9066: 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 8232 "configure" ++#line 9070 "configure" + #include "confdefs.h" + + #include +@@ -8242,21 +9080,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8245: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9083: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8248: \$? = $ac_status" >&5 ++ echo "$as_me:9086: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8251: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9089: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8254: \$? = $ac_status" >&5 ++ echo "$as_me:9092: \$? = $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}:8259: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:9097: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 + + cf_cv_find_linkage_utf8=maybe + cf_test_CPPFLAGS="$CPPFLAGS" +@@ -8274,7 +9112,7 @@ + + if test "$cf_cv_find_linkage_utf8" = maybe ; then + +-echo "${as_me:-configure}:8277: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "${as_me:-configure}:9115: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 + + cf_save_LIBS="$LIBS" + cf_save_LDFLAGS="$LDFLAGS" +@@ -8290,7 +9128,7 @@ + -L*) + cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` + +-test "$cf_library_path" != "NONE" && \ ++test "x$cf_library_path" != "xNONE" && \ + test -d "$cf_library_path" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" +@@ -8309,9 +9147,9 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" +@@ -8320,7 +9158,7 @@ + test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8" + } + +-test "$prefix" != "NONE" && \ ++test "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for lib-directories under $prefix" +@@ -8331,9 +9169,9 @@ + test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8" + } + +-test "/usr/local" != "$prefix" && \ ++test "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" +@@ -8342,9 +9180,9 @@ + test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8" + } + +-test "/opt" != "$prefix" && \ ++test "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" +@@ -8353,9 +9191,9 @@ + test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8" + } + +-test "$HOME" != "$prefix" && \ ++test "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" +@@ -8371,13 +9209,13 @@ + 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}:8374: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:9212: 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 8380 "configure" ++#line 9218 "configure" + #include "confdefs.h" + + #include +@@ -8390,21 +9228,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8393: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9231: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8396: \$? = $ac_status" >&5 ++ echo "$as_me:9234: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8399: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9237: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8402: \$? = $ac_status" >&5 ++ echo "$as_me:9240: \$? = $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}:8407: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 ++echo "${as_me:-configure}:9245: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 + + cf_cv_find_linkage_utf8=yes + cf_cv_library_file_utf8="-lutf8" +@@ -8446,13 +9284,14 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:8449: result: $cf_cv_utf8_lib" >&5 ++echo "$as_me:9287: 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 + # ncurses/ncursesw: + if test "$cf_cv_utf8_lib" = "add-on" ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_LIBUTF8_H 1 + EOF + +@@ -8480,7 +9319,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 8483 "configure" ++#line 9322 "configure" + #include "confdefs.h" + #include + int +@@ -8492,16 +9331,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8495: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9334: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8498: \$? = $ac_status" >&5 ++ echo "$as_me:9337: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8501: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9340: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8504: \$? = $ac_status" >&5 ++ echo "$as_me:9343: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -8518,7 +9357,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:8521: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:9360: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -8552,7 +9391,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}:8555: testing adding $cf_add_libdir to library-path ..." 1>&5 ++echo "${as_me:-configure}:9394: testing adding $cf_add_libdir to library-path ..." 1>&5 + + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi +@@ -8569,14 +9408,14 @@ + fi + + # This is needed on Tru64 5.0 to declare mbstate_t +-echo "$as_me:8572: checking if we must include wchar.h to declare mbstate_t" >&5 ++echo "$as_me:9411: 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 8579 "configure" ++#line 9418 "configure" + #include "confdefs.h" + + #include +@@ -8594,23 +9433,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9436: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8600: \$? = $ac_status" >&5 ++ echo "$as_me:9439: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8603: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9442: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8606: \$? = $ac_status" >&5 ++ echo "$as_me:9445: \$? = $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 8613 "configure" ++#line 9452 "configure" + #include "confdefs.h" + + #include +@@ -8629,16 +9468,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8632: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9471: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8635: \$? = $ac_status" >&5 ++ echo "$as_me:9474: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8638: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9477: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8641: \$? = $ac_status" >&5 ++ echo "$as_me:9480: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_mbstate_t=yes + else +@@ -8650,11 +9489,12 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:8653: result: $cf_cv_mbstate_t" >&5 ++echo "$as_me:9492: result: $cf_cv_mbstate_t" >&5 + echo "${ECHO_T}$cf_cv_mbstate_t" >&6 + + if test "$cf_cv_mbstate_t" = yes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NEED_WCHAR_H 1 + EOF + +@@ -8667,14 +9507,14 @@ + fi + + # This is needed on Tru64 5.0 to declare wchar_t +-echo "$as_me:8670: checking if we must include wchar.h to declare wchar_t" >&5 ++echo "$as_me:9510: 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 8677 "configure" ++#line 9517 "configure" + #include "confdefs.h" + + #include +@@ -8692,23 +9532,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8695: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9535: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8698: \$? = $ac_status" >&5 ++ echo "$as_me:9538: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8701: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9541: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8704: \$? = $ac_status" >&5 ++ echo "$as_me:9544: \$? = $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 8711 "configure" ++#line 9551 "configure" + #include "confdefs.h" + + #include +@@ -8727,16 +9567,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8730: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9570: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8733: \$? = $ac_status" >&5 ++ echo "$as_me:9573: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8736: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9576: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8739: \$? = $ac_status" >&5 ++ echo "$as_me:9579: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_wchar_t=yes + else +@@ -8748,11 +9588,12 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:8751: result: $cf_cv_wchar_t" >&5 ++echo "$as_me:9591: result: $cf_cv_wchar_t" >&5 + echo "${ECHO_T}$cf_cv_wchar_t" >&6 + + if test "$cf_cv_wchar_t" = yes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NEED_WCHAR_H 1 + EOF + +@@ -8770,14 +9611,14 @@ + fi + + # This is needed on Tru64 5.0 to declare wint_t +-echo "$as_me:8773: checking if we must include wchar.h to declare wint_t" >&5 ++echo "$as_me:9614: 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 8780 "configure" ++#line 9621 "configure" + #include "confdefs.h" + + #include +@@ -8795,23 +9636,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8798: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9639: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8801: \$? = $ac_status" >&5 ++ echo "$as_me:9642: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8804: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9645: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8807: \$? = $ac_status" >&5 ++ echo "$as_me:9648: \$? = $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 8814 "configure" ++#line 9655 "configure" + #include "confdefs.h" + + #include +@@ -8830,16 +9671,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8833: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9674: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8836: \$? = $ac_status" >&5 ++ echo "$as_me:9677: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8839: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9680: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8842: \$? = $ac_status" >&5 ++ echo "$as_me:9683: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_wint_t=yes + else +@@ -8851,11 +9692,12 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:8854: result: $cf_cv_wint_t" >&5 ++echo "$as_me:9695: result: $cf_cv_wint_t" >&5 + echo "${ECHO_T}$cf_cv_wint_t" >&6 + + if test "$cf_cv_wint_t" = yes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NEED_WCHAR_H 1 + EOF + +@@ -8873,7 +9715,8 @@ + fi + + if test "$NCURSES_MBSTATE_T" != 0; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NEED_MBSTATE_T_DEF 1 + EOF + +@@ -8890,7 +9733,7 @@ + ;; + esac + +-echo "$as_me:8893: checking whether to enable _LP64 definition in curses.h" >&5 ++echo "$as_me:9736: 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. +@@ -8900,10 +9743,10 @@ + else + with_lp64=$default_with_lp64 + fi; +-echo "$as_me:8903: result: $with_lp64" >&5 ++echo "$as_me:9746: result: $with_lp64" >&5 + echo "${ECHO_T}$with_lp64" >&6 + +-if test "$with_lp64" = yes ; then ++if test "x$with_lp64" = xyes ; then + cf_cv_enable_lp64=1 + else + cf_cv_enable_lp64=0 +@@ -8916,7 +9759,7 @@ + fi; + if test "$enable_largefile" != no; then + +- echo "$as_me:8919: checking for special C compiler options needed for large files" >&5 ++ echo "$as_me:9762: 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 +@@ -8928,7 +9771,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 8931 "configure" ++#line 9774 "configure" + #include "confdefs.h" + #include + /* Check that off_t can represent 2**63 - 1 correctly. +@@ -8948,16 +9791,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8951: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9794: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8954: \$? = $ac_status" >&5 ++ echo "$as_me:9797: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8957: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9800: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8960: \$? = $ac_status" >&5 ++ echo "$as_me:9803: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -8967,16 +9810,16 @@ + rm -f conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8970: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9813: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8973: \$? = $ac_status" >&5 ++ echo "$as_me:9816: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8976: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9819: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8979: \$? = $ac_status" >&5 ++ echo "$as_me:9822: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_CC=' -n32'; break + else +@@ -8990,13 +9833,13 @@ + rm -f conftest.$ac_ext + fi + fi +-echo "$as_me:8993: result: $ac_cv_sys_largefile_CC" >&5 ++echo "$as_me:9836: 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:8999: checking for _FILE_OFFSET_BITS value needed for large files" >&5 ++ echo "$as_me:9842: 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 +@@ -9004,7 +9847,7 @@ + while :; do + ac_cv_sys_file_offset_bits=no + cat >conftest.$ac_ext <<_ACEOF +-#line 9007 "configure" ++#line 9850 "configure" + #include "confdefs.h" + #include + /* Check that off_t can represent 2**63 - 1 correctly. +@@ -9024,16 +9867,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9027: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9870: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9030: \$? = $ac_status" >&5 ++ echo "$as_me:9873: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9033: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9876: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9036: \$? = $ac_status" >&5 ++ echo "$as_me:9879: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -9042,7 +9885,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 9045 "configure" ++#line 9888 "configure" + #include "confdefs.h" + #define _FILE_OFFSET_BITS 64 + #include +@@ -9063,16 +9906,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9066: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9909: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9069: \$? = $ac_status" >&5 ++ echo "$as_me:9912: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9072: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9915: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9075: \$? = $ac_status" >&5 ++ echo "$as_me:9918: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_file_offset_bits=64; break + else +@@ -9083,7 +9926,7 @@ + break + done + fi +-echo "$as_me:9086: result: $ac_cv_sys_file_offset_bits" >&5 ++echo "$as_me:9929: 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 + +@@ -9093,7 +9936,7 @@ + + fi + rm -rf conftest* +- echo "$as_me:9096: checking for _LARGE_FILES value needed for large files" >&5 ++ echo "$as_me:9939: 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 +@@ -9101,7 +9944,7 @@ + while :; do + ac_cv_sys_large_files=no + cat >conftest.$ac_ext <<_ACEOF +-#line 9104 "configure" ++#line 9947 "configure" + #include "confdefs.h" + #include + /* Check that off_t can represent 2**63 - 1 correctly. +@@ -9121,16 +9964,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9124: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:9967: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9127: \$? = $ac_status" >&5 ++ echo "$as_me:9970: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9130: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9973: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9133: \$? = $ac_status" >&5 ++ echo "$as_me:9976: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -9139,7 +9982,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 9142 "configure" ++#line 9985 "configure" + #include "confdefs.h" + #define _LARGE_FILES 1 + #include +@@ -9160,16 +10003,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9163: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10006: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9166: \$? = $ac_status" >&5 ++ echo "$as_me:10009: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9169: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10012: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9172: \$? = $ac_status" >&5 ++ echo "$as_me:10015: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_large_files=1; break + else +@@ -9180,7 +10023,7 @@ + break + done + fi +-echo "$as_me:9183: result: $ac_cv_sys_large_files" >&5 ++echo "$as_me:10026: 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 + +@@ -9193,7 +10036,7 @@ + fi + + if test "$enable_largefile" != no ; then +- echo "$as_me:9196: checking for _LARGEFILE_SOURCE value needed for large files" >&5 ++ echo "$as_me:10039: 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 +@@ -9201,7 +10044,7 @@ + while :; do + ac_cv_sys_largefile_source=no + cat >conftest.$ac_ext <<_ACEOF +-#line 9204 "configure" ++#line 10047 "configure" + #include "confdefs.h" + #include + int +@@ -9213,16 +10056,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9216: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10059: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9219: \$? = $ac_status" >&5 ++ echo "$as_me:10062: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9222: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10065: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9225: \$? = $ac_status" >&5 ++ echo "$as_me:10068: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -9231,7 +10074,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 9234 "configure" ++#line 10077 "configure" + #include "confdefs.h" + #define _LARGEFILE_SOURCE 1 + #include +@@ -9244,16 +10087,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9247: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10090: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9250: \$? = $ac_status" >&5 ++ echo "$as_me:10093: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9253: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10096: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9256: \$? = $ac_status" >&5 ++ echo "$as_me:10099: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_source=1; break + else +@@ -9264,7 +10107,7 @@ + break + done + fi +-echo "$as_me:9267: result: $ac_cv_sys_largefile_source" >&5 ++echo "$as_me:10110: 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 + +@@ -9278,13 +10121,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:9281: checking for fseeko" >&5 ++echo "$as_me:10124: 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 9287 "configure" ++#line 10130 "configure" + #include "confdefs.h" + #include + int +@@ -9296,16 +10139,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9299: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10142: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9302: \$? = $ac_status" >&5 ++ echo "$as_me:10145: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9305: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10148: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9308: \$? = $ac_status" >&5 ++ echo "$as_me:10151: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_fseeko=yes + else +@@ -9315,7 +10158,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:9318: result: $ac_cv_func_fseeko" >&5 ++echo "$as_me:10161: result: $ac_cv_func_fseeko" >&5 + echo "${ECHO_T}$ac_cv_func_fseeko" >&6 + if test $ac_cv_func_fseeko = yes; then + +@@ -9336,14 +10179,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:9339: checking whether to use struct dirent64" >&5 ++ echo "$as_me:10182: 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 9346 "configure" ++#line 10189 "configure" + #include "confdefs.h" + + #include +@@ -9364,16 +10207,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:9367: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:10210: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:9370: \$? = $ac_status" >&5 ++ echo "$as_me:10213: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:9373: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10216: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9376: \$? = $ac_status" >&5 ++ echo "$as_me:10219: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_struct_dirent64=yes + else +@@ -9384,16 +10227,17 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:9387: result: $cf_cv_struct_dirent64" >&5 ++echo "$as_me:10230: result: $cf_cv_struct_dirent64" >&5 + echo "${ECHO_T}$cf_cv_struct_dirent64" >&6 +- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF ++ test "$cf_cv_struct_dirent64" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE_STRUCT_DIRENT64 1 + EOF + + fi + + ### use option --disable-tparm-varargs to make tparm() conform to X/Open +-echo "$as_me:9396: checking if you want tparm not to use X/Open fixed-parameter list" >&5 ++echo "$as_me:10240: 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. +@@ -9403,14 +10247,14 @@ + else + with_tparm_varargs=yes + fi; +-echo "$as_me:9406: result: $with_tparm_varargs" >&5 ++echo "$as_me:10250: 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 ++test "x$with_tparm_varargs" = xyes && 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:9413: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5 ++echo "$as_me:10257: 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. +@@ -9420,14 +10264,14 @@ + else + with_tic_depends=yes + fi; +-echo "$as_me:9423: result: $with_tic_depends" >&5 ++echo "$as_me:10267: 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:9430: checking for type of bool" >&5 ++echo "$as_me:10274: 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. +@@ -9437,10 +10281,10 @@ + else + NCURSES_BOOL=auto + fi; +-echo "$as_me:9440: result: $NCURSES_BOOL" >&5 ++echo "$as_me:10284: result: $NCURSES_BOOL" >&5 + echo "${ECHO_T}$NCURSES_BOOL" >&6 + +-echo "$as_me:9443: checking for alternate terminal capabilities file" >&5 ++echo "$as_me:10287: 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. +@@ -9451,11 +10295,11 @@ + TERMINFO_CAPS=Caps + fi; + test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps +-echo "$as_me:9454: result: $TERMINFO_CAPS" >&5 ++echo "$as_me:10298: result: $TERMINFO_CAPS" >&5 + echo "${ECHO_T}$TERMINFO_CAPS" >&6 + + ### use option --with-chtype to override chtype's type +-echo "$as_me:9458: checking for type of chtype" >&5 ++echo "$as_me:10302: 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. +@@ -9465,11 +10309,11 @@ + else + NCURSES_CHTYPE=auto + fi; +-echo "$as_me:9468: result: $NCURSES_CHTYPE" >&5 ++echo "$as_me:10312: result: $NCURSES_CHTYPE" >&5 + echo "${ECHO_T}$NCURSES_CHTYPE" >&6 + + ### use option --with-ospeed to override ospeed's type +-echo "$as_me:9472: checking for type of ospeed" >&5 ++echo "$as_me:10316: 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. +@@ -9479,11 +10323,11 @@ + else + NCURSES_OSPEED=short + fi; +-echo "$as_me:9482: result: $NCURSES_OSPEED" >&5 ++echo "$as_me:10326: result: $NCURSES_OSPEED" >&5 + echo "${ECHO_T}$NCURSES_OSPEED" >&6 + + ### use option --with-mmask-t to override mmask_t's type +-echo "$as_me:9486: checking for type of mmask_t" >&5 ++echo "$as_me:10330: 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. +@@ -9493,11 +10337,11 @@ + else + NCURSES_MMASK_T=auto + fi; +-echo "$as_me:9496: result: $NCURSES_MMASK_T" >&5 ++echo "$as_me:10340: 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:9500: checking for size CCHARW_MAX" >&5 ++echo "$as_me:10344: 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. +@@ -9507,11 +10351,25 @@ + else + NCURSES_CCHARW_MAX=5 + fi; +-echo "$as_me:9510: result: $NCURSES_CCHARW_MAX" >&5 ++echo "$as_me:10354: result: $NCURSES_CCHARW_MAX" >&5 + echo "${ECHO_T}$NCURSES_CCHARW_MAX" >&6 + ++### use option --with-tparm-arg to override tparm's argument type ++echo "$as_me:10358: checking for type of tparm args" >&5 ++echo $ECHO_N "checking for type of tparm args... $ECHO_C" >&6 ++ ++# Check whether --with-tparm-arg or --without-tparm-arg was given. ++if test "${with_tparm_arg+set}" = set; then ++ withval="$with_tparm_arg" ++ NCURSES_TPARM_ARG="$withval" ++else ++ NCURSES_TPARM_ARG=long ++fi; ++echo "$as_me:10368: result: $NCURSES_TPARM_ARG" >&5 ++echo "${ECHO_T}$NCURSES_TPARM_ARG" >&6 ++ + ### Enable compiling-in rcs id's +-echo "$as_me:9514: checking if RCS identifiers should be compiled-in" >&5 ++echo "$as_me:10372: 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. +@@ -9521,15 +10379,16 @@ + else + with_rcs_ids=no + fi; +-echo "$as_me:9524: result: $with_rcs_ids" >&5 ++echo "$as_me:10382: result: $with_rcs_ids" >&5 + echo "${ECHO_T}$with_rcs_ids" >&6 +-test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF ++test "x$with_rcs_ids" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_RCS_IDS 1 + EOF + + ############################################################################### + +-echo "$as_me:9532: checking format of man-pages" >&5 ++echo "$as_me:10391: 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. +@@ -9618,14 +10477,14 @@ + ;; + esac + +-echo "$as_me:9621: result: $MANPAGE_FORMAT" >&5 ++echo "$as_me:10480: result: $MANPAGE_FORMAT" >&5 + echo "${ECHO_T}$MANPAGE_FORMAT" >&6 + if test -n "$cf_unknown" ; then +- { echo "$as_me:9624: WARNING: Unexpected manpage-format $cf_unknown" >&5 ++ { echo "$as_me:10483: WARNING: Unexpected manpage-format $cf_unknown" >&5 + echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;} + fi + +-echo "$as_me:9628: checking for manpage renaming" >&5 ++echo "$as_me:10487: 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. +@@ -9653,7 +10512,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:9656: error: not a filename: $MANPAGE_RENAMES" >&5 ++ { { echo "$as_me:10515: error: not a filename: $MANPAGE_RENAMES" >&5 + echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -9667,10 +10526,10 @@ + fi + fi + +-echo "$as_me:9670: result: $MANPAGE_RENAMES" >&5 ++echo "$as_me:10529: result: $MANPAGE_RENAMES" >&5 + echo "${ECHO_T}$MANPAGE_RENAMES" >&6 + +-echo "$as_me:9673: checking if manpage aliases will be installed" >&5 ++echo "$as_me:10532: 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. +@@ -9681,7 +10540,7 @@ + MANPAGE_ALIASES=yes + fi; + +-echo "$as_me:9684: result: $MANPAGE_ALIASES" >&5 ++echo "$as_me:10543: result: $MANPAGE_ALIASES" >&5 + echo "${ECHO_T}$MANPAGE_ALIASES" >&6 + + case "x$LN_S" in #(vi +@@ -9695,7 +10554,7 @@ + + MANPAGE_SYMLINKS=no + if test "$MANPAGE_ALIASES" = yes ; then +-echo "$as_me:9698: checking if manpage symlinks should be used" >&5 ++echo "$as_me:10557: 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. +@@ -9708,17 +10567,17 @@ + + if test "$$cf_use_symlinks" = no; then + if test "$MANPAGE_SYMLINKS" = yes ; then +- { echo "$as_me:9711: WARNING: cannot make symlinks" >&5 ++ { echo "$as_me:10570: WARNING: cannot make symlinks" >&5 + echo "$as_me: WARNING: cannot make symlinks" >&2;} + MANPAGE_SYMLINKS=no + fi + fi + +-echo "$as_me:9717: result: $MANPAGE_SYMLINKS" >&5 ++echo "$as_me:10576: result: $MANPAGE_SYMLINKS" >&5 + echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6 + fi + +-echo "$as_me:9721: checking for manpage tbl" >&5 ++echo "$as_me:10580: 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. +@@ -9729,7 +10588,7 @@ + MANPAGE_TBL=no + fi; + +-echo "$as_me:9732: result: $MANPAGE_TBL" >&5 ++echo "$as_me:10591: result: $MANPAGE_TBL" >&5 + echo "${ECHO_T}$MANPAGE_TBL" >&6 + + if test "$prefix" = "NONE" ; then +@@ -9776,6 +10635,7 @@ + # this script is generated by the configure-script CF_MAN_PAGES macro. + + prefix="$cf_prefix" ++datarootdir="$datarootdir" + datadir="$datadir" + + NCURSES_MAJOR="$NCURSES_MAJOR" +@@ -9836,11 +10696,12 @@ + if test ! -f $cf_man_alias ; then + cat >>$cf_man_alias <<-CF_EOF2 + s,@DATADIR@,\$datadir,g +- s,@TERMINFO@,\$TERMINFO,g +- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g +- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g +- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g +- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g ++ s,@TERMINFO@,\${TERMINFO:="no default value"},g ++ s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g ++ s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g ++ s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g ++ s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g ++ s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g + CF_EOF + + for cf_name in captoinfo clear infocmp infotocap tabs tic toe tput tset +@@ -9869,7 +10730,9 @@ + + if test "$MANPAGE_ALIASES" != no ; then + cat >>$cf_edit_man <>$cf_edit_man <\$TMP.out ++ mv \$TMP.out \$TMP ++CF_EOF ++fi ++ + if test $with_curses_h != yes ; then + cat >>$cf_edit_man <\$TMP.out +@@ -10051,7 +10921,7 @@ + ############################################################################### + + ### Note that some functions (such as const) are normally disabled anyway. +-echo "$as_me:10054: checking if you want to build with function extensions" >&5 ++echo "$as_me:10924: 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. +@@ -10061,39 +10931,52 @@ + else + with_ext_funcs=yes + fi; +-echo "$as_me:10064: result: $with_ext_funcs" >&5 ++echo "$as_me:10934: result: $with_ext_funcs" >&5 + echo "${ECHO_T}$with_ext_funcs" >&6 +-if test "$with_ext_funcs" = yes ; then ++if test "x$with_ext_funcs" = xyes ; then + NCURSES_EXT_FUNCS=1 +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF ++#define HAVE_ASSUME_DEFAULT_COLORS 1 ++EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_CURSES_VERSION 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_HAS_KEY 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_RESIZETERM 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_RESIZE_TERM 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_TERM_ENTRY_H 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_USE_DEFAULT_COLORS 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF ++#define HAVE_USE_SCREEN 1 ++EOF ++ ++cat >>confdefs.h <<\EOF ++#define HAVE_USE_WINDOW 1 ++EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_WRESIZE 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define NCURSES_EXT_FUNCS 1 + EOF + +@@ -10103,7 +10986,7 @@ + GENERATED_EXT_FUNCS= + fi + +-echo "$as_me:10106: checking if you want to build with experimental SCREEN extensions" >&5 ++echo "$as_me:10989: 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. +@@ -10113,11 +10996,12 @@ + else + with_sp_funcs=no + fi; +-echo "$as_me:10116: result: $with_sp_funcs" >&5 ++echo "$as_me:10999: result: $with_sp_funcs" >&5 + echo "${ECHO_T}$with_sp_funcs" >&6 +-if test "$with_sp_funcs" = yes ; then ++if test "x$with_sp_funcs" = xyes ; then + NCURSES_SP_FUNCS=1 +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NCURSES_SP_FUNCS 1 + EOF + +@@ -10127,7 +11011,7 @@ + GENERATED_SP_FUNCS= + fi + +-echo "$as_me:10130: checking if you want to build with experimental terminal-driver" >&5 ++echo "$as_me:11014: checking if you want to build with experimental terminal-driver" >&5 + echo $ECHO_N "checking if you want to build with experimental terminal-driver... $ECHO_C" >&6 + + # Check whether --enable-term-driver or --disable-term-driver was given. +@@ -10137,22 +11021,23 @@ + else + with_term_driver=no + fi; +-echo "$as_me:10140: result: $with_term_driver" >&5 ++echo "$as_me:11024: result: $with_term_driver" >&5 + echo "${ECHO_T}$with_term_driver" >&6 +-if test "$with_term_driver" = yes ; then +- cat >>confdefs.h <<\EOF ++if test "x$with_term_driver" = xyes ; then ++ ++cat >>confdefs.h <<\EOF + #define USE_TERM_DRIVER 1 + EOF + +- if test "$with_sp_funcs" != yes ; then +- { { echo "$as_me:10148: error: The term-driver option relies upon sp-funcs" >&5 ++ if test "x$with_sp_funcs" != xyes ; then ++ { { echo "$as_me:11033: error: The term-driver option relies upon sp-funcs" >&5 + echo "$as_me: error: The term-driver option relies upon sp-funcs" >&2;} + { (exit 1); exit 1; }; } + fi + fi + + ### use option --enable-const to turn on use of const beyond that in XSI. +-echo "$as_me:10155: checking for extended use of const keyword" >&5 ++echo "$as_me:11040: 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. +@@ -10162,15 +11047,15 @@ + else + with_ext_const=no + fi; +-echo "$as_me:10165: result: $with_ext_const" >&5 ++echo "$as_me:11050: result: $with_ext_const" >&5 + echo "${ECHO_T}$with_ext_const" >&6 + NCURSES_CONST='/*nothing*/' +-if test "$with_ext_const" = yes ; then ++if test "x$with_ext_const" = xyes ; then + NCURSES_CONST=const + fi + + ### use option --enable-ext-colors to turn on use of colors beyond 16. +-echo "$as_me:10173: checking if you want to use extended colors" >&5 ++echo "$as_me:11058: 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. +@@ -10180,12 +11065,12 @@ + else + with_ext_colors=no + fi; +-echo "$as_me:10183: result: $with_ext_colors" >&5 ++echo "$as_me:11068: 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:10188: error: This option applies only to wide-character library" >&5 ++if test "x$with_ext_colors" = xyes ; then ++ if test "x$with_widec" != xyes ; then ++ { { echo "$as_me:11073: 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 +@@ -10196,7 +11081,7 @@ + 5.*) + cf_cv_rel_version=6.0 + cf_cv_abi_version=6 +- { echo "$as_me:10199: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 ++ { echo "$as_me:11084: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 + echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;} + ;; + esac +@@ -10204,14 +11089,15 @@ + + fi + NCURSES_EXT_COLORS=1 +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NCURSES_EXT_COLORS 1 + EOF + + fi + + ### use option --enable-ext-mouse to modify coding to support 5-button mice +-echo "$as_me:10214: checking if you want to use extended mouse encoding" >&5 ++echo "$as_me:11100: 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. +@@ -10221,10 +11107,10 @@ + else + with_ext_mouse=no + fi; +-echo "$as_me:10224: result: $with_ext_mouse" >&5 ++echo "$as_me:11110: result: $with_ext_mouse" >&5 + echo "${ECHO_T}$with_ext_mouse" >&6 + NCURSES_MOUSE_VERSION=1 +-if test "$with_ext_mouse" = yes ; then ++if test "x$with_ext_mouse" = xyes ; then + NCURSES_MOUSE_VERSION=2 + + if test "${with_abi_version+set}" != set; then +@@ -10232,7 +11118,7 @@ + 5.*) + cf_cv_rel_version=6.0 + cf_cv_abi_version=6 +- { echo "$as_me:10235: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 ++ { echo "$as_me:11121: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 + echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;} + ;; + esac +@@ -10240,7 +11126,7 @@ + + fi + +-echo "$as_me:10243: checking if you want \$NCURSES_NO_PADDING code" >&5 ++echo "$as_me:11129: 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. +@@ -10250,19 +11136,20 @@ + else + with_no_padding=$with_ext_funcs + fi; +-echo "$as_me:10253: result: $with_no_padding" >&5 ++echo "$as_me:11139: result: $with_no_padding" >&5 + echo "${ECHO_T}$with_no_padding" >&6 +-test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF ++test "x$with_no_padding" = xyes && ++cat >>confdefs.h <<\EOF + #define NCURSES_NO_PADDING 1 + EOF + +-echo "$as_me:10259: checking for ANSI C header files" >&5 ++echo "$as_me:11146: 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 10265 "configure" ++#line 11152 "configure" + #include "confdefs.h" + #include + #include +@@ -10270,13 +11157,13 @@ + #include + + _ACEOF +-if { (eval echo "$as_me:10273: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:11160: \"$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:10279: \$? = $ac_status" >&5 ++ echo "$as_me:11166: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -10298,7 +11185,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 10301 "configure" ++#line 11188 "configure" + #include "confdefs.h" + #include + +@@ -10316,7 +11203,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 10319 "configure" ++#line 11206 "configure" + #include "confdefs.h" + #include + +@@ -10337,7 +11224,7 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line 10340 "configure" ++#line 11227 "configure" + #include "confdefs.h" + #include + #if ((' ' & 0x0FF) == 0x020) +@@ -10363,15 +11250,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:10366: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11253: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10369: \$? = $ac_status" >&5 ++ echo "$as_me:11256: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:10371: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11258: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10374: \$? = $ac_status" >&5 ++ echo "$as_me:11261: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -10384,7 +11271,7 @@ + fi + fi + fi +-echo "$as_me:10387: result: $ac_cv_header_stdc" >&5 ++echo "$as_me:11274: result: $ac_cv_header_stdc" >&5 + echo "${ECHO_T}$ac_cv_header_stdc" >&6 + if test $ac_cv_header_stdc = yes; then + +@@ -10400,28 +11287,28 @@ + inttypes.h stdint.h unistd.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:10403: checking for $ac_header" >&5 ++echo "$as_me:11290: 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 10409 "configure" ++#line 11296 "configure" + #include "confdefs.h" + $ac_includes_default + #include <$ac_header> + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10415: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11302: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10418: \$? = $ac_status" >&5 ++ echo "$as_me:11305: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10421: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11308: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10424: \$? = $ac_status" >&5 ++ echo "$as_me:11311: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" + else +@@ -10431,7 +11318,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:10434: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:11321: 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:11331: 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 10450 "configure" ++#line 11337 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -10462,16 +11349,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10465: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11352: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10468: \$? = $ac_status" >&5 ++ echo "$as_me:11355: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10471: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11358: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10474: \$? = $ac_status" >&5 ++ echo "$as_me:11361: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_signed_char=yes + else +@@ -10481,10 +11368,10 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:10484: result: $ac_cv_type_signed_char" >&5 ++echo "$as_me:11371: result: $ac_cv_type_signed_char" >&5 + echo "${ECHO_T}$ac_cv_type_signed_char" >&6 + +-echo "$as_me:10487: checking size of signed char" >&5 ++echo "$as_me:11374: 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 +@@ -10493,7 +11380,7 @@ + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. + cat >conftest.$ac_ext <<_ACEOF +-#line 10496 "configure" ++#line 11383 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -10505,21 +11392,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10508: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11395: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10511: \$? = $ac_status" >&5 ++ echo "$as_me:11398: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10514: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11401: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10517: \$? = $ac_status" >&5 ++ echo "$as_me:11404: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line 10522 "configure" ++#line 11409 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -10531,16 +11418,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10534: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11421: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10537: \$? = $ac_status" >&5 ++ echo "$as_me:11424: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10540: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11427: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10543: \$? = $ac_status" >&5 ++ echo "$as_me:11430: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break + else +@@ -10556,7 +11443,7 @@ + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line 10559 "configure" ++#line 11446 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -10568,16 +11455,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10571: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11458: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10574: \$? = $ac_status" >&5 ++ echo "$as_me:11461: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10577: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11464: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10580: \$? = $ac_status" >&5 ++ echo "$as_me:11467: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break + else +@@ -10593,7 +11480,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 10596 "configure" ++#line 11483 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -10605,16 +11492,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:10608: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:11495: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:10611: \$? = $ac_status" >&5 ++ echo "$as_me:11498: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:10614: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11501: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10617: \$? = $ac_status" >&5 ++ echo "$as_me:11504: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid + else +@@ -10627,12 +11514,12 @@ + ac_cv_sizeof_signed_char=$ac_lo + else + if test "$cross_compiling" = yes; then +- { { echo "$as_me:10630: error: cannot run test program while cross compiling" >&5 ++ { { echo "$as_me:11517: 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 10635 "configure" ++#line 11522 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -10648,15 +11535,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:10651: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11538: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10654: \$? = $ac_status" >&5 ++ echo "$as_me:11541: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:10656: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11543: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10659: \$? = $ac_status" >&5 ++ echo "$as_me:11546: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_signed_char=`cat conftest.val` + else +@@ -10672,7 +11559,7 @@ + ac_cv_sizeof_signed_char=0 + fi + fi +-echo "$as_me:10675: result: $ac_cv_sizeof_signed_char" >&5 ++echo "$as_me:11562: result: $ac_cv_sizeof_signed_char" >&5 + echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6 + cat >>confdefs.h <&5 ++echo "$as_me:11573: 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. +@@ -10693,12 +11580,12 @@ + else + with_signed_char=no + fi; +-echo "$as_me:10696: result: $with_signed_char" >&5 ++echo "$as_me:11583: result: $with_signed_char" >&5 + echo "${ECHO_T}$with_signed_char" >&6 +-test "$with_signed_char" != yes && NCURSES_SBOOL="char" ++test "x$with_signed_char" != xyes && NCURSES_SBOOL="char" + + ### use option --enable-sigwinch to turn on use of SIGWINCH logic +-echo "$as_me:10701: checking if you want SIGWINCH handler" >&5 ++echo "$as_me:11588: 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. +@@ -10708,14 +11595,15 @@ + else + with_sigwinch=$with_ext_funcs + fi; +-echo "$as_me:10711: result: $with_sigwinch" >&5 ++echo "$as_me:11598: result: $with_sigwinch" >&5 + echo "${ECHO_T}$with_sigwinch" >&6 +-test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF ++test "x$with_sigwinch" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_SIGWINCH 1 + EOF + + ### use option --enable-tcap-names to allow user to define new capabilities +-echo "$as_me:10718: checking if you want user-definable terminal capabilities like termcap" >&5 ++echo "$as_me:11606: 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. +@@ -10725,15 +11613,15 @@ + else + with_tcap_names=$with_ext_funcs + fi; +-echo "$as_me:10728: result: $with_tcap_names" >&5 ++echo "$as_me:11616: result: $with_tcap_names" >&5 + echo "${ECHO_T}$with_tcap_names" >&6 + NCURSES_XNAMES=0 +-test "$with_tcap_names" = yes && NCURSES_XNAMES=1 ++test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1 + + ############################################################################### + # These options are relatively safe to experiment with. + +-echo "$as_me:10736: checking if you want all development code" >&5 ++echo "$as_me:11624: 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. +@@ -10743,11 +11631,11 @@ + else + with_develop=no + fi; +-echo "$as_me:10746: result: $with_develop" >&5 ++echo "$as_me:11634: 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:10750: checking if you want hard-tabs code" >&5 ++echo "$as_me:11638: 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. +@@ -10757,14 +11645,15 @@ + else + enable_hard_tabs=$with_develop + fi; +-echo "$as_me:10760: result: $enable_hard_tabs" >&5 ++echo "$as_me:11648: result: $enable_hard_tabs" >&5 + echo "${ECHO_T}$enable_hard_tabs" >&6 +-test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF ++test "x$enable_hard_tabs" = xyes && ++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:10767: checking if you want limited support for xmc" >&5 ++echo "$as_me:11656: 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. +@@ -10774,16 +11663,17 @@ + else + enable_xmc_glitch=$with_develop + fi; +-echo "$as_me:10777: result: $enable_xmc_glitch" >&5 ++echo "$as_me:11666: result: $enable_xmc_glitch" >&5 + echo "${ECHO_T}$enable_xmc_glitch" >&6 +-test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF ++test "x$enable_xmc_glitch" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_XMC_SUPPORT 1 + EOF + + ############################################################################### + # These are just experimental, probably should not be in a package: + +-echo "$as_me:10786: checking if you do not want to assume colors are white-on-black" >&5 ++echo "$as_me:11676: 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. +@@ -10793,14 +11683,15 @@ + else + with_assumed_color=yes + fi; +-echo "$as_me:10796: result: $with_assumed_color" >&5 ++echo "$as_me:11686: result: $with_assumed_color" >&5 + echo "${ECHO_T}$with_assumed_color" >&6 +-test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF ++test "x$with_assumed_color" = xyes && ++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:10803: checking if you want hashmap scrolling-optimization code" >&5 ++echo "$as_me:11694: 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. +@@ -10810,14 +11701,15 @@ + else + with_hashmap=yes + fi; +-echo "$as_me:10813: result: $with_hashmap" >&5 ++echo "$as_me:11704: result: $with_hashmap" >&5 + echo "${ECHO_T}$with_hashmap" >&6 +-test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF ++test "x$with_hashmap" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_HASHMAP 1 + EOF + + ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment +-echo "$as_me:10820: checking if you want colorfgbg code" >&5 ++echo "$as_me:11712: 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. +@@ -10827,14 +11719,15 @@ + else + with_colorfgbg=no + fi; +-echo "$as_me:10830: result: $with_colorfgbg" >&5 ++echo "$as_me:11722: result: $with_colorfgbg" >&5 + echo "${ECHO_T}$with_colorfgbg" >&6 +-test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF ++test "x$with_colorfgbg" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_COLORFGBG 1 + EOF + + ### use option --enable-interop to turn on use of bindings used for interop +-echo "$as_me:10837: checking if you want interop bindings" >&5 ++echo "$as_me:11730: checking if you want interop bindings" >&5 + echo $ECHO_N "checking if you want interop bindings... $ECHO_C" >&6 + + # Check whether --enable-interop or --disable-interop was given. +@@ -10844,16 +11737,16 @@ + else + with_exp_interop=no + fi; +-echo "$as_me:10847: result: $with_exp_interop" >&5 ++echo "$as_me:11740: result: $with_exp_interop" >&5 + echo "${ECHO_T}$with_exp_interop" >&6 + + NCURSES_INTEROP_FUNCS=0 +-test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1 ++test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1 + + # This is still experimental (20080329), but should ultimately be moved to + # the script-block --with-normal, etc. + +-echo "$as_me:10856: checking if you want to link with the pthread library" >&5 ++echo "$as_me:11749: 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. +@@ -10863,27 +11756,27 @@ + else + with_pthread=no + fi; +-echo "$as_me:10866: result: $with_pthread" >&5 ++echo "$as_me:11759: result: $with_pthread" >&5 + echo "${ECHO_T}$with_pthread" >&6 + + if test "$with_pthread" != no ; then +- echo "$as_me:10870: checking for pthread.h" >&5 ++ echo "$as_me:11763: 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 10876 "configure" ++#line 11769 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:10880: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:11773: \"$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:10886: \$? = $ac_status" >&5 ++ echo "$as_me:11779: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -10902,20 +11795,22 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:10905: result: $ac_cv_header_pthread_h" >&5 ++echo "$as_me:11798: 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 + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define HAVE_PTHREADS_H 1 + EOF + +- echo "$as_me:10913: 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 10918 "configure" ++ for cf_lib_pthread in pthread c_r ++ do ++ echo "$as_me:11808: checking if we can link with the $cf_lib_pthread library" >&5 ++echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6 ++ cf_save_LIBS="$LIBS" ++ LIBS="-l$cf_lib_pthread $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 11813 "configure" + #include "confdefs.h" + + #include +@@ -10924,23 +11819,24 @@ + main () + { + +- int rc = pthread_create(0,0,0,0); ++ int rc = pthread_create(0,0,0,0); ++ int r2 = pthread_mutexattr_settype(0, 0); + + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10934: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11830: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10937: \$? = $ac_status" >&5 ++ echo "$as_me:11833: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10940: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11836: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10943: \$? = $ac_status" >&5 ++ echo "$as_me:11839: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + with_pthread=yes + else +@@ -10949,34 +11845,37 @@ + with_pthread=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- LIBS="$cf_save_LIBS" +- echo "$as_me:10953: result: $with_pthread" >&5 ++ LIBS="$cf_save_LIBS" ++ echo "$as_me:11849: result: $with_pthread" >&5 + echo "${ECHO_T}$with_pthread" >&6 ++ test "$with_pthread" = yes && break ++ done + +- if test "$with_pthread" = yes ; then +- LIBS="-lpthread $LIBS" +- cat >>confdefs.h <<\EOF ++ if test "$with_pthread" = yes ; then ++ LIBS="-l$cf_lib_pthread $LIBS" ++ ++cat >>confdefs.h <<\EOF + #define HAVE_LIBPTHREADS 1 + EOF + +- else +- { { echo "$as_me:10963: error: Cannot link with pthread library" >&5 ++ else ++ { { echo "$as_me:11862: error: Cannot link with pthread library" >&5 + echo "$as_me: error: Cannot link with pthread library" >&2;} + { (exit 1); exit 1; }; } +- fi ++ fi + + fi + + fi + + if test "x$with_pthread" != xno; then +- echo "$as_me:10973: checking for pthread_kill" >&5 ++ echo "$as_me:11872: checking for pthread_kill" >&5 + echo $ECHO_N "checking for pthread_kill... $ECHO_C" >&6 + if test "${ac_cv_func_pthread_kill+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 10979 "configure" ++#line 11878 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char pthread_kill (); below. */ +@@ -10999,7 +11898,7 @@ + #if defined (__stub_pthread_kill) || defined (__stub___pthread_kill) + choke me + #else +-f = pthread_kill; ++f = pthread_kill; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -11007,16 +11906,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11010: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11909: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11013: \$? = $ac_status" >&5 ++ echo "$as_me:11912: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11016: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11915: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11019: \$? = $ac_status" >&5 ++ echo "$as_me:11918: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_pthread_kill=yes + else +@@ -11026,11 +11925,11 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:11029: result: $ac_cv_func_pthread_kill" >&5 ++echo "$as_me:11928: result: $ac_cv_func_pthread_kill" >&5 + echo "${ECHO_T}$ac_cv_func_pthread_kill" >&6 + if test $ac_cv_func_pthread_kill = yes; then + +- echo "$as_me:11033: checking if you want to allow EINTR in wgetch with pthreads" >&5 ++ echo "$as_me:11932: checking if you want to allow EINTR in wgetch with pthreads" >&5 + echo $ECHO_N "checking if you want to allow EINTR in wgetch with pthreads... $ECHO_C" >&6 + + # Check whether --enable-pthreads-eintr or --disable-pthreads-eintr was given. +@@ -11040,17 +11939,18 @@ + else + use_pthreads_eintr=no + fi; +- echo "$as_me:11043: result: $use_pthreads_eintr" >&5 ++ echo "$as_me:11942: result: $use_pthreads_eintr" >&5 + echo "${ECHO_T}$use_pthreads_eintr" >&6 +- if test $use_pthreads_eintr = yes ; then +- cat >>confdefs.h <<\EOF ++ if test "x$use_pthreads_eintr" = xyes ; then ++ ++cat >>confdefs.h <<\EOF + #define USE_PTHREADS_EINTR 1 + EOF + + fi + fi + +- echo "$as_me:11053: checking if you want to use weak-symbols for pthreads" >&5 ++ echo "$as_me:11953: 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. +@@ -11060,18 +11960,18 @@ + else + use_weak_symbols=no + fi; +- echo "$as_me:11063: result: $use_weak_symbols" >&5 ++ echo "$as_me:11963: result: $use_weak_symbols" >&5 + echo "${ECHO_T}$use_weak_symbols" >&6 +- if test "$use_weak_symbols" = yes ; then ++ if test "x$use_weak_symbols" = xyes ; then + +-echo "$as_me:11067: checking if $CC supports weak symbols" >&5 ++echo "$as_me:11967: 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 11074 "configure" ++#line 11974 "configure" + #include "confdefs.h" + + #include +@@ -11097,16 +11997,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:11100: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:12000: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11103: \$? = $ac_status" >&5 ++ echo "$as_me:12003: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:11106: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12006: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11109: \$? = $ac_status" >&5 ++ echo "$as_me:12009: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_weak_symbols=yes + else +@@ -11117,15 +12017,16 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:11120: result: $cf_cv_weak_symbols" >&5 ++echo "$as_me:12020: result: $cf_cv_weak_symbols" >&5 + echo "${ECHO_T}$cf_cv_weak_symbols" >&6 + + else + cf_cv_weak_symbols=no + fi + +- if test $cf_cv_weak_symbols = yes ; then +- cat >>confdefs.h <<\EOF ++ if test "x$cf_cv_weak_symbols" = xyes ; then ++ ++cat >>confdefs.h <<\EOF + #define USE_WEAK_SYMBOLS 1 + EOF + +@@ -11133,13 +12034,14 @@ + fi + + PTHREAD= +-if test "$with_pthread" = "yes" ; then +- cat >>confdefs.h <<\EOF ++if test "x$with_pthread" = "xyes" ; then ++ ++cat >>confdefs.h <<\EOF + #define USE_PTHREADS 1 + EOF + + enable_reentrant=yes +- if test $cf_cv_weak_symbols = yes ; then ++ if test "x$cf_cv_weak_symbols" = xyes ; then + PTHREAD=-lpthread + fi + fi +@@ -11148,7 +12050,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:11151: checking if you want experimental reentrant code" >&5 ++echo "$as_me:12053: 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. +@@ -11158,14 +12060,14 @@ + else + with_reentrant=no + fi; +-echo "$as_me:11161: result: $with_reentrant" >&5 ++echo "$as_me:12063: result: $with_reentrant" >&5 + echo "${ECHO_T}$with_reentrant" >&6 +-if test "$with_reentrant" = yes ; then ++if test "x$with_reentrant" = xyes ; 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 "x$cf_cv_weak_symbols" = xyes ; then + + # remove pthread library from $LIBS + LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ ]//g' -e 's/-lpthread$//'` +@@ -11173,9 +12075,20 @@ + TEST_LIBS="-lpthread $TEST_LIBS" + TEST_LIBS2="-lpthread $TEST_LIBS2" + else +- LIB_SUFFIX="t${LIB_SUFFIX}" ++ # when not using weak symbols but with_reentrant, ++ # add 't' to the library suffix on all platforms ++ # except cygwin, where we only do that if ALSO ++ # compiling with full thread support. ++ case "$host" in ++ *cygwin* | *msys*) ++ if test "$with_pthread" = "yes" ; then ++ LIB_SUFFIX="t${LIB_SUFFIX}" ++ fi ;; ++ * ) LIB_SUFFIX="t${LIB_SUFFIX}" ;; ++ esac + fi +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_REENTRANT 1 + EOF + +@@ -11184,7 +12097,7 @@ + 5.*) + cf_cv_rel_version=6.0 + cf_cv_abi_version=6 +- { echo "$as_me:11187: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 ++ { echo "$as_me:12100: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5 + echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;} + ;; + esac +@@ -11199,7 +12112,7 @@ + + ### Allow using a different wrap-prefix + if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then +- echo "$as_me:11202: checking for prefix used to wrap public variables" >&5 ++ echo "$as_me:12115: 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. +@@ -11209,7 +12122,7 @@ + else + NCURSES_WRAP_PREFIX=_nc_ + fi; +- echo "$as_me:11212: result: $NCURSES_WRAP_PREFIX" >&5 ++ echo "$as_me:12125: result: $NCURSES_WRAP_PREFIX" >&5 + echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6 + else + NCURSES_WRAP_PREFIX=_nc_ +@@ -11219,7 +12132,7 @@ + #define NCURSES_WRAP_PREFIX "$NCURSES_WRAP_PREFIX" + EOF + +-echo "$as_me:11222: checking if you want experimental safe-sprintf code" >&5 ++echo "$as_me:12135: checking if you want experimental safe-sprintf code" >&5 + echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6 + + # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given. +@@ -11229,16 +12142,17 @@ + else + with_safe_sprintf=no + fi; +-echo "$as_me:11232: result: $with_safe_sprintf" >&5 ++echo "$as_me:12145: result: $with_safe_sprintf" >&5 + echo "${ECHO_T}$with_safe_sprintf" >&6 +-test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF ++test "x$with_safe_sprintf" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_SAFE_SPRINTF 1 + EOF + + ### 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:11241: checking if you want to experiment without scrolling-hints code" >&5 ++echo "$as_me:12155: 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. +@@ -11248,15 +12162,16 @@ + else + with_scroll_hints=yes + fi; +-echo "$as_me:11251: result: $with_scroll_hints" >&5 ++echo "$as_me:12165: result: $with_scroll_hints" >&5 + echo "${ECHO_T}$with_scroll_hints" >&6 +-test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF ++test "x$with_scroll_hints" = xyes && ++cat >>confdefs.h <<\EOF + #define USE_SCROLL_HINTS 1 + EOF + + fi + +-echo "$as_me:11259: checking if you want experimental wgetch-events code" >&5 ++echo "$as_me:12174: 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. +@@ -11266,37 +12181,64 @@ + else + with_wgetch_events=no + fi; +-echo "$as_me:11269: result: $with_wgetch_events" >&5 ++echo "$as_me:12184: result: $with_wgetch_events" >&5 + echo "${ECHO_T}$with_wgetch_events" >&6 +-test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF ++test "x$with_wgetch_events" = xyes && ++cat >>confdefs.h <<\EOF + #define NCURSES_WGETCH_EVENTS 1 + EOF + + ############################################################################### + + ### use option --disable-echo to suppress full display compiling commands +-echo "$as_me:11278: 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 ++ ++echo "$as_me:12195: checking if you want to see long compiling messages" >&5 ++echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 + + # Check whether --enable-echo or --disable-echo was given. + if test "${enable_echo+set}" = set; then + enableval="$enable_echo" +- with_echo=$enableval ++ test "$enableval" != no && enableval=yes ++ if test "$enableval" != "yes" ; then ++ ++ ECHO_LT='--silent' ++ ECHO_LD='@echo linking $@;' ++ RULE_CC='@echo compiling $<' ++ SHOW_CC='@echo compiling $@' ++ ECHO_CC='@' ++ ++ else ++ ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' ++ ++ fi + else +- with_echo=yes ++ enableval=yes ++ ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' ++ + fi; +-if test "$with_echo" = yes; then ++echo "$as_me:12229: result: $enableval" >&5 ++echo "${ECHO_T}$enableval" >&6 ++ ++if test "x$enable_echo" = xyes; then + ECHO_LINK= + else + ECHO_LINK='@ echo linking $@ ... ;' + test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" + test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent" + fi +-echo "$as_me:11295: result: $with_echo" >&5 +-echo "${ECHO_T}$with_echo" >&6 + + ### use option --enable-warnings to turn on all gcc warnings +-echo "$as_me:11299: checking if you want to see compiler warnings" >&5 ++echo "$as_me:12241: 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. +@@ -11304,7 +12246,7 @@ + enableval="$enable_warnings" + with_warnings=$enableval + fi; +-echo "$as_me:11307: result: $with_warnings" >&5 ++echo "$as_me:12249: result: $with_warnings" >&5 + echo "${ECHO_T}$with_warnings" >&6 + + if test "x$with_warnings" = "xyes"; then +@@ -11316,12 +12258,12 @@ + if test "$GCC" = yes ; then + case $host_os in + linux*|gnu*) +- echo "$as_me:11319: checking if this is really Intel C compiler" >&5 ++ echo "$as_me:12261: 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 11324 "configure" ++#line 12266 "configure" + #include "confdefs.h" + + int +@@ -11338,16 +12280,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:11341: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:12283: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11344: \$? = $ac_status" >&5 ++ echo "$as_me:12286: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:11347: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12289: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11350: \$? = $ac_status" >&5 ++ echo "$as_me:12292: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + INTEL_COMPILER=yes + cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" +@@ -11358,14 +12300,63 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + CFLAGS="$cf_save_CFLAGS" +- echo "$as_me:11361: result: $INTEL_COMPILER" >&5 ++ echo "$as_me:12303: result: $INTEL_COMPILER" >&5 + echo "${ECHO_T}$INTEL_COMPILER" >&6 + ;; + esac + fi + ++CLANG_COMPILER=no ++ ++if test "$GCC" = yes ; then ++ echo "$as_me:12312: checking if this is really Clang C compiler" >&5 ++echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 ++ cf_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -Qunused-arguments" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12317 "configure" ++#include "confdefs.h" ++ ++int ++main () ++{ ++ ++#ifdef __clang__ ++#else ++make an error ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12334: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:12337: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12340: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:12343: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ CLANG_COMPILER=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++ ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$cf_save_CFLAGS" ++ echo "$as_me:12354: result: $CLANG_COMPILER" >&5 ++echo "${ECHO_T}$CLANG_COMPILER" >&6 ++fi ++ + cat > conftest.$ac_ext <&5 ++ { echo "$as_me:12376: checking for $CC warning options..." >&5 + echo "$as_me: checking for $CC warning options..." >&6;} + cf_save_CFLAGS="$CFLAGS" + EXTRA_CFLAGS="-Wall" +@@ -11398,12 +12389,12 @@ + wd981 + do + CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" +- if { (eval echo "$as_me:11401: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:12392: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11404: \$? = $ac_status" >&5 ++ echo "$as_me:12395: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:11406: result: ... -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:12397: result: ... -$cf_opt" >&5 + echo "${ECHO_T}... -$cf_opt" >&6 + EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" + fi +@@ -11412,16 +12403,20 @@ + + elif test "$GCC" = yes + then +- { echo "$as_me:11415: checking for $CC warning options..." >&5 ++ { echo "$as_me:12406: checking for $CC warning options..." >&5 + echo "$as_me: checking for $CC warning options..." >&6;} + cf_save_CFLAGS="$CFLAGS" + EXTRA_CFLAGS= + cf_warn_CONST="" + test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" ++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" ++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= + for cf_opt in W Wall \ + Wbad-function-cast \ + Wcast-align \ + Wcast-qual \ ++ Wdeclaration-after-statement \ ++ Wextra \ + Winline \ + Wmissing-declarations \ + Wmissing-prototypes \ +@@ -11429,15 +12424,15 @@ + Wpointer-arith \ + Wshadow \ + Wstrict-prototypes \ +- Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum ++ Wundef $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum + do + CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" +- if { (eval echo "$as_me:11435: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:12430: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11438: \$? = $ac_status" >&5 ++ echo "$as_me:12433: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:11440: result: ... -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:12435: result: ... -$cf_opt" >&5 + echo "${ECHO_T}... -$cf_opt" >&6 + case $cf_opt in #(vi + Wcast-qual) #(vi +@@ -11448,7 +12443,17 @@ + [34].*) + test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 + +-echo "${as_me:-configure}:11451: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 ++echo "${as_me:-configure}:12446: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 ++ ++ continue;; ++ esac ++ ;; ++ Wpointer-arith) #(vi ++ case $GCC_VERSION in ++ [12].*) ++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 ++ ++echo "${as_me:-configure}:12456: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 + + continue;; + esac +@@ -11461,19 +12466,19 @@ + fi + rm -rf conftest* + +- if test "$cf_with_cxx" = yes ; then ++ if test "x$cf_with_cxx" = xyes ; then + + INTEL_CPLUSPLUS=no + + if test "$GCC" = yes ; then + case $host_os in + linux*|gnu*) +- echo "$as_me:11471: checking if this is really Intel C++ compiler" >&5 ++ echo "$as_me:12476: 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 11476 "configure" ++#line 12481 "configure" + #include "confdefs.h" + + int +@@ -11490,16 +12495,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:11493: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:12498: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11496: \$? = $ac_status" >&5 ++ echo "$as_me:12501: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:11499: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12504: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11502: \$? = $ac_status" >&5 ++ echo "$as_me:12507: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + INTEL_CPLUSPLUS=yes + cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" +@@ -11510,12 +12515,61 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + CXXFLAGS="$cf_save_CFLAGS" +- echo "$as_me:11513: result: $INTEL_CPLUSPLUS" >&5 ++ echo "$as_me:12518: result: $INTEL_CPLUSPLUS" >&5 + echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6 + ;; + esac + fi + ++CLANG_CPLUSPLUS=no ++ ++if test "$GCC" = yes ; then ++ echo "$as_me:12527: checking if this is really Clang C++ compiler" >&5 ++echo $ECHO_N "checking if this is really Clang C++ compiler... $ECHO_C" >&6 ++ cf_save_CFLAGS="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAGS -Qunused-arguments" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12532 "configure" ++#include "confdefs.h" ++ ++int ++main () ++{ ++ ++#ifdef __clang__ ++#else ++make an error ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12549: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:12552: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12555: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:12558: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ CLANG_CPLUSPLUS=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++ ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CXXFLAGS="$cf_save_CFLAGS" ++ echo "$as_me:12569: result: $CLANG_CPLUSPLUS" >&5 ++echo "${ECHO_T}$CLANG_CPLUSPLUS" >&6 ++fi ++ + ac_ext=cc + ac_cpp='$CXXCPP $CPPFLAGS' + ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11524,7 +12578,7 @@ + ac_main_return=return + + cat > conftest.$ac_ext <&5 ++ { echo "$as_me:12599: checking for $CC warning options..." >&5 + echo "$as_me: checking for $CC warning options..." >&6;} + cf_save_CXXFLAGS="$CXXFLAGS" + EXTRA_CXXFLAGS="-Wall" +@@ -11559,12 +12613,12 @@ + wd981 + do + CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt" +- if { (eval echo "$as_me:11562: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:12616: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11565: \$? = $ac_status" >&5 ++ echo "$as_me:12619: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:11567: result: ... -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:12621: result: ... -$cf_opt" >&5 + echo "${ECHO_T}... -$cf_opt" >&6 + EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" + fi +@@ -11573,7 +12627,7 @@ + + elif test "$GXX" = yes + then +- { echo "$as_me:11576: checking for $CXX warning options..." >&5 ++ { echo "$as_me:12630: checking for $CXX warning options..." >&5 + echo "$as_me: checking for $CXX warning options..." >&6;} + cf_save_CXXFLAGS="$CXXFLAGS" + EXTRA_CXXFLAGS="-W -Wall" +@@ -11589,29 +12643,30 @@ + for cf_opt in \ + Wabi \ + fabi-version=0 \ ++ Wextra \ ++ Wignored-qualifiers \ ++ Wlogical-op \ + Woverloaded-virtual \ + Wsign-promo \ + Wsynth \ + Wold-style-cast \ + Wcast-align \ + Wcast-qual \ +- Wmissing-prototypes \ + Wpointer-arith \ + Wshadow \ +- Wstrict-prototypes \ + Wundef $cf_gxx_extra_warnings Wno-unused + do + CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt" +- if { (eval echo "$as_me:11605: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:12660: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11608: \$? = $ac_status" >&5 ++ echo "$as_me:12663: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:11610: result: ... -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:12665: result: ... -$cf_opt" >&5 + echo "${ECHO_T}... -$cf_opt" >&6 + EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" + else +- test -n "$verbose" && echo "$as_me:11614: result: ... no -$cf_opt" >&5 ++ test -n "$verbose" && echo "$as_me:12669: result: ... no -$cf_opt" >&5 + echo "${ECHO_T}... no -$cf_opt" >&6 + fi + done +@@ -11647,10 +12702,10 @@ + EOF + if test "$GCC" = yes + then +- { echo "$as_me:11650: checking for $CC __attribute__ directives..." >&5 ++ { echo "$as_me:12705: 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:12757: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11705: \$? = $ac_status" >&5 ++ echo "$as_me:12760: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:11707: result: ... $cf_attribute" >&5 ++ test -n "$verbose" && echo "$as_me:12762: result: ... $cf_attribute" >&5 + echo "${ECHO_T}... $cf_attribute" >&6 + cat conftest.h >>confdefs.h + case $cf_attribute in #(vi +- printf) #(vi +- if test "$cf_printf_attribute" = no ; then +- cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h <<\EOF ++#define GCC_PRINTF 1 + EOF ++ + fi ++ ++cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h <<\EOF ++#define GCC_SCANF 1 + EOF ++ + fi ++ ++cat >>confdefs.h <>confdefs.h <>confdefs.h ++ fgrep define conftest.i >>confdefs.h ++fi ++rm -rf conftest* ++fi ++ ++echo "$as_me:12821: checking if you want to work around bogus compiler/loader warnings" >&5 ++echo $ECHO_N "checking if you want to work around bogus compiler/loader warnings... $ECHO_C" >&6 ++ ++# Check whether --enable-string-hacks or --disable-string-hacks was given. ++if test "${enable_string_hacks+set}" = set; then ++ enableval="$enable_string_hacks" ++ with_string_hacks=$enableval ++else ++ with_string_hacks=no ++fi; ++echo "$as_me:12831: result: $with_string_hacks" >&5 ++echo "${ECHO_T}$with_string_hacks" >&6 ++ ++if test "x$with_string_hacks" = "xyes"; then ++ ++cat >>confdefs.h <<\EOF ++#define USE_STRING_HACKS 1 ++EOF ++ ++ { echo "$as_me:12840: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5 ++echo "$as_me: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&2;} ++ ++for ac_func in strlcat strlcpy snprintf ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:12846: 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 12852 "configure" ++#include "confdefs.h" ++/* 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. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (); ++char (*f) (); ++ ++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 ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:12883: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:12886: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:12889: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:12892: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++eval "$as_ac_var=no" + fi +-rm -rf conftest* ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:12902: 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:12915: 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. +@@ -11750,16 +12922,12 @@ + else + with_assertions=no + fi; +-echo "$as_me:11753: result: $with_assertions" >&5 ++echo "$as_me:12925: result: $with_assertions" >&5 + echo "${ECHO_T}$with_assertions" >&6 + if test -n "$GCC" + then + if test "$with_assertions" = no + then +- cat >>confdefs.h <<\EOF +-#define NDEBUG 1 +-EOF +- + CPPFLAGS="$CPPFLAGS -DNDEBUG" + else + +@@ -11770,13 +12938,14 @@ + + ### use option --disable-leaks to suppress "permanent" leaks, for testing + +-echo "$as_me:11773: checking if you want to use dmalloc for testing" >&5 ++echo "$as_me:12941: 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. + if test "${with_dmalloc+set}" = set; then + withval="$with_dmalloc" +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <&5 ++echo "$as_me:12958: result: ${with_dmalloc:-no}" >&5 + echo "${ECHO_T}${with_dmalloc:-no}" >&6 + + case .$with_cflags in #(vi +@@ -11880,23 +13049,23 @@ + esac + + if test "$with_dmalloc" = yes ; then +- echo "$as_me:11883: checking for dmalloc.h" >&5 ++ echo "$as_me:13052: 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 11889 "configure" ++#line 13058 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:11893: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:13062: \"$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:11899: \$? = $ac_status" >&5 ++ echo "$as_me:13068: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -11915,11 +13084,11 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:11918: result: $ac_cv_header_dmalloc_h" >&5 ++echo "$as_me:13087: 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:11922: checking for dmalloc_debug in -ldmalloc" >&5 ++echo "$as_me:13091: 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 +@@ -11927,7 +13096,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-ldmalloc $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 11930 "configure" ++#line 13099 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -11946,16 +13115,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11949: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13118: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11952: \$? = $ac_status" >&5 ++ echo "$as_me:13121: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11955: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13124: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11958: \$? = $ac_status" >&5 ++ echo "$as_me:13127: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dmalloc_dmalloc_debug=yes + else +@@ -11966,7 +13135,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:11969: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 ++echo "$as_me:13138: 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:13153: 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. + if test "${with_dbmalloc+set}" = set; then + withval="$with_dbmalloc" +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <&5 ++echo "$as_me:13170: result: ${with_dbmalloc:-no}" >&5 + echo "${ECHO_T}${with_dbmalloc:-no}" >&6 + + case .$with_cflags in #(vi +@@ -12091,23 +13261,23 @@ + esac + + if test "$with_dbmalloc" = yes ; then +- echo "$as_me:12094: checking for dbmalloc.h" >&5 ++ echo "$as_me:13264: 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 12100 "configure" ++#line 13270 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:12104: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:13274: \"$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:12110: \$? = $ac_status" >&5 ++ echo "$as_me:13280: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -12126,11 +13296,11 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:12129: result: $ac_cv_header_dbmalloc_h" >&5 ++echo "$as_me:13299: 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:12133: checking for debug_malloc in -ldbmalloc" >&5 ++echo "$as_me:13303: 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 +@@ -12138,7 +13308,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-ldbmalloc $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 12141 "configure" ++#line 13311 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -12157,16 +13327,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12160: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13330: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12163: \$? = $ac_status" >&5 ++ echo "$as_me:13333: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12166: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13336: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12169: \$? = $ac_status" >&5 ++ echo "$as_me:13339: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dbmalloc_debug_malloc=yes + else +@@ -12177,7 +13347,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:12180: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 ++echo "$as_me:13350: 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:13365: 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. + if test "${with_valgrind+set}" = set; then + withval="$with_valgrind" +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <&5 ++echo "$as_me:13382: result: ${with_valgrind:-no}" >&5 + echo "${ECHO_T}${with_valgrind:-no}" >&6 + + case .$with_cflags in #(vi +@@ -12301,7 +13472,7 @@ + ;; + esac + +-echo "$as_me:12304: checking if you want to perform memory-leak testing" >&5 ++echo "$as_me:13475: 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. +@@ -12311,15 +13482,16 @@ + else + : ${with_no_leaks:=no} + fi; +-echo "$as_me:12314: result: $with_no_leaks" >&5 ++echo "$as_me:13485: result: $with_no_leaks" >&5 + echo "${ECHO_T}$with_no_leaks" >&6 + + if test "$with_no_leaks" = yes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define NO_LEAKS 1 + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define YY_NO_LEAKS 1 + EOF + +@@ -12334,7 +13506,8 @@ + # Check whether --enable-expanded or --disable-expanded was given. + if test "${enable_expanded+set}" = set; then + enableval="$enable_expanded" +- test "$enableval" = yes && cat >>confdefs.h <<\EOF ++ test "x$enableval" = xyes && ++cat >>confdefs.h <<\EOF + #define NCURSES_EXPANDED 1 + EOF + +@@ -12345,7 +13518,8 @@ + # Check whether --enable-macros or --disable-macros was given. + if test "${enable_macros+set}" = set; then + enableval="$enable_macros" +- test "$enableval" = no && cat >>confdefs.h <<\EOF ++ test "$enableval" = no && ++cat >>confdefs.h <<\EOF + #define NCURSES_NOMACROS 1 + EOF + +@@ -12360,7 +13534,7 @@ + ;; + esac + +-echo "$as_me:12363: checking whether to add trace feature to all models" >&5 ++echo "$as_me:13537: 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. +@@ -12370,10 +13544,10 @@ + else + cf_with_trace=$cf_all_traces + fi; +-echo "$as_me:12373: result: $cf_with_trace" >&5 ++echo "$as_me:13547: result: $cf_with_trace" >&5 + echo "${ECHO_T}$cf_with_trace" >&6 + +-if test "$cf_with_trace" = yes ; then ++if test "x$cf_with_trace" = xyes ; then + LIB_TRACING=all + ADA_TRACE=TRUE + +@@ -12465,13 +13639,13 @@ + *mingw32*) #(vi + ;; + *) +-echo "$as_me:12468: checking for gettimeofday" >&5 ++echo "$as_me:13642: 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 12474 "configure" ++#line 13648 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gettimeofday (); below. */ +@@ -12494,7 +13668,7 @@ + #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday) + choke me + #else +-f = gettimeofday; ++f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -12502,16 +13676,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12505: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13679: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12508: \$? = $ac_status" >&5 ++ echo "$as_me:13682: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12511: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13685: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12514: \$? = $ac_status" >&5 ++ echo "$as_me:13688: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gettimeofday=yes + else +@@ -12521,16 +13695,17 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:12524: result: $ac_cv_func_gettimeofday" >&5 ++echo "$as_me:13698: 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 ++ ++cat >>confdefs.h <<\EOF + #define HAVE_GETTIMEOFDAY 1 + EOF + + else + +-echo "$as_me:12533: checking for gettimeofday in -lbsd" >&5 ++echo "$as_me:13708: 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 +@@ -12538,7 +13713,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lbsd $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 12541 "configure" ++#line 13716 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -12557,16 +13732,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12560: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13735: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12563: \$? = $ac_status" >&5 ++ echo "$as_me:13738: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12566: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13741: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12569: \$? = $ac_status" >&5 ++ echo "$as_me:13744: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_bsd_gettimeofday=yes + else +@@ -12577,10 +13752,11 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:12580: result: $ac_cv_lib_bsd_gettimeofday" >&5 ++echo "$as_me:13755: 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 ++ ++cat >>confdefs.h <<\EOF + #define HAVE_GETTIMEOFDAY 1 + EOF + +@@ -12591,14 +13767,14 @@ + ;; + esac + +-echo "$as_me:12594: checking if -lm needed for math functions" >&5 ++echo "$as_me:13770: 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 12601 "configure" ++#line 13777 "configure" + #include "confdefs.h" + + #include +@@ -12607,22 +13783,22 @@ + int + main () + { +-double x = rand(); printf("result = %g\n", sin(x)) ++double x = rand(); printf("result = %g\n", pow(sin(x),x)) + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12616: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13792: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12619: \$? = $ac_status" >&5 ++ echo "$as_me:13795: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12622: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13798: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12625: \$? = $ac_status" >&5 ++ echo "$as_me:13801: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_need_libm=no + else +@@ -12632,7 +13808,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:12635: result: $cf_cv_need_libm" >&5 ++echo "$as_me:13811: result: $cf_cv_need_libm" >&5 + echo "${ECHO_T}$cf_cv_need_libm" >&6 + if test "$cf_cv_need_libm" = yes + then +@@ -12640,13 +13816,13 @@ + fi + + ### Checks for header files. +-echo "$as_me:12643: checking for ANSI C header files" >&5 ++echo "$as_me:13819: 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 12649 "configure" ++#line 13825 "configure" + #include "confdefs.h" + #include + #include +@@ -12654,13 +13830,13 @@ + #include + + _ACEOF +-if { (eval echo "$as_me:12657: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:13833: \"$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:12663: \$? = $ac_status" >&5 ++ echo "$as_me:13839: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -12682,7 +13858,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 12685 "configure" ++#line 13861 "configure" + #include "confdefs.h" + #include + +@@ -12700,7 +13876,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 12703 "configure" ++#line 13879 "configure" + #include "confdefs.h" + #include + +@@ -12721,7 +13897,7 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line 12724 "configure" ++#line 13900 "configure" + #include "confdefs.h" + #include + #if ((' ' & 0x0FF) == 0x020) +@@ -12747,15 +13923,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:12750: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13926: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12753: \$? = $ac_status" >&5 ++ echo "$as_me:13929: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:12755: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13931: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12758: \$? = $ac_status" >&5 ++ echo "$as_me:13934: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -12768,7 +13944,7 @@ + fi + fi + fi +-echo "$as_me:12771: result: $ac_cv_header_stdc" >&5 ++echo "$as_me:13947: result: $ac_cv_header_stdc" >&5 + echo "${ECHO_T}$ac_cv_header_stdc" >&6 + if test $ac_cv_header_stdc = yes; then + +@@ -12781,13 +13957,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:12784: checking for $ac_hdr that defines DIR" >&5 ++echo "$as_me:13960: 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 12790 "configure" ++#line 13966 "configure" + #include "confdefs.h" + #include + #include <$ac_hdr> +@@ -12802,16 +13978,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:12805: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:13981: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:12808: \$? = $ac_status" >&5 ++ echo "$as_me:13984: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:12811: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13987: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12814: \$? = $ac_status" >&5 ++ echo "$as_me:13990: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" + else +@@ -12821,7 +13997,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:12824: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:14000: 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:14013: 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 +@@ -12842,7 +14018,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-ldir $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 12845 "configure" ++#line 14021 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -12861,16 +14037,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12864: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14040: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12867: \$? = $ac_status" >&5 ++ echo "$as_me:14043: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12870: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14046: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12873: \$? = $ac_status" >&5 ++ echo "$as_me:14049: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dir_opendir=yes + else +@@ -12881,14 +14057,14 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:12884: result: $ac_cv_lib_dir_opendir" >&5 ++echo "$as_me:14060: 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:12891: checking for opendir in -lx" >&5 ++ echo "$as_me:14067: 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 +@@ -12896,7 +14072,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lx $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 12899 "configure" ++#line 14075 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -12915,16 +14091,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12918: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14094: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12921: \$? = $ac_status" >&5 ++ echo "$as_me:14097: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12924: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14100: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12927: \$? = $ac_status" >&5 ++ echo "$as_me:14103: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_x_opendir=yes + else +@@ -12935,7 +14111,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:12938: result: $ac_cv_lib_x_opendir" >&5 ++echo "$as_me:14114: 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" +@@ -12943,13 +14119,13 @@ + + fi + +-echo "$as_me:12946: checking whether time.h and sys/time.h may both be included" >&5 ++echo "$as_me:14122: 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 12952 "configure" ++#line 14128 "configure" + #include "confdefs.h" + #include + #include +@@ -12965,16 +14141,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:12968: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14144: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:12971: \$? = $ac_status" >&5 ++ echo "$as_me:14147: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:12974: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14150: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12977: \$? = $ac_status" >&5 ++ echo "$as_me:14153: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_time=yes + else +@@ -12984,7 +14160,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:12987: result: $ac_cv_header_time" >&5 ++echo "$as_me:14163: result: $ac_cv_header_time" >&5 + echo "${ECHO_T}$ac_cv_header_time" >&6 + if test $ac_cv_header_time = yes; then + +@@ -12999,17 +14175,17 @@ + cf_regex_libs="regex re" + case $host_os in #(vi + mingw*) +- cf_regex_libs="regex.dll $cf_regex_libs" ++ cf_regex_libs="gnurx $cf_regex_libs" + ;; + esac + +-echo "$as_me:13006: checking for regcomp" >&5 ++echo "$as_me:14182: checking for regcomp" >&5 + echo $ECHO_N "checking for regcomp... $ECHO_C" >&6 + if test "${ac_cv_func_regcomp+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 13012 "configure" ++#line 14188 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char regcomp (); below. */ +@@ -13032,7 +14208,7 @@ + #if defined (__stub_regcomp) || defined (__stub___regcomp) + choke me + #else +-f = regcomp; ++f = regcomp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -13040,16 +14216,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13043: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14219: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13046: \$? = $ac_status" >&5 ++ echo "$as_me:14222: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13049: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14225: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13052: \$? = $ac_status" >&5 ++ echo "$as_me:14228: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_regcomp=yes + else +@@ -13059,7 +14235,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:13062: result: $ac_cv_func_regcomp" >&5 ++echo "$as_me:14238: result: $ac_cv_func_regcomp" >&5 + echo "${ECHO_T}$ac_cv_func_regcomp" >&6 + if test $ac_cv_func_regcomp = yes; then + cf_regex_func=regcomp +@@ -13068,7 +14244,7 @@ + for cf_regex_lib in $cf_regex_libs + do + as_ac_Lib=`echo "ac_cv_lib_$cf_regex_lib''_regcomp" | $as_tr_sh` +-echo "$as_me:13071: checking for regcomp in -l$cf_regex_lib" >&5 ++echo "$as_me:14247: checking for regcomp in -l$cf_regex_lib" >&5 + echo $ECHO_N "checking for regcomp in -l$cf_regex_lib... $ECHO_C" >&6 + if eval "test \"\${$as_ac_Lib+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -13076,7 +14252,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-l$cf_regex_lib $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 13079 "configure" ++#line 14255 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -13095,16 +14271,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13098: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14274: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13101: \$? = $ac_status" >&5 ++ echo "$as_me:14277: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13104: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14280: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13107: \$? = $ac_status" >&5 ++ echo "$as_me:14283: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Lib=yes" + else +@@ -13115,7 +14291,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:13118: result: `eval echo '${'$as_ac_Lib'}'`" >&5 ++echo "$as_me:14294: result: `eval echo '${'$as_ac_Lib'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 + if test `eval echo '${'$as_ac_Lib'}'` = yes; then + +@@ -13129,13 +14305,13 @@ + fi + + if test "$cf_regex_func" = no ; then +- echo "$as_me:13132: checking for compile" >&5 ++ echo "$as_me:14308: checking for compile" >&5 + echo $ECHO_N "checking for compile... $ECHO_C" >&6 + if test "${ac_cv_func_compile+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 13138 "configure" ++#line 14314 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char compile (); below. */ +@@ -13158,7 +14334,7 @@ + #if defined (__stub_compile) || defined (__stub___compile) + choke me + #else +-f = compile; ++f = compile; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -13166,16 +14342,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13169: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14345: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13172: \$? = $ac_status" >&5 ++ echo "$as_me:14348: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13175: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14351: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13178: \$? = $ac_status" >&5 ++ echo "$as_me:14354: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_compile=yes + else +@@ -13185,13 +14361,13 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:13188: result: $ac_cv_func_compile" >&5 ++echo "$as_me:14364: result: $ac_cv_func_compile" >&5 + echo "${ECHO_T}$ac_cv_func_compile" >&6 + if test $ac_cv_func_compile = yes; then + cf_regex_func=compile + else + +- echo "$as_me:13194: checking for compile in -lgen" >&5 ++ echo "$as_me:14370: checking for compile in -lgen" >&5 + echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6 + if test "${ac_cv_lib_gen_compile+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -13199,7 +14375,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lgen $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 13202 "configure" ++#line 14378 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -13218,16 +14394,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13221: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14397: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13224: \$? = $ac_status" >&5 ++ echo "$as_me:14400: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13227: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14403: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13230: \$? = $ac_status" >&5 ++ echo "$as_me:14406: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gen_compile=yes + else +@@ -13238,7 +14414,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:13241: result: $ac_cv_lib_gen_compile" >&5 ++echo "$as_me:14417: result: $ac_cv_lib_gen_compile" >&5 + echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6 + if test $ac_cv_lib_gen_compile = yes; then + +@@ -13251,11 +14427,11 @@ + fi + + if test "$cf_regex_func" = no ; then +- { echo "$as_me:13254: WARNING: cannot find regular expression library" >&5 ++ { echo "$as_me:14430: WARNING: cannot find regular expression library" >&5 + echo "$as_me: WARNING: cannot find regular expression library" >&2;} + fi + +-echo "$as_me:13258: checking for regular-expression headers" >&5 ++echo "$as_me:14434: checking for regular-expression headers" >&5 + echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6 + if test "${cf_cv_regex_hdrs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -13267,7 +14443,7 @@ + for cf_regex_hdr in regexp.h regexpr.h + do + cat >conftest.$ac_ext <<_ACEOF +-#line 13270 "configure" ++#line 14446 "configure" + #include "confdefs.h" + #include <$cf_regex_hdr> + int +@@ -13282,16 +14458,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13285: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14461: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13288: \$? = $ac_status" >&5 ++ echo "$as_me:14464: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13291: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14467: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13294: \$? = $ac_status" >&5 ++ echo "$as_me:14470: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_regex_hdrs=$cf_regex_hdr +@@ -13308,7 +14484,7 @@ + for cf_regex_hdr in regex.h + do + cat >conftest.$ac_ext <<_ACEOF +-#line 13311 "configure" ++#line 14487 "configure" + #include "confdefs.h" + #include + #include <$cf_regex_hdr> +@@ -13326,16 +14502,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13329: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14505: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13332: \$? = $ac_status" >&5 ++ echo "$as_me:14508: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13335: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14511: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13338: \$? = $ac_status" >&5 ++ echo "$as_me:14514: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_regex_hdrs=$cf_regex_hdr +@@ -13351,21 +14527,24 @@ + esac + + fi +-echo "$as_me:13354: result: $cf_cv_regex_hdrs" >&5 ++echo "$as_me:14530: result: $cf_cv_regex_hdrs" >&5 + echo "${ECHO_T}$cf_cv_regex_hdrs" >&6 + + case $cf_cv_regex_hdrs in #(vi +- no) { echo "$as_me:13358: WARNING: no regular expression header found" >&5 ++ no) { echo "$as_me:14534: WARNING: no regular expression header found" >&5 + echo "$as_me: WARNING: no regular expression header found" >&2;} ;; #(vi +- regex.h) cat >>confdefs.h <<\EOF ++ regex.h) ++cat >>confdefs.h <<\EOF + #define HAVE_REGEX_H_FUNCS 1 + EOF + ;; #(vi +- regexp.h) cat >>confdefs.h <<\EOF ++ regexp.h) ++cat >>confdefs.h <<\EOF + #define HAVE_REGEXP_H_FUNCS 1 + EOF + ;; #(vi +- regexpr.h) cat >>confdefs.h <<\EOF ++ regexpr.h) ++cat >>confdefs.h <<\EOF + #define HAVE_REGEXPR_H_FUNCS 1 + EOF + ;; +@@ -13391,23 +14570,71 @@ + + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:13394: checking for $ac_header" >&5 ++echo "$as_me:14573: 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 14579 "configure" ++#include "confdefs.h" ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:14583: \"$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:14589: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_ext ++fi ++echo "$as_me:14608: 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 $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 13400 "configure" ++#line 14627 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:13404: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:14631: \"$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:13410: \$? = $ac_status" >&5 ++ echo "$as_me:14637: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -13426,7 +14653,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:13429: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:14656: 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 $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6 ++if test "${cf_cv_getopt_header+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++cf_cv_getopt_header=none ++for cf_header in stdio.h stdlib.h unistd.h getopt.h ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 14676 "configure" ++#include "confdefs.h" ++ ++#include <$cf_header> ++int ++main () ++{ ++int x = optind; char *y = optarg ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14689: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:14692: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14695: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:14698: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_getopt_header=$cf_header ++ break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++done ++ ++fi ++echo "$as_me:14710: result: $cf_cv_getopt_header" >&5 ++echo "${ECHO_T}$cf_cv_getopt_header" >&6 ++if test $cf_cv_getopt_header != none ; then ++ ++cat >>confdefs.h <<\EOF ++#define HAVE_GETOPT_HEADER 1 ++EOF ++ ++fi ++ + # check for ISC (this may also define _POSIX_SOURCE) + # Note: even non-Posix ISC needs to declare fd_set +-if test "$ISC" = yes ; then ++if test "x$ISC" = xyes ; then + +-echo "$as_me:13443: checking for main in -lcposix" >&5 ++echo "$as_me:14724: 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 +@@ -13448,7 +14729,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lcposix $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 13451 "configure" ++#line 14732 "configure" + #include "confdefs.h" + + int +@@ -13460,16 +14741,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13463: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14744: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13466: \$? = $ac_status" >&5 ++ echo "$as_me:14747: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13469: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14750: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13472: \$? = $ac_status" >&5 ++ echo "$as_me:14753: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_cposix_main=yes + else +@@ -13480,7 +14761,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:13483: result: $ac_cv_lib_cposix_main" >&5 ++echo "$as_me:14764: 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:14775: 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 +@@ -13499,7 +14780,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-linet $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 13502 "configure" ++#line 14783 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -13518,16 +14799,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13521: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:14802: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13524: \$? = $ac_status" >&5 ++ echo "$as_me:14805: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13527: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14808: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13530: \$? = $ac_status" >&5 ++ echo "$as_me:14811: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_inet_bzero=yes + else +@@ -13538,21 +14819,21 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:13541: result: $ac_cv_lib_inet_bzero" >&5 ++echo "$as_me:14822: 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="-linet $LIBS" + fi + fi + +-echo "$as_me:13548: checking if sys/time.h works with sys/select.h" >&5 ++echo "$as_me:14829: 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 13555 "configure" ++#line 14836 "configure" + #include "confdefs.h" + + #include +@@ -13572,16 +14853,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13575: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14856: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13578: \$? = $ac_status" >&5 ++ echo "$as_me:14859: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13581: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14862: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13584: \$? = $ac_status" >&5 ++ echo "$as_me:14865: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_sys_time_select=yes + else +@@ -13593,9 +14874,10 @@ + + fi + +-echo "$as_me:13596: result: $cf_cv_sys_time_select" >&5 ++echo "$as_me:14877: 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 ++test "$cf_cv_sys_time_select" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE_SYS_TIME_SELECT 1 + EOF + +@@ -13607,104 +14889,13 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_main_return=return + +-echo "$as_me:13610: 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 +-else +- ac_cv_prog_cc_stdc=no +-ac_save_CC=$CC +-cat >conftest.$ac_ext <<_ACEOF +-#line 13618 "configure" +-#include "confdefs.h" +-#include +-#include +-#include +-#include +-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +-struct buf { int x; }; +-FILE * (*rcsopen) (struct buf *, struct stat *, int); +-static char *e (p, i) +- char **p; +- int i; +-{ +- return p[i]; +-} +-static char *f (char * (*g) (char **, int), char **p, ...) +-{ +- char *s; +- va_list v; +- va_start (v,p); +- s = g (p, va_arg (v,int)); +- va_end (v); +- return s; +-} +-int test (int i, double x); +-struct s1 {int (*f) (int a);}; +-struct s2 {int (*f) (double a);}; +-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +-int argc; +-char **argv; +-int +-main () +-{ +-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +- ; +- return 0; +-} +-_ACEOF +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX 10.20 and later -Ae +-# HP-UX older versions -Aa -D_HPUX_SOURCE +-# SVR4 -Xc -D__EXTENSIONS__ +-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +-do +- CC="$ac_save_CC $ac_arg" +- rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13667: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:13670: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13673: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:13676: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_prog_cc_stdc=$ac_arg +-break +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext +-done +-rm -f conftest.$ac_ext conftest.$ac_objext +-CC=$ac_save_CC +- +-fi +- +-case "x$ac_cv_prog_cc_stdc" in +- x|xno) +- echo "$as_me:13693: result: none needed" >&5 +-echo "${ECHO_T}none needed" >&6 ;; +- *) +- echo "$as_me:13696: 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:13701: checking for an ANSI C-conforming const" >&5 ++echo "$as_me:14892: 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 13707 "configure" ++#line 14898 "configure" + #include "confdefs.h" + + int +@@ -13762,16 +14953,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13765: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14956: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13768: \$? = $ac_status" >&5 ++ echo "$as_me:14959: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13771: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14962: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13774: \$? = $ac_status" >&5 ++ echo "$as_me:14965: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes + else +@@ -13781,7 +14972,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:13784: result: $ac_cv_c_const" >&5 ++echo "$as_me:14975: result: $ac_cv_c_const" >&5 + echo "${ECHO_T}$ac_cv_c_const" >&6 + if test $ac_cv_c_const = no; then + +@@ -13791,7 +14982,7 @@ + + fi + +-echo "$as_me:13794: checking for inline" >&5 ++echo "$as_me:14985: 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 +@@ -13799,7 +14990,7 @@ + ac_cv_c_inline=no + for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +-#line 13802 "configure" ++#line 14993 "configure" + #include "confdefs.h" + #ifndef __cplusplus + static $ac_kw int static_foo () {return 0; } +@@ -13808,16 +14999,16 @@ + + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13811: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15002: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13814: \$? = $ac_status" >&5 ++ echo "$as_me:15005: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13817: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15008: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13820: \$? = $ac_status" >&5 ++ echo "$as_me:15011: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_inline=$ac_kw; break + else +@@ -13828,7 +15019,7 @@ + done + + fi +-echo "$as_me:13831: result: $ac_cv_c_inline" >&5 ++echo "$as_me:15022: result: $ac_cv_c_inline" >&5 + echo "${ECHO_T}$ac_cv_c_inline" >&6 + case $ac_cv_c_inline in + inline | yes) ;; +@@ -13849,9 +15040,12 @@ + if test "$INTEL_COMPILER" = yes + then + : ++ elif test "$CLANG_COMPILER" = yes ++ then ++ : + elif test "$GCC" = yes + then +- echo "$as_me:13854: checking if $CC supports options to tune inlining" >&5 ++ echo "$as_me:15048: checking if $CC supports options to tune inlining" >&5 + echo $ECHO_N "checking if $CC supports options to tune inlining... $ECHO_C" >&6 + if test "${cf_cv_gcc_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -13860,7 +15054,7 @@ + cf_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS --param max-inline-insns-single=1200" + cat >conftest.$ac_ext <<_ACEOF +-#line 13863 "configure" ++#line 15057 "configure" + #include "confdefs.h" + inline int foo(void) { return 1; } + int +@@ -13872,16 +15066,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13875: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15069: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13878: \$? = $ac_status" >&5 ++ echo "$as_me:15072: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13881: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15075: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13884: \$? = $ac_status" >&5 ++ echo "$as_me:15078: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_gcc_inline=yes + else +@@ -13893,7 +15087,7 @@ + CFLAGS=$cf_save_CFLAGS + + fi +-echo "$as_me:13896: result: $cf_cv_gcc_inline" >&5 ++echo "$as_me:15090: result: $cf_cv_gcc_inline" >&5 + echo "${ECHO_T}$cf_cv_gcc_inline" >&6 + if test "$cf_cv_gcc_inline" = yes ; then + +@@ -13979,7 +15173,7 @@ + fi + fi + +-echo "$as_me:13982: checking for signal global datatype" >&5 ++echo "$as_me:15176: 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 +@@ -13991,7 +15185,7 @@ + "int" + do + cat >conftest.$ac_ext <<_ACEOF +-#line 13994 "configure" ++#line 15188 "configure" + #include "confdefs.h" + + #include +@@ -14014,16 +15208,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14017: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15211: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14020: \$? = $ac_status" >&5 ++ echo "$as_me:15214: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14023: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15217: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14026: \$? = $ac_status" >&5 ++ echo "$as_me:15220: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_sig_atomic_t=$cf_type + else +@@ -14037,15 +15231,16 @@ + + fi + +-echo "$as_me:14040: result: $cf_cv_sig_atomic_t" >&5 ++echo "$as_me:15234: 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 <>confdefs.h <&5 ++echo "$as_me:15243: 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 +@@ -14055,7 +15250,7 @@ + cf_cv_typeof_chtype=long + else + cat >conftest.$ac_ext <<_ACEOF +-#line 14058 "configure" ++#line 15253 "configure" + #include "confdefs.h" + + #define WANT_BITS 31 +@@ -14090,15 +15285,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:14093: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15288: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14096: \$? = $ac_status" >&5 ++ echo "$as_me:15291: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:14098: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15293: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14101: \$? = $ac_status" >&5 ++ echo "$as_me:15296: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_typeof_chtype=`cat cf_test.out` + else +@@ -14113,7 +15308,7 @@ + + fi + +-echo "$as_me:14116: result: $cf_cv_typeof_chtype" >&5 ++echo "$as_me:15311: result: $cf_cv_typeof_chtype" >&5 + echo "${ECHO_T}$cf_cv_typeof_chtype" >&6 + + cat >>confdefs.h <&5 ++echo "$as_me:15323: 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 14135 "configure" ++#line 15330 "configure" + #include "confdefs.h" + + int +@@ -14144,16 +15339,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14147: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15342: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14150: \$? = $ac_status" >&5 ++ echo "$as_me:15345: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14153: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15348: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14156: \$? = $ac_status" >&5 ++ echo "$as_me:15351: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_unsigned_literals=yes + else +@@ -14165,7 +15360,7 @@ + + fi + +-echo "$as_me:14168: result: $cf_cv_unsigned_literals" >&5 ++echo "$as_me:15363: result: $cf_cv_unsigned_literals" >&5 + echo "${ECHO_T}$cf_cv_unsigned_literals" >&6 + + cf_cv_1UL="1" +@@ -14181,14 +15376,14 @@ + + ### Checks for external-data + +-echo "$as_me:14184: checking if external errno is declared" >&5 ++echo "$as_me:15379: 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 14191 "configure" ++#line 15386 "configure" + #include "confdefs.h" + + #ifdef HAVE_STDLIB_H +@@ -14206,16 +15401,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14209: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15404: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14212: \$? = $ac_status" >&5 ++ echo "$as_me:15407: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14215: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15410: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14218: \$? = $ac_status" >&5 ++ echo "$as_me:15413: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_dcl_errno=yes + else +@@ -14226,7 +15421,7 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:14229: result: $cf_cv_dcl_errno" >&5 ++echo "$as_me:15424: result: $cf_cv_dcl_errno" >&5 + echo "${ECHO_T}$cf_cv_dcl_errno" >&6 + + if test "$cf_cv_dcl_errno" = no ; then +@@ -14241,14 +15436,14 @@ + + # It's possible (for near-UNIX clones) that the data doesn't exist + +-echo "$as_me:14244: checking if external errno exists" >&5 ++echo "$as_me:15439: 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 14251 "configure" ++#line 15446 "configure" + #include "confdefs.h" + + #undef errno +@@ -14263,16 +15458,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14266: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15461: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14269: \$? = $ac_status" >&5 ++ echo "$as_me:15464: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14272: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15467: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14275: \$? = $ac_status" >&5 ++ echo "$as_me:15470: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_have_errno=yes + else +@@ -14283,7 +15478,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + + fi +-echo "$as_me:14286: result: $cf_cv_have_errno" >&5 ++echo "$as_me:15481: result: $cf_cv_have_errno" >&5 + echo "${ECHO_T}$cf_cv_have_errno" >&6 + + if test "$cf_cv_have_errno" = yes ; then +@@ -14296,7 +15491,7 @@ + + fi + +-echo "$as_me:14299: checking if data-only library module links" >&5 ++echo "$as_me:15494: 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 +@@ -14304,20 +15499,20 @@ + + rm -f conftest.a + cat >conftest.$ac_ext <&5 ++ if { (eval echo "$as_me:15505: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14313: \$? = $ac_status" >&5 ++ echo "$as_me:15508: \$? = $ac_status" >&5 + (exit $ac_status); } ; then + mv conftest.o data.o && \ + ( $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:15528: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14336: \$? = $ac_status" >&5 ++ echo "$as_me:15531: \$? = $ac_status" >&5 + (exit $ac_status); }; then + mv conftest.o func.o && \ + ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null +@@ -14346,7 +15541,7 @@ + cf_cv_link_dataonly=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 14349 "configure" ++#line 15544 "configure" + #include "confdefs.h" + + int main() +@@ -14357,15 +15552,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:14360: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15555: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14363: \$? = $ac_status" >&5 ++ echo "$as_me:15558: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:14365: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15560: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14368: \$? = $ac_status" >&5 ++ echo "$as_me:15563: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_link_dataonly=yes + else +@@ -14380,11 +15575,12 @@ + + fi + +-echo "$as_me:14383: result: $cf_cv_link_dataonly" >&5 ++echo "$as_me:15578: result: $cf_cv_link_dataonly" >&5 + echo "${ECHO_T}$cf_cv_link_dataonly" >&6 + + if test "$cf_cv_link_dataonly" = no ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define BROKEN_LINKER 1 + EOF + +@@ -14400,10 +15596,12 @@ + getttynam \ + issetugid \ + poll \ ++putenv \ + remove \ + select \ + setbuf \ + setbuffer \ ++setenv \ + setvbuf \ + sigaction \ + sigvec \ +@@ -14415,13 +15613,13 @@ + + do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +-echo "$as_me:14418: checking for $ac_func" >&5 ++echo "$as_me:15616: 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 14424 "configure" ++#line 15622 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +@@ -14444,7 +15642,7 @@ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else +-f = $ac_func; ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -14452,45 +15650,102 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14455: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15653: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:15656: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:15659: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:15662: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++eval "$as_ac_var=no" ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:15672: 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 $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 15691 "configure" ++#include "confdefs.h" ++ ++#include ++int ++main () ++{ ++ ++ char temp[128]; ++ char *buf = temp; ++ char *db_array = temp; ++ cgetent(&buf, &db_array, "vt100"); ++ cgetcap(buf, "tc", '='); ++ cgetmatch(buf, "tc"); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:15711: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14458: \$? = $ac_status" >&5 ++ echo "$as_me:15714: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14461: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15717: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14464: \$? = $ac_status" >&5 ++ echo "$as_me:15720: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_var=yes" ++ cf_cv_cgetent=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_var=no" ++cf_cv_cgetent=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:14474: 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 "${ECHO_T}$cf_cv_cgetent" >&6 + +-if test "$with_getcap" = "yes" ; then ++if test "$cf_cv_cgetent" = yes ++then + +-echo "$as_me:14486: 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 ++cat >>confdefs.h <<\EOF ++#define HAVE_BSD_CGETENT 1 ++EOF ++ ++echo "$as_me:15741: checking if cgetent uses const parameter" >&5 ++echo $ECHO_N "checking if cgetent uses const parameter... $ECHO_C" >&6 ++if test "${cf_cv_cgetent_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 14493 "configure" ++#line 15748 "configure" + #include "confdefs.h" + + #include +@@ -14500,8 +15755,10 @@ + + char temp[128]; + char *buf = temp; +- char *db_array = temp; +- cgetent(&buf, /* int *, */ &db_array, "vt100"); ++#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */ ++ const char *db_array = temp; ++ cgetent(&buf, &db_array, "vt100"); ++#endif + cgetcap(buf, "tc", '='); + cgetmatch(buf, "tc"); + +@@ -14510,43 +15767,48 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14513: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15770: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14516: \$? = $ac_status" >&5 ++ echo "$as_me:15773: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14519: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15776: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14522: \$? = $ac_status" >&5 ++ echo "$as_me:15779: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_cgetent=yes ++ cf_cv_cgetent_const=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_cgetent=no ++cf_cv_cgetent_const=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + + fi ++echo "$as_me:15790: result: $cf_cv_cgetent_const" >&5 ++echo "${ECHO_T}$cf_cv_cgetent_const" >&6 ++ if test "$cf_cv_cgetent_const" = yes ++ then + +-echo "$as_me:14534: 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 ++cat >>confdefs.h <&5 ++echo "$as_me:15804: 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 14549 "configure" ++#line 15811 "configure" + #include "confdefs.h" + #include + int +@@ -14558,16 +15820,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14561: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15823: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14564: \$? = $ac_status" >&5 ++ echo "$as_me:15826: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14567: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15829: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14570: \$? = $ac_status" >&5 ++ echo "$as_me:15832: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_have_isascii=yes + else +@@ -14578,17 +15840,18 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + + fi +-echo "$as_me:14581: result: $cf_cv_have_isascii" >&5 ++echo "$as_me:15843: result: $cf_cv_have_isascii" >&5 + echo "${ECHO_T}$cf_cv_have_isascii" >&6 +-test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF ++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:14588: checking whether sigaction needs _POSIX_SOURCE" >&5 ++echo "$as_me:15851: 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 14591 "configure" ++#line 15854 "configure" + #include "confdefs.h" + + #include +@@ -14602,16 +15865,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14605: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15868: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14608: \$? = $ac_status" >&5 ++ echo "$as_me:15871: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14611: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15874: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14614: \$? = $ac_status" >&5 ++ echo "$as_me:15877: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + sigact_bad=no + else +@@ -14619,7 +15882,7 @@ + cat conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 14622 "configure" ++#line 15885 "configure" + #include "confdefs.h" + + #define _POSIX_SOURCE +@@ -14634,20 +15897,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14637: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15900: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14640: \$? = $ac_status" >&5 ++ echo "$as_me:15903: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14643: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15906: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14646: \$? = $ac_status" >&5 ++ echo "$as_me:15909: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + sigact_bad=yes +- cat >>confdefs.h <<\EOF +-#define SVR4_ACTION 1 ++ ++cat >>confdefs.h <<\EOF ++#define _POSIX_SOURCE 1 + EOF + + else +@@ -14658,11 +15922,11 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14661: result: $sigact_bad" >&5 ++echo "$as_me:15925: result: $sigact_bad" >&5 + echo "${ECHO_T}$sigact_bad" >&6 + fi + +-echo "$as_me:14665: checking if nanosleep really works" >&5 ++echo "$as_me:15929: 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 +@@ -14672,7 +15936,7 @@ + cf_cv_func_nanosleep=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 14675 "configure" ++#line 15939 "configure" + #include "confdefs.h" + + #include +@@ -14697,15 +15961,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:14700: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15964: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14703: \$? = $ac_status" >&5 ++ echo "$as_me:15967: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:14705: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15969: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14708: \$? = $ac_status" >&5 ++ echo "$as_me:15972: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_func_nanosleep=yes + else +@@ -14717,10 +15981,11 @@ + rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi +-echo "$as_me:14720: result: $cf_cv_func_nanosleep" >&5 ++echo "$as_me:15984: result: $cf_cv_func_nanosleep" >&5 + echo "${ECHO_T}$cf_cv_func_nanosleep" >&6 + +-test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF ++test "$cf_cv_func_nanosleep" = "yes" && ++cat >>confdefs.h <<\EOF + #define HAVE_NANOSLEEP 1 + EOF + +@@ -14731,23 +15996,23 @@ + + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:14734: checking for $ac_header" >&5 ++echo "$as_me:15999: 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 14740 "configure" ++#line 16005 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:14744: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:16009: \"$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:14750: \$? = $ac_status" >&5 ++ echo "$as_me:16015: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -14766,7 +16031,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:14769: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:16034: 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:16049: 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 14790 "configure" ++#line 16055 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:14794: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:16059: \"$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:14800: \$? = $ac_status" >&5 ++ echo "$as_me:16065: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -14816,7 +16081,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:14819: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:16084: 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:16102: 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 14840 "configure" ++#line 16105 "configure" + #include "confdefs.h" + #include + int +@@ -14849,16 +16114,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14852: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:16117: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14855: \$? = $ac_status" >&5 ++ echo "$as_me:16120: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14858: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16123: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14861: \$? = $ac_status" >&5 ++ echo "$as_me:16126: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + termios_bad=no + else +@@ -14866,7 +16131,7 @@ + cat conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 14869 "configure" ++#line 16134 "configure" + #include "confdefs.h" + + #define _POSIX_SOURCE +@@ -14880,23 +16145,24 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14883: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:16148: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14886: \$? = $ac_status" >&5 ++ echo "$as_me:16151: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14889: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16154: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14892: \$? = $ac_status" >&5 ++ echo "$as_me:16157: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + termios_bad=unknown + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-termios_bad=yes cat >>confdefs.h <<\EOF +-#define SVR4_TERMIO 1 ++termios_bad=yes ++cat >>confdefs.h <<\EOF ++#define _POSIX_SOURCE 1 + EOF + + fi +@@ -14904,19 +16170,19 @@ + + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- echo "$as_me:14907: result: $termios_bad" >&5 ++ echo "$as_me:16173: result: $termios_bad" >&5 + echo "${ECHO_T}$termios_bad" >&6 + fi + fi + +-echo "$as_me:14912: checking for tcgetattr" >&5 ++echo "$as_me:16178: 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 14919 "configure" ++#line 16185 "configure" + #include "confdefs.h" + + #include +@@ -14944,16 +16210,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14947: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16213: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14950: \$? = $ac_status" >&5 ++ echo "$as_me:16216: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14953: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16219: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14956: \$? = $ac_status" >&5 ++ echo "$as_me:16222: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_have_tcgetattr=yes + else +@@ -14963,20 +16229,21 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:14966: result: $cf_cv_have_tcgetattr" >&5 ++echo "$as_me:16232: result: $cf_cv_have_tcgetattr" >&5 + echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6 +-test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_have_tcgetattr" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE_TCGETATTR 1 + EOF + +-echo "$as_me:14972: checking for vsscanf function or workaround" >&5 ++echo "$as_me:16239: 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 14979 "configure" ++#line 16246 "configure" + #include "confdefs.h" + + #include +@@ -14992,16 +16259,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14995: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16262: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14998: \$? = $ac_status" >&5 ++ echo "$as_me:16265: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15001: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16268: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15004: \$? = $ac_status" >&5 ++ echo "$as_me:16271: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_func_vsscanf=vsscanf + else +@@ -15009,7 +16276,7 @@ + cat conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 15012 "configure" ++#line 16279 "configure" + #include "confdefs.h" + + #include +@@ -15031,16 +16298,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15034: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16301: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15037: \$? = $ac_status" >&5 ++ echo "$as_me:16304: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15040: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16307: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15043: \$? = $ac_status" >&5 ++ echo "$as_me:16310: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_func_vsscanf=vfscanf + else +@@ -15048,7 +16315,7 @@ + cat conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 15051 "configure" ++#line 16318 "configure" + #include "confdefs.h" + + #include +@@ -15070,16 +16337,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15073: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16340: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15076: \$? = $ac_status" >&5 ++ echo "$as_me:16343: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15079: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16346: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15082: \$? = $ac_status" >&5 ++ echo "$as_me:16349: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_func_vsscanf=_doscan + else +@@ -15094,25 +16361,28 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:15097: result: $cf_cv_func_vsscanf" >&5 ++echo "$as_me:16364: result: $cf_cv_func_vsscanf" >&5 + echo "${ECHO_T}$cf_cv_func_vsscanf" >&6 + + case $cf_cv_func_vsscanf in #(vi +-vsscanf) cat >>confdefs.h <<\EOF ++vsscanf) ++cat >>confdefs.h <<\EOF + #define HAVE_VSSCANF 1 + EOF + ;; #(vi +-vfscanf) cat >>confdefs.h <<\EOF ++vfscanf) ++cat >>confdefs.h <<\EOF + #define HAVE_VFSCANF 1 + EOF + ;; #(vi +-_doscan) cat >>confdefs.h <<\EOF ++_doscan) ++cat >>confdefs.h <<\EOF + #define HAVE__DOSCAN 1 + EOF + ;; + esac + +-echo "$as_me:15115: checking for working mkstemp" >&5 ++echo "$as_me:16385: 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 +@@ -15120,68 +16390,10 @@ + + rm -rf conftest* + if test "$cross_compiling" = yes; then +- echo "$as_me:15123: 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 15129 "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char mkstemp (); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char mkstemp (); +-char (*f) (); +- +-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_mkstemp) || defined (__stub___mkstemp) +-choke me +-#else +-f = mkstemp; +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15160: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:15163: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15166: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:15169: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_func_mkstemp=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_func_mkstemp=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:15179: result: $ac_cv_func_mkstemp" >&5 +-echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 +- ++ cf_cv_func_mkstemp=maybe + else + cat >conftest.$ac_ext <<_ACEOF +-#line 15184 "configure" ++#line 16396 "configure" + #include "confdefs.h" + + #include +@@ -15219,15 +16431,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:15222: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16434: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15225: \$? = $ac_status" >&5 ++ echo "$as_me:16437: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:15227: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16439: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15230: \$? = $ac_status" >&5 ++ echo "$as_me:16442: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_func_mkstemp=yes + +@@ -15242,10 +16454,72 @@ + fi + + fi +-echo "$as_me:15245: result: $cf_cv_func_mkstemp" >&5 ++echo "$as_me:16457: result: $cf_cv_func_mkstemp" >&5 + echo "${ECHO_T}$cf_cv_func_mkstemp" >&6 ++if test "x$cf_cv_func_mkstemp" = xmaybe ; then ++ echo "$as_me:16460: 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 16466 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char mkstemp (); below. */ ++#include ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char mkstemp (); ++char (*f) (); ++ ++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_mkstemp) || defined (__stub___mkstemp) ++choke me ++#else ++f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:16497: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:16500: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:16503: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:16506: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_mkstemp=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_func_mkstemp=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:16516: result: $ac_cv_func_mkstemp" >&5 ++echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 ++ ++fi + if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_MKSTEMP 1 + EOF + +@@ -15259,22 +16533,22 @@ + HAVE_VSSCANF=0 + fi + +-if test "$cross_compiling" = yes ; then +- { echo "$as_me:15263: WARNING: cross compiling: assume setvbuf params not reversed" >&5 ++if test "x$cross_compiling" = xyes ; then ++ { echo "$as_me:16537: 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:15266: checking whether setvbuf arguments are reversed" >&5 ++ echo "$as_me:16540: 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:15272: error: cannot run test program while cross compiling" >&5 ++ { { echo "$as_me:16546: 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 15277 "configure" ++#line 16551 "configure" + #include "confdefs.h" + #include + /* If setvbuf has the reversed format, exit 0. */ +@@ -15291,15 +16565,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:15294: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16568: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15297: \$? = $ac_status" >&5 ++ echo "$as_me:16571: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:15299: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16573: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15302: \$? = $ac_status" >&5 ++ echo "$as_me:16576: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_setvbuf_reversed=yes + else +@@ -15312,7 +16586,7 @@ + fi + rm -f core core.* *.core + fi +-echo "$as_me:15315: result: $ac_cv_func_setvbuf_reversed" >&5 ++echo "$as_me:16589: 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 + +@@ -15323,68 +16597,66 @@ + fi + + fi +-echo "$as_me:15326: 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 "$as_me:16600: checking for intptr_t" >&5 ++echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6 ++if test "${ac_cv_type_intptr_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 15332 "configure" ++#line 16606 "configure" + #include "confdefs.h" +-#include +-#include +-#ifdef signal +-# undef signal +-#endif +-#ifdef __cplusplus +-extern "C" void (*signal (int, void (*)(int)))(int); +-#else +-void (*signal ()) (); +-#endif +- ++$ac_includes_default + int + main () + { +-int i; ++if ((intptr_t *) 0) ++ return 0; ++if (sizeof (intptr_t)) ++ return 0; + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:15354: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:16621: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:15357: \$? = $ac_status" >&5 ++ echo "$as_me:16624: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:15360: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16627: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15363: \$? = $ac_status" >&5 ++ echo "$as_me:16630: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_type_signal=void ++ ac_cv_type_intptr_t=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_type_signal=int ++ac_cv_type_intptr_t=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:15373: result: $ac_cv_type_signal" >&5 +-echo "${ECHO_T}$ac_cv_type_signal" >&6 ++echo "$as_me:16640: result: $ac_cv_type_intptr_t" >&5 ++echo "${ECHO_T}$ac_cv_type_intptr_t" >&6 ++if test $ac_cv_type_intptr_t = yes; then ++ : ++else + + cat >>confdefs.h <&5 ++fi ++ ++echo "$as_me:16652: 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 15387 "configure" ++#line 16659 "configure" + #include "confdefs.h" + + #include +@@ -15397,16 +16669,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:15400: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:16672: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:15403: \$? = $ac_status" >&5 ++ echo "$as_me:16675: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:15406: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16678: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15409: \$? = $ac_status" >&5 ++ echo "$as_me:16681: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_type_sigaction=yes + else +@@ -15417,13 +16689,14 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + fi + +-echo "$as_me:15420: result: $cf_cv_type_sigaction" >&5 ++echo "$as_me:16692: result: $cf_cv_type_sigaction" >&5 + echo "${ECHO_T}$cf_cv_type_sigaction" >&6 +-test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_type_sigaction" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE_TYPE_SIGACTION 1 + EOF + +-echo "$as_me:15426: checking declaration of size-change" >&5 ++echo "$as_me:16699: 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 +@@ -15438,7 +16711,7 @@ + CPPFLAGS="$cf_save_CPPFLAGS" + test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts" + cat >conftest.$ac_ext <<_ACEOF +-#line 15441 "configure" ++#line 16714 "configure" + #include "confdefs.h" + #include + #ifdef HAVE_TERMIOS_H +@@ -15482,16 +16755,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:15485: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:16758: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:15488: \$? = $ac_status" >&5 ++ echo "$as_me:16761: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:15491: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16764: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15494: \$? = $ac_status" >&5 ++ echo "$as_me:16767: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_sizechange=yes + else +@@ -15510,10 +16783,11 @@ + done + + fi +-echo "$as_me:15513: result: $cf_cv_sizechange" >&5 ++echo "$as_me:16786: result: $cf_cv_sizechange" >&5 + echo "${ECHO_T}$cf_cv_sizechange" >&6 + if test "$cf_cv_sizechange" != no ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_SIZECHANGE 1 + EOF + +@@ -15527,13 +16801,13 @@ + esac + fi + +-echo "$as_me:15530: checking for memmove" >&5 ++echo "$as_me:16804: 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 15536 "configure" ++#line 16810 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char memmove (); below. */ +@@ -15556,7 +16830,7 @@ + #if defined (__stub_memmove) || defined (__stub___memmove) + choke me + #else +-f = memmove; ++f = memmove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -15564,16 +16838,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15567: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16841: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15570: \$? = $ac_status" >&5 ++ echo "$as_me:16844: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15573: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16847: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15576: \$? = $ac_status" >&5 ++ echo "$as_me:16850: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_memmove=yes + else +@@ -15583,19 +16857,19 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:15586: result: $ac_cv_func_memmove" >&5 ++echo "$as_me:16860: 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:15592: checking for bcopy" >&5 ++echo "$as_me:16866: 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 15598 "configure" ++#line 16872 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char bcopy (); below. */ +@@ -15618,7 +16892,7 @@ + #if defined (__stub_bcopy) || defined (__stub___bcopy) + choke me + #else +-f = bcopy; ++f = bcopy; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -15626,16 +16900,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15629: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16903: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15632: \$? = $ac_status" >&5 ++ echo "$as_me:16906: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15635: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16909: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15638: \$? = $ac_status" >&5 ++ echo "$as_me:16912: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_bcopy=yes + else +@@ -15645,11 +16919,11 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:15648: result: $ac_cv_func_bcopy" >&5 ++echo "$as_me:16922: 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:15652: checking if bcopy does overlapping moves" >&5 ++ echo "$as_me:16926: 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 +@@ -15659,7 +16933,7 @@ + cf_cv_good_bcopy=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 15662 "configure" ++#line 16936 "configure" + #include "confdefs.h" + + int main() { +@@ -15673,15 +16947,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:15676: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:16950: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15679: \$? = $ac_status" >&5 ++ echo "$as_me:16953: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:15681: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:16955: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15684: \$? = $ac_status" >&5 ++ echo "$as_me:16958: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_good_bcopy=yes + else +@@ -15694,7 +16968,7 @@ + fi + + fi +-echo "$as_me:15697: result: $cf_cv_good_bcopy" >&5 ++echo "$as_me:16971: result: $cf_cv_good_bcopy" >&5 + echo "${ECHO_T}$cf_cv_good_bcopy" >&6 + + else +@@ -15702,12 +16976,14 @@ + fi + + if test "$cf_cv_good_bcopy" = yes ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_OK_BCOPY 1 + EOF + + else +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_MY_MEMMOVE 1 + EOF + +@@ -15715,7 +16991,7 @@ + + fi + +-echo "$as_me:15718: checking if poll really works" >&5 ++echo "$as_me:16994: 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 +@@ -15725,10 +17001,13 @@ + cf_cv_working_poll=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 15728 "configure" ++#line 17004 "configure" + #include "confdefs.h" + ++#include + #include ++#include ++#include + #ifdef HAVE_POLL_H + #include + #else +@@ -15738,23 +17017,46 @@ + struct pollfd myfds; + int ret; + +- myfds.fd = 0; ++ /* check for Darwin bug with respect to "devices" */ ++ myfds.fd = open("/dev/null", 1); /* O_WRONLY */ ++ if (myfds.fd < 0) ++ myfds.fd = 0; + myfds.events = POLLIN; ++ myfds.revents = 0; + + ret = poll(&myfds, 1, 100); +- ${cf_cv_main_return:-return}(ret != 0); ++ ++ if (ret < 0 || (myfds.revents & POLLNVAL)) { ++ ret = -1; ++ } else { ++ int fd = 0; ++ if (!isatty(fd)) { ++ fd = open("/dev/tty", 2); /* O_RDWR */ ++ } ++ ++ if (fd >= 0) { ++ /* also check with standard input */ ++ myfds.fd = fd; ++ myfds.events = POLLIN; ++ myfds.revents = 0; ++ ret = poll(&myfds, 1, 100); ++ } else { ++ ret = -1; ++ } ++ } ++ ${cf_cv_main_return:-return}(ret < 0); + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:15749: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17051: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15752: \$? = $ac_status" >&5 ++ echo "$as_me:17054: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:15754: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17056: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15757: \$? = $ac_status" >&5 ++ echo "$as_me:17059: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_working_poll=yes + else +@@ -15766,20 +17068,21 @@ + rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi +-echo "$as_me:15769: result: $cf_cv_working_poll" >&5 ++echo "$as_me:17071: result: $cf_cv_working_poll" >&5 + echo "${ECHO_T}$cf_cv_working_poll" >&6 +-test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF ++test "$cf_cv_working_poll" = "yes" && ++cat >>confdefs.h <<\EOF + #define HAVE_WORKING_POLL 1 + EOF + +-echo "$as_me:15775: checking for va_copy" >&5 ++echo "$as_me:17078: checking for va_copy" >&5 + echo $ECHO_N "checking for va_copy... $ECHO_C" >&6 + if test "${cf_cv_have_va_copy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 15782 "configure" ++#line 17085 "configure" + #include "confdefs.h" + + #include +@@ -15796,16 +17099,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15799: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17102: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15802: \$? = $ac_status" >&5 ++ echo "$as_me:17105: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15805: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17108: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15808: \$? = $ac_status" >&5 ++ echo "$as_me:17111: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_have_va_copy=yes + else +@@ -15815,21 +17118,22 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:15818: result: $cf_cv_have_va_copy" >&5 ++echo "$as_me:17121: result: $cf_cv_have_va_copy" >&5 + echo "${ECHO_T}$cf_cv_have_va_copy" >&6 + +-test "$cf_cv_have_va_copy" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_have_va_copy" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE_VA_COPY 1 + EOF + +-echo "$as_me:15825: checking for __va_copy" >&5 ++echo "$as_me:17129: checking for __va_copy" >&5 + echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6 + if test "${cf_cv_have___va_copy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 15832 "configure" ++#line 17136 "configure" + #include "confdefs.h" + + #include +@@ -15846,16 +17150,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15849: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17153: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15852: \$? = $ac_status" >&5 ++ echo "$as_me:17156: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15855: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17159: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15858: \$? = $ac_status" >&5 ++ echo "$as_me:17162: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_have___va_copy=yes + else +@@ -15865,20 +17169,21 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:15868: result: $cf_cv_have___va_copy" >&5 ++echo "$as_me:17172: result: $cf_cv_have___va_copy" >&5 + echo "${ECHO_T}$cf_cv_have___va_copy" >&6 + +-test "$cf_cv_have___va_copy" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_have___va_copy" = yes && ++cat >>confdefs.h <<\EOF + #define HAVE___VA_COPY 1 + EOF + +-echo "$as_me:15875: checking for pid_t" >&5 ++echo "$as_me:17180: checking for pid_t" >&5 + echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 + if test "${ac_cv_type_pid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line 15881 "configure" ++#line 17186 "configure" + #include "confdefs.h" + $ac_includes_default + int +@@ -15893,16 +17198,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:15896: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:17201: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:15899: \$? = $ac_status" >&5 ++ echo "$as_me:17204: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:15902: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17207: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15905: \$? = $ac_status" >&5 ++ echo "$as_me:17210: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_pid_t=yes + else +@@ -15912,7 +17217,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:15915: result: $ac_cv_type_pid_t" >&5 ++echo "$as_me:17220: result: $ac_cv_type_pid_t" >&5 + echo "${ECHO_T}$ac_cv_type_pid_t" >&6 + if test $ac_cv_type_pid_t = yes; then + : +@@ -15927,23 +17232,23 @@ + for ac_header in unistd.h vfork.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:15930: checking for $ac_header" >&5 ++echo "$as_me:17235: 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 15936 "configure" ++#line 17241 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:15940: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:17245: \"$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:15946: \$? = $ac_status" >&5 ++ echo "$as_me:17251: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -15962,7 +17267,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:15965: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:17270: 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:17283: 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 15984 "configure" ++#line 17289 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +@@ -16004,7 +17309,7 @@ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else +-f = $ac_func; ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; + #endif + + ; +@@ -16012,16 +17317,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:16015: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17320: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16018: \$? = $ac_status" >&5 ++ echo "$as_me:17323: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:16021: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17326: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16024: \$? = $ac_status" >&5 ++ echo "$as_me:17329: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" + else +@@ -16031,7 +17336,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:16034: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "$as_me:17339: 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:17351: checking for working fork" >&5 + echo $ECHO_N "checking for working fork... $ECHO_C" >&6 + if test "${ac_cv_func_fork_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -16066,15 +17371,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:16069: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17374: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16072: \$? = $ac_status" >&5 ++ echo "$as_me:17377: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:16074: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17379: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16077: \$? = $ac_status" >&5 ++ echo "$as_me:17382: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_fork_works=yes + else +@@ -16086,7 +17391,7 @@ + rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi +-echo "$as_me:16089: result: $ac_cv_func_fork_works" >&5 ++echo "$as_me:17394: result: $ac_cv_func_fork_works" >&5 + echo "${ECHO_T}$ac_cv_func_fork_works" >&6 + + fi +@@ -16100,12 +17405,12 @@ + ac_cv_func_fork_works=yes + ;; + esac +- { echo "$as_me:16103: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5 ++ { echo "$as_me:17408: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5 + echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;} + fi + ac_cv_func_vfork_works=$ac_cv_func_vfork + if test "x$ac_cv_func_vfork" = xyes; then +- echo "$as_me:16108: checking for working vfork" >&5 ++ echo "$as_me:17413: checking for working vfork" >&5 + echo $ECHO_N "checking for working vfork... $ECHO_C" >&6 + if test "${ac_cv_func_vfork_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -16114,7 +17419,7 @@ + ac_cv_func_vfork_works=cross + else + cat >conftest.$ac_ext <<_ACEOF +-#line 16117 "configure" ++#line 17422 "configure" + #include "confdefs.h" + /* Thanks to Paul Eggert for this test. */ + #include +@@ -16211,15 +17516,15 @@ + } + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:16214: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17519: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16217: \$? = $ac_status" >&5 ++ echo "$as_me:17522: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:16219: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17524: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16222: \$? = $ac_status" >&5 ++ echo "$as_me:17527: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_vfork_works=yes + else +@@ -16231,13 +17536,13 @@ + rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi +-echo "$as_me:16234: result: $ac_cv_func_vfork_works" >&5 ++echo "$as_me:17539: result: $ac_cv_func_vfork_works" >&5 + echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 + + fi; + if test "x$ac_cv_func_fork_works" = xcross; then + ac_cv_func_vfork_works=ac_cv_func_vfork +- { echo "$as_me:16240: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5 ++ { echo "$as_me:17545: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5 + echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;} + fi + +@@ -16264,7 +17569,7 @@ + + # special check for test/ditto.c + +-echo "$as_me:16267: checking for openpty in -lutil" >&5 ++echo "$as_me:17572: 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 +@@ -16272,7 +17577,7 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lutil $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 16275 "configure" ++#line 17580 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -16291,16 +17596,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:16294: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17599: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16297: \$? = $ac_status" >&5 ++ echo "$as_me:17602: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:16300: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17605: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16303: \$? = $ac_status" >&5 ++ echo "$as_me:17608: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_util_openpty=yes + else +@@ -16311,7 +17616,7 @@ + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:16314: result: $ac_cv_lib_util_openpty" >&5 ++echo "$as_me:17619: 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 +@@ -16319,7 +17624,7 @@ + cf_cv_lib_util=no + fi + +-echo "$as_me:16322: checking for openpty header" >&5 ++echo "$as_me:17627: 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 +@@ -16330,7 +17635,7 @@ + for cf_header in pty.h libutil.h util.h + do + cat >conftest.$ac_ext <<_ACEOF +-#line 16333 "configure" ++#line 17638 "configure" + #include "confdefs.h" + + #include <$cf_header> +@@ -16347,16 +17652,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:16350: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:17655: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16353: \$? = $ac_status" >&5 ++ echo "$as_me:17658: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:16356: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17661: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16359: \$? = $ac_status" >&5 ++ echo "$as_me:17664: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_func_openpty=$cf_header +@@ -16374,25 +17679,27 @@ + LIBS="$cf_save_LIBS" + + fi +-echo "$as_me:16377: result: $cf_cv_func_openpty" >&5 ++echo "$as_me:17682: result: $cf_cv_func_openpty" >&5 + echo "${ECHO_T}$cf_cv_func_openpty" >&6 + + if test "$cf_cv_func_openpty" != no ; then +- cat >>confdefs.h <>confdefs.h < + EOF + +- cat >>confdefs.h <<\EOF ++cat >>confdefs.h <<\EOF + #define USE_XTERM_PTY 1 + EOF + +- if test "$cf_cv_lib_util" = yes ; then ++ if test "x$cf_cv_lib_util" = xyes ; then + TEST_LIBS="-lutil $TEST_LIBS" + fi + fi + + if test "$with_hashed_db" != no ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define USE_HASHED_DB 1 + EOF + +@@ -16426,7 +17733,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 16429 "configure" ++#line 17736 "configure" + #include "confdefs.h" + #include + int +@@ -16438,16 +17745,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:16441: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:17748: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:16444: \$? = $ac_status" >&5 ++ echo "$as_me:17751: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:16447: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17754: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16450: \$? = $ac_status" >&5 ++ echo "$as_me:17757: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -16464,7 +17771,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:16467: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:17774: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -16498,7 +17805,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}:16501: testing adding $cf_add_libdir to library-path ..." 1>&5 ++echo "${as_me:-configure}:17808: testing adding $cf_add_libdir to library-path ..." 1>&5 + + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi +@@ -16509,23 +17816,23 @@ + fi + esac + +-echo "$as_me:16512: checking for db.h" >&5 ++echo "$as_me:17819: 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 16518 "configure" ++#line 17825 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:16522: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:17829: \"$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:16528: \$? = $ac_status" >&5 ++ echo "$as_me:17835: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -16544,11 +17851,11 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:16547: result: $ac_cv_header_db_h" >&5 ++echo "$as_me:17854: 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:16551: checking for version of db" >&5 ++echo "$as_me:17858: 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 +@@ -16559,10 +17866,10 @@ + for cf_db_version in 1 2 3 4 5 + do + +-echo "${as_me:-configure}:16562: testing checking for db version $cf_db_version ..." 1>&5 ++echo "${as_me:-configure}:17869: testing checking for db version $cf_db_version ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 16565 "configure" ++#line 17872 "configure" + #include "confdefs.h" + + $ac_includes_default +@@ -16592,16 +17899,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:16595: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:17902: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:16598: \$? = $ac_status" >&5 ++ echo "$as_me:17905: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:16601: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:17908: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16604: \$? = $ac_status" >&5 ++ echo "$as_me:17911: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cf_cv_hashed_db_version=$cf_db_version +@@ -16615,16 +17922,16 @@ + done + + fi +-echo "$as_me:16618: result: $cf_cv_hashed_db_version" >&5 ++echo "$as_me:17925: 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:16622: error: Cannot determine version of db" >&5 ++ { { echo "$as_me:17929: 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:16627: checking for db libraries" >&5 ++echo "$as_me:17934: 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 +@@ -16638,10 +17945,10 @@ + LIBS="-l$cf_db_libs $LIBS" + fi + +-echo "${as_me:-configure}:16641: testing checking for library "$cf_db_libs" ..." 1>&5 ++echo "${as_me:-configure}:17948: testing checking for library "$cf_db_libs" ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 16644 "configure" ++#line 17951 "configure" + #include "confdefs.h" + + $ac_includes_default +@@ -16696,16 +18003,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:16699: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:18006: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16702: \$? = $ac_status" >&5 ++ echo "$as_me:18009: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:16705: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18012: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16708: \$? = $ac_status" >&5 ++ echo "$as_me:18015: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + if test -n "$cf_db_libs" ; then +@@ -16725,11 +18032,11 @@ + done + + fi +-echo "$as_me:16728: result: $cf_cv_hashed_db_libs" >&5 ++echo "$as_me:18035: 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:16732: error: Cannot determine library for db" >&5 ++ { { echo "$as_me:18039: 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 +@@ -16739,7 +18046,7 @@ + + else + +- { { echo "$as_me:16742: error: Cannot find db.h" >&5 ++ { { echo "$as_me:18049: error: Cannot find db.h" >&5 + echo "$as_me: error: Cannot find db.h" >&2;} + { (exit 1); exit 1; }; } + +@@ -16754,7 +18061,7 @@ + + # Just in case, check if the C compiler has a bool type. + +-echo "$as_me:16757: checking if we should include stdbool.h" >&5 ++echo "$as_me:18064: 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 +@@ -16762,7 +18069,7 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 16765 "configure" ++#line 18072 "configure" + #include "confdefs.h" + + int +@@ -16774,23 +18081,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:16777: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18084: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:16780: \$? = $ac_status" >&5 ++ echo "$as_me:18087: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:16783: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18090: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16786: \$? = $ac_status" >&5 ++ echo "$as_me:18093: \$? = $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 16793 "configure" ++#line 18100 "configure" + #include "confdefs.h" + + #ifndef __BEOS__ +@@ -16806,16 +18113,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:16809: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18116: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:16812: \$? = $ac_status" >&5 ++ echo "$as_me:18119: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:16815: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18122: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16818: \$? = $ac_status" >&5 ++ echo "$as_me:18125: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_header_stdbool_h=1 + else +@@ -16829,13 +18136,13 @@ + fi + + if test "$cf_cv_header_stdbool_h" = 1 +-then echo "$as_me:16832: result: yes" >&5 ++then echo "$as_me:18139: result: yes" >&5 + echo "${ECHO_T}yes" >&6 +-else echo "$as_me:16834: result: no" >&5 ++else echo "$as_me:18141: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +-echo "$as_me:16838: checking for builtin bool type" >&5 ++echo "$as_me:18145: 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 +@@ -16843,7 +18150,7 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 16846 "configure" ++#line 18153 "configure" + #include "confdefs.h" + + #include +@@ -16858,16 +18165,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:16861: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18168: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:16864: \$? = $ac_status" >&5 ++ echo "$as_me:18171: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:16867: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18174: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16870: \$? = $ac_status" >&5 ++ echo "$as_me:18177: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_cc_bool_type=1 + else +@@ -16880,9 +18187,9 @@ + fi + + if test "$cf_cv_cc_bool_type" = 1 +-then echo "$as_me:16883: result: yes" >&5 ++then echo "$as_me:18190: result: yes" >&5 + echo "${ECHO_T}yes" >&6 +-else echo "$as_me:16885: result: no" >&5 ++else echo "$as_me:18192: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -16904,7 +18211,7 @@ + cf_stdcpp_libname=stdc++ + ;; + esac +-echo "$as_me:16907: checking for library $cf_stdcpp_libname" >&5 ++echo "$as_me:18214: 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 +@@ -16913,7 +18220,7 @@ + cf_save="$LIBS" + LIBS="-l$cf_stdcpp_libname $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 16916 "configure" ++#line 18223 "configure" + #include "confdefs.h" + + #include +@@ -16929,16 +18236,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:16932: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:18239: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:16935: \$? = $ac_status" >&5 ++ echo "$as_me:18242: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:16938: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18245: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16941: \$? = $ac_status" >&5 ++ echo "$as_me:18248: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_libstdcpp=yes + else +@@ -16950,12 +18257,12 @@ + LIBS="$cf_save" + + fi +-echo "$as_me:16953: result: $cf_cv_libstdcpp" >&5 ++echo "$as_me:18260: result: $cf_cv_libstdcpp" >&5 + echo "${ECHO_T}$cf_cv_libstdcpp" >&6 + test "$cf_cv_libstdcpp" = yes && CXXLIBS="-l$cf_stdcpp_libname $CXXLIBS" + fi + +- echo "$as_me:16958: checking whether $CXX understands -c and -o together" >&5 ++ echo "$as_me:18265: 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 +@@ -16971,15 +18278,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:16974: \"$ac_try\"") >&5 ++if { (eval echo "$as_me:18281: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16977: \$? = $ac_status" >&5 ++ echo "$as_me:18284: \$? = $ac_status" >&5 + (exit $ac_status); } && +- test -f conftest2.$ac_objext && { (eval echo "$as_me:16979: \"$ac_try\"") >&5 ++ test -f conftest2.$ac_objext && { (eval echo "$as_me:18286: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:16982: \$? = $ac_status" >&5 ++ echo "$as_me:18289: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + eval cf_cv_prog_CXX_c_o=yes +@@ -16990,10 +18297,10 @@ + + fi + if test $cf_cv_prog_CXX_c_o = yes; then +- echo "$as_me:16993: result: yes" >&5 ++ echo "$as_me:18300: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + else +- echo "$as_me:16996: result: no" >&5 ++ echo "$as_me:18303: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -17013,12 +18320,12 @@ + ;; + esac + if test "$GXX" = yes; then +- echo "$as_me:17016: checking for lib$cf_gpp_libname" >&5 ++ echo "$as_me:18323: checking for lib$cf_gpp_libname" >&5 + echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6 + cf_save="$LIBS" + LIBS="-l$cf_gpp_libname $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 17021 "configure" ++#line 18328 "configure" + #include "confdefs.h" + + #include <$cf_gpp_libname/builtin.h> +@@ -17032,26 +18339,28 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:17035: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:18342: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:17038: \$? = $ac_status" >&5 ++ echo "$as_me:18345: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:17041: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18348: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17044: \$? = $ac_status" >&5 ++ echo "$as_me:18351: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cxx_library=yes + CXXLIBS="-l$cf_gpp_libname $CXXLIBS" + if test "$cf_gpp_libname" = cpp ; then +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_GPP_BUILTIN_H 1 + EOF + + else +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_GXX_BUILTIN_H 1 + EOF + +@@ -17060,7 +18369,7 @@ + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + cat >conftest.$ac_ext <<_ACEOF +-#line 17063 "configure" ++#line 18372 "configure" + #include "confdefs.h" + + #include +@@ -17074,20 +18383,21 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:17077: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:18386: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:17080: \$? = $ac_status" >&5 ++ echo "$as_me:18389: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:17083: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18392: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17086: \$? = $ac_status" >&5 ++ echo "$as_me:18395: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cxx_library=yes + CXXLIBS="-l$cf_gpp_libname $CXXLIBS" +- cat >>confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\EOF + #define HAVE_BUILTIN_H 1 + EOF + +@@ -17100,7 +18410,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS="$cf_save" +- echo "$as_me:17103: result: $cf_cxx_library" >&5 ++ echo "$as_me:18413: result: $cf_cxx_library" >&5 + echo "${ECHO_T}$cf_cxx_library" >&6 + fi + +@@ -17116,7 +18426,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:17119: checking how to run the C++ preprocessor" >&5 ++echo "$as_me:18429: 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 +@@ -17133,18 +18443,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 17136 "configure" ++#line 18446 "configure" + #include "confdefs.h" + #include + Syntax error + _ACEOF +-if { (eval echo "$as_me:17141: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:18451: \"$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:17147: \$? = $ac_status" >&5 ++ echo "$as_me:18457: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag +@@ -17167,17 +18477,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 17170 "configure" ++#line 18480 "configure" + #include "confdefs.h" + #include + _ACEOF +-if { (eval echo "$as_me:17174: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:18484: \"$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:17180: \$? = $ac_status" >&5 ++ echo "$as_me:18490: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag +@@ -17214,7 +18524,7 @@ + else + ac_cv_prog_CXXCPP=$CXXCPP + fi +-echo "$as_me:17217: result: $CXXCPP" >&5 ++echo "$as_me:18527: result: $CXXCPP" >&5 + echo "${ECHO_T}$CXXCPP" >&6 + ac_preproc_ok=false + for ac_cxx_preproc_warn_flag in '' yes +@@ -17224,18 +18534,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 17227 "configure" ++#line 18537 "configure" + #include "confdefs.h" + #include + Syntax error + _ACEOF +-if { (eval echo "$as_me:17232: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:18542: \"$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:17238: \$? = $ac_status" >&5 ++ echo "$as_me:18548: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag +@@ -17258,17 +18568,76 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 17261 "configure" ++#line 18571 "configure" ++#include "confdefs.h" ++#include ++_ACEOF ++if { (eval echo "$as_me:18575: \"$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:18581: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_cxx_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ # Broken: success on invalid input. ++continue ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then ++ : ++else ++ { { echo "$as_me:18609: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 ++echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ac_ext=cc ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++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 ++ ++for ac_header in typeinfo ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:18624: 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 18630 "configure" + #include "confdefs.h" +-#include ++#include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:17265: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:18634: \"$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:17271: \$? = $ac_status" >&5 ++ echo "$as_me:18640: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag +@@ -17279,55 +18648,44 @@ + ac_cpp_err=yes + fi + if test -z "$ac_cpp_err"; then +- # Broken: success on invalid input. +-continue ++ eval "$as_ac_Header=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +- # Passes both tests. +-ac_preproc_ok=: +-break ++ eval "$as_ac_Header=no" + fi + rm -f conftest.err conftest.$ac_ext +- +-done +-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +-rm -f conftest.err conftest.$ac_ext +-if $ac_preproc_ok; then +- : +-else +- { { echo "$as_me:17299: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 +-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;} +- { (exit 1); exit 1; }; } + fi ++echo "$as_me:18659: 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:18672: 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 17320 "configure" ++#line 18678 "configure" + #include "confdefs.h" + #include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:17324: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:18682: \"$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:17330: \$? = $ac_status" >&5 ++ echo "$as_me:18688: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag +@@ -17346,7 +18704,7 @@ + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:17349: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "$as_me:18707: 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 ++if test x"$ac_cv_header_iostream" = xyes ; then ++ echo "$as_me:18718: 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 17363 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 18721 "configure" + #include "confdefs.h" + + #include +@@ -17377,16 +18735,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:17380: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18738: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:17383: \$? = $ac_status" >&5 ++ echo "$as_me:18741: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:17386: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18744: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17389: \$? = $ac_status" >&5 ++ echo "$as_me:18747: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_iostream_namespace=yes + else +@@ -17395,17 +18753,18 @@ + cf_iostream_namespace=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- echo "$as_me:17398: result: $cf_iostream_namespace" >&5 ++ echo "$as_me:18756: result: $cf_iostream_namespace" >&5 + echo "${ECHO_T}$cf_iostream_namespace" >&6 +- if test "$cf_iostream_namespace" = yes ; then +- cat >>confdefs.h <<\EOF ++ if test "$cf_iostream_namespace" = yes ; then ++ ++cat >>confdefs.h <<\EOF + #define IOSTREAM_NAMESPACE 1 + EOF + +- fi +- fi ++ fi ++fi + +-echo "$as_me:17408: checking if we should include stdbool.h" >&5 ++echo "$as_me:18767: 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 +@@ -17413,7 +18772,7 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 17416 "configure" ++#line 18775 "configure" + #include "confdefs.h" + + int +@@ -17425,23 +18784,23 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:17428: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18787: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:17431: \$? = $ac_status" >&5 ++ echo "$as_me:18790: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:17434: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18793: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17437: \$? = $ac_status" >&5 ++ echo "$as_me:18796: \$? = $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 17444 "configure" ++#line 18803 "configure" + #include "confdefs.h" + + #ifndef __BEOS__ +@@ -17457,16 +18816,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:17460: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18819: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:17463: \$? = $ac_status" >&5 ++ echo "$as_me:18822: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:17466: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18825: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17469: \$? = $ac_status" >&5 ++ echo "$as_me:18828: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_header_stdbool_h=1 + else +@@ -17480,13 +18839,13 @@ + fi + + if test "$cf_cv_header_stdbool_h" = 1 +-then echo "$as_me:17483: result: yes" >&5 ++then echo "$as_me:18842: result: yes" >&5 + echo "${ECHO_T}yes" >&6 +-else echo "$as_me:17485: result: no" >&5 ++else echo "$as_me:18844: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +-echo "$as_me:17489: checking for builtin bool type" >&5 ++echo "$as_me:18848: 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 +@@ -17494,7 +18853,7 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line 17497 "configure" ++#line 18856 "configure" + #include "confdefs.h" + + #include +@@ -17509,16 +18868,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:17512: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:18871: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:17515: \$? = $ac_status" >&5 ++ echo "$as_me:18874: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:17518: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18877: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17521: \$? = $ac_status" >&5 ++ echo "$as_me:18880: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_builtin_bool=1 + else +@@ -17531,13 +18890,13 @@ + fi + + if test "$cf_cv_builtin_bool" = 1 +-then echo "$as_me:17534: result: yes" >&5 ++then echo "$as_me:18893: result: yes" >&5 + echo "${ECHO_T}yes" >&6 +-else echo "$as_me:17536: result: no" >&5 ++else echo "$as_me:18895: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +-echo "$as_me:17540: checking for size of bool" >&5 ++echo "$as_me:18899: 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 +@@ -17548,7 +18907,7 @@ + cf_cv_type_of_bool=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 17551 "configure" ++#line 18910 "configure" + #include "confdefs.h" + + #include +@@ -17572,7 +18931,7 @@ + + #endif + +-main() ++int main() + { + FILE *fp = fopen("cf_test.out", "w"); + if (fp != 0) { +@@ -17590,15 +18949,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:17593: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:18952: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:17596: \$? = $ac_status" >&5 ++ echo "$as_me:18955: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:17598: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:18957: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17601: \$? = $ac_status" >&5 ++ echo "$as_me:18960: \$? = $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 +@@ -17616,30 +18975,36 @@ + fi + + rm -f cf_test.out +-echo "$as_me:17619: result: $cf_cv_type_of_bool" >&5 ++echo "$as_me:18978: 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:17625: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 ++ { echo "$as_me:18984: 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:17630: checking for special defines needed for etip.h" >&5 ++echo "$as_me:18989: 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" ++ ++# etip.h includes ncurses.h which includes ncurses_dll.h ++# But ncurses_dll.h is generated - fix here. ++test -d include || mkdir include ++test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h ++ + for cf_math in "" MATH_H + do + for cf_excp in "" MATH_EXCEPTION + do +- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include" ++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include" + 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 17642 "configure" ++#line 19007 "configure" + #include "confdefs.h" + + #include +@@ -17653,16 +19018,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:17656: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:19021: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:17659: \$? = $ac_status" >&5 ++ echo "$as_me:19024: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:17662: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:19027: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17665: \$? = $ac_status" >&5 ++ echo "$as_me:19030: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + test -n "$cf_math" && cat >>confdefs.h <&5 +@@ -17683,12 +19048,12 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + done + done +-echo "$as_me:17686: result: $cf_result" >&5 ++echo "$as_me:19051: result: $cf_result" >&5 + echo "${ECHO_T}$cf_result" >&6 + CXXFLAGS="$cf_save_CXXFLAGS" + + if test -n "$CXX"; then +-echo "$as_me:17691: checking if $CXX accepts parameter initialization" >&5 ++echo "$as_me:19056: 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 +@@ -17705,7 +19070,7 @@ + cf_cv_cpp_param_init=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 17708 "configure" ++#line 19073 "configure" + #include "confdefs.h" + + class TEST { +@@ -17720,19 +19085,19 @@ + { + value = x; + } +-void main() { } ++int main() { } + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:17727: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:19092: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:17730: \$? = $ac_status" >&5 ++ echo "$as_me:19095: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:17732: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:19097: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17735: \$? = $ac_status" >&5 ++ echo "$as_me:19100: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_cpp_param_init=yes + else +@@ -17751,16 +19116,17 @@ + ac_main_return=return + + fi +-echo "$as_me:17754: result: $cf_cv_cpp_param_init" >&5 ++echo "$as_me:19119: 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 ++test "$cf_cv_cpp_param_init" = yes && ++cat >>confdefs.h <<\EOF + #define CPP_HAS_PARAM_INIT 1 + EOF + + if test -n "$CXX"; then + +-echo "$as_me:17763: checking if $CXX accepts static_cast" >&5 ++echo "$as_me:19129: 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 +@@ -17774,7 +19140,7 @@ + ac_main_return=return + + cat >conftest.$ac_ext <<_ACEOF +-#line 17777 "configure" ++#line 19143 "configure" + #include "confdefs.h" + + class NCursesPanel +@@ -17786,7 +19152,7 @@ + int begin_x = 0) + { + } +- ++ NCursesPanel(); + ~NCursesPanel(); + }; + +@@ -17818,16 +19184,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:17821: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:19187: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:17824: \$? = $ac_status" >&5 ++ echo "$as_me:19190: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:17827: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:19193: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17830: \$? = $ac_status" >&5 ++ echo "$as_me:19196: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_cpp_static_cast=yes + else +@@ -17845,12 +19211,13 @@ + ac_main_return=return + + fi +-echo "$as_me:17848: result: $cf_cv_cpp_static_cast" >&5 ++echo "$as_me:19214: result: $cf_cv_cpp_static_cast" >&5 + echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6 + + fi + +-test "$cf_cv_cpp_static_cast" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_cpp_static_cast" = yes && ++cat >>confdefs.h <<\EOF + #define CPP_HAS_STATIC_CAST 1 + EOF + +@@ -17893,7 +19260,7 @@ + else + if test "$cf_cv_header_stdbool_h" = 1 ; then + +-echo "$as_me:17896: checking for size of bool" >&5 ++echo "$as_me:19263: 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 +@@ -17904,7 +19271,7 @@ + cf_cv_type_of_bool=unknown + else + cat >conftest.$ac_ext <<_ACEOF +-#line 17907 "configure" ++#line 19274 "configure" + #include "confdefs.h" + + #include +@@ -17928,7 +19295,7 @@ + + #endif + +-main() ++int main() + { + FILE *fp = fopen("cf_test.out", "w"); + if (fp != 0) { +@@ -17946,15 +19313,15 @@ + + _ACEOF + rm -f conftest$ac_exeext +-if { (eval echo "$as_me:17949: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:19316: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:17952: \$? = $ac_status" >&5 ++ echo "$as_me:19319: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:17954: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:19321: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:17957: \$? = $ac_status" >&5 ++ echo "$as_me:19324: \$? = $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 +@@ -17972,25 +19339,25 @@ + fi + + rm -f cf_test.out +-echo "$as_me:17975: result: $cf_cv_type_of_bool" >&5 ++echo "$as_me:19342: 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:17981: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 ++ { echo "$as_me:19348: 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:17987: checking for fallback type of bool" >&5 ++ echo "$as_me:19354: 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:17993: result: $cf_cv_type_of_bool" >&5 ++ echo "$as_me:19360: result: $cf_cv_type_of_bool" >&5 + echo "${ECHO_T}$cf_cv_type_of_bool" >&6 + fi + fi +@@ -18019,7 +19386,7 @@ + + if test "$cf_with_ada" != "no" ; then + if test "$with_libtool" != "no"; then +- { echo "$as_me:18022: WARNING: libtool does not support Ada - disabling feature" >&5 ++ { echo "$as_me:19389: 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 +@@ -18030,7 +19397,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:18033: checking for $ac_word" >&5 ++echo "$as_me:19400: 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 +@@ -18045,7 +19412,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_gnat_exists="yes" +-echo "$as_me:18048: found $ac_dir/$ac_word" >&5 ++echo "$as_me:19415: found $ac_dir/$ac_word" >&5 + break + done + +@@ -18054,31 +19421,32 @@ + fi + gnat_exists=$ac_cv_prog_gnat_exists + if test -n "$gnat_exists"; then +- echo "$as_me:18057: result: $gnat_exists" >&5 ++ echo "$as_me:19424: result: $gnat_exists" >&5 + echo "${ECHO_T}$gnat_exists" >&6 + else +- echo "$as_me:18060: result: no" >&5 ++ echo "$as_me:19427: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + if test "$ac_cv_prog_gnat_exists" = no; then + cf_ada_make= ++ cf_cv_prog_gnat_correct=no + else + +-echo "$as_me:18068: checking for gnat version" >&5 ++echo "$as_me:19436: 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:18073: result: $cf_gnat_version" >&5 ++echo "$as_me:19441: result: $cf_gnat_version" >&5 + echo "${ECHO_T}$cf_gnat_version" >&6 + + case $cf_gnat_version in #(vi +-3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi ++3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi + cf_cv_prog_gnat_correct=yes + ;; + *) +- { echo "$as_me:18081: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5 ++ { echo "$as_me:19449: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5 + echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;} + cf_cv_prog_gnat_correct=no + ;; +@@ -18086,7 +19454,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:18089: checking for $ac_word" >&5 ++echo "$as_me:19457: 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 +@@ -18101,7 +19469,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_M4_exists="yes" +-echo "$as_me:18104: found $ac_dir/$ac_word" >&5 ++echo "$as_me:19472: found $ac_dir/$ac_word" >&5 + break + done + +@@ -18110,10 +19478,10 @@ + fi + M4_exists=$ac_cv_prog_M4_exists + if test -n "$M4_exists"; then +- echo "$as_me:18113: result: $M4_exists" >&5 ++ echo "$as_me:19481: result: $M4_exists" >&5 + echo "${ECHO_T}$M4_exists" >&6 + else +- echo "$as_me:18116: result: no" >&5 ++ echo "$as_me:19484: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -18122,7 +19490,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:18125: checking if GNAT works" >&5 ++ echo "$as_me:19493: checking if GNAT works" >&5 + echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6 + + rm -rf conftest* *~conftest* +@@ -18150,32 +19518,36 @@ + fi + rm -rf conftest* *~conftest* + +- echo "$as_me:18153: result: $cf_cv_prog_gnat_correct" >&5 ++ echo "$as_me:19521: 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 ++ if test "x$cf_cv_prog_gnat_correct" = xyes; then + + ADAFLAGS="$ADAFLAGS -gnatpn" + +- # make ADAFLAGS consistent with CFLAGS +- case "$CFLAGS" in +- *-g*) ++ echo "$as_me:19530: checking optimization options for ADAFLAGS" >&5 ++echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6 ++ case "$CFLAGS" in ++ *-g*) + + ADAFLAGS="$ADAFLAGS -g" + +- ;; +- esac +- case "$CFLAGS" in +- *-O*) ++ ;; ++ esac ++ case "$CFLAGS" in ++ *-O*) ++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'` + +- ADAFLAGS="$ADAFLAGS -O3" ++ ADAFLAGS="$ADAFLAGS $cf_O_flag" + +- ;; +- esac ++ ;; ++ esac ++ echo "$as_me:19547: result: $ADAFLAGS" >&5 ++echo "${ECHO_T}$ADAFLAGS" >&6 + +-echo "$as_me:18178: checking if GNAT supports generics" >&5 ++echo "$as_me:19550: checking if GNAT supports generics" >&5 + echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6 + case $cf_gnat_version in #(vi + 3.[1-9]*|[4-9].*) #(vi +@@ -18185,7 +19557,7 @@ + cf_gnat_generics=no + ;; + esac +-echo "$as_me:18188: result: $cf_gnat_generics" >&5 ++echo "$as_me:19560: result: $cf_gnat_generics" >&5 + echo "${ECHO_T}$cf_gnat_generics" >&6 + + if test "$cf_gnat_generics" = yes +@@ -18197,7 +19569,7 @@ + cf_generic_objects= + fi + +-echo "$as_me:18200: checking if GNAT supports SIGINT" >&5 ++echo "$as_me:19572: checking if GNAT supports SIGINT" >&5 + echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6 + if test "${cf_cv_gnat_sigint+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -18245,7 +19617,7 @@ + rm -rf conftest* *~conftest* + + fi +-echo "$as_me:18248: result: $cf_cv_gnat_sigint" >&5 ++echo "$as_me:19620: result: $cf_cv_gnat_sigint" >&5 + echo "${ECHO_T}$cf_cv_gnat_sigint" >&6 + + if test $cf_cv_gnat_sigint = yes ; then +@@ -18254,7 +19626,7 @@ + USE_GNAT_SIGINT="#" + fi + +-echo "$as_me:18257: checking if GNAT pragma Unreferenced works" >&5 ++echo "$as_me:19629: checking if GNAT pragma Unreferenced works" >&5 + echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6 + if test "${cf_cv_pragma_unreferenced+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -18285,7 +19657,7 @@ + rm -rf conftest* *~conftest* + + fi +-echo "$as_me:18288: result: $cf_cv_pragma_unreferenced" >&5 ++echo "$as_me:19660: 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). +@@ -18298,14 +19670,14 @@ + cf_gnat_libraries=no + cf_gnat_projects=no + +-echo "$as_me:18301: checking if GNAT supports project files" >&5 ++echo "$as_me:19673: checking if GNAT supports project files" >&5 + echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6 + case $cf_gnat_version in #(vi + 3.[0-9]*) #(vi + ;; + *) + case $cf_cv_system_name in #(vi +- cygwin*) #(vi ++ cygwin*|msys*) #(vi + ;; + *) + mkdir conftest.src conftest.bin conftest.lib +@@ -18366,14 +19738,14 @@ + esac + ;; + esac +-echo "$as_me:18369: result: $cf_gnat_projects" >&5 ++echo "$as_me:19741: result: $cf_gnat_projects" >&5 + echo "${ECHO_T}$cf_gnat_projects" >&6 + + if test $cf_gnat_projects = yes + then +- echo "$as_me:18374: checking if GNAT supports libraries" >&5 ++ echo "$as_me:19746: checking if GNAT supports libraries" >&5 + echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6 +- echo "$as_me:18376: result: $cf_gnat_libraries" >&5 ++ echo "$as_me:19748: result: $cf_gnat_libraries" >&5 + echo "${ECHO_T}$cf_gnat_libraries" >&6 + fi + +@@ -18393,7 +19765,7 @@ + USE_GNAT_LIBRARIES="#" + fi + +-echo "$as_me:18396: checking for ada-compiler" >&5 ++echo "$as_me:19768: checking for ada-compiler" >&5 + echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6 + + # Check whether --with-ada-compiler or --without-ada-compiler was given. +@@ -18404,12 +19776,12 @@ + cf_ada_compiler=gnatmake + fi; + +-echo "$as_me:18407: result: $cf_ada_compiler" >&5 ++echo "$as_me:19779: result: $cf_ada_compiler" >&5 + echo "${ECHO_T}$cf_ada_compiler" >&6 + + cf_ada_package=terminal_interface + +-echo "$as_me:18412: checking for ada-include" >&5 ++echo "$as_me:19784: checking for ada-include" >&5 + echo $ECHO_N "checking for ada-include... $ECHO_C" >&6 + + # Check whether --with-ada-include or --without-ada-include was given. +@@ -18433,7 +19805,7 @@ + ;; + .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX + ;; +-.\${*prefix}*) #(vi ++.\${*prefix}*|.\${*dir}*) #(vi + eval withval="$withval" + case ".$withval" in #(vi + .NONE/*) +@@ -18445,19 +19817,19 @@ + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` + ;; + *) +- { { echo "$as_me:18448: error: expected a pathname, not \"$withval\"" >&5 ++ { { echo "$as_me:19820: error: expected a pathname, not \"$withval\"" >&5 + echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + fi +-ADA_INCLUDE="$withval" ++eval ADA_INCLUDE="$withval" + +-echo "$as_me:18457: result: $ADA_INCLUDE" >&5 ++echo "$as_me:19829: result: $ADA_INCLUDE" >&5 + echo "${ECHO_T}$ADA_INCLUDE" >&6 + +-echo "$as_me:18460: checking for ada-objects" >&5 ++echo "$as_me:19832: checking for ada-objects" >&5 + echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6 + + # Check whether --with-ada-objects or --without-ada-objects was given. +@@ -18471,69 +19843,310 @@ + if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" + else +- cf_path_syntax="$ac_default_prefix" ++ cf_path_syntax="$ac_default_prefix" ++fi ++ ++case ".$withval" in #(vi ++.\$\(*\)*|.\'*\'*) #(vi ++ ;; ++..|./*|.\\*) #(vi ++ ;; ++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ++ ;; ++.\${*prefix}*|.\${*dir}*) #(vi ++ eval withval="$withval" ++ case ".$withval" in #(vi ++ .NONE/*) ++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++ esac ++ ;; #(vi ++.no|.NONE/*) ++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++*) ++ { { echo "$as_me:19868: error: expected a pathname, not \"$withval\"" >&5 ++echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++esac ++ ++fi ++eval ADA_OBJECTS="$withval" ++ ++echo "$as_me:19877: result: $ADA_OBJECTS" >&5 ++echo "${ECHO_T}$ADA_OBJECTS" >&6 ++ ++echo "$as_me:19880: checking if an Ada95 shared-library should be built" >&5 ++echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6 ++ ++# Check whether --with-ada-sharedlib or --without-ada-sharedlib was given. ++if test "${with_ada_sharedlib+set}" = set; then ++ withval="$with_ada_sharedlib" ++ with_ada_sharedlib=$withval ++else ++ with_ada_sharedlib=no ++fi; ++echo "$as_me:19890: result: $with_ada_sharedlib" >&5 ++echo "${ECHO_T}$with_ada_sharedlib" >&6 ++ ++ADA_SHAREDLIB='lib$(LIB_NAME).so.1' ++MAKE_ADA_SHAREDLIB="#" ++ ++if test "x$with_ada_sharedlib" != xno ++then ++ MAKE_ADA_SHAREDLIB= ++ if test "x$with_ada_sharedlib" != xyes ++ then ++ ADA_SHAREDLIB="$with_ada_sharedlib" ++ fi ++fi ++ ++ fi ++ fi ++else ++ cf_with_ada=no ++fi ++ ++# do this "late" to avoid conflict with header-checks ++if test "x$with_widec" = xyes ; then ++ echo "$as_me:19913: checking for wchar_t" >&5 ++echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6 ++if test "${ac_cv_type_wchar_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 19919 "configure" ++#include "confdefs.h" ++$ac_includes_default ++int ++main () ++{ ++if ((wchar_t *) 0) ++ return 0; ++if (sizeof (wchar_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:19934: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:19937: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:19940: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:19943: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_wchar_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_type_wchar_t=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:19953: result: $ac_cv_type_wchar_t" >&5 ++echo "${ECHO_T}$ac_cv_type_wchar_t" >&6 ++ ++echo "$as_me:19956: checking size of wchar_t" >&5 ++echo $ECHO_N "checking size of wchar_t... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_wchar_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_wchar_t" = yes; then ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++#line 19965 "configure" ++#include "confdefs.h" ++$ac_includes_default ++int ++main () ++{ ++int _array_ [1 - 2 * !((sizeof (wchar_t)) >= 0)] ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:19977: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:19980: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:19983: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:19986: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++#line 19991 "configure" ++#include "confdefs.h" ++$ac_includes_default ++int ++main () ++{ ++int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)] ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:20003: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:20006: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:20009: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:20012: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++#line 20028 "configure" ++#include "confdefs.h" ++$ac_includes_default ++int ++main () ++{ ++int _array_ [1 - 2 * !((sizeof (wchar_t)) >= $ac_mid)] ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:20040: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:20043: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:20046: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:20049: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ done ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++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 20065 "configure" ++#include "confdefs.h" ++$ac_includes_default ++int ++main () ++{ ++int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)] ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:20077: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:20080: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:20083: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:20086: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_lo=`expr $ac_mid + 1` + fi +- +-case ".$withval" in #(vi +-.\$\(*\)*|.\'*\'*) #(vi +- ;; +-..|./*|.\\*) #(vi +- ;; +-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX +- ;; +-.\${*prefix}*) #(vi +- eval withval="$withval" +- case ".$withval" in #(vi +- .NONE/*) +- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` +- ;; +- esac +- ;; #(vi +-.no|.NONE/*) +- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` +- ;; +-*) +- { { echo "$as_me:18496: error: expected a pathname, not \"$withval\"" >&5 +-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} ++rm -f conftest.$ac_objext conftest.$ac_ext ++done ++ac_cv_sizeof_wchar_t=$ac_lo ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:20099: 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; }; } +- ;; +-esac +- ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 20104 "configure" ++#include "confdefs.h" ++$ac_includes_default ++int ++main () ++{ ++FILE *f = fopen ("conftest.val", "w"); ++if (!f) ++ $ac_main_return (1); ++fprintf (f, "%d", (sizeof (wchar_t))); ++fclose (f); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:20120: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:20123: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:20125: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:20128: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_wchar_t=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 + fi +-ADA_OBJECTS="$withval" +- +-echo "$as_me:18505: result: $ADA_OBJECTS" >&5 +-echo "${ECHO_T}$ADA_OBJECTS" >&6 +- +-echo "$as_me:18508: checking if an Ada95 shared-library should be built" >&5 +-echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6 +- +-# Check whether --with-ada-sharedlib or --without-ada-sharedlib was given. +-if test "${with_ada_sharedlib+set}" = set; then +- withval="$with_ada_sharedlib" +- with_ada_sharedlib=$withval ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val + else +- with_ada_sharedlib=no +-fi; +-echo "$as_me:18518: result: $with_ada_sharedlib" >&5 +-echo "${ECHO_T}$with_ada_sharedlib" >&6 +- +-ADA_SHAREDLIB='lib$(LIB_NAME).so.1' +-MAKE_ADA_SHAREDLIB="#" +- +-if test "x$with_ada_sharedlib" != xno +-then +- MAKE_ADA_SHAREDLIB= +- if test "x$with_ada_sharedlib" != xyes +- then +- ADA_SHAREDLIB="$with_ada_sharedlib" +- fi ++ ac_cv_sizeof_wchar_t=0 ++fi + fi ++echo "$as_me:20144: result: $ac_cv_sizeof_wchar_t" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_wchar_t" >&6 ++cat >>confdefs.h <&5 ++echo "$as_me:20162: checking for library subsets" >&5 + echo $ECHO_N "checking for library subsets... $ECHO_C" >&6 + LIB_SUBSETS= + +-if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then ++if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then + LIB_SUBSETS="${LIB_SUBSETS}ticlib" + if test "$with_ticlib" != no ; then + LIB_SUBSETS="${LIB_SUBSETS} " +@@ -18560,7 +20173,7 @@ + fi + + LIB_SUBSETS="${LIB_SUBSETS}termlib" +-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" ++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" + + if test "$with_termlib" != no ; then + LIB_SUBSETS="${LIB_SUBSETS} " +@@ -18584,29 +20197,29 @@ + esac + fi + +-test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" +-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" ++test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" ++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" + +-echo "$as_me:18590: result: $LIB_SUBSETS" >&5 ++echo "$as_me:20203: result: $LIB_SUBSETS" >&5 + echo "${ECHO_T}$LIB_SUBSETS" >&6 + + ### Construct the list of include-directories to be generated + +-CPPFLAGS="$CPPFLAGS -I. -I../include" +-if test "$srcdir" != "."; then +- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" +-fi + if test "$GCC" != yes; then +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ if test x$prefix != x/usr ; then ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + fi + else +- CPPFLAGS="$CPPFLAGS -I\${includedir}" ++ CPPFLAGS="-I\${includedir} $CPPFLAGS" + fi + fi ++if test "$srcdir" != "."; then ++ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" ++fi ++CPPFLAGS="-I. -I../include $CPPFLAGS" + + ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS" + if test "$srcdir" != "."; then +@@ -18616,7 +20229,7 @@ + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + elif test "$includedir" != "/usr/include"; then + if test "$includedir" = '${prefix}/include' ; then +- if test $prefix != /usr ; then ++ if test x$prefix != x/usr ; then + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" + fi + else +@@ -18625,7 +20238,7 @@ + fi + + ### Build up pieces for makefile rules +-echo "$as_me:18628: checking default library suffix" >&5 ++echo "$as_me:20241: checking default library suffix" >&5 + echo $ECHO_N "checking default library suffix... $ECHO_C" >&6 + + case $DFT_LWR_MODEL in +@@ -18636,36 +20249,32 @@ + shared) DFT_ARG_SUFFIX='' ;; + esac + test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}" +-echo "$as_me:18639: result: $DFT_ARG_SUFFIX" >&5 ++echo "$as_me:20252: result: $DFT_ARG_SUFFIX" >&5 + echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6 + +-echo "$as_me:18642: checking default library-dependency suffix" >&5 ++echo "$as_me:20255: checking default library-dependency suffix" >&5 + echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6 + +- case $DFT_LWR_MODEL in #(vi +- libtool) #(vi ++ case X$DFT_LWR_MODEL in #(vi ++ Xlibtool) #(vi + DFT_LIB_SUFFIX='.la' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- normal) #(vi +- DFT_LIB_SUFFIX='.a' +- DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX +- ;; +- debug) #(vi ++ Xdebug) #(vi + DFT_LIB_SUFFIX='_g.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- profile) #(vi ++ Xprofile) #(vi + DFT_LIB_SUFFIX='_p.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- shared) #(vi ++ Xshared) #(vi + case $cf_cv_system_name in +- aix[56]*) #(vi ++ aix[5-7]*) #(vi + DFT_LIB_SUFFIX='.a' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; +- cygwin*) #(vi ++ cygwin*|msys*|mingw*) #(vi + DFT_LIB_SUFFIX='.dll' + DFT_DEP_SUFFIX='.dll.a' + ;; +@@ -18685,17 +20294,23 @@ + ;; + esac + ;; +- *) DFT_LIB_SUFFIX='.so' ++ *) #(vi ++ DFT_LIB_SUFFIX='.so' + DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX + ;; + esac ++ ;; ++ *) ++ DFT_LIB_SUFFIX='.a' ++ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX ++ ;; + 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:18695: result: $DFT_DEP_SUFFIX" >&5 ++echo "$as_me:20310: result: $DFT_DEP_SUFFIX" >&5 + echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6 + +-echo "$as_me:18698: checking default object directory" >&5 ++echo "$as_me:20313: checking default object directory" >&5 + echo $ECHO_N "checking default object directory... $ECHO_C" >&6 + + case $DFT_LWR_MODEL in +@@ -18705,47 +20320,47 @@ + profile) DFT_OBJ_SUBDIR='obj_p' ;; + shared) + case $cf_cv_system_name in #(vi +- cygwin) #(vi ++ cygwin|msys) #(vi + DFT_OBJ_SUBDIR='objects' ;; + *) + DFT_OBJ_SUBDIR='obj_s' ;; + esac + esac +-echo "$as_me:18714: result: $DFT_OBJ_SUBDIR" >&5 ++echo "$as_me:20329: 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:18719: checking c++ library-dependency suffix" >&5 ++if test "x$cf_with_cxx" = xyes ; then ++echo "$as_me:20333: checking c++ library-dependency suffix" >&5 + echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6 + if test "$with_libtool" != "no"; then ++ # libtool thinks it can make c++ shared libraries (perhaps only g++) ++ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX ++elif test "$with_shared_cxx" != "no"; then ++ # also for g++ users... + CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX + else ++ # we normally make a static library because C/C++ library rules differ + +- case normal in #(vi +- libtool) #(vi ++ case Xnormal in #(vi ++ Xlibtool) #(vi + CXX_LIB_SUFFIX='.la' + CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX + ;; +- normal) #(vi +- CXX_LIB_SUFFIX='.a' +- CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX +- ;; +- debug) #(vi ++ Xdebug) #(vi + CXX_LIB_SUFFIX='_g.a' + CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX + ;; +- profile) #(vi ++ Xprofile) #(vi + CXX_LIB_SUFFIX='_p.a' + CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX + ;; +- shared) #(vi ++ Xshared) #(vi + case $cf_cv_system_name in +- aix[56]*) #(vi ++ aix[5-7]*) #(vi + CXX_LIB_SUFFIX='.a' + CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX + ;; +- cygwin*) #(vi ++ cygwin*|msys*|mingw*) #(vi + CXX_LIB_SUFFIX='.dll' + CXX_DEP_SUFFIX='.dll.a' + ;; +@@ -18765,21 +20380,28 @@ + ;; + esac + ;; +- *) CXX_LIB_SUFFIX='.so' ++ *) #(vi ++ CXX_LIB_SUFFIX='.so' + CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX + ;; + esac ++ ;; ++ *) ++ CXX_LIB_SUFFIX='.a' ++ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX ++ ;; + esac + 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:18776: result: $CXX_LIB_SUFFIX" >&5 ++echo "$as_me:20398: result: $CXX_LIB_SUFFIX" >&5 + echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6 + + fi + + # do not want -ldl in build except as needed for -lncurses dependency +-if test "$with_dlsym" = yes ; then ++if test "x$with_dlsym" = xyes ; then + if test $DFT_LWR_MODEL = shared || \ + test $DFT_LWR_MODEL = libtool ; then + +@@ -18793,7 +20415,7 @@ + # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but + # do not need libdl + TICS_LIST= +-if test "$with_dlsym" = yes ; then ++if test "x$with_dlsym" = xyes ; then + + # remove dl library from $SHLIB_LIST + TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'` +@@ -18802,7 +20424,7 @@ + + if test "$with_ticlib" != no ; then + +- if test "$with_ticlib" != yes ; then ++ if test "x$with_ticlib" != xyes ; then + TICS_NAME=$with_ticlib + TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" +@@ -18812,14 +20434,16 @@ + TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}" + TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}" + fi +- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}" ++ TICS_LDFLAGS="-L${LIB_DIR}" ++ TICS_LIBS="-l${TICS_LIB_SUFFIX}" + else +- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TICS_LDFLAGS="-L${LIB_DIR}" ++ TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" + fi + + if test "$with_termlib" != no ; then + +- if test "$with_termlib" != yes ; then ++ if test "x$with_termlib" != xyes ; then + TINFO_NAME=$with_termlib + TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" +@@ -18837,14 +20461,22 @@ + if test "$DFT_LWR_MODEL" = "libtool"; then + TEST_ARGS="${TEST_DEPS}" + TEST_ARG2="${TEST_DEP2}" +- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" ++ TINFO_LDFLAGS="-L${LIB_DIR}" ++ TINFO_LIBS="$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}" +- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" +- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" ++ if test "x$with_term_driver" != xno ; then ++ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" ++ else ++ TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" ++ TINFO_LIBS="$TEST_ARGS" ++ fi ++ TINFO_LDFLAGS="-L${LIB_DIR}" + SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" + fi + else +@@ -18852,25 +20484,26 @@ + TINFO_NAME=${LIB_NAME} + TINFO_SUFFIX=${DFT_LIB_SUFFIX} + TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX} +- if test "$with_tic_depends" = yes ; then ++ if test "x$with_tic_depends" = xyes ; then + TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + else + TICS_LIST="$SHLIB_LIST" + fi + +- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TINFO_LDFLAGS="-L${LIB_DIR}" ++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" + fi + + if test "$DFT_LWR_MODEL" = shared ; then + case $cf_cv_system_name in #(vi +- cygwin*) +- # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" ++ cygwin*|msys*) ++ # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll" + TINFO_SUFFIX=.dll + ;; + esac + fi + +-if test "$with_dlsym" = yes ; then ++if test "x$with_dlsym" = xyes ; then + + # remove dl library from $TICS_LIST + TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'` +@@ -18882,7 +20515,7 @@ + fi + + # needed for Ada95 +-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'` ++TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'` + + case $DFT_LWR_MODEL in + normal|debug|profile) +@@ -18900,7 +20533,7 @@ + esac + else + case $cf_cv_system_name in #( +- aix[456]*) #( from ld manpage ++ aix[4-7]*) #( from ld manpage + LDFLAGS_STATIC=-bstatic + LDFLAGS_SHARED=-bdynamic + ;; +@@ -18927,19 +20560,19 @@ + + if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED" + then +- echo "$as_me:18930: checking if linker supports switching between static/dynamic" >&5 ++ echo "$as_me:20563: checking if linker supports switching between static/dynamic" >&5 + echo $ECHO_N "checking if linker supports switching between static/dynamic... $ECHO_C" >&6 + + rm -f libconftest.a + cat >conftest.$ac_ext < + int cf_ldflags_static(FILE *fp) { return fflush(fp); } + EOF +- if { (eval echo "$as_me:18939: \"$ac_compile\"") >&5 ++ if { (eval echo "$as_me:20572: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:18942: \$? = $ac_status" >&5 ++ echo "$as_me:20575: \$? = $ac_status" >&5 + (exit $ac_status); } ; then + ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&5 1>/dev/null + ( eval $RANLIB libconftest.a ) 2>&5 >/dev/null +@@ -18950,10 +20583,10 @@ + + LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 18953 "configure" ++#line 20586 "configure" + #include "confdefs.h" + +-#line 18956 "configure" ++#line 20589 "configure" + #include + int cf_ldflags_static(FILE *fp); + +@@ -18968,18 +20601,28 @@ + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:18971: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:20604: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:18974: \$? = $ac_status" >&5 ++ echo "$as_me:20607: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:18977: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:20610: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:18980: \$? = $ac_status" >&5 ++ echo "$as_me:20613: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_ldflags_static=yes ++ ++ # some linkers simply ignore the -dynamic ++ case x`file conftest$ac_exeext 2>/dev/null` in #(vi ++ *static*) # (vi ++ cf_ldflags_static=no ++ ;; ++ *) ++ cf_ldflags_static=yes ++ ;; ++ esac ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +@@ -18990,7 +20633,7 @@ + rm -f libconftest.* + LIBS="$cf_save_LIBS" + +- echo "$as_me:18993: result: $cf_ldflags_static" >&5 ++ echo "$as_me:20636: result: $cf_ldflags_static" >&5 + echo "${ECHO_T}$cf_ldflags_static" >&6 + + if test $cf_ldflags_static != yes +@@ -19006,20 +20649,25 @@ + ;; + esac + +-echo "$as_me:19009: checking where we will install curses.h" >&5 ++echo "$as_me:20652: 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:19014: result: $includedir" >&5 +-echo "${ECHO_T}$includedir" >&6 ++ ++includesubdir= ++if test "$with_overwrite" = no && \ ++ ( test "x$includedir" = 'x${prefix}/include' || \ ++ test "x$includedir" = "x${prefix}/include" ) ++then ++ includesubdir="/ncurses${LIB_SUFFIX}" ++fi ++echo "$as_me:20662: result: ${includedir}${includesubdir}" >&5 ++echo "${ECHO_T}${includedir}${includesubdir}" >&6 + + ### Resolve a conflict between normal and wide-curses by forcing applications + ### that will need libutf8 to add it to their configure script. + if test "$with_overwrite" != no ; then + if test "$NCURSES_LIBUTF8" = 1 ; then + NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)' +- { echo "$as_me:19022: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5 ++ { echo "$as_me:20670: 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 +@@ -19029,6 +20677,7 @@ + NCURSES_TREE= + + ### predefined stuff for the test programs ++ + cat >>confdefs.h <<\EOF + #define HAVE_SLK_COLOR 1 + EOF +@@ -19036,7 +20685,7 @@ + ### Construct the list of subdirectories for which we'll customize makefiles + ### with the appropriate compile-rules. + +-echo "$as_me:19039: checking for src modules" >&5 ++echo "$as_me:20688: checking for src modules" >&5 + echo $ECHO_N "checking for src modules... $ECHO_C" >&6 + + # dependencies and linker-arguments for test-programs +@@ -19050,6 +20699,7 @@ + TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2" + fi + ++PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}" + cf_cv_src_modules= + for cf_dir in $modules_to_build + do +@@ -19096,10 +20746,11 @@ + TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" + TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2" + fi ++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}" + fi + fi + done +-echo "$as_me:19102: result: $cf_cv_src_modules" >&5 ++echo "$as_me:20753: result: $cf_cv_src_modules" >&5 + echo "${ECHO_T}$cf_cv_src_modules" >&6 + + TEST_ARGS="-L${LIB_DIR} $TEST_ARGS" +@@ -19117,11 +20768,19 @@ + if test "x$cf_with_tests" != "xno" ; then + SRC_SUBDIRS="$SRC_SUBDIRS test" + fi +-test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" +-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++" ++if test "x$cf_with_db_install" = xyes; then ++ test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc" ++fi ++if test "$cf_with_cxx_binding" != no; then ++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}" ++ SRC_SUBDIRS="$SRC_SUBDIRS c++" ++fi ++ ++test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX" ++test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX" + + ADA_SUBDIRS= +-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then ++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then + SRC_SUBDIRS="$SRC_SUBDIRS Ada95" + ADA_SUBDIRS="gen src" + if test "x$cf_with_tests" != "xno" ; then +@@ -19143,7 +20802,7 @@ + + fi + +-if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then ++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then + SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in" + SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in" + fi +@@ -19159,7 +20818,7 @@ + profile) cf_subdir='obj_p' ;; + shared) + case $cf_cv_system_name in #(vi +- cygwin) #(vi ++ cygwin|msys) #(vi + cf_subdir='objects' ;; + *) + cf_subdir='obj_s' ;; +@@ -19181,6 +20840,7 @@ + NCURSES_SHLIB2='sh $(top_srcdir)/misc/shlib' + + # values to use as strings ++ + cat >>confdefs.h <&5 ++echo "$as_me:20974: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_path_TIC_PATH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -19322,7 +20988,7 @@ + test -z "$ac_dir" && ac_dir=. + if $as_executable_p "$ac_dir/$ac_word"; then + ac_cv_path_TIC_PATH="$ac_dir/$ac_word" +- echo "$as_me:19325: found $ac_dir/$ac_word" >&5 ++ echo "$as_me:20991: found $ac_dir/$ac_word" >&5 + break + fi + done +@@ -19334,10 +21000,10 @@ + TIC_PATH=$ac_cv_path_TIC_PATH + + if test -n "$TIC_PATH"; then +- echo "$as_me:19337: result: $TIC_PATH" >&5 ++ echo "$as_me:21003: result: $TIC_PATH" >&5 + echo "${ECHO_T}$TIC_PATH" >&6 + else +- echo "$as_me:19340: result: no" >&5 ++ echo "$as_me:21006: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -19345,7 +21011,7 @@ + then + if test "$TIC_PATH" = unknown + then +- { echo "$as_me:19348: WARNING: no tic program found for fallbacks" >&5 ++ { echo "$as_me:21014: WARNING: no tic program found for fallbacks" >&5 + echo "$as_me: WARNING: no tic program found for fallbacks" >&2;} + fi + fi +@@ -19358,13 +21024,56 @@ + + ADAHTML_DIR=../../doc/html/ada + +-SUB_SCRIPTS= ++# these could be configurable, but are not currently ++PANEL_NAME=panel ++MENU_NAME=menu ++FORM_NAME=form ++CXX_NAME=ncurses++ ++ ++# workaround for g++ versus Solaris (20131116) + case $cf_cv_system_name in #(vi +-*mingw32*) #(vi +- SUB_SCRIPTS="mk-dlls.sh" ++solaris2*) #(vi ++ case "x$CPPFLAGS" in #(vi ++ *-D_XOPEN_SOURCE_EXTENDED*) ++ test -n "$verbose" && echo " moving _XOPEN_SOURCE_EXTENDED to work around g++ problem" 1>&6 ++ ++echo "${as_me:-configure}:21040: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5 ++ ++ CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" ++ CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'` ++ ;; ++ esac ++ ;; ++esac ++ ++# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this. ++case "x$NCURSES_OSPEED" in #(vi ++*short*) #(vi ++ cf_compatible=1 ++ ;; ++*) ++ cf_compatible=0 ++ ;; ++esac ++ ++cat >>confdefs.h <confcache <<\_ACEOF +@@ -19446,7 +21155,7 @@ + : ${CONFIG_STATUS=./config.status} + ac_clean_files_save=$ac_clean_files + ac_clean_files="$ac_clean_files $CONFIG_STATUS" +-{ echo "$as_me:19449: creating $CONFIG_STATUS" >&5 ++{ echo "$as_me:21158: creating $CONFIG_STATUS" >&5 + echo "$as_me: creating $CONFIG_STATUS" >&6;} + cat >$CONFIG_STATUS <<_ACEOF + #! $SHELL +@@ -19578,7 +21287,7 @@ + cat >>$CONFIG_STATUS <&5 + echo "$as_me: error: ambiguous option: $1 + Try \`$0 --help' for more information." >&2;} +@@ -19641,7 +21350,7 @@ + ac_need_defaults=false;; + + # This is an error. +- -*) { { echo "$as_me:19644: error: unrecognized option: $1 ++ -*) { { echo "$as_me:21353: 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;} +@@ -19660,7 +21369,7 @@ + ## Running config.status. ## + ## ----------------------- ## + +-This file was extended by $as_me 2.52.20101002, executed with ++This file was extended by $as_me 2.52.20121002, executed with + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS +@@ -19682,10 +21391,11 @@ + AWK="$AWK" + DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" + DFT_LWR_MODEL="$DFT_LWR_MODEL" +-ECHO_LINK="$ECHO_LINK" ++ECHO_LD="$ECHO_LD" + LDCONFIG="$LDCONFIG" + LIBTOOL_VERSION="$LIBTOOL_VERSION" + LIB_NAME="$LIB_NAME" ++LIB_PREFIX="$LIB_PREFIX" + LIB_SUBSETS="$LIB_SUBSETS" + LIB_SUFFIX="$LIB_SUFFIX" + LIB_TRACING="$LIB_TRACING" +@@ -19707,7 +21417,7 @@ + TINFO_SUFFIX="$TINFO_SUFFIX" + USE_OLD_MAKERULES="$USE_OLD_MAKERULES" + WITH_CURSES_H="$with_curses_h" +-WITH_ECHO="$with_echo" ++WITH_ECHO="${enable_echo:=yes}" + WITH_OVERWRITE="$with_overwrite" + cf_LIST_MODELS="$cf_list_models" + cf_cv_abi_version="$cf_cv_abi_version" +@@ -19717,16 +21427,20 @@ + cf_cv_enable_opaque="$cf_cv_enable_opaque" + cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o + cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o ++cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct + cf_cv_rel_version="$cf_cv_rel_version" + cf_cv_rm_so_locs="$cf_cv_rm_so_locs" + cf_cv_shared_soname='$cf_cv_shared_soname' + cf_cv_shlib_version="$cf_cv_shlib_version" + cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix" + cf_cv_system_name="$cf_cv_system_name" ++cf_cv_term_driver="$with_term_driver" + cf_with_ada="$cf_with_ada" + cf_with_cxx_binding="$cf_with_cxx_binding" ++cf_with_db_install="$cf_with_db_install" + cf_with_manpages="$cf_with_manpages" + cf_with_tests="$cf_with_tests" ++with_shared_cxx="$with_shared_cxx" + host="$host" + target="$target" + +@@ -19747,7 +21461,7 @@ + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;; +- *) { { echo "$as_me:19750: error: invalid argument: $ac_config_target" >&5 ++ *) { { echo "$as_me:21464: error: invalid argument: $ac_config_target" >&5 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +@@ -19806,6 +21520,7 @@ + s,@bindir@,$bindir,;t t + s,@sbindir@,$sbindir,;t t + s,@libexecdir@,$libexecdir,;t t ++s,@datarootdir@,$datarootdir,;t t + s,@datadir@,$datadir,;t t + s,@sysconfdir@,$sysconfdir,;t t + s,@sharedstatedir@,$sharedstatedir,;t t +@@ -19858,9 +21573,8 @@ + s,@ac_ct_CC@,$ac_ct_CC,;t t + s,@EXEEXT@,$EXEEXT,;t t + s,@OBJEXT@,$OBJEXT,;t t +-s,@CPP@,$CPP,;t t + s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t +-s,@PROG_EXT@,$PROG_EXT,;t t ++s,@CPP@,$CPP,;t t + s,@LDCONFIG@,$LDCONFIG,;t t + s,@CXX@,$CXX,;t t + s,@CXXFLAGS@,$CXXFLAGS,;t t +@@ -19887,6 +21601,8 @@ + s,@ac_ct_LD@,$ac_ct_LD,;t t + s,@AR@,$AR,;t t + s,@ac_ct_AR@,$ac_ct_AR,;t t ++s,@NM@,$NM,;t t ++s,@ac_ct_NM@,$ac_ct_NM,;t t + s,@ARFLAGS@,$ARFLAGS,;t t + s,@DESTDIR@,$DESTDIR,;t t + s,@BUILD_CC@,$BUILD_CC,;t t +@@ -19900,6 +21616,7 @@ + s,@cf_list_models@,$cf_list_models,;t t + s,@LIBTOOL_VERSION@,$LIBTOOL_VERSION,;t t + s,@LIBTOOL@,$LIBTOOL,;t t ++s,@ac_ct_LIBTOOL@,$ac_ct_LIBTOOL,;t t + s,@LT_UNDEF@,$LT_UNDEF,;t t + s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t + s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t +@@ -19921,25 +21638,32 @@ + s,@CC_G_OPT@,$CC_G_OPT,;t t + s,@CXX_G_OPT@,$CXX_G_OPT,;t t + s,@LD_MODEL@,$LD_MODEL,;t t ++s,@shlibdir@,$shlibdir,;t t ++s,@MAKE_DLLS@,$MAKE_DLLS,;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,@RM_SHARED_OPTS@,$RM_SHARED_OPTS,;t t + s,@LINK_PROGS@,$LINK_PROGS,;t t + s,@LINK_TESTS@,$LINK_TESTS,;t t + s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t + s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t + s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t + s,@INSTALL_LIB@,$INSTALL_LIB,;t t ++s,@RPATH_LIST@,$RPATH_LIST,;t t + s,@cf_ldd_prog@,$cf_ldd_prog,;t t + s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t ++s,@NCURSES_USE_DATABASE@,$NCURSES_USE_DATABASE,;t t + s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t + s,@WHICH_XTERM@,$WHICH_XTERM,;t t ++s,@XTERM_KBS@,$XTERM_KBS,;t t + s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t + s,@TERMINFO@,$TERMINFO,;t t + s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t + s,@USE_BIG_STRINGS@,$USE_BIG_STRINGS,;t t + s,@TERMPATH@,$TERMPATH,;t t ++s,@NCURSES_USE_TERMCAP@,$NCURSES_USE_TERMCAP,;t t + s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t + s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t + s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t +@@ -19955,6 +21679,7 @@ + s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t + s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t + s,@NCURSES_CCHARW_MAX@,$NCURSES_CCHARW_MAX,;t t ++s,@NCURSES_TPARM_ARG@,$NCURSES_TPARM_ARG,;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 +@@ -19972,6 +21697,11 @@ + 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_LT@,$ECHO_LT,;t t ++s,@ECHO_LD@,$ECHO_LD,;t t ++s,@RULE_CC@,$RULE_CC,;t t ++s,@SHOW_CC@,$SHOW_CC,;t t ++s,@ECHO_CC@,$ECHO_CC,;t t + s,@ECHO_LINK@,$ECHO_LINK,;t t + s,@ADAFLAGS@,$ADAFLAGS,;t t + s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t +@@ -20015,14 +21745,17 @@ + s,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t + s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t + s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t +-s,@TICS_ARGS@,$TICS_ARGS,;t t ++s,@TICS_LDFLAGS@,$TICS_LDFLAGS,;t t ++s,@TICS_LIBS@,$TICS_LIBS,;t t + s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t + s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t + s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t +-s,@TINFO_ARGS@,$TINFO_ARGS,;t t +-s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t ++s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t ++s,@TINFO_LIBS@,$TINFO_LIBS,;t t ++s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t + s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t + s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t ++s,@includesubdir@,$includesubdir,;t t + s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t + s,@TICS_LIST@,$TICS_LIST,;t t + s,@TINFO_LIST@,$TINFO_LIST,;t t +@@ -20032,10 +21765,12 @@ + s,@TEST_DEPS@,$TEST_DEPS,;t t + s,@TEST_ARG2@,$TEST_ARG2,;t t + s,@TEST_DEP2@,$TEST_DEP2,;t t ++s,@PC_MODULES_TO_MAKE@,$PC_MODULES_TO_MAKE,;t t + s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t + s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t + s,@NCURSES_SHLIB2@,$NCURSES_SHLIB2,;t t + s,@HAVE_TCGETATTR@,$HAVE_TCGETATTR,;t t ++s,@HAVE_STDINT_H@,$HAVE_STDINT_H,;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 +@@ -20043,6 +21778,10 @@ + s,@TIC_PATH@,$TIC_PATH,;t t + s,@MAKE_TESTS@,$MAKE_TESTS,;t t + s,@ADAHTML_DIR@,$ADAHTML_DIR,;t t ++s,@PANEL_NAME@,$PANEL_NAME,;t t ++s,@MENU_NAME@,$MENU_NAME,;t t ++s,@FORM_NAME@,$FORM_NAME,;t t ++s,@CXX_NAME@,$CXX_NAME,;t t + CEOF + + EOF +@@ -20157,7 +21896,7 @@ + esac + + if test x"$ac_file" != x-; then +- { echo "$as_me:20160: creating $ac_file" >&5 ++ { echo "$as_me:21899: creating $ac_file" >&5 + echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi +@@ -20175,7 +21914,7 @@ + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:20178: error: cannot find input file: $f" >&5 ++ test -f "$f" || { { echo "$as_me:21917: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; +@@ -20188,13 +21927,45 @@ + echo $srcdir/$f + else + # /dev/null tree +- { { echo "$as_me:20191: error: cannot find input file: $f" >&5 ++ { { echo "$as_me:21930: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + EOF ++cat >>$CONFIG_STATUS <<\EOF ++ ac_warn_datarootdir=no ++ if test x"$ac_file" != x-; then ++ for ac_item in $ac_file_inputs ++ do ++ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item` ++ if test -n "$ac_seen"; then ++ ac_used=`grep '@datarootdir@' $ac_item` ++ if test -z "$ac_used"; then ++ { echo "$as_me:21946: WARNING: datarootdir was used implicitly but not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: datarootdir was used implicitly but not set: ++$ac_seen" >&2;} ++ ac_warn_datarootdir=yes ++ fi ++ fi ++ ac_seen=`grep '${datarootdir}' $ac_item` ++ if test -n "$ac_seen"; then ++ { echo "$as_me:21955: WARNING: datarootdir was used explicitly but not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: datarootdir was used explicitly but not set: ++$ac_seen" >&2;} ++ ac_warn_datarootdir=yes ++ fi ++ done ++ fi ++ ++if test "x$ac_warn_datarootdir" = xyes; then ++ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'" ++fi ++ ++EOF + cat >>$CONFIG_STATUS <$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then +- mv $tmp/out $ac_file ++ cp $tmp/out $ac_file ++ ++ for ac_name in prefix exec_prefix datarootdir ++ do ++ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file` ++ if test -n "$ac_seen"; then ++ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file` ++ if test -z "$ac_init"; then ++ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` ++ { echo "$as_me:21992: WARNING: Variable $ac_name is used but was not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: Variable $ac_name is used but was not set: ++$ac_seen" >&2;} ++ fi ++ fi ++ done ++ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out ++ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out ++ if test -s $tmp/out; then ++ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` ++ { echo "$as_me:22003: WARNING: Some variables may not be substituted: ++$ac_seen" >&5 ++echo "$as_me: WARNING: Some variables may not be substituted: ++$ac_seen" >&2;} ++ fi + else + cat $tmp/out +- rm -f $tmp/out + fi ++ rm -f $tmp/out + + done + EOF +@@ -20254,7 +22049,7 @@ + * ) ac_file_in=$ac_file.in ;; + esac + +- test x"$ac_file" != x- && { echo "$as_me:20257: creating $ac_file" >&5 ++ test x"$ac_file" != x- && { echo "$as_me:22052: creating $ac_file" >&5 + echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the +@@ -20265,7 +22060,7 @@ + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:20268: error: cannot find input file: $f" >&5 ++ test -f "$f" || { { echo "$as_me:22063: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; +@@ -20278,7 +22073,7 @@ + echo $srcdir/$f + else + # /dev/null tree +- { { echo "$as_me:20281: error: cannot find input file: $f" >&5 ++ { { echo "$as_me:22076: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; +@@ -20336,7 +22131,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:20339: $ac_file is unchanged" >&5 ++ { echo "$as_me:22134: $ac_file is unchanged" >&5 + echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +@@ -20394,25 +22189,20 @@ + if test ! -d $srcdir/$cf_dir; then + continue + elif test -f $srcdir/$cf_dir/programs; then +- $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile ++ $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile + fi + done + + fi + +- case $cf_cv_system_name in #(vi +- OS/2*|os2*) #(vi +- LIB_PREFIX='' +- ;; +- *) LIB_PREFIX='lib' +- ;; +- esac + cf_prefix=$LIB_PREFIX + +-if test $cf_cv_shlib_version = cygdll ; then ++case $cf_cv_shlib_version in #(vi ++cygdll|msysdll|mingw) + TINFO_NAME=$TINFO_ARG_SUFFIX + TINFO_SUFFIX=.dll +-fi ++ ;; ++esac + + if test -n "$TINFO_SUFFIX" ; then + case $TINFO_SUFFIX in +@@ -20438,34 +22228,30 @@ + elif test -f $srcdir/$cf_dir/modules; then + + SHARED_LIB= +- LIBS_TO_MAKE= ++ Libs_To_Make= + for cf_item in $cf_LIST_MODELS + do + +- case $cf_item in #(vi +- libtool) #(vi ++ case X$cf_item in #(vi ++ Xlibtool) #(vi + cf_suffix='.la' + cf_depsuf=$cf_suffix + ;; +- normal) #(vi +- cf_suffix='.a' +- cf_depsuf=$cf_suffix +- ;; +- debug) #(vi ++ Xdebug) #(vi + cf_suffix='_g.a' + cf_depsuf=$cf_suffix + ;; +- profile) #(vi ++ Xprofile) #(vi + cf_suffix='_p.a' + cf_depsuf=$cf_suffix + ;; +- shared) #(vi ++ Xshared) #(vi + case $cf_cv_system_name in +- aix[56]*) #(vi ++ aix[5-7]*) #(vi + cf_suffix='.a' + cf_depsuf=$cf_suffix + ;; +- cygwin*) #(vi ++ cygwin*|msys*|mingw*) #(vi + cf_suffix='.dll' + cf_depsuf='.dll.a' + ;; +@@ -20485,83 +22271,88 @@ + ;; + esac + ;; +- *) cf_suffix='.so' ++ *) #(vi ++ cf_suffix='.so' + cf_depsuf=$cf_suffix + ;; + esac ++ ;; ++ *) ++ cf_suffix='.a' ++ cf_depsuf=$cf_suffix ++ ;; + esac + test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}" + test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}" + ++ cf_libname=$cf_dir ++ test "$cf_dir" = c++ && cf_libname=ncurses++ + if test $cf_item = shared ; then +- if test "$cf_cv_do_symlinks" = yes ; then +- case "$cf_cv_shlib_version" in #(vi +- rel) #(vi +- case "$cf_cv_system_name" in #(vi +- darwin*) +- case .${LIB_SUFFIX} in +- .tw*) +- cf_suffix=`echo $cf_suffix | sed 's/^tw//'` +- cf_suffix=tw'.${REL_VERSION}'"$cf_suffix" +- ;; +- .t*) +- cf_suffix=`echo $cf_suffix | sed 's/^t//'` +- cf_suffix=t'.${REL_VERSION}'"$cf_suffix" +- ;; +- .w*) +- cf_suffix=`echo $cf_suffix | sed 's/^w//'` +- cf_suffix=w'.${REL_VERSION}'"$cf_suffix" ++ if test -n "${LIB_SUFFIX}" ++ then ++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` ++ else ++ cf_shared_suffix="$cf_suffix" ++ fi ++ if test "$cf_cv_do_symlinks" = yes ; then ++ cf_version_name= ++ ++ case "$cf_cv_shlib_version" in #(vi ++ rel) #(vi ++ cf_version_name=REL_VERSION + ;; +- *) +- cf_suffix='.${REL_VERSION}'"$cf_suffix" ++ abi) ++ cf_version_name=ABI_VERSION + ;; + esac +- ;; #(vi +- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;; +- esac ++ ++ if test -n "$cf_version_name" ++ then ++ case "$cf_cv_system_name" in #(vi ++ darwin*) ++ # "w", etc? ++ cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix" ++ ;; #(vi ++ *) ++ cf_suffix="$cf_suffix"'.${'$cf_version_name'}' ++ ;; ++ esac ++ fi ++ if test -n "${LIB_SUFFIX}" ++ then ++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'` ++ else ++ cf_shared_suffix="$cf_suffix" ++ fi ++ fi ++ # cygwin needs import library, and has unique naming convention ++ # use autodetected ${cf_prefix} for import lib and static lib, but ++ # use 'cyg' prefix for shared lib. ++ case $cf_cv_shlib_version in #(vi ++ cygdll) #(vi ++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` ++ Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}" ++ continue + ;; +- abi) +- case "$cf_cv_system_name" in #(vi +- darwin*) +- case .${LIB_SUFFIX} in +- .tw*) +- cf_suffix=`echo $cf_suffix | sed 's/^tw//'` +- cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix" +- ;; +- .t*) +- cf_suffix=`echo $cf_suffix | sed 's/^t//'` +- cf_suffix=t'.${ABI_VERSION}'"$cf_suffix" +- ;; +- .w*) +- cf_suffix=`echo $cf_suffix | sed 's/^w//'` +- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix" +- ;; +- *) +- cf_suffix='.${ABI_VERSION}'"$cf_suffix" +- ;; +- esac +- ;; #(vi +- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;; +- esac ++ msysdll) #(vi ++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` ++ Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}" ++ continue ++ ;; ++ mingw) ++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` ++ Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}" ++ continue + ;; + esac + fi +- # cygwin needs import library, and has unique naming convention +- # use autodetected ${cf_prefix} for import lib and static lib, but +- # use 'cyg' prefix for shared lib. +- if test $cf_cv_shlib_version = cygdll ; then +- cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'` +- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}" +- continue +- fi +- fi +- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" ++ Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}" + done + + if test $cf_dir = ncurses ; then + cf_subsets="$LIB_SUBSETS" + cf_r_parts="$cf_subsets" +- cf_liblist="$LIBS_TO_MAKE" ++ cf_liblist="$Libs_To_Make" + + while test -n "$cf_r_parts" + do +@@ -20581,7 +22372,7 @@ + ;; + esac + if test -n "$cf_item"; then +- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" ++ Libs_To_Make="$cf_item $Libs_To_Make" + fi + else + break +@@ -20591,13 +22382,40 @@ + cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` + fi + +- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ ++ if test $cf_dir = c++; then ++ if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then ++ cf_list= ++ for cf_item in $Libs_To_Make ++ do ++ case $cf_item in ++ *.a) ++ ;; ++ *) ++ cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"` ++ ;; ++ esac ++ for cf_test in $cf_list ++ do ++ if test "$cf_test" = "$cf_item" ++ then ++ cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'` ++ cf_item= ++ break ++ fi ++ done ++ test -n "$cf_item" && cf_list="$cf_list $cf_item" ++ done ++ Libs_To_Make="$cf_list" ++ fi ++ fi ++ ++ sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \ + -e "s%@SHARED_LIB@%$SHARED_LIB%" \ + $cf_dir/Makefile >$cf_dir/Makefile.out + mv $cf_dir/Makefile.out $cf_dir/Makefile + + $AWK -f $srcdir/mk-0th.awk \ +- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \ ++ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \ + $srcdir/$cf_dir/modules >>$cf_dir/Makefile + + for cf_subset in $cf_subsets +@@ -20605,34 +22423,47 @@ + cf_subdirs= + for cf_item in $cf_LIST_MODELS + do ++ + echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" + + cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +- case $cf_item in #(vi +- libtool) #(vi ++ CXX_MODEL=$cf_ITEM ++ if test "$CXX_MODEL" = SHARED; then ++ case $cf_cv_shlib_version in #(vi ++ cygdll|msysdll|mingw) #(vi ++ test "x$with_shared_cxx" = xno && test -n "$verbose" && echo " overriding CXX_MODEL to SHARED" 1>&6 ++ ++echo "${as_me:-configure}:22437: testing overriding CXX_MODEL to SHARED ..." 1>&5 ++ ++ with_shared_cxx=yes ++ ;; ++ *) ++ test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL ++ ;; ++ esac ++ fi ++ ++ case X$cf_item in #(vi ++ Xlibtool) #(vi + cf_suffix='.la' + cf_depsuf=$cf_suffix + ;; +- normal) #(vi +- cf_suffix='.a' +- cf_depsuf=$cf_suffix +- ;; +- debug) #(vi ++ Xdebug) #(vi + cf_suffix='_g.a' + cf_depsuf=$cf_suffix + ;; +- profile) #(vi ++ Xprofile) #(vi + cf_suffix='_p.a' + cf_depsuf=$cf_suffix + ;; +- shared) #(vi ++ Xshared) #(vi + case $cf_cv_system_name in +- aix[56]*) #(vi ++ aix[5-7]*) #(vi + cf_suffix='.a' + cf_depsuf=$cf_suffix + ;; +- cygwin*) #(vi ++ cygwin*|msys*|mingw*) #(vi + cf_suffix='.dll' + cf_depsuf='.dll.a' + ;; +@@ -20652,10 +22483,16 @@ + ;; + esac + ;; +- *) cf_suffix='.so' ++ *) #(vi ++ cf_suffix='.so' + cf_depsuf=$cf_suffix + ;; + esac ++ ;; ++ *) ++ cf_suffix='.a' ++ cf_depsuf=$cf_suffix ++ ;; + esac + test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}" + test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}" +@@ -20667,7 +22504,7 @@ + profile) cf_subdir='obj_p' ;; + shared) + case $cf_cv_system_name in #(vi +- cygwin) #(vi ++ cygwin|msys) #(vi + cf_subdir='objects' ;; + *) + cf_subdir='obj_s' ;; +@@ -20688,6 +22525,8 @@ + cf_libname=$TICS_LIB_SUFFIX + ;; + esac ++ elif test $cf_dir = c++ ; then ++ cf_libname=ncurses++$LIB_SUFFIX + else + cf_libname=${cf_libname}$LIB_SUFFIX + fi +@@ -20739,10 +22578,12 @@ + name=${cf_libname}${cf_dir_suffix} \ + traces=$LIB_TRACING \ + MODEL=$cf_ITEM \ ++ CXX_MODEL=$CXX_MODEL \ + model=$cf_subdir \ + prefix=$cf_prefix \ + suffix=$cf_suffix \ + subset=$cf_subset \ ++ driver=$cf_cv_term_driver \ + SymLink="$LN_S" \ + TermlibRoot=$TINFO_NAME \ + TermlibSuffix=$TINFO_SUFFIX \ +@@ -20781,7 +22622,7 @@ + done + fi + +- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >>Makefile ++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >>Makefile + done + + for cf_dir in $SRC_SUBDIRS +@@ -20796,7 +22637,7 @@ + echo 'libs \' >> Makefile + echo 'install.libs \' >> Makefile + echo 'uninstall.libs ::' >> Makefile +- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >> Makefile ++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >> Makefile + ;; + esac + fi +@@ -20819,7 +22660,7 @@ + uninstall.libs \\ + install.$cf_dir \\ + uninstall.$cf_dir :: +- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \$@ ++ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \$@ + CF_EOF + elif test -f $srcdir/$cf_dir/headers; then + cat >> Makefile <> Makefile <> Makefile <>Ada95/src/Makefile + fi +diff -Naur ncurses-5.9/configure.in ncurses-5.9.patch/configure.in +--- ncurses-5.9/configure.in 2011-03-28 02:22:26.000000000 +0200 ++++ ncurses-5.9.patch/configure.in 2014-09-01 16:34:19.469887090 +0200 +@@ -1,5 +1,5 @@ + dnl*************************************************************************** +-dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++dnl Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + dnl * + dnl Permission is hereby granted, free of charge, to any person obtaining a * + dnl copy of this software and associated documentation files (the * +@@ -28,14 +28,14 @@ + dnl + dnl Author: Thomas E. Dickey 1995-on + dnl +-dnl $Id: configure.in,v 1.520 2011/03/28 00:22:26 tom Exp $ ++dnl $Id: configure.in,v 1.578 2014/03/22 22:58:09 tom Exp $ + dnl Process this file with autoconf to produce a configure script. + dnl + dnl See http://invisible-island.net/autoconf/ for additional information. + dnl + dnl --------------------------------------------------------------------------- +-AC_PREREQ(2.13.20020210) +-AC_REVISION($Revision: 1.520 $) ++AC_PREREQ(2.52.20030208) ++AC_REVISION($Revision: 1.578 $) + AC_INIT(ncurses/base/lib_initscr.c) + AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) + +@@ -45,11 +45,7 @@ + CF_WITH_REL_VERSION(NCURSES) + CF_WITH_ABI_VERSION + +-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) +-AC_ARG_WITH(system-type, +-[ --with-system-type=XXX test: override derived host system-type], +-[AC_MSG_WARN(overriding system type to $withval) +- cf_cv_system_name=$withval]) ++CF_WITH_SYSTYPE + + ### Save the given $CFLAGS to allow user-override. + cf_user_CFLAGS="$CFLAGS" +@@ -58,15 +54,22 @@ + CF_CFG_DEFAULTS + + ### Checks for programs. +-AC_PROG_CC +-CF_GCC_VERSION ++AC_ARG_WITH(ada, ++ [ --without-ada suppress check for Ada95, don't build demo], ++ [cf_with_ada=$withval], ++ [cf_with_ada=yes]) ++if test "x$cf_with_ada" = xyes ++then ++ cf_PROG_CC="gnatgcc gcc cc" ++else ++ cf_PROG_CC="gcc cc" ++fi ++ ++CF_PROG_CC($cf_PROG_CC) + + AC_PROG_CPP + AC_PROG_GCC_TRADITIONAL + CF_PROG_CC_C_O(CC) +-AC_ISC_POSIX +-CF_ANSI_CC_REQD +-CF_PROG_EXT + CF_PROG_LDCONFIG + + dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the +@@ -89,14 +92,16 @@ + cf_with_cxx=no; CXX=""; GXX="";])dnl + AC_PROG_CXX + popdef([AC_MSG_ERROR])dnl +- # autoconf 2.5x removed the error - by hardcoding it to g++. ++ # autoconf 2.5x removed the error (hardcoding it to g++, or just blank) + if test "$CXX" = "g++" ; then + AC_PATH_PROG(CXX,g++) + fi +- if test "$CXX" = "g++" ; then +- AC_MSG_WARN(ignoring hardcoded g++) ++ case "x$CXX" in #(vi ++ x|xg++) ++ AC_MSG_WARN([You don't have any C++ compiler, too bad]) + cf_with_cxx=no; CXX=""; GXX=""; +- fi ++ ;; ++ esac + fi + + CF_GXX_VERSION +@@ -116,12 +121,15 @@ + AC_MSG_RESULT($cf_with_cxx_binding) + + AC_MSG_CHECKING(if you want to build with Ada95) +-AC_ARG_WITH(ada, +- [ --without-ada suppress check for Ada95, don't build demo], +- [cf_with_ada=$withval], +- [cf_with_ada=yes]) + AC_MSG_RESULT($cf_with_ada) + ++AC_MSG_CHECKING(if you want to install terminal database) ++AC_ARG_ENABLE(db-install, ++ [ --disable-db-install suppress install of terminal database], ++ [cf_with_db_install=$enableval], ++ [cf_with_db_install=yes]) ++AC_MSG_RESULT($cf_with_db_install) ++ + AC_MSG_CHECKING(if you want to install manpages) + AC_ARG_WITH(manpages, + [ --without-manpages suppress install of manpages], +@@ -131,14 +139,14 @@ + + AC_MSG_CHECKING(if you want to build programs such as tic) + AC_ARG_WITH(progs, +- [ --without-progs suppress build with programs (e.g., tic)], ++ [ --without-progs suppress build/install with programs (e.g., tic)], + [cf_with_progs=$withval], + [cf_with_progs=yes]) + AC_MSG_RESULT($cf_with_progs) + + AC_MSG_CHECKING(if you want to build test-programs) + AC_ARG_WITH(tests, +- [ --without-tests suppress build with test-programs], ++ [ --without-tests suppress build/install with test-programs], + [cf_with_tests=$withval], + [cf_with_tests=yes]) + AC_MSG_RESULT($cf_with_tests) +@@ -168,28 +176,8 @@ + + # if we find pkg-config, check if we should install the ".pc" files. + CF_PKG_CONFIG +- +-if test "$PKG_CONFIG" != no ; then +- AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG) +- +- # Leave this as something that can be overridden in the environment. +- if test -z "$PKG_CONFIG_LIBDIR" ; then +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig +- fi +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then +- AC_ARG_ENABLE(pc-files, +- [ --enable-pc-files generate and install .pc files for pkg-config], +- [enable_pc_files=$enableval], +- [enable_pc_files=no]) +- AC_MSG_RESULT($enable_pc_files) +- else +- AC_MSG_RESULT(no) +- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) +- enable_pc_files=no +- fi +-fi +-AC_SUBST(PKG_CONFIG_LIBDIR) ++CF_WITH_PKG_CONFIG_LIBDIR ++CF_ENABLE_PC_FILES + + AC_MSG_CHECKING(if we should assume mixed-case filenames) + AC_ARG_ENABLE(mixed-case, +@@ -201,8 +189,8 @@ + CF_MIXEDCASE_FILENAMES + else + cf_cv_mixedcase=$enable_mixedcase +- if test "$enable_mixedcase" = "yes" ; then +- AC_DEFINE(MIXEDCASE_FILENAMES) ++ if test "x$enable_mixedcase" = "xyes" ; then ++ AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if tic should assume mixed-case filenames]) + fi + fi + +@@ -215,6 +203,7 @@ + AC_CHECK_TOOL(RANLIB, ranlib, ':') + AC_CHECK_TOOL(LD, ld, ld) + AC_CHECK_TOOL(AR, ar, ar) ++AC_CHECK_TOOL(NM, nm, nm) + CF_AR_FLAGS + + dnl Special option for use by system-builders: the install-prefix is used to +@@ -223,8 +212,8 @@ + AC_MSG_CHECKING(if you have specified an install-prefix) + AC_ARG_WITH(install-prefix, + [ --with-install-prefix prefixes actual install-location ($DESTDIR)], +- [case "$withval" in #(vi +- yes|no) #(vi ++ [case "x$withval" in #(vi ++ xyes|xno) #(vi + ;; + *) DESTDIR="$withval" + ;; +@@ -261,7 +250,7 @@ + [with_shared=$withval], + [with_shared=no]) + AC_MSG_RESULT($with_shared) +-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" ++test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared" + + AC_MSG_CHECKING(if you want to build static libraries) + AC_ARG_WITH(normal, +@@ -269,7 +258,7 @@ + [with_normal=$withval], + [with_normal=yes]) + AC_MSG_RESULT($with_normal) +-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal" ++test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal" + + AC_MSG_CHECKING(if you want to build debug libraries) + AC_ARG_WITH(debug, +@@ -277,7 +266,7 @@ + [with_debug=$withval], + [with_debug=yes]) + AC_MSG_RESULT($with_debug) +-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug" ++test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug" + + AC_MSG_CHECKING(if you want to build profiling libraries) + AC_ARG_WITH(profile, +@@ -285,10 +274,21 @@ + [with_profile=$withval], + [with_profile=no]) + AC_MSG_RESULT($with_profile) +-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" ++test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile" + + fi + ++if test "X$cf_with_cxx_binding" != Xno; then ++if test "x$with_shared" = "xyes"; then ++AC_MSG_CHECKING(if you want to build C++ shared libraries) ++AC_ARG_WITH(cxx-shared, ++ [ --with-cxx-shared generate C++ shared-libraries], ++ [with_shared_cxx=$withval], ++ [with_shared_cxx=no]) ++AC_MSG_RESULT($with_shared_cxx) ++fi ++fi ++ + ############################################################################### + + AC_MSG_CHECKING(for specified models) +@@ -321,12 +321,11 @@ + LIB_DIR=../lib + LIB_2ND=../../lib + +-CF_LIB_PREFIX(cf_prefix) +-LIB_PREFIX=$cf_prefix +-AC_SUBST(LIB_PREFIX) ++CF_WITH_LIB_PREFIX(cf_prefix) + + LIB_SUFFIX= + AC_SUBST(LIB_SUFFIX) ++CF_PATHSEP + + ############################################################################### + +@@ -354,21 +353,21 @@ + [with_dlsym=$withval], + [with_dlsym=yes]) + AC_MSG_RESULT($with_dlsym) +- if test "$with_dlsym" = yes ; then ++ if test "x$with_dlsym" = xyes ; then + CF_FUNC_DLSYM +- if test "$with_gpm" != yes ; then ++ if test "x$with_gpm" != xyes ; then + CF_VERBOSE(assuming soname for gpm is $with_gpm) + cf_cv_gpm_soname="$with_gpm" + else + CF_LIB_SONAME([#include ],[if (Gpm_Open(0,0)) Gpm_Close();],gpm) + fi +- test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname") ++ test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[Define as needed to set the gpm share library soname]) + SHLIB_LIST="-ldl $SHLIB_LIST" + else + SHLIB_LIST="-lgpm $SHLIB_LIST" + CF_ADD_LIB(gpm,TEST_LIBS) + fi +- AC_DEFINE(HAVE_LIBGPM) ++ AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library]) + CF_CHECK_GPM_WGETCH + fi + +@@ -378,13 +377,13 @@ + + if test X"$CC_G_OPT" = X"" ; then + CC_G_OPT='-g' +- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' ++ test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT='' + fi + AC_SUBST(CC_G_OPT) + + if test X"$CXX_G_OPT" = X"" ; then + CXX_G_OPT='-g' +- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' ++ test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT='' + fi + AC_SUBST(CXX_G_OPT) + +@@ -411,6 +410,8 @@ + ;; + esac + ++# we will build libraries one-level down. ++rel_builddir=.. + CF_SHARED_OPTS + if test "$CC_SHARED_OPTS" = "unknown"; then + for model in $cf_list_models; do +@@ -453,9 +454,9 @@ + esac + AC_SUBST(TERMINFO_SRC) + +-CF_PATHSEP ++NCURSES_USE_DATABASE=0 + if test "$use_database" != no ; then +- AC_DEFINE(USE_DATABASE) ++ NCURSES_USE_DATABASE=1 + + AC_MSG_CHECKING(which terminfo source-file will be installed) + AC_ARG_WITH(database, +@@ -471,6 +472,7 @@ + else + with_hashed_db=no + fi ++AC_SUBST(NCURSES_USE_DATABASE) + + AC_MSG_CHECKING(for list of fallback descriptions) + AC_ARG_WITH(fallbacks, +@@ -494,6 +496,26 @@ + WHICH_XTERM=$with_xterm_new + AC_SUBST(WHICH_XTERM) + ++AC_MSG_CHECKING(if xterm backspace sends BS or DEL) ++AC_ARG_WITH(xterm-kbs, ++ [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL], ++ [with_xterm_kbs=$withval], ++ [with_xterm_kbs=BS]) ++case x$with_xterm_kbs in ++xyes|xno|xBS|xbs|x8) ++ with_xterm_kbs=BS ++ ;; ++xDEL|xdel|x127) ++ with_xterm_kbs=DEL ++ ;; ++*) ++ with_xterm_kbs=$withval ++ ;; ++esac ++AC_MSG_RESULT($with_xterm_kbs) ++XTERM_KBS=$with_xterm_kbs ++AC_SUBST(XTERM_KBS) ++ + MAKE_TERMINFO= + if test "$use_database" = no ; then + TERMINFO="${datadir}/terminfo" +@@ -507,7 +529,7 @@ + DATADIR/terminfo, + ${datadir}/terminfo) + AC_MSG_RESULT($TERMINFO_DIRS) +-test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS") ++test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist]) + + AC_MSG_CHECKING(for default terminfo directory) + CF_WITH_PATH(default-terminfo-dir, +@@ -516,7 +538,7 @@ + DATADIR/terminfo, + ${datadir}/terminfo) + AC_MSG_RESULT($TERMINFO) +-AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO") ++AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[Define to set the default terminal database path]) + + fi + +@@ -543,7 +565,7 @@ + [with_big_core=no], + [with_big_core=no])]) + AC_MSG_RESULT($with_big_core) +-test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE) ++test "x$with_big_core" = "xyes" && AC_DEFINE(HAVE_BIG_CORE,1,[Define to 1 if machine has ample memory for tic]) + + ### 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 +@@ -556,7 +578,7 @@ + AC_MSG_RESULT($with_big_strings) + + USE_BIG_STRINGS=0 +-test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1 ++test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1 + AC_SUBST(USE_BIG_STRINGS) + + ### use option --enable-termcap to compile in the termcap fallback support +@@ -567,46 +589,48 @@ + [with_termcap=no]) + AC_MSG_RESULT($with_termcap) + +-if test "$with_termcap" != "yes" ; then ++NCURSES_USE_TERMCAP=0 ++if test "x$with_termcap" != "xyes" ; then + if test "$use_database" = no ; then + if test -z "$with_fallback" ; then + AC_ERROR(You have disabled the database w/o specifying fallbacks) + fi + fi +- AC_DEFINE(PURE_TERMINFO) ++ AC_DEFINE(PURE_TERMINFO,1,[Define to 1 if we should support only terminfo]) + else + +-if test "$with_ticlib" != no ; then +- AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined) +-fi ++ if test "$with_ticlib" != no ; then ++ AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined) ++ fi + +-AC_DEFINE(USE_TERMCAP) +-AC_MSG_CHECKING(for list of termcap files) +-CF_WITH_PATHLIST(termpath, +- [ --with-termpath=XXX specify list of termcap files], +- TERMPATH, +- /etc/termcap:/usr/share/misc/termcap) +-AC_MSG_RESULT($TERMPATH) +-test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH") +- +-### use option --enable-getcap to use a hacked getcap for reading termcaps +-AC_MSG_CHECKING(if fast termcap-loader is needed) +-AC_ARG_ENABLE(getcap, +- [ --enable-getcap fast termcap load, no xrefs to terminfo], +- [with_getcap=$enableval], +- [with_getcap=no]) +-AC_MSG_RESULT($with_getcap) +-test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP) +- +-AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo) +-AC_ARG_ENABLE(getcap-cache, +- [ --enable-getcap-cache cache translated termcaps in ~/.terminfo], +- [with_getcap_cache=$enableval], +- [with_getcap_cache=no]) +-AC_MSG_RESULT($with_getcap_cache) +-test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE) ++ NCURSES_USE_TERMCAP=1 ++ AC_MSG_CHECKING(for list of termcap files) ++ CF_WITH_PATHLIST(termpath, ++ [ --with-termpath=XXX specify list of termcap files], ++ TERMPATH, ++ /etc/termcap:/usr/share/misc/termcap) ++ AC_MSG_RESULT($TERMPATH) ++ test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[Define to set the termcap searchlist]) ++ ++ ### use option --enable-getcap to use a hacked getcap for reading termcaps ++ AC_MSG_CHECKING(if fast termcap-loader is needed) ++ AC_ARG_ENABLE(getcap, ++ [ --enable-getcap fast termcap load, no xrefs to terminfo], ++ [with_getcap=$enableval], ++ [with_getcap=no]) ++ AC_MSG_RESULT($with_getcap) ++ test "x$with_getcap" = "xyes" && AC_DEFINE(USE_GETCAP,1,[Define to 1 to use fast termcap-loader]) ++ ++ AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo) ++ AC_ARG_ENABLE(getcap-cache, ++ [ --enable-getcap-cache cache translated termcaps in ~/.terminfo], ++ [with_getcap_cache=$enableval], ++ [with_getcap_cache=no]) ++ AC_MSG_RESULT($with_getcap_cache) ++ test "x$with_getcap_cache" = "xyes" && AC_DEFINE(USE_GETCAP_CACHE,1,[Define to 1 if translated termcap should be stored in $HOME/.terminfo]) + + fi ++AC_SUBST(NCURSES_USE_TERMCAP) + + ### Use option --disable-home-terminfo to completely remove ~/.terminfo + AC_MSG_CHECKING(if ~/.terminfo is wanted) +@@ -615,7 +639,7 @@ + [with_home_terminfo=$enableval], + [with_home_terminfo=yes]) + AC_MSG_RESULT($with_home_terminfo) +-test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO) ++test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted]) + + AC_MSG_CHECKING(if you want to use restricted environment when running as root) + AC_ARG_ENABLE(root-environ, +@@ -623,7 +647,7 @@ + [with_root_environ=$enableval], + [with_root_environ=yes]) + AC_MSG_RESULT($with_root_environ) +-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON) ++test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user]) + + ### Use option --enable-symlinks to make tic use symlinks, not hard links + ### to reduce storage requirements for the terminfo database. +@@ -634,7 +658,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 ++if test "x$ac_cv_func_symlink" = xyes ; then + AC_MSG_CHECKING(if tic should use symbolic links) + AC_ARG_ENABLE(symlinks, + [ --enable-symlinks make tic use symbolic links not hard links], +@@ -647,7 +671,7 @@ + # no reason to make this choice optional - use the hard links. + if test "$with_symlinks" = no ; then + AC_MSG_CHECKING(if tic should use hard links) +- if test "$ac_cv_func_link" = yes ; then ++ if test "x$ac_cv_func_link" = xyes ; then + with_links=yes + else + with_links=no +@@ -655,8 +679,8 @@ + AC_MSG_RESULT($with_links) + fi + +-test "$with_links" = yes && AC_DEFINE(USE_LINKS) +-test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS) ++test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks should be used in terminfo database]) ++test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database]) + + ### use option --enable-broken-linker to force on use of broken-linker support + AC_MSG_CHECKING(if you want broken-linker support code) +@@ -667,13 +691,13 @@ + AC_MSG_RESULT($with_broken_linker) + + BROKEN_LINKER=0 +-if test "$with_broken_linker" = yes ; then +- AC_DEFINE(BROKEN_LINKER) ++if test "x$with_broken_linker" = xyes ; then ++ AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules]) + BROKEN_LINKER=1 + elif test "$DFT_LWR_MODEL" = shared ; then + case $cf_cv_system_name in #(vi + cygwin*) +- AC_DEFINE(BROKEN_LINKER) ++ AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules]) + BROKEN_LINKER=1 + CF_VERBOSE(cygwin linker is broken anyway) + ;; +@@ -688,7 +712,7 @@ + [with_bsdpad=$enableval], + [with_bsdpad=no]) + AC_MSG_RESULT($with_bsdpad) +-test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS) ++test "x$with_bsdpad" = xyes && AC_DEFINE(BSD_TPUTS,1,[Define to 1 to recognize BSD-style prefix padding]) + + ### use option --enable-widec to turn on use of wide-character support + NCURSES_CH_T=chtype +@@ -718,22 +742,17 @@ + [with_widec=$enableval], + [with_widec=no]) + AC_MSG_RESULT($with_widec) +-if test "$with_widec" = yes ; then ++if test "x$with_widec" = xyes ; then + LIB_SUFFIX="w${LIB_SUFFIX}" +- AC_DEFINE(USE_WIDEC_SUPPORT) ++ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code]) ++ AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code]) + +- case "$CFLAGS $CPPFLAGS" in #(vi +- *-D_XOPEN_SOURCE=500) #(vi +- ;; +- *) +- CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) +- ;; +- esac ++ CF_CHECK_WCHAR_H + + # with_overwrite=no + NCURSES_CH_T=cchar_t + AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs) +- if test "$ac_cv_func_putwc" != yes ; then ++ if test "x$ac_cv_func_putwc" != xyes ; then + CF_UTF8_LIB + if test "$cf_cv_utf8_lib" != no ; then + NCURSES_LIBUTF8=1 +@@ -744,7 +763,7 @@ + CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) + + if test "$NCURSES_MBSTATE_T" != 0; then +- AC_DEFINE(NEED_MBSTATE_T_DEF) ++ AC_DEFINE(NEED_MBSTATE_T_DEF,1,[Define to 1 if we must declare mbstate_t]) + fi + fi + AC_SUBST(NCURSES_CH_T) +@@ -775,7 +794,7 @@ + [with_lp64=$default_with_lp64]) + AC_MSG_RESULT($with_lp64) + +-if test "$with_lp64" = yes ; then ++if test "x$with_lp64" = xyes ; then + cf_cv_enable_lp64=1 + else + cf_cv_enable_lp64=0 +@@ -792,7 +811,7 @@ + [with_tparm_varargs=yes]) + AC_MSG_RESULT($with_tparm_varargs) + NCURSES_TPARM_VARARGS=0 +-test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1 ++test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1 + AC_SUBST(NCURSES_TPARM_VARARGS) + + ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw +@@ -859,6 +878,15 @@ + AC_MSG_RESULT($NCURSES_CCHARW_MAX) + AC_SUBST(NCURSES_CCHARW_MAX) + ++### use option --with-tparm-arg to override tparm's argument type ++AC_MSG_CHECKING(for type of tparm args) ++AC_ARG_WITH(tparm-arg, ++ [ --with-tparm-arg=TYPE override parameter type of tparm], ++ [NCURSES_TPARM_ARG="$withval"], ++ [NCURSES_TPARM_ARG=long]) ++AC_MSG_RESULT($NCURSES_TPARM_ARG) ++AC_SUBST(NCURSES_TPARM_ARG) ++ + ### Enable compiling-in rcs id's + AC_MSG_CHECKING(if RCS identifiers should be compiled-in) + AC_ARG_WITH(rcs-ids, +@@ -866,7 +894,7 @@ + [with_rcs_ids=$withval], + [with_rcs_ids=no]) + AC_MSG_RESULT($with_rcs_ids) +-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) ++test "x$with_rcs_ids" = xyes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 to compile-in RCS identifiers]) + + ############################################################################### + CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ]) +@@ -881,16 +909,19 @@ + [with_ext_funcs=$enableval], + [with_ext_funcs=yes]) + AC_MSG_RESULT($with_ext_funcs) +-if test "$with_ext_funcs" = yes ; then ++if test "x$with_ext_funcs" = xyes ; then + NCURSES_EXT_FUNCS=1 +- AC_DEFINE(HAVE_CURSES_VERSION) +- AC_DEFINE(HAVE_HAS_KEY) +- AC_DEFINE(HAVE_RESIZETERM) +- AC_DEFINE(HAVE_RESIZE_TERM) +- AC_DEFINE(HAVE_TERM_ENTRY_H) +- AC_DEFINE(HAVE_USE_DEFAULT_COLORS) +- AC_DEFINE(HAVE_WRESIZE) +- AC_DEFINE(NCURSES_EXT_FUNCS) ++ AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS,1,[Define to 1 to enable assume_default_colors() function]) ++ AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 to enable curses_version() function]) ++ AC_DEFINE(HAVE_HAS_KEY,1,[Define to 1 to enable has_key() function]) ++ AC_DEFINE(HAVE_RESIZETERM,1,[Define to 1 to enable resizeterm() function]) ++ AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function]) ++ AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function]) ++ AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function]) ++ AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function]) ++ AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function]) ++ AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function]) ++ AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 to enable ncurses extended functions]) + GENERATED_EXT_FUNCS=generated + else + NCURSES_EXT_FUNCS=0 +@@ -905,9 +936,9 @@ + [with_sp_funcs=$enableval], + [with_sp_funcs=no]) + AC_MSG_RESULT($with_sp_funcs) +-if test "$with_sp_funcs" = yes ; then ++if test "x$with_sp_funcs" = xyes ; then + NCURSES_SP_FUNCS=1 +- AC_DEFINE(NCURSES_SP_FUNCS) ++ AC_DEFINE(NCURSES_SP_FUNCS,1,[Define to 1 to enable experimental SCREEN-extensions]) + GENERATED_SP_FUNCS=generated + else + NCURSES_SP_FUNCS=0 +@@ -922,9 +953,9 @@ + [with_term_driver=$enableval], + [with_term_driver=no]) + AC_MSG_RESULT($with_term_driver) +-if test "$with_term_driver" = yes ; then +- AC_DEFINE(USE_TERM_DRIVER) +- if test "$with_sp_funcs" != yes ; then ++if test "x$with_term_driver" = xyes ; then ++ AC_DEFINE(USE_TERM_DRIVER,1,[Define to 1 to enable experimental terminal-driver]) ++ if test "x$with_sp_funcs" != xyes ; then + AC_MSG_ERROR(The term-driver option relies upon sp-funcs) + fi + fi +@@ -937,7 +968,7 @@ + [with_ext_const=no]) + AC_MSG_RESULT($with_ext_const) + NCURSES_CONST='/*nothing*/' +-if test "$with_ext_const" = yes ; then ++if test "x$with_ext_const" = xyes ; then + NCURSES_CONST=const + fi + AC_SUBST(NCURSES_CONST) +@@ -950,15 +981,15 @@ + [with_ext_colors=no]) + AC_MSG_RESULT($with_ext_colors) + NCURSES_EXT_COLORS=0 +-if test "$with_ext_colors" = yes ; then +- if test "$with_widec" != yes ; then ++if test "x$with_ext_colors" = xyes ; then ++ if test "x$with_widec" != xyes ; then + AC_MSG_ERROR(This option applies only to wide-character library) + else + # cannot be ABI 5 since it changes sizeof(cchar_t) + CF_NCURSES_ABI_6 + fi + NCURSES_EXT_COLORS=1 +- AC_DEFINE(NCURSES_EXT_COLORS) ++ AC_DEFINE(NCURSES_EXT_COLORS,1,[Define to 1 to compile for 256-color support]) + fi + AC_SUBST(NCURSES_EXT_COLORS) + +@@ -970,7 +1001,7 @@ + [with_ext_mouse=no]) + AC_MSG_RESULT($with_ext_mouse) + NCURSES_MOUSE_VERSION=1 +-if test "$with_ext_mouse" = yes ; then ++if test "x$with_ext_mouse" = xyes ; then + NCURSES_MOUSE_VERSION=2 + CF_NCURSES_ABI_6 + fi +@@ -982,7 +1013,7 @@ + [with_no_padding=$enableval], + [with_no_padding=$with_ext_funcs]) + AC_MSG_RESULT($with_no_padding) +-test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING) ++test "x$with_no_padding" = xyes && AC_DEFINE(NCURSES_NO_PADDING,1,[Define to 1 to compile with $NCURSES_NO_PADDING code]) + + AC_CHECK_SIZEOF([signed char], 0) + if test "$ac_cv_sizeof_signed_char" = 1 ; then +@@ -996,7 +1027,7 @@ + [with_signed_char=$enableval], + [with_signed_char=no]) + AC_MSG_RESULT($with_signed_char) +-test "$with_signed_char" != yes && NCURSES_SBOOL="char" ++test "x$with_signed_char" != xyes && NCURSES_SBOOL="char" + AC_SUBST(NCURSES_SBOOL) + + ### use option --enable-sigwinch to turn on use of SIGWINCH logic +@@ -1006,7 +1037,7 @@ + [with_sigwinch=$enableval], + [with_sigwinch=$with_ext_funcs]) + AC_MSG_RESULT($with_sigwinch) +-test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH) ++test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler]) + + ### use option --enable-tcap-names to allow user to define new capabilities + AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap) +@@ -1016,7 +1047,7 @@ + [with_tcap_names=$with_ext_funcs]) + AC_MSG_RESULT($with_tcap_names) + NCURSES_XNAMES=0 +-test "$with_tcap_names" = yes && NCURSES_XNAMES=1 ++test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1 + AC_SUBST(NCURSES_XNAMES) + + ############################################################################### +@@ -1035,7 +1066,7 @@ + [ --enable-hard-tabs compile with hard-tabs code],, + [enable_hard_tabs=$with_develop]) + AC_MSG_RESULT($enable_hard_tabs) +-test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS) ++test "x$enable_hard_tabs" = xyes && AC_DEFINE(USE_HARD_TABS,1,[Define to 1 to compile with hard-tabs code]) + + ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize + AC_MSG_CHECKING(if you want limited support for xmc) +@@ -1043,7 +1074,7 @@ + [ --enable-xmc-glitch compile with support for xmc (magic-cookie)],, + [enable_xmc_glitch=$with_develop]) + AC_MSG_RESULT($enable_xmc_glitch) +-test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT) ++test "x$enable_xmc_glitch" = xyes && AC_DEFINE(USE_XMC_SUPPORT,1,[Define to 1 to compile with support for xmc (magic-cookie)]) + + ############################################################################### + # These are just experimental, probably should not be in a package: +@@ -1055,7 +1086,7 @@ + [with_assumed_color=$enableval], + [with_assumed_color=yes]) + AC_MSG_RESULT($with_assumed_color) +-test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR) ++test "x$with_assumed_color" = xyes && AC_DEFINE(USE_ASSUMED_COLOR,1,[Define to 1 to assume things about default-colors]) + + ### use option --enable-hashmap to turn on use of hashmap scrolling logic + AC_MSG_CHECKING(if you want hashmap scrolling-optimization code) +@@ -1064,7 +1095,7 @@ + [with_hashmap=$enableval], + [with_hashmap=yes]) + AC_MSG_RESULT($with_hashmap) +-test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP) ++test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization]) + + ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment + AC_MSG_CHECKING(if you want colorfgbg code) +@@ -1073,7 +1104,7 @@ + [with_colorfgbg=$enableval], + [with_colorfgbg=no]) + AC_MSG_RESULT($with_colorfgbg) +-test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG) ++test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code]) + + ### use option --enable-interop to turn on use of bindings used for interop + AC_MSG_CHECKING(if you want interop bindings) +@@ -1084,7 +1115,7 @@ + AC_MSG_RESULT($with_exp_interop) + + NCURSES_INTEROP_FUNCS=0 +-test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1 ++test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1 + AC_SUBST(NCURSES_INTEROP_FUNCS) + + # This is still experimental (20080329), but should ultimately be moved to +@@ -1099,8 +1130,8 @@ + [use_pthreads_eintr=$enableval], + [use_pthreads_eintr=no]) + AC_MSG_RESULT($use_pthreads_eintr) +- if test $use_pthreads_eintr = yes ; then +- AC_DEFINE(USE_PTHREADS_EINTR) ++ if test "x$use_pthreads_eintr" = xyes ; then ++ AC_DEFINE(USE_PTHREADS_EINTR,1,[Define to 1 to enable EINTR in wgetch with pthreads]) + fi]) + + AC_MSG_CHECKING(if you want to use weak-symbols for pthreads) +@@ -1109,22 +1140,22 @@ + [use_weak_symbols=$enableval], + [use_weak_symbols=no]) + AC_MSG_RESULT($use_weak_symbols) +- if test "$use_weak_symbols" = yes ; then ++ if test "x$use_weak_symbols" = xyes ; then + CF_WEAK_SYMBOLS + else + cf_cv_weak_symbols=no + fi + +- if test $cf_cv_weak_symbols = yes ; then +- AC_DEFINE(USE_WEAK_SYMBOLS) ++ if test "x$cf_cv_weak_symbols" = xyes ; then ++ AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads]) + fi + fi + + PTHREAD= +-if test "$with_pthread" = "yes" ; then +- AC_DEFINE(USE_PTHREADS) ++if test "x$with_pthread" = "xyes" ; then ++ AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use pthreads feature]) + enable_reentrant=yes +- if test $cf_cv_weak_symbols = yes ; then ++ if test "x$cf_cv_weak_symbols" = xyes ; then + PTHREAD=-lpthread + fi + fi +@@ -1140,19 +1171,29 @@ + [with_reentrant=$enableval], + [with_reentrant=no]) + AC_MSG_RESULT($with_reentrant) +-if test "$with_reentrant" = yes ; then ++if test "x$with_reentrant" = xyes ; 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 "x$cf_cv_weak_symbols" = xyes ; then + CF_REMOVE_LIB(LIBS,$LIBS,pthread) + CF_ADD_LIB(pthread,TEST_LIBS) + CF_ADD_LIB(pthread,TEST_LIBS2) + else +- LIB_SUFFIX="t${LIB_SUFFIX}" ++ # when not using weak symbols but with_reentrant, ++ # add 't' to the library suffix on all platforms ++ # except cygwin, where we only do that if ALSO ++ # compiling with full thread support. ++ case "$host" in ++ *cygwin* | *msys*) ++ if test "$with_pthread" = "yes" ; then ++ LIB_SUFFIX="t${LIB_SUFFIX}" ++ fi ;; ++ * ) LIB_SUFFIX="t${LIB_SUFFIX}" ;; ++ esac + fi +- AC_DEFINE(USE_REENTRANT) ++ AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use experimental reentrant feature]) + CF_NCURSES_ABI_6 + else + cf_cv_enable_reentrant=0 +@@ -1177,7 +1218,7 @@ + NCURSES_WRAP_PREFIX=_nc_ + fi + AC_SUBST(NCURSES_WRAP_PREFIX) +-AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX") ++AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ prefix]) + + AC_MSG_CHECKING(if you want experimental safe-sprintf code) + AC_ARG_ENABLE(safe-sprintf, +@@ -1185,7 +1226,7 @@ + [with_safe_sprintf=$enableval], + [with_safe_sprintf=no]) + AC_MSG_RESULT($with_safe_sprintf) +-test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF) ++test "x$with_safe_sprintf" = xyes && AC_DEFINE(USE_SAFE_SPRINTF,1,[Define to 1 to compile with experimental safe-sprintf code]) + + ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic + # when hashmap is used scroll hints are useless +@@ -1196,7 +1237,7 @@ + [with_scroll_hints=$enableval], + [with_scroll_hints=yes]) + AC_MSG_RESULT($with_scroll_hints) +-test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS) ++test "x$with_scroll_hints" = xyes && AC_DEFINE(USE_SCROLL_HINTS,1,[Define to 1 to compile without scroll-hints code]) + fi + + AC_MSG_CHECKING(if you want experimental wgetch-events code) +@@ -1205,25 +1246,20 @@ + [with_wgetch_events=$enableval], + [with_wgetch_events=no]) + AC_MSG_RESULT($with_wgetch_events) +-test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS) ++test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with experimental wgetch-events code]) + + ############################################################################### + CF_HELP_MESSAGE(Testing/development Options:) + + ### use option --disable-echo to suppress full display compiling commands +-AC_MSG_CHECKING(if you want to display full commands during build) +-AC_ARG_ENABLE(echo, +- [ --enable-echo build: display "compiling" commands (default)], +- [with_echo=$enableval], +- [with_echo=yes]) +-if test "$with_echo" = yes; then ++CF_DISABLE_ECHO ++if test "x$enable_echo" = xyes; then + ECHO_LINK= + else + ECHO_LINK='@ echo linking $@ ... ;' + test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" + test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent" + fi +-AC_MSG_RESULT($with_echo) + AC_SUBST(ECHO_LINK) + + ### use option --enable-warnings to turn on all gcc warnings +@@ -1235,12 +1271,13 @@ + + if test "x$with_warnings" = "xyes"; then + CF_ADD_ADAFLAGS(-gnatg) +- CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum) +- if test "$cf_with_cxx" = yes ; then ++ CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum) ++ if test "x$cf_with_cxx" = xyes ; then + CF_GXX_WARNINGS(Wno-unused) + fi + fi + CF_GCC_ATTRIBUTES ++CF_ENABLE_STRING_HACKS + + ### use option --enable-assertions to turn on generation of assertion code + AC_MSG_CHECKING(if you want to enable runtime assertions) +@@ -1253,7 +1290,6 @@ + then + if test "$with_assertions" = no + then +- AC_DEFINE(NDEBUG) + CPPFLAGS="$CPPFLAGS -DNDEBUG" + else + CF_ADD_ADAFLAGS(-gnata) +@@ -1262,17 +1298,17 @@ + + ### use option --disable-leaks to suppress "permanent" leaks, for testing + CF_DISABLE_LEAKS +-AC_DEFINE(HAVE_NC_ALLOC_H) ++AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header]) + + ### use option --enable-expanded to generate certain macros as functions + AC_ARG_ENABLE(expanded, + [ --enable-expanded test: generate functions for certain macros], +- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)]) ++ [test "x$enableval" = xyes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 to generate functions for certain macros])]) + + ### use option --disable-macros to suppress macros in favor of functions + AC_ARG_ENABLE(macros, + [ --disable-macros test: use functions rather than macros], +- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)]) ++ [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 to use functions rather than macros])]) + + # Normally we only add trace() to the debug-library. Allow this to be + # extended to all models of the ncurses library: +@@ -1290,7 +1326,7 @@ + [cf_with_trace=$cf_all_traces]) + AC_MSG_RESULT($cf_with_trace) + +-if test "$cf_with_trace" = yes ; then ++if test "x$cf_with_trace" = xyes ; then + LIB_TRACING=all + ADA_TRACE=TRUE + CF_ADD_CFLAGS(-DTRACE) +@@ -1307,15 +1343,15 @@ + ;; + *) + AC_CHECK_FUNC(gettimeofday, +- AC_DEFINE(HAVE_GETTIMEOFDAY),[ ++ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[ + + AC_CHECK_LIB(bsd, gettimeofday, +- AC_DEFINE(HAVE_GETTIMEOFDAY) ++ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]) + CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday + ;; + esac + +-CF_MATH_LIB(MATH_LIB,sin(x)) ++CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) + AC_SUBST(MATH_LIB) + + ### Checks for header files. +@@ -1344,9 +1380,11 @@ + wctype.h \ + ) + ++CF_GETOPT_HEADER ++ + # check for ISC (this may also define _POSIX_SOURCE) + # Note: even non-Posix ISC needs to declare fd_set +-if test "$ISC" = yes ; then ++if test "x$ISC" = xyes ; then + AC_CHECK_LIB(cposix,main) + AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()' + fi +@@ -1393,10 +1431,12 @@ + getttynam \ + issetugid \ + poll \ ++putenv \ + remove \ + select \ + setbuf \ + setbuffer \ ++setenv \ + setvbuf \ + sigaction \ + sigvec \ +@@ -1406,7 +1446,7 @@ + times \ + vsnprintf \ + ) +-if test "$with_getcap" = "yes" ; then ++if test "x$with_getcap" = "xyes" ; then + CF_CGETENT + fi + +@@ -1421,12 +1461,12 @@ + CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0) + + dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS +-if test "$cross_compiling" = yes ; then ++if test "x$cross_compiling" = xyes ; then + AC_MSG_WARN(cross compiling: assume setvbuf params not reversed) + else + AC_FUNC_SETVBUF_REVERSED + fi +-AC_TYPE_SIGNAL ++AC_CHECK_TYPE(intptr_t, long) + CF_TYPE_SIGACTION + CF_SIZECHANGE + CF_FUNC_MEMMOVE +@@ -1437,9 +1477,9 @@ + # special check for test/ditto.c + CF_FUNC_OPENPTY + if test "$cf_cv_func_openpty" != no ; then +- AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>) +- AC_DEFINE(USE_XTERM_PTY) +- if test "$cf_cv_lib_util" = yes ; then ++ AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function]) ++ AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface]) ++ if test "x$cf_cv_lib_util" = xyes ; then + CF_ADD_LIB(util,TEST_LIBS) + fi + fi +@@ -1447,7 +1487,7 @@ + AC_SUBST(TEST_LIBS2) + + if test "$with_hashed_db" != no ; then +- AC_DEFINE(USE_HASHED_DB) ++ AC_DEFINE(USE_HASHED_DB,1,[Define to 1 if we should build terminfo in hashed database]) + CF_HASHED_DB($with_hashed_db) + fi + +@@ -1478,50 +1518,14 @@ + ;; + esac + +- AC_CHECK_HEADERS(iostream typeinfo) +- +- if test x"$ac_cv_header_iostream" = xyes ; then +- AC_MSG_CHECKING(if iostream uses std-namespace) +- AC_TRY_COMPILE([ +-#include +-using std::endl; +-using std::cerr;],[ +-cerr << "testing" << endl; +-],[cf_iostream_namespace=yes],[cf_iostream_namespace=no]) +- AC_MSG_RESULT($cf_iostream_namespace) +- if test "$cf_iostream_namespace" = yes ; then +- AC_DEFINE(IOSTREAM_NAMESPACE) +- fi +- fi +- ++ AC_CHECK_HEADERS(typeinfo) ++ CF_CXX_IOSTREAM_NAMESPACE + CF_BOOL_DECL + CF_BOOL_SIZE + CF_ETIP_DEFINES + CF_CPP_PARAM_INIT + CF_CPP_STATIC_CAST +- +- CXX_AR='$(AR)' +- CXX_ARFLAGS='$(ARFLAGS)' +- case $cf_cv_system_name in #(vi +- irix*) #(vi +- if test "$GXX" != yes ; then +- CXX_AR='$(CXX)' +- CXX_ARFLAGS='-ar -o' +- fi +- ;; +- sco3.2v5*) #(vi +- CXXLDFLAGS="-u main" +- ;; +- solaris2*) +- if test "$GXX" != yes ; then +- CXX_AR='$(CXX)' +- CXX_ARFLAGS='-xar -o' +- fi +- ;; +- esac +- AC_SUBST(CXXLDFLAGS) +- AC_SUBST(CXX_AR) +- AC_SUBST(CXX_ARFLAGS) ++ CF_CXX_AR_FLAGS + else + cf_cxx_library=no + cf_cv_builtin_bool=1 +@@ -1593,20 +1597,9 @@ + dnl At the moment we support no other Ada95 compiler. + if test "$cf_with_ada" != "no" ; then + CF_PROG_GNAT +- if test "$cf_cv_prog_gnat_correct" = yes; then ++ if test "x$cf_cv_prog_gnat_correct" = xyes; then + CF_ADD_ADAFLAGS(-gnatpn) +- +- # make ADAFLAGS consistent with CFLAGS +- case "$CFLAGS" in +- *-g*) +- CF_ADD_ADAFLAGS(-g) +- ;; +- esac +- case "$CFLAGS" in +- *-O*) +- CF_ADD_ADAFLAGS(-O3) +- ;; +- esac ++ CF_FIXUP_ADAFLAGS + + CF_GNAT_GENERICS + CF_GNAT_SIGINT +@@ -1627,6 +1620,11 @@ + cf_with_ada=no + fi + ++# do this "late" to avoid conflict with header-checks ++if test "x$with_widec" = xyes ; then ++ AC_CHECK_SIZEOF(wchar_t) ++fi ++ + ### Construct the ncurses library-subsets, if any, from this set of keywords: + ### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar + ### +@@ -1640,7 +1638,7 @@ + AC_MSG_CHECKING(for library subsets) + LIB_SUBSETS= + +-if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then ++if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then + LIB_SUBSETS="${LIB_SUBSETS}ticlib" + if test "$with_ticlib" != no ; then + LIB_SUBSETS="${LIB_SUBSETS} " +@@ -1650,7 +1648,7 @@ + fi + + LIB_SUBSETS="${LIB_SUBSETS}termlib" +-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" ++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" + + if test "$with_termlib" != no ; then + LIB_SUBSETS="${LIB_SUBSETS} " +@@ -1674,8 +1672,8 @@ + esac + fi + +-test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" +-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" ++test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" ++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" + + AC_MSG_RESULT($LIB_SUBSETS) + +@@ -1699,20 +1697,24 @@ + AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj") + AC_MSG_RESULT($DFT_OBJ_SUBDIR) + +-# libtool thinks it can make c++ shared libraries (perhaps only g++) +-if test "$cf_with_cxx" = yes ; then ++if test "x$cf_with_cxx" = xyes ; then + AC_MSG_CHECKING(c++ library-dependency suffix) + if test "$with_libtool" != "no"; then ++ # libtool thinks it can make c++ shared libraries (perhaps only g++) ++ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX ++elif test "$with_shared_cxx" != "no"; then ++ # also for g++ users... + CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX + else +- CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library ++ # we normally make a static library because C/C++ library rules differ ++ CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX) + fi + AC_MSG_RESULT($CXX_LIB_SUFFIX) + AC_SUBST(CXX_LIB_SUFFIX) + fi + + # do not want -ldl in build except as needed for -lncurses dependency +-if test "$with_dlsym" = yes ; then ++if test "x$with_dlsym" = xyes ; then + if test $DFT_LWR_MODEL = shared || \ + test $DFT_LWR_MODEL = libtool ; then + CF_REMOVE_LIB(LIBS,$LIBS,dl) +@@ -1723,13 +1725,13 @@ + # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but + # do not need libdl + TICS_LIST= +-if test "$with_dlsym" = yes ; then ++if test "x$with_dlsym" = xyes ; then + CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl) + fi + + if test "$with_ticlib" != no ; then + +- if test "$with_ticlib" != yes ; then ++ if test "x$with_ticlib" != xyes ; then + TICS_NAME=$with_ticlib + TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" +@@ -1739,18 +1741,21 @@ + TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}" + TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}" + fi +- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}" ++ TICS_LDFLAGS="-L${LIB_DIR}" ++ TICS_LIBS="-l${TICS_LIB_SUFFIX}" + else +- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TICS_LDFLAGS="-L${LIB_DIR}" ++ TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" + fi + AC_SUBST(TICS_ARG_SUFFIX) + AC_SUBST(TICS_DEP_SUFFIX) + AC_SUBST(TICS_LIB_SUFFIX) +-AC_SUBST(TICS_ARGS) ++AC_SUBST(TICS_LDFLAGS) ++AC_SUBST(TICS_LIBS) + + if test "$with_termlib" != no ; then + +- if test "$with_termlib" != yes ; then ++ if test "x$with_termlib" != xyes ; then + TINFO_NAME=$with_termlib + TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" +@@ -1768,14 +1773,22 @@ + if test "$DFT_LWR_MODEL" = "libtool"; then + TEST_ARGS="${TEST_DEPS}" + TEST_ARG2="${TEST_DEP2}" +- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" ++ TINFO_LDFLAGS="-L${LIB_DIR}" ++ TINFO_LIBS="$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}" +- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" +- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS" ++ if test "x$with_term_driver" != xno ; then ++ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" ++ else ++ TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" ++ TINFO_LIBS="$TEST_ARGS" ++ fi ++ TINFO_LDFLAGS="-L${LIB_DIR}" + SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" + fi + else +@@ -1783,19 +1796,20 @@ + TINFO_NAME=${LIB_NAME} + TINFO_SUFFIX=${DFT_LIB_SUFFIX} + TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX} +- if test "$with_tic_depends" = yes ; then ++ if test "x$with_tic_depends" = xyes ; then + TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}" + else + TICS_LIST="$SHLIB_LIST" + fi + +- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" ++ TINFO_LDFLAGS="-L${LIB_DIR}" ++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}" + fi + + if test "$DFT_LWR_MODEL" = shared ; then + case $cf_cv_system_name in #(vi +- cygwin*) +- # "lib" files have ".dll.a" suffix, "cyg" files have ".dll" ++ cygwin*|msys*) ++ # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll" + TINFO_SUFFIX=.dll + ;; + esac +@@ -1804,9 +1818,10 @@ + AC_SUBST(TINFO_ARG_SUFFIX) + AC_SUBST(TINFO_DEP_SUFFIX) + AC_SUBST(TINFO_LIB_SUFFIX) +-AC_SUBST(TINFO_ARGS) ++AC_SUBST(TINFO_LDFLAGS) ++AC_SUBST(TINFO_LIBS) + +-if test "$with_dlsym" = yes ; then ++if test "x$with_dlsym" = xyes ; then + CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl) + fi + +@@ -1815,8 +1830,8 @@ + fi + + # needed for Ada95 +-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'` +-AC_SUBST(TINFO_ARGS2) ++TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'` ++AC_SUBST(TINFO_LDFLAGS2) + + case $DFT_LWR_MODEL in + normal|debug|profile) +@@ -1825,10 +1840,15 @@ + esac + + AC_MSG_CHECKING(where we will install curses.h) +-test "$with_overwrite" = no && \ +-test "x$includedir" = 'x${prefix}/include' && \ +- includedir='${prefix}/include/ncurses'${LIB_SUFFIX} +-AC_MSG_RESULT($includedir) ++AC_SUBST(includesubdir) ++includesubdir= ++if test "$with_overwrite" = no && \ ++ ( test "x$includedir" = 'x${prefix}/include' || \ ++ test "x$includedir" = "x${prefix}/include" ) ++then ++ includesubdir="/ncurses${LIB_SUFFIX}" ++fi ++AC_MSG_RESULT(${includedir}${includesubdir}) + + ### Resolve a conflict between normal and wide-curses by forcing applications + ### that will need libutf8 to add it to their configure script. +@@ -1850,14 +1870,14 @@ + AC_SUBST(NCURSES_TREE) + + ### predefined stuff for the test programs +-AC_DEFINE(HAVE_SLK_COLOR) ++AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs]) + + ### Construct the list of subdirectories for which we'll customize makefiles + ### with the appropriate compile-rules. + + CF_SRC_MODULES($modules_to_build) + +-if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then ++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then + SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in" + SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in" + fi +@@ -1869,26 +1889,27 @@ + AC_SUBST(NCURSES_SHLIB2) + + # values to use as strings +-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR') ++AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as library path-separator]) + +-AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}") ++AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic]) + + ### Now that we're done running tests, add the compiler-warnings, if any + CF_ADD_CFLAGS($EXTRA_CFLAGS) + + ### Define substitutions for header files to avoid name-pollution +-CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0) +-CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0) +-CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0) ++CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0) ++CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0) ++CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0) ++CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0) + + ################################################################################ +-test "$use_database" = yes && \ ++test "x$use_database" = xyes && \ + SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in" + + SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in" + SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in" + +-if test x"$enable_pc_files" = xyes ; then \ ++if test "x$enable_pc_files" = xyes ; then \ + SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in" + MAKE_PC_FILES= + else +@@ -1917,13 +1938,55 @@ + ADAHTML_DIR=../../doc/html/ada + AC_SUBST(ADAHTML_DIR) + +-SUB_SCRIPTS= ++# these could be configurable, but are not currently ++PANEL_NAME=panel ++MENU_NAME=menu ++FORM_NAME=form ++CXX_NAME=ncurses++ ++ ++AC_SUBST(PANEL_NAME) ++AC_SUBST(MENU_NAME) ++AC_SUBST(FORM_NAME) ++AC_SUBST(CXX_NAME) ++ ++# workaround for g++ versus Solaris (20131116) + case $cf_cv_system_name in #(vi +-*mingw32*) #(vi +- SUB_SCRIPTS="mk-dlls.sh" ++solaris2*) #(vi ++ case "x$CPPFLAGS" in #(vi ++ *-D_XOPEN_SOURCE_EXTENDED*) ++ CF_VERBOSE(moving _XOPEN_SOURCE_EXTENDED to work around g++ problem) ++ CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" ++ CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'` ++ ;; ++ esac + ;; + esac + ++# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this. ++case "x$NCURSES_OSPEED" in #(vi ++*short*) #(vi ++ cf_compatible=1 ++ ;; ++*) ++ cf_compatible=0 ++ ;; ++esac ++AC_DEFINE_UNQUOTED(NCURSES_OSPEED_COMPAT,$cf_compatible,[Define to 1 if termcap variable ospeed is short]) ++ ++case "x$cf_cv_typeof_chtype" in ++xshort|xint|xlong) ++ cf_cv_typeof_chtype="unsigned $cf_cv_typeof_chtype" ++ ;; ++esac ++ ++case "x$cf_cv_typeof_mmask_t" in ++xshort|xint|xlong) ++ cf_cv_typeof_mmask_t="unsigned $cf_cv_typeof_mmask_t" ++ ;; ++esac ++ ++SUB_SCRIPTS= ++ + AC_OUTPUT( \ + include/MKterm.h.awk \ + include/curses.head:include/curses.h.in \ +@@ -1934,11 +1997,11 @@ + $SUB_MAKEFILES \ + Makefile,[ + if test "x$cf_with_tests" != xno ; then +- CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK"], test) ++ CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test) + fi + CF_LIB_RULES($SRC_SUBDIRS) + +-if test "x$cf_with_ada" != xno ; then ++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then + if test -z "$USE_OLD_MAKERULES" ; then + $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile + fi +@@ -1950,10 +2013,11 @@ + AWK="$AWK" + DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" + DFT_LWR_MODEL="$DFT_LWR_MODEL" +-ECHO_LINK="$ECHO_LINK" ++ECHO_LD="$ECHO_LD" + LDCONFIG="$LDCONFIG" + LIBTOOL_VERSION="$LIBTOOL_VERSION" + LIB_NAME="$LIB_NAME" ++LIB_PREFIX="$LIB_PREFIX" + LIB_SUBSETS="$LIB_SUBSETS" + LIB_SUFFIX="$LIB_SUFFIX" + LIB_TRACING="$LIB_TRACING" +@@ -1975,7 +2039,7 @@ + TINFO_SUFFIX="$TINFO_SUFFIX" + USE_OLD_MAKERULES="$USE_OLD_MAKERULES" + WITH_CURSES_H="$with_curses_h" +-WITH_ECHO="$with_echo" ++WITH_ECHO="${enable_echo:=yes}" + WITH_OVERWRITE="$with_overwrite" + cf_LIST_MODELS="$cf_list_models" + cf_cv_abi_version="$cf_cv_abi_version" +@@ -1985,16 +2049,20 @@ + cf_cv_enable_opaque="$cf_cv_enable_opaque" + cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o + cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o ++cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct + cf_cv_rel_version="$cf_cv_rel_version" + cf_cv_rm_so_locs="$cf_cv_rm_so_locs" + cf_cv_shared_soname='$cf_cv_shared_soname' + cf_cv_shlib_version="$cf_cv_shlib_version" + cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix" + cf_cv_system_name="$cf_cv_system_name" ++cf_cv_term_driver="$with_term_driver" + cf_with_ada="$cf_with_ada" + cf_with_cxx_binding="$cf_with_cxx_binding" ++cf_with_db_install="$cf_with_db_install" + cf_with_manpages="$cf_with_manpages" + cf_with_tests="$cf_with_tests" ++with_shared_cxx="$with_shared_cxx" + host="$host" + target="$target" + +diff -Naur ncurses-5.9/COPYING ncurses-5.9.patch/COPYING +--- ncurses-5.9/COPYING 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/COPYING 2014-09-01 16:33:22.227791908 +0200 +@@ -0,0 +1,28 @@ ++Copyright (c) 1998-2013,2014 Free 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. ++ ++-- vile:txtmode fc=72 ++-- $Id: COPYING,v 1.2 2014/01/18 23:59:29 tom Exp $ +diff -Naur ncurses-5.9/dist.mk ncurses-5.9.patch/dist.mk +--- ncurses-5.9/dist.mk 2011-04-05 00:42:20.000000000 +0200 ++++ ncurses-5.9.patch/dist.mk 2014-09-01 16:34:19.474887043 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2013,2014 Free 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: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $ ++# $Id: dist.mk,v 1.978 2014/03/23 20:59:54 tom Exp $ + # Makefile for creating ncurses distributions. + # + # This only needs to be used directly as a makefile by developers, but +@@ -37,20 +37,21 @@ + # These define the major/minor/patch versions of ncurses. + NCURSES_MAJOR = 5 + NCURSES_MINOR = 9 +-NCURSES_PATCH = 20110404 ++NCURSES_PATCH = 20140323 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) + +-# The most recent html files were generated with lynx 2.8.6, using ncurses +-# configured with ++# The most recent html files were generated with lynx 2.8.6 (or later), using ++# ncurses configured with + # --without-manpage-renames + # on Debian/testing. The -scrollbar and -width options are used to make lynx + # use 79 columns as it did in 2.8.5 and before. + DUMP = lynx -dump -scrollbar=0 -width=79 + DUMP2 = $(DUMP) -nolist + +-GNATHTML= `type -p gnathtml || type -p gnathtml.pl` ++# gcc's file is "gnathtml.pl" ++GNATHTML= gnathtml + + # man2html 3.0.1 is a Perl script which assumes that pages are fixed size. + # Not all man programs agree with this assumption; some use half-spacing, which +@@ -98,7 +99,13 @@ + MANPROG = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii + + manhtml: +- @rm -f doc/html/man/*.html ++ @for f in doc/html/man/*.html; do \ ++ test -f $$f || continue; \ ++ case $$f in \ ++ */index.html) ;; \ ++ *) rm -f $$f ;; \ ++ esac; \ ++ done + @mkdir -p doc/html/man + @rm -f subst.tmp ; + @for f in man/*.[0-9]*; do \ +@@ -126,7 +133,7 @@ + g=$${m}.html ;\ + if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\ + echo "Converting $$m to HTML" ;\ +- echo '' > doc/html/man/$$g ;\ ++ echo '' > doc/html/man/$$g ;\ + echo '' >> doc/html/man/$$g ;\ +- ./edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \ +- sed -f subst.sed |\ +- sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \ ++ ./edit_man.sh normal editing /usr/man man $$f | \ ++ $(MANPROG) | \ ++ tr '\255' '-' | \ ++ $(MAN2HTML) \ ++ -title "$$T" \ ++ -aliases man/manhtml.aliases \ ++ -externs man/manhtml.externs | \ ++ sed -f subst.sed |\ ++ sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \ + >> doc/html/man/$$g ;\ + done + @rm -f subst.sed +@@ -149,7 +162,7 @@ + # .ali files contain cross referencing information required by gnathtml. + adahtml: + if [ ! -z "$(GNATHTML)" ]; then \ +- (cd ./Ada95/gen ; make html) ;\ ++ (cd ./Ada95/gen ; make html GNATHTML=$(GNATHTML) ) ;\ + fi + + # This only works on a clean source tree, of course. +diff -Naur ncurses-5.9/doc/html/ada/files/T.htm ncurses-5.9.patch/doc/html/ada/files/T.htm +--- ncurses-5.9/doc/html/ada/files/T.htm 2005-05-14 18:28:37.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/files/T.htm 2014-09-01 16:33:22.266791973 +0200 +@@ -1,5 +1,9 @@ + +-T ++ ++ ++T ++ ++ + +

Files - T

+ [index] +diff -Naur ncurses-5.9/doc/html/ada/files.htm ncurses-5.9.patch/doc/html/ada/files.htm +--- ncurses-5.9/doc/html/ada/files.htm 2005-05-14 18:28:37.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/files.htm 2014-09-01 16:33:22.266791973 +0200 +@@ -1,5 +1,17 @@ +- +- ++ ++ ++ ++ ++ ++ ++ + +

Files

+ [T] +diff -Naur ncurses-5.9/doc/html/ada/funcs/A.htm ncurses-5.9.patch/doc/html/ada/funcs/A.htm +--- ncurses-5.9/doc/html/ada/funcs/A.htm 2011-03-20 00:18:38.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/A.htm 2014-09-01 16:33:22.266791973 +0200 +@@ -1,24 +1,28 @@ + +-A ++ ++ ++A ++ ++ + +

Functions - A

+ [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/B.htm ncurses-5.9.patch/doc/html/ada/funcs/B.htm +--- ncurses-5.9/doc/html/ada/funcs/B.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/B.htm 2014-09-01 16:33:22.267791975 +0200 +@@ -1,21 +1,25 @@ + +-B ++ ++ ++B ++ ++ + +

Functions - B

+ [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/C.htm ncurses-5.9.patch/doc/html/ada/funcs/C.htm +--- ncurses-5.9/doc/html/ada/funcs/C.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/C.htm 2014-09-01 16:33:22.267791975 +0200 +@@ -1,50 +1,54 @@ + +-C ++ ++ ++C ++ ++ + +

Functions - C

+ [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/H.htm ncurses-5.9.patch/doc/html/ada/funcs/H.htm +--- ncurses-5.9/doc/html/ada/funcs/H.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/H.htm 2014-09-01 16:33:22.268791976 +0200 +@@ -1,22 +1,26 @@ + +-H ++ ++ ++H ++ ++ + +

Functions - H

+ [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/I.htm ncurses-5.9.patch/doc/html/ada/funcs/I.htm +--- ncurses-5.9/doc/html/ada/funcs/I.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/I.htm 2014-09-01 16:33:22.268791976 +0200 +@@ -1,45 +1,49 @@ + +-I ++ ++ ++I ++ ++ + +

Functions - I

+ [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/L.htm ncurses-5.9.patch/doc/html/ada/funcs/L.htm +--- ncurses-5.9/doc/html/ada/funcs/L.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/L.htm 2014-09-01 16:33:22.269791978 +0200 +@@ -1,20 +1,24 @@ + +-L ++ ++ ++L ++ ++ + +

Functions - L

+ [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/M.htm ncurses-5.9.patch/doc/html/ada/funcs/M.htm +--- ncurses-5.9/doc/html/ada/funcs/M.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/M.htm 2014-09-01 16:33:22.269791978 +0200 +@@ -1,12 +1,16 @@ + +-M ++ ++ ++M ++ ++ + +

Functions - M

+ [index] +
    +
  • Make_Arg +-
  • Mark - terminal_interface-curses-menus.ads:413 +-
  • Mark - terminal_interface-curses-menus.ads:417 ++
  • Mark - terminal_interface-curses-menus.ads:411 ++
  • Mark - terminal_interface-curses-menus.ads:415 +
  • Menu_Back - terminal_interface-curses-menus.adb:608 +
  • Menu_Back - terminal_interface-curses-menus.adb:618 +
  • Menu_Fmt +@@ -28,13 +32,13 @@ +
  • Mouseinterval +
  • Mouse_Avail +
  • Mouse_Interval +-
  • Move - terminal_interface-curses-forms.ads:616 ++
  • Move - terminal_interface-curses-forms.ads:614 +
  • Move - terminal_interface-curses-panels.ads:117 +
  • Move - terminal_interface-curses-forms.adb:786 +
  • Move - terminal_interface-curses-panels.adb:132 +-
  • Move_Cursor +-
  • Move_Derived_Window +-
  • Move_Window ++
  • Move_Cursor ++
  • Move_Derived_Window ++
  • Move_Window +
  • Mvderwin +
  • mvwaddch +
  • Mvwdelch +diff -Naur ncurses-5.9/doc/html/ada/funcs/N.htm ncurses-5.9.patch/doc/html/ada/funcs/N.htm +--- ncurses-5.9/doc/html/ada/funcs/N.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/N.htm 2014-09-01 16:33:22.269791978 +0200 +@@ -1,13 +1,17 @@ + +-N ++ ++ ++N ++ ++ + +

    Functions - N

    + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/O.htm ncurses-5.9.patch/doc/html/ada/funcs/O.htm +--- ncurses-5.9/doc/html/ada/funcs/O.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/O.htm 2014-09-01 16:33:22.269791978 +0200 +@@ -1,12 +1,16 @@ + +-O ++ ++ ++O ++ ++ + +

    Functions - O

    + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/P.htm ncurses-5.9.patch/doc/html/ada/funcs/P.htm +--- ncurses-5.9/doc/html/ada/funcs/P.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/P.htm 2014-09-01 16:33:22.270791980 +0200 +@@ -1,32 +1,36 @@ + +-P ++ ++ ++P ++ ++ + +

    Functions - P

    + [index] +
      +-
    • Pad_Character - terminal_interface-curses-forms.ads:476 +-
    • Pad_Character - terminal_interface-curses-menus.ads:494 +-
    • Page ++
    • Pad_Character - terminal_interface-curses-forms.ads:474 ++
    • Pad_Character - terminal_interface-curses-menus.ads:492 ++
    • Page +
    • Page_Length - terminal_interface-curses-text_io.ads:80 +
    • Page_Length - terminal_interface-curses-text_io.ads:81 +
    • Paircontent +-
    • Pair_Content ++
    • Pair_Content +
    • Panel_Hidden +
    • Panel_Userptr +
    • Panel_Win +-
    • Pattern ++
    • Pattern +
    • Pechochar +-
    • Peek - terminal_interface-curses.ads:1354 +-
    • Peek - terminal_interface-curses.ads:1360 +-
    • Peek - terminal_interface-curses.ads:1416 +-
    • Peek - terminal_interface-curses.ads:1425 +-
    • Peek - terminal_interface-curses.ads:1440 +-
    • Peek - terminal_interface-curses.ads:1449 ++
    • Peek - terminal_interface-curses.ads:1353 ++
    • Peek - terminal_interface-curses.ads:1359 ++
    • Peek - terminal_interface-curses.ads:1415 ++
    • Peek - terminal_interface-curses.ads:1424 ++
    • Peek - terminal_interface-curses.ads:1439 ++
    • Peek - terminal_interface-curses.ads:1448 +
    • Pnoutrefresh +-
    • Position_Cursor - terminal_interface-curses-forms.ads:687 +-
    • Position_Cursor - terminal_interface-curses-menus.ads:398 +-
    • Post - terminal_interface-curses-forms.ads:676 +-
    • Post - terminal_interface-curses-menus.ads:326 ++
    • Position_Cursor - terminal_interface-curses-forms.ads:685 ++
    • Position_Cursor - terminal_interface-curses-menus.ads:396 ++
    • Post - terminal_interface-curses-forms.ads:674 ++
    • Post - terminal_interface-curses-menus.ads:324 +
    • Pos_Form_Cursor +
    • Pos_Menu_Cursor +
    • Prefresh +diff -Naur ncurses-5.9/doc/html/ada/funcs/Q.htm ncurses-5.9.patch/doc/html/ada/funcs/Q.htm +--- ncurses-5.9/doc/html/ada/funcs/Q.htm 2007-05-05 22:35:19.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/funcs/Q.htm 2014-09-01 16:33:22.270791980 +0200 +@@ -1,5 +1,9 @@ + +-Q ++ ++ ++Q ++ ++ + +

      Functions - Q

      + [index] +diff -Naur ncurses-5.9/doc/html/ada/funcs/R.htm ncurses-5.9.patch/doc/html/ada/funcs/R.htm +--- ncurses-5.9/doc/html/ada/funcs/R.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/R.htm 2014-09-01 16:33:22.270791980 +0200 +@@ -1,39 +1,43 @@ + +-R ++ ++ ++R ++ ++ + +

      Functions - R

      + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/S.htm ncurses-5.9.patch/doc/html/ada/funcs/S.htm +--- ncurses-5.9/doc/html/ada/funcs/S.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/S.htm 2014-09-01 16:33:22.270791980 +0200 +@@ -1,54 +1,58 @@ + +-S ++ ++ ++S ++ ++ + +

      Functions - S

      + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/T.htm ncurses-5.9.patch/doc/html/ada/funcs/T.htm +--- ncurses-5.9/doc/html/ada/funcs/T.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/T.htm 2014-09-01 16:33:22.271791981 +0200 +@@ -1,13 +1,17 @@ + +-T ++ ++ ++T ++ ++ + +

      Functions - T

      + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/U.htm ncurses-5.9.patch/doc/html/ada/funcs/U.htm +--- ncurses-5.9/doc/html/ada/funcs/U.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/U.htm 2014-09-01 16:33:22.271791981 +0200 +@@ -1,23 +1,27 @@ + +-U ++ ++ ++U ++ ++ + +

      Functions - U

      + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/V.htm ncurses-5.9.patch/doc/html/ada/funcs/V.htm +--- ncurses-5.9/doc/html/ada/funcs/V.htm 2011-03-20 00:18:38.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/V.htm 2014-09-01 16:33:22.271791981 +0200 +@@ -1,11 +1,15 @@ + +-V ++ ++ ++V ++ ++ + +

      Functions - V

      + [index] + +diff -Naur ncurses-5.9/doc/html/ada/funcs/W.htm ncurses-5.9.patch/doc/html/ada/funcs/W.htm +--- ncurses-5.9/doc/html/ada/funcs/W.htm 2011-03-26 22:54:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/funcs/W.htm 2014-09-01 16:33:22.271791981 +0200 +@@ -1,5 +1,9 @@ + +-W ++ ++ ++W ++ ++ + +

      Functions - W

      + [index] +diff -Naur ncurses-5.9/doc/html/ada/funcs.htm ncurses-5.9.patch/doc/html/ada/funcs.htm +--- ncurses-5.9/doc/html/ada/funcs.htm 2005-05-14 18:28:39.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/funcs.htm 2014-09-01 16:33:22.266791973 +0200 +@@ -1,5 +1,17 @@ +- +- ++ ++ ++ ++ ++ ++ ++ + +

      Functions/Procedures

      + [A] +diff -Naur ncurses-5.9/doc/html/ada/index.htm ncurses-5.9.patch/doc/html/ada/index.htm +--- ncurses-5.9/doc/html/ada/index.htm 2005-05-14 18:28:37.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/index.htm 2014-09-01 16:33:22.271791981 +0200 +@@ -1,6 +1,9 @@ + + +-Source Browser ++ ++Source Browser ++ ++ + + + <H2 ALIGN=CENTER>Files</H2> +diff -Naur ncurses-5.9/doc/html/ada/main.htm ncurses-5.9.patch/doc/html/ada/main.htm +--- ncurses-5.9/doc/html/ada/main.htm 2011-02-26 00:43:50.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/main.htm 2014-09-01 16:33:22.271791981 +0200 +@@ -1,5 +1,17 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE></TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE></TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> + <P ALIGN=right><A HREF="main.htm" TARGET="_top">[No frame version is here]</A><P><H2 ALIGN=CENTER>Files</H2> + <A HREF="files/T.htm">[T]</A> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface__ads.htm 2006-09-23 22:31:33.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface__ads.htm 2014-09-01 16:33:22.315792055 +0200 +@@ -1,53 +1,65 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998,2006 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2006/06/25 14:30:22 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <FONT COLOR=red><A NAME="ref_42_9">Terminal_Interface</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998,2006 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span> ++<span class="comment"><EM>-- @Date: 2006/06/25 14:30:22 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <span class="symbol"><A NAME="ref_42_9">Terminal_Interface</A></span> <b>is</b> + <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>); +-<FONT COLOR=green><EM>--</EM></FONT> +-<FONT COLOR=green><EM>-- Everything is in the child units</EM></FONT> +-<FONT COLOR=green><EM>--</EM></FONT> ++<span class="comment"><EM>--</EM></span> ++<span class="comment"><EM>-- Everything is in the child units</EM></span> ++<span class="comment"><EM>--</EM></span> + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses__adb.htm 2011-03-26 22:54:31.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses__adb.htm 2014-09-01 16:33:22.311792048 +0200 +@@ -1,85 +1,97 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:02:14 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.8 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 23:02:14 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> System; + + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; + <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling; + <b>with</b> Ada.Strings.Fixed; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_50_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_50_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></span> <b>is</b> + + <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + <b>use</b> <b>type</b> System.Bit_Order; + +- <b>package</b> <FONT COLOR=red><A NAME="ref_55_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed; ++ <b>package</b> <span class="symbol"><A NAME="ref_55_12">ASF</A></span> <b>renames</b> Ada.Strings.Fixed; + + <b>type</b> chtype_array <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;) +- <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; ++ <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; + <b>pragma</b> Convention (C, chtype_array); + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1618_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1617_13">Key_Name</A></span> (<span class="symbol"><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1617_23">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_64_16">Keyname</A></span> (<span class="symbol"><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Keyname, "keyname"); + +- <FONT COLOR=red><A NAME="ref_67_7">Ch</A></FONT> : Character; ++ <span class="symbol"><A NAME="ref_67_7">Ch</A></span> : Character; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1617_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b> ++ <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1617_23">Key</A>); + <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b> +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1629_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>)); ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1628_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>)); + <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b> + <b>declare</b> +- <FONT COLOR=red><A NAME="ref_77_16">S</A></FONT> : String (1 .. 1); ++ <span class="symbol"><A NAME="ref_77_16">S</A></span> : String (1 .. 1); + <b>begin</b> + <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A>; +@@ -88,2475 +100,2475 @@ + <b>return</b> ""; + <b>end</b> <b>if</b>; + <b>else</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A>))); ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1617_23">Key</A>))); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1618_13">Key_Name</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1617_13">Key_Name</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1612_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1612_24">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; +- <FONT COLOR=red><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1613_24">Name</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1611_14">Key_Name</A></span> (<span class="symbol"><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1611_24">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; ++ <span class="symbol"><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1612_24">Name</A></span> : <b>out</b> String) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1618_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1612_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1613_24">Name</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1612_14">Key_Name</A>; ++ <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1617_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1611_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1612_24">Name</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1611_14">Key_Name</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_487_14">Init_Screen</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_100_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_100_16">Initscr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Initscr, "initscr"); + +- <FONT COLOR=red><A NAME="ref_103_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_103_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>begin</b> + <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_100_16">Initscr</A>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_14">Init_Screen</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_496_14">End_Windows</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_113_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_113_16">Endwin</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Endwin, "endwin"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_113_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_496_14">End_Windows</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_504_13">Is_End_Window</A></FONT> <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_503_13">Is_End_Window</A></span> <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_123_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_123_16">Isendwin</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Isendwin, "isendwin"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_504_13">Is_End_Window</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_513_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_514_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_515_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_137_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_503_13">Is_End_Window</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A></span> (<span class="symbol"><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_512_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_513_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_514_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_137_16">Wmove</A></span> (<span class="symbol"><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> + ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wmove, "wmove"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_513_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_514_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_515_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_512_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_513_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_514_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_525_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_525_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_526_19">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_524_14">Add</A></span> (<span class="symbol"><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_524_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_525_19">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_151_16">Waddch</A></span> (<span class="symbol"><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Waddch, "waddch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_525_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_526_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_524_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_525_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_525_14">Add</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_524_14">Add</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_530_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_531_19">Ch</A></FONT> : Character) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_529_14">Add</A></span> (<span class="symbol"><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_529_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_530_19">Ch</A></span> : Character) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_525_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_530_19">Win</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_531_19">Ch</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_524_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_529_19">Win</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_530_19">Ch</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_529_14">Add</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_535_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_536_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_176_16">mvwaddch</A></span> (<span class="symbol"><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, mvwaddch, "mvwaddch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A>), +- AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_189_14" HREF="terminal_interface-curses__ads.htm#ref_544_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_190_7" HREF="terminal_interface-curses__ads.htm#ref_545_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_548_7">Ch</A></FONT> : Character) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_545_7">Win</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_546_7">Line</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_547_7">Column</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_548_7">Ch</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_544_14">Add</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_204_14" HREF="terminal_interface-curses__ads.htm#ref_553_14">Add_With_Immediate_Echo</A></FONT> +- (<FONT COLOR=red><A NAME="ref_205_7" HREF="terminal_interface-curses__ads.htm#ref_554_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_555_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_536_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Line</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_538_7">Column</A>), ++ AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_539_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_535_14">Add</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_189_14" HREF="terminal_interface-curses__ads.htm#ref_543_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_190_7" HREF="terminal_interface-curses__ads.htm#ref_544_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_545_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A></span> : Character) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_535_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_544_7">Win</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_545_7">Line</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_546_7">Column</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_543_14">Add</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_204_14" HREF="terminal_interface-curses__ads.htm#ref_552_14">Add_With_Immediate_Echo</A></span> ++ (<span class="symbol"><A NAME="ref_205_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_554_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_208_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_208_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_208_16">Wechochar</A></span> (<span class="symbol"><A NAME="ref_208_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wechochar, "wechochar"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_208_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_554_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_555_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_208_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_553_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_554_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_553_14">Add_With_Immediate_Echo</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_552_14">Add_With_Immediate_Echo</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_217_14" HREF="terminal_interface-curses__ads.htm#ref_559_14">Add_With_Immediate_Echo</A></FONT> +- (<FONT COLOR=red><A NAME="ref_218_7" HREF="terminal_interface-curses__ads.htm#ref_560_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_561_7">Ch</A></FONT> : Character) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_553_14">Add_With_Immediate_Echo</A> +- (<A HREF="terminal_interface-curses__ads.htm#ref_560_7">Win</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_561_7">Ch</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_559_14">Add_With_Immediate_Echo</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_229_13" HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_229_21" HREF="terminal_interface-curses__ads.htm#ref_572_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_573_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_574_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_575_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_234_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_217_14" HREF="terminal_interface-curses__ads.htm#ref_558_14">Add_With_Immediate_Echo</A></span> ++ (<span class="symbol"><A NAME="ref_218_7" HREF="terminal_interface-curses__ads.htm#ref_559_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_560_7">Ch</A></span> : Character) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_552_14">Add_With_Immediate_Echo</A> ++ (<A HREF="terminal_interface-curses__ads.htm#ref_559_7">Win</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_560_7">Ch</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_558_14">Add_With_Immediate_Echo</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_229_13" HREF="terminal_interface-curses__ads.htm#ref_570_13">Create</A></span> (<span class="symbol"><A NAME="ref_229_21" HREF="terminal_interface-curses__ads.htm#ref_571_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_572_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_573_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_574_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_234_16">Newwin</A></span> (<span class="symbol"><A NAME="ref_234_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Newwin, "newwin"); + +- <FONT COLOR=red><A NAME="ref_240_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_240_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_234_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_572_7">Number_Of_Lines</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_573_7">Number_Of_Columns</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_574_7">First_Line_Position</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_575_7">First_Column_Position</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_234_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_571_7">Number_Of_Lines</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_572_7">Number_Of_Columns</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_573_7">First_Line_Position</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_574_7">First_Column_Position</A>)); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_570_13">Create</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_252_14" HREF="terminal_interface-curses__ads.htm#ref_590_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_252_22" HREF="terminal_interface-curses__ads.htm#ref_590_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_252_14" HREF="terminal_interface-curses__ads.htm#ref_589_14">Delete</A></span> (<span class="symbol"><A NAME="ref_252_22" HREF="terminal_interface-curses__ads.htm#ref_589_22">Win</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_254_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_254_25" HREF="terminal_interface-curses__adb.htm#ref_254_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_254_16">Wdelwin</A></span> (<span class="symbol"><A NAME="ref_254_25" HREF="terminal_interface-curses__adb.htm#ref_254_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wdelwin, "delwin"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_254_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_590_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_254_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_589_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__ads.htm#ref_590_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_590_14">Delete</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_589_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_589_14">Delete</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_263_13" HREF="terminal_interface-curses__ads.htm#ref_596_13">Sub_Window</A></FONT> +- (<FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses__ads.htm#ref_597_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_598_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_600_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_601_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Subwin</A></FONT> +- (<FONT COLOR=red><A NAME="ref_271_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_263_13" HREF="terminal_interface-curses__ads.htm#ref_595_13">Sub_Window</A></span> ++ (<span class="symbol"><A NAME="ref_264_7" HREF="terminal_interface-curses__ads.htm#ref_596_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_597_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_598_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_600_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_270_16">Subwin</A></span> ++ (<span class="symbol"><A NAME="ref_271_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Subwin, "subwin"); + +- <FONT COLOR=red><A NAME="ref_278_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_278_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_270_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_597_7">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_598_7">Number_Of_Lines</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">Number_Of_Columns</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_600_7">First_Line_Position</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_601_7">First_Column_Position</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_270_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_596_7">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_597_7">Number_Of_Lines</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_598_7">Number_Of_Columns</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">First_Line_Position</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_600_7">First_Column_Position</A>)); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_596_13">Sub_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_595_13">Sub_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses__ads.htm#ref_606_13">Derived_Window</A></FONT> +- (<FONT COLOR=red><A NAME="ref_292_7" HREF="terminal_interface-curses__ads.htm#ref_607_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_608_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_609_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_610_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_611_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_298_16">Derwin</A></FONT> +- (<FONT COLOR=red><A NAME="ref_299_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_291_13" HREF="terminal_interface-curses__ads.htm#ref_605_13">Derived_Window</A></span> ++ (<span class="symbol"><A NAME="ref_292_7" HREF="terminal_interface-curses__ads.htm#ref_606_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_607_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_608_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_609_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_610_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_298_16">Derwin</A></span> ++ (<span class="symbol"><A NAME="ref_299_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Derwin, "derwin"); + +- <FONT COLOR=red><A NAME="ref_306_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_306_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_298_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_607_7">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_7">Number_Of_Lines</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_609_7">Number_Of_Columns</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_610_7">First_Line_Position</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_611_7">First_Column_Position</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_298_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_606_7">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_607_7">Number_Of_Lines</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_7">Number_Of_Columns</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_609_7">First_Line_Position</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_610_7">First_Column_Position</A>)); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_606_13">Derived_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_605_13">Derived_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_319_13" HREF="terminal_interface-curses__ads.htm#ref_616_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_319_24" HREF="terminal_interface-curses__ads.htm#ref_616_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_319_13" HREF="terminal_interface-curses__ads.htm#ref_615_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_319_24" HREF="terminal_interface-curses__ads.htm#ref_615_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_321_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_321_24" HREF="terminal_interface-curses__adb.htm#ref_321_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_321_16">Dupwin</A></span> (<span class="symbol"><A NAME="ref_321_24" HREF="terminal_interface-curses__adb.htm#ref_321_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Dupwin, "dupwin"); + +- <FONT COLOR=red><A NAME="ref_324_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_321_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_616_24">Win</A>); ++ <span class="symbol"><A NAME="ref_324_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_321_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_615_24">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_616_13">Duplicate</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_615_13">Duplicate</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_332_14" HREF="terminal_interface-curses__ads.htm#ref_621_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_332_27" HREF="terminal_interface-curses__ads.htm#ref_621_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_622_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_623_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_336_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_336_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_332_14" HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Window</A></span> (<span class="symbol"><A NAME="ref_332_27" HREF="terminal_interface-curses__ads.htm#ref_620_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_621_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_622_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_336_16">Mvwin</A></span> (<span class="symbol"><A NAME="ref_336_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mvwin, "mvwin"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_336_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_622_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_623_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_336_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_622_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_621_14">Move_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Window</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_346_14" HREF="terminal_interface-curses__ads.htm#ref_628_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_346_35" HREF="terminal_interface-curses__ads.htm#ref_628_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_629_35">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_630_35">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_350_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_350_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_346_14" HREF="terminal_interface-curses__ads.htm#ref_627_14">Move_Derived_Window</A></span> (<span class="symbol"><A NAME="ref_346_35" HREF="terminal_interface-curses__ads.htm#ref_627_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_628_35">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_629_35">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_350_16">Mvderwin</A></span> (<span class="symbol"><A NAME="ref_350_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mvderwin, "mvderwin"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_350_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_628_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_629_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_630_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_350_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_627_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_628_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_629_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_628_14">Move_Derived_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_627_14">Move_Derived_Window</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_360_14" HREF="terminal_interface-curses__ads.htm#ref_645_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_360_30" HREF="terminal_interface-curses__ads.htm#ref_645_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_646_30">Mode</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_360_14" HREF="terminal_interface-curses__ads.htm#ref_644_14">Set_Synch_Mode</A></span> (<span class="symbol"><A NAME="ref_360_30" HREF="terminal_interface-curses__ads.htm#ref_644_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_645_30">Mode</A></span> : Boolean := False) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_363_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_363_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_363_16">Syncok</A></span> (<span class="symbol"><A NAME="ref_363_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Syncok, "syncok"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_363_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_645_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_646_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_363_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_644_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_645_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_645_14">Set_Synch_Mode</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_372_14" HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_372_19" HREF="terminal_interface-curses__ads.htm#ref_655_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_656_19">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_657_19">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_376_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_376_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Str</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_644_14">Set_Synch_Mode</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_372_14" HREF="terminal_interface-curses__ads.htm#ref_654_14">Add</A></span> (<span class="symbol"><A NAME="ref_372_19" HREF="terminal_interface-curses__ads.htm#ref_654_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_655_19">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_656_19">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_376_16">Waddnstr</A></span> (<span class="symbol"><A NAME="ref_376_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Str</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Waddnstr, "waddnstr"); + +- <FONT COLOR=red><A NAME="ref_381_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_656_19">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_382_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_381_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_655_19">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_382_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Length</A>); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_376_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_655_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_657_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_390_14" HREF="terminal_interface-curses__ads.htm#ref_664_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_391_7" HREF="terminal_interface-curses__ads.htm#ref_664_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_665_19">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_666_19">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_667_19">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_668_19">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_664_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_665_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_666_19">Column</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_664_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_667_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_668_19">Len</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_664_14">Add</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_402_14" HREF="terminal_interface-curses__ads.htm#ref_679_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_403_7" HREF="terminal_interface-curses__ads.htm#ref_679_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>; +- <FONT COLOR=red><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_681_19">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_407_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_407_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Str</A></FONT> : chtype_array; +- <FONT COLOR=red><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_655_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Length</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_376_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_654_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_654_14">Add</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_390_14" HREF="terminal_interface-curses__ads.htm#ref_663_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_391_7" HREF="terminal_interface-curses__ads.htm#ref_663_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_664_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_665_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_666_19">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_667_19">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_663_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_664_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_665_19">Column</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_654_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_663_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_666_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_667_19">Len</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_663_14">Add</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_402_14" HREF="terminal_interface-curses__ads.htm#ref_678_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_403_7" HREF="terminal_interface-curses__ads.htm#ref_678_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_679_19">Str</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Attributed_String</A>; ++ <span class="symbol"><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_407_16">Waddchnstr</A></span> (<span class="symbol"><A NAME="ref_407_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Str</A></span> : chtype_array; ++ <span class="symbol"><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Waddchnstr, "waddchnstr"); + +- <FONT COLOR=red><A NAME="ref_412_7">Txt</A></FONT> : chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_412_7">Txt</A></span> : chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_679_19">Str</A>'Length); + <b>begin</b> +- <b>for</b> <FONT COLOR=red><A NAME="ref_414_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A>'Length) <b>loop</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A>)); ++ <b>for</b> <span class="symbol"><A NAME="ref_414_11">Length</A></span> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_679_19">Str</A>'Length) <b>loop</b> ++ <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_679_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A>)); + <b>end</b> <b>loop</b>; +- <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_407_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_679_19">Win</A>, ++ <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_679_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_407_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_678_19">Win</A>, + <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_681_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_679_14">Add</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_678_14">Add</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_688_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses__ads.htm#ref_688_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_427_7" HREF="terminal_interface-curses__ads.htm#ref_689_19">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_690_19">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_691_19">Str</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>; +- <FONT COLOR=red><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_692_19">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_688_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_689_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_690_19">Column</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_679_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_688_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_691_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_692_19">Len</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_688_14">Add</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_437_14" HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A></FONT> +- (<FONT COLOR=red><A NAME="ref_438_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_439_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Left_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_709_7">Right_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_710_7">Top_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_711_7">Bottom_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_712_7">Upper_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_713_7">Upper_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_714_7">Lower_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Lower_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_448_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_449_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">RS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">TS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">BS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_687_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_426_7" HREF="terminal_interface-curses__ads.htm#ref_687_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_427_7" HREF="terminal_interface-curses__ads.htm#ref_688_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_689_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_690_19">Str</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Attributed_String</A>; ++ <span class="symbol"><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_691_19">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_687_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_688_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_689_19">Column</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_678_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_687_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_690_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_691_19">Len</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_687_14">Add</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_437_14" HREF="terminal_interface-curses__ads.htm#ref_705_14">Border</A></span> ++ (<span class="symbol"><A NAME="ref_438_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_439_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Left_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Right_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_709_7">Top_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_710_7">Bottom_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_711_7">Upper_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_712_7">Upper_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_713_7">Lower_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_714_7">Lower_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_448_16">Wborder</A></span> (<span class="symbol"><A NAME="ref_448_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_449_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LS</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">RS</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">TS</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">BS</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">ULC</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">URC</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LLC</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LRC</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wborder, "wborder"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_448_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Win</A>, +- AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_708_7">Left_Side_Symbol</A>), +- AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_709_7">Right_Side_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_710_7">Top_Side_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_711_7">Bottom_Side_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_712_7">Upper_Left_Corner_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_713_7">Upper_Right_Corner_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_714_7">Lower_Left_Corner_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_715_7">Lower_Right_Corner_Symbol</A>) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_448_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Win</A>, ++ AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Left_Side_Symbol</A>), ++ AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_708_7">Right_Side_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_709_7">Top_Side_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_710_7">Bottom_Side_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_711_7">Upper_Left_Corner_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_712_7">Upper_Right_Corner_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_713_7">Lower_Left_Corner_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_714_7">Lower_Right_Corner_Symbol</A>) + ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> + <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_705_14">Border</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Box</A></FONT> +- (<FONT COLOR=red><A NAME="ref_475_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Vertical_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_725_7">Horizontal_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses__ads.htm#ref_721_14">Box</A></span> ++ (<span class="symbol"><A NAME="ref_475_7" HREF="terminal_interface-curses__ads.htm#ref_722_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Vertical_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Horizontal_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Vertical_Symbol</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_725_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_725_7">Horizontal_Symbol</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Box</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_705_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_722_7">Win</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Vertical_Symbol</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Horizontal_Symbol</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_721_14">Box</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_485_14" HREF="terminal_interface-curses__ads.htm#ref_730_14">Horizontal_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_486_7" HREF="terminal_interface-curses__ads.htm#ref_731_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Line_Size</A></FONT> : Natural; +- <FONT COLOR=red><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_485_14" HREF="terminal_interface-curses__ads.htm#ref_729_14">Horizontal_Line</A></span> ++ (<span class="symbol"><A NAME="ref_486_7" HREF="terminal_interface-curses__ads.htm#ref_730_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_731_7">Line_Size</A></span> : Natural; ++ <span class="symbol"><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_490_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_490_16">Whline</A></span> (<span class="symbol"><A NAME="ref_490_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Whline, "whline"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_490_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_731_7">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_730_14">Horizontal_Line</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_502_14" HREF="terminal_interface-curses__ads.htm#ref_739_14">Vertical_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_503_7" HREF="terminal_interface-curses__ads.htm#ref_740_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_504_7" HREF="terminal_interface-curses__ads.htm#ref_741_7">Line_Size</A></FONT> : Natural; +- <FONT COLOR=red><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_742_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_507_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_508_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; +- <FONT COLOR=red><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_490_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_730_7">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Line_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_731_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_729_14">Horizontal_Line</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_502_14" HREF="terminal_interface-curses__ads.htm#ref_738_14">Vertical_Line</A></span> ++ (<span class="symbol"><A NAME="ref_503_7" HREF="terminal_interface-curses__ads.htm#ref_739_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_504_7" HREF="terminal_interface-curses__ads.htm#ref_740_7">Line_Size</A></span> : Natural; ++ <span class="symbol"><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_741_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_507_16">Wvline</A></span> (<span class="symbol"><A NAME="ref_507_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_508_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <span class="symbol"><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wvline, "wvline"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_507_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_740_7">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_742_7">Line_Symbol</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_741_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_507_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_739_7">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_741_7">Line_Symbol</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_740_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_739_14">Vertical_Line</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_738_14">Vertical_Line</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_520_13" HREF="terminal_interface-curses__ads.htm#ref_753_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_520_28" HREF="terminal_interface-curses__ads.htm#ref_753_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_520_13" HREF="terminal_interface-curses__ads.htm#ref_752_13">Get_Keystroke</A></span> (<span class="symbol"><A NAME="ref_520_28" HREF="terminal_interface-curses__ads.htm#ref_752_28">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_523_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_523_24" HREF="terminal_interface-curses__adb.htm#ref_523_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_523_16">Wgetch</A></span> (<span class="symbol"><A NAME="ref_523_24" HREF="terminal_interface-curses__adb.htm#ref_523_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wgetch, "wgetch"); + +- <FONT COLOR=red><A NAME="ref_526_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_523_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_753_28">Win</A>); ++ <span class="symbol"><A NAME="ref_526_7">C</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_523_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_752_28">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_88_4">Key_None</A>; + <b>else</b> + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_753_13">Get_Keystroke</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_752_13">Get_Keystroke</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_535_14" HREF="terminal_interface-curses__ads.htm#ref_764_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_535_30" HREF="terminal_interface-curses__ads.htm#ref_764_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_535_14" HREF="terminal_interface-curses__ads.htm#ref_763_14">Undo_Keystroke</A></span> (<span class="symbol"><A NAME="ref_535_30" HREF="terminal_interface-curses__ads.htm#ref_763_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_537_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_537_25" HREF="terminal_interface-curses__adb.htm#ref_537_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_537_16">Ungetch</A></span> (<span class="symbol"><A NAME="ref_537_25" HREF="terminal_interface-curses__adb.htm#ref_537_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Ungetch, "ungetch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_537_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_764_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_537_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_763_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_764_14">Undo_Keystroke</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_763_14">Undo_Keystroke</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_545_13" HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_545_22" HREF="terminal_interface-curses__ads.htm#ref_769_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_545_13" HREF="terminal_interface-curses__ads.htm#ref_768_13">Has_Key</A></span> (<span class="symbol"><A NAME="ref_545_22" HREF="terminal_interface-curses__ads.htm#ref_768_22">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_547_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_547_24" HREF="terminal_interface-curses__adb.htm#ref_547_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_547_16">Haskey</A></span> (<span class="symbol"><A NAME="ref_547_24" HREF="terminal_interface-curses__adb.htm#ref_547_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Haskey, "has_key"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_547_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_769_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_547_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_768_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Has_Key</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_557_13" HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_557_30" HREF="terminal_interface-curses__ads.htm#ref_776_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_557_13" HREF="terminal_interface-curses__ads.htm#ref_775_13">Is_Function_Key</A></span> (<span class="symbol"><A NAME="ref_557_30" HREF="terminal_interface-curses__ads.htm#ref_775_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean + <b>is</b> +- <FONT COLOR=red><A NAME="ref_559_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + +- Natural (<A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>'Last)); ++ <span class="symbol"><A NAME="ref_559_7">L</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + ++ Natural (<A HREF="terminal_interface-curses__ads.htm#ref_779_12">Function_Key_Number</A>'Last)); + <b>begin</b> +- <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_776_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_776_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_559_7">L</A>) <b>then</b> ++ <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_775_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_775_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_559_7">L</A>) <b>then</b> + <b>return</b> True; + <b>else</b> + <b>return</b> False; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Is_Function_Key</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_569_13" HREF="terminal_interface-curses__ads.htm#ref_783_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27" HREF="terminal_interface-curses__ads.htm#ref_783_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_569_13" HREF="terminal_interface-curses__ads.htm#ref_782_13">Function_Key</A></span> (<span class="symbol"><A NAME="ref_569_27" HREF="terminal_interface-curses__ads.htm#ref_782_27">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_779_12">Function_Key_Number</A> + <b>is</b> + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_783_27">Key</A>) <b>then</b> +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_783_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_782_27">Key</A>) <b>then</b> ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_779_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_782_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>); + <b>else</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_783_13">Function_Key</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_782_13">Function_Key</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_580_13" HREF="terminal_interface-curses__ads.htm#ref_788_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_580_32" HREF="terminal_interface-curses__ads.htm#ref_788_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_580_13" HREF="terminal_interface-curses__ads.htm#ref_787_13">Function_Key_Code</A></span> (<span class="symbol"><A NAME="ref_580_32" HREF="terminal_interface-curses__ads.htm#ref_787_32">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_779_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> + <b>is</b> + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_788_32">Key</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_788_13">Function_Key_Code</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses__ads.htm#ref_802_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_586_24" HREF="terminal_interface-curses__ads.htm#ref_802_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_587_24" HREF="terminal_interface-curses__ads.htm#ref_803_24">On</A></FONT> : Boolean := True) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_787_32">Key</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_787_13">Function_Key_Code</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_586_14" HREF="terminal_interface-curses__ads.htm#ref_801_14">Standout</A></span> (<span class="symbol"><A NAME="ref_586_24" HREF="terminal_interface-curses__ads.htm#ref_801_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_587_24" HREF="terminal_interface-curses__ads.htm#ref_802_24">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_589_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_589_27" HREF="terminal_interface-curses__adb.htm#ref_589_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_589_16">wstandout</A></span> (<span class="symbol"><A NAME="ref_589_27" HREF="terminal_interface-curses__adb.htm#ref_589_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, wstandout, "wstandout"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_591_27" HREF="terminal_interface-curses__adb.htm#ref_591_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_591_16">wstandend</A></span> (<span class="symbol"><A NAME="ref_591_27" HREF="terminal_interface-curses__adb.htm#ref_591_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, wstandend, "wstandend"); + +- <FONT COLOR=red><A NAME="ref_594_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_594_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_803_24">On</A> <b>then</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_589_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_802_24">Win</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_802_24">On</A> <b>then</b> ++ <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_589_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_24">Win</A>); + <b>else</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_591_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_802_24">Win</A>); ++ <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_591_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_24">Win</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_802_14">Standout</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_801_14">Standout</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_606_14" HREF="terminal_interface-curses__ads.htm#ref_808_14">Switch_Character_Attribute</A></FONT> +- (<FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__ads.htm#ref_809_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__ads.htm#ref_810_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__ads.htm#ref_811_7">On</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_606_14" HREF="terminal_interface-curses__ads.htm#ref_807_14">Switch_Character_Attribute</A></span> ++ (<span class="symbol"><A NAME="ref_607_7" HREF="terminal_interface-curses__ads.htm#ref_808_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_608_7" HREF="terminal_interface-curses__ads.htm#ref_809_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_609_7" HREF="terminal_interface-curses__ads.htm#ref_810_7">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_611_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_611_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_612_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_611_16">Wattron</A></span> (<span class="symbol"><A NAME="ref_611_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_612_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">C_Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wattron, "wattr_on"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_614_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_614_16">Wattroff</A></span> (<span class="symbol"><A NAME="ref_614_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_615_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wattroff, "wattr_off"); +- <FONT COLOR=green><EM>-- In Ada we use the On Boolean to control whether or not we want to</EM></FONT> +- <FONT COLOR=green><EM>-- switch on or off the attributes in the set.</EM></FONT> +- <FONT COLOR=red><A NAME="ref_619_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_620_7">AC</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_810_7">Attr</A>); ++ <span class="comment"><EM>-- In Ada we use the On Boolean to control whether or not we want to</EM></span> ++ <span class="comment"><EM>-- switch on or off the attributes in the set.</EM></span> ++ <span class="symbol"><A NAME="ref_619_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_620_7">AC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_809_7">Attr</A>); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_811_7">On</A> <b>then</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_611_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#ref_809_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>)); ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_810_7">On</A> <b>then</b> ++ <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_611_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#ref_808_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>)); + <b>else</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_809_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_808_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>)); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_808_14">Switch_Character_Attribute</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_807_14">Switch_Character_Attribute</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_634_14" HREF="terminal_interface-curses__ads.htm#ref_819_14">Set_Character_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_635_7" HREF="terminal_interface-curses__ads.htm#ref_820_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_636_7" HREF="terminal_interface-curses__ads.htm#ref_821_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_637_7" HREF="terminal_interface-curses__ads.htm#ref_822_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_634_14" HREF="terminal_interface-curses__ads.htm#ref_818_14">Set_Character_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_635_7" HREF="terminal_interface-curses__ads.htm#ref_819_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_636_7" HREF="terminal_interface-curses__ads.htm#ref_820_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_637_7" HREF="terminal_interface-curses__ads.htm#ref_821_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_639_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_639_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_640_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>pragma</b> Import (C, Wattrset, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_639_16">Wattrset</A></span> (<span class="symbol"><A NAME="ref_639_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_640_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">C_Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>pragma</b> Import (C, Wattrset, "wattrset"); <span class="comment"><EM>-- ??? wattr_set</EM></span> + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_639_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_820_7">Win</A>, +- AttrChar_To_AttrType (<A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>' +- (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_822_7">Color</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_821_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_639_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_819_7">Win</A>, ++ AttrChar_To_AttrType (<A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>' ++ (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_821_7">Color</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_820_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_819_14">Set_Character_Attributes</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_818_14">Set_Character_Attributes</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_652_13" HREF="terminal_interface-curses__ads.htm#ref_828_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_652_38" HREF="terminal_interface-curses__ads.htm#ref_829_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_652_13" HREF="terminal_interface-curses__ads.htm#ref_827_13">Get_Character_Attribute</A></span> (<span class="symbol"><A NAME="ref_652_38" HREF="terminal_interface-curses__ads.htm#ref_828_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_655_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_655_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_656_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; +- <FONT COLOR=red><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_655_16">Wattrget</A></span> (<span class="symbol"><A NAME="ref_655_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_656_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Atr</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; ++ <span class="symbol"><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Col</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Opt</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wattrget, "wattr_get"); + +- <FONT COLOR=red><A NAME="ref_661_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; +- <FONT COLOR=red><A NAME="ref_662_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_663_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_655_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_829_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_662_7">Col</A>'<b>Access</b>, ++ <span class="symbol"><A NAME="ref_661_7">Attr</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; ++ <span class="symbol"><A NAME="ref_662_7">Col</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_663_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_655_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_828_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_662_7">Col</A>'<b>Access</b>, + System.Null_Address); +- <FONT COLOR=red><A NAME="ref_665_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; ++ <span class="symbol"><A NAME="ref_665_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>); +- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; ++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; + <b>else</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_828_13">Get_Character_Attribute</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_827_13">Get_Character_Attribute</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_834_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_835_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_833_13">Get_Character_Attribute</A></span> (<span class="symbol"><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_834_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_678_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; +- <FONT COLOR=red><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_678_16">Wattrget</A></span> (<span class="symbol"><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; ++ <span class="symbol"><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wattrget, "wattr_get"); + +- <FONT COLOR=red><A NAME="ref_684_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; +- <FONT COLOR=red><A NAME="ref_685_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_686_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_835_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>, ++ <span class="symbol"><A NAME="ref_684_7">Attr</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; ++ <span class="symbol"><A NAME="ref_685_7">Col</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_686_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_834_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>, + System.Null_Address); +- <FONT COLOR=red><A NAME="ref_688_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; ++ <span class="symbol"><A NAME="ref_688_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_686_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>); +- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; ++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; + <b>else</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_834_13">Get_Character_Attribute</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_833_13">Get_Character_Attribute</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_698_14" HREF="terminal_interface-curses__ads.htm#ref_840_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_698_25" HREF="terminal_interface-curses__ads.htm#ref_840_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_699_25" HREF="terminal_interface-curses__ads.htm#ref_841_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_698_14" HREF="terminal_interface-curses__ads.htm#ref_839_14">Set_Color</A></span> (<span class="symbol"><A NAME="ref_698_25" HREF="terminal_interface-curses__ads.htm#ref_839_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_699_25" HREF="terminal_interface-curses__ads.htm#ref_840_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_701_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_702_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_703_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Opts</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_701_16">Wset_Color</A></span> (<span class="symbol"><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_702_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_703_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Opts</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wset_Color, "wcolor_set"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_701_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_25">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_841_25">Pair</A>), ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_701_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_839_25">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_25">Pair</A>), + <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_840_14">Set_Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Set_Color</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_713_14" HREF="terminal_interface-curses__ads.htm#ref_847_14">Change_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_848_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Count</A></FONT> : Integer := -1; +- <FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__ads.htm#ref_851_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_719_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; +- <FONT COLOR=red><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_723_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Opts</A></FONT> : System.Address := System.Null_Address) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_713_14" HREF="terminal_interface-curses__ads.htm#ref_846_14">Change_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_847_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_848_7">Count</A></span> : Integer := -1; ++ <span class="symbol"><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_717_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_719_16">Wchgat</A></span> (<span class="symbol"><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>; ++ <span class="symbol"><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_723_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Opts</A></span> : System.Address := System.Null_Address) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wchgat, "wchgat"); + +- <FONT COLOR=red><A NAME="ref_727_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := +- (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_850_7">Attr</A>); ++ <span class="symbol"><A NAME="ref_727_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := ++ (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_849_7">Attr</A>); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_719_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_848_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_727_7">Ch</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_851_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_847_14">Change_Attributes</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_736_14" HREF="terminal_interface-curses__ads.htm#ref_856_14">Change_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_737_7" HREF="terminal_interface-curses__ads.htm#ref_857_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_858_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First; +- <FONT COLOR=red><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_859_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First; +- <FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_860_7">Count</A></FONT> : Integer := -1; +- <FONT COLOR=red><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_861_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_862_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_857_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_7">Column</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_847_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_857_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_861_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_862_7">Color</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_856_14">Change_Attributes</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_749_14" HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A></FONT> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_719_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_847_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_848_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_727_7">Ch</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_850_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_846_14">Change_Attributes</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_736_14" HREF="terminal_interface-curses__ads.htm#ref_855_14">Change_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_737_7" HREF="terminal_interface-curses__ads.htm#ref_856_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_857_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First; ++ <span class="symbol"><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_858_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First; ++ <span class="symbol"><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_859_7">Count</A></span> : Integer := -1; ++ <span class="symbol"><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_860_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_861_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_856_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_857_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_7">Column</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_846_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_856_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_861_7">Color</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_855_14">Change_Attributes</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_749_14" HREF="terminal_interface-curses__ads.htm#ref_871_14">Beep</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_751_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_751_16">Beeper</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Beeper, "beep"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_751_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_871_14">Beep</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_759_14" HREF="terminal_interface-curses__ads.htm#ref_877_14">Flash_Screen</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_759_14" HREF="terminal_interface-curses__ads.htm#ref_876_14">Flash_Screen</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_761_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_761_16">Flash</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Flash, "flash"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_761_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_877_14">Flash_Screen</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_769_14" HREF="terminal_interface-curses__ads.htm#ref_888_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_769_31" HREF="terminal_interface-curses__ads.htm#ref_888_31">SwitchOn</A></FONT> : Boolean := True) ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_876_14">Flash_Screen</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_769_14" HREF="terminal_interface-curses__ads.htm#ref_887_14">Set_Cbreak_Mode</A></span> (<span class="symbol"><A NAME="ref_769_31" HREF="terminal_interface-curses__ads.htm#ref_887_31">SwitchOn</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_771_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_771_16">Cbreak</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Cbreak, "cbreak"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_773_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_773_16">NoCbreak</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, NoCbreak, "nocbreak"); + +- <FONT COLOR=red><A NAME="ref_776_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_776_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_888_31">SwitchOn</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_887_31">SwitchOn</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_771_16">Cbreak</A>; + <b>else</b> + <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_773_16">NoCbreak</A>; + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_888_14">Set_Cbreak_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_887_14">Set_Cbreak_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_788_14" HREF="terminal_interface-curses__ads.htm#ref_894_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_788_28" HREF="terminal_interface-curses__ads.htm#ref_894_28">SwitchOn</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_788_14" HREF="terminal_interface-curses__ads.htm#ref_893_14">Set_Raw_Mode</A></span> (<span class="symbol"><A NAME="ref_788_28" HREF="terminal_interface-curses__ads.htm#ref_893_28">SwitchOn</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_790_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_790_16">Raw</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Raw, "raw"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_792_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_792_16">NoRaw</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, NoRaw, "noraw"); + +- <FONT COLOR=red><A NAME="ref_795_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_795_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_894_28">SwitchOn</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_893_28">SwitchOn</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_790_16">Raw</A>; + <b>else</b> + <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_792_16">NoRaw</A>; + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_894_14">Set_Raw_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_893_14">Set_Raw_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_807_14" HREF="terminal_interface-curses__ads.htm#ref_900_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_807_29" HREF="terminal_interface-curses__ads.htm#ref_900_29">SwitchOn</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_807_14" HREF="terminal_interface-curses__ads.htm#ref_899_14">Set_Echo_Mode</A></span> (<span class="symbol"><A NAME="ref_807_29" HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_809_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_809_16">Echo</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Echo, "echo"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_811_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_811_16">NoEcho</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, NoEcho, "noecho"); + +- <FONT COLOR=red><A NAME="ref_814_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_814_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_900_29">SwitchOn</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_809_16">Echo</A>; + <b>else</b> + <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_811_16">NoEcho</A>; + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_900_14">Set_Echo_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_899_14">Set_Echo_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_826_14" HREF="terminal_interface-curses__ads.htm#ref_906_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_826_29" HREF="terminal_interface-curses__ads.htm#ref_906_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_907_29">SwitchOn</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_826_14" HREF="terminal_interface-curses__ads.htm#ref_905_14">Set_Meta_Mode</A></span> (<span class="symbol"><A NAME="ref_826_29" HREF="terminal_interface-curses__ads.htm#ref_905_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_906_29">SwitchOn</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_829_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_829_22" HREF="terminal_interface-curses__adb.htm#ref_829_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_829_34" HREF="terminal_interface-curses__adb.htm#ref_829_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_829_16">Meta</A></span> (<span class="symbol"><A NAME="ref_829_22" HREF="terminal_interface-curses__adb.htm#ref_829_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_829_34" HREF="terminal_interface-curses__adb.htm#ref_829_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Meta, "meta"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_906_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_907_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_905_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_906_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_906_14">Set_Meta_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_905_14">Set_Meta_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_837_14" HREF="terminal_interface-curses__ads.htm#ref_912_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_837_31" HREF="terminal_interface-curses__ads.htm#ref_912_31">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_913_31">SwitchOn</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_837_14" HREF="terminal_interface-curses__ads.htm#ref_911_14">Set_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_837_31" HREF="terminal_interface-curses__ads.htm#ref_911_31">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_912_31">SwitchOn</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_840_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_840_24" HREF="terminal_interface-curses__adb.htm#ref_840_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_840_36" HREF="terminal_interface-curses__adb.htm#ref_840_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_840_16">Keypad</A></span> (<span class="symbol"><A NAME="ref_840_24" HREF="terminal_interface-curses__adb.htm#ref_840_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_840_36" HREF="terminal_interface-curses__adb.htm#ref_840_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Keypad, "keypad"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_840_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_912_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_913_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_840_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_911_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_912_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_912_14">Set_KeyPad_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_911_14">Set_KeyPad_Mode</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_848_13" HREF="terminal_interface-curses__ads.htm#ref_917_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_848_30" HREF="terminal_interface-curses__ads.htm#ref_917_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_848_13" HREF="terminal_interface-curses__ads.htm#ref_916_13">Get_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_848_30" HREF="terminal_interface-curses__ads.htm#ref_916_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_851_16">Is_Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_851_27" HREF="terminal_interface-curses__adb.htm#ref_851_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_851_16">Is_Keypad</A></span> (<span class="symbol"><A NAME="ref_851_27" HREF="terminal_interface-curses__adb.htm#ref_851_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Is_Keypad, "is_keypad"); + <b>begin</b> +- <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_851_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_917_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_917_13">Get_KeyPad_Mode</A>; ++ <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_851_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_916_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_916_13">Get_KeyPad_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_857_14" HREF="terminal_interface-curses__ads.htm#ref_925_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_857_26" HREF="terminal_interface-curses__ads.htm#ref_925_26">Amount</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_922_9">Half_Delay_Amount</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_857_14" HREF="terminal_interface-curses__ads.htm#ref_924_14">Half_Delay</A></span> (<span class="symbol"><A NAME="ref_857_26" HREF="terminal_interface-curses__ads.htm#ref_924_26">Amount</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_921_9">Half_Delay_Amount</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_859_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_859_27" HREF="terminal_interface-curses__adb.htm#ref_859_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_859_16">Halfdelay</A></span> (<span class="symbol"><A NAME="ref_859_27" HREF="terminal_interface-curses__adb.htm#ref_859_16">Amount</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Halfdelay, "halfdelay"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_859_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_925_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_859_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_924_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_925_14">Half_Delay</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_924_14">Half_Delay</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_867_14" HREF="terminal_interface-curses__ads.htm#ref_930_14">Set_Flush_On_Interrupt_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_868_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_932_7">Mode</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_867_14" HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Flush_On_Interrupt_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_868_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Mode</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_871_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_871_27" HREF="terminal_interface-curses__adb.htm#ref_871_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_871_41" HREF="terminal_interface-curses__adb.htm#ref_871_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_871_16">Intrflush</A></span> (<span class="symbol"><A NAME="ref_871_27" HREF="terminal_interface-curses__adb.htm#ref_871_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_871_41" HREF="terminal_interface-curses__adb.htm#ref_871_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Intrflush, "intrflush"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_871_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_931_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_932_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_871_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_931_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_930_14">Set_Flush_On_Interrupt_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Flush_On_Interrupt_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_Queue_Interrupt_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_880_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_939_7">Flush</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_936_14">Set_Queue_Interrupt_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_880_7" HREF="terminal_interface-curses__ads.htm#ref_937_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Flush</A></span> : Boolean := True) + <b>is</b> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_883_17">Qiflush</A></FONT>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_883_17">Qiflush</A></span>; + <b>pragma</b> Import (C, Qiflush, "qiflush"); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_885_17">No_Qiflush</A></FONT>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_885_17">No_Qiflush</A></span>; + <b>pragma</b> Import (C, No_Qiflush, "noqiflush"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_939_7">Flush</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_938_7">Flush</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_883_17">Qiflush</A>; + <b>else</b> + <A HREF="terminal_interface-curses__adb.htm#ref_885_17">No_Qiflush</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_Queue_Interrupt_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_936_14">Set_Queue_Interrupt_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_898_14" HREF="terminal_interface-curses__ads.htm#ref_945_14">Set_NoDelay_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_899_7" HREF="terminal_interface-curses__ads.htm#ref_946_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_947_7">Mode</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_898_14" HREF="terminal_interface-curses__ads.htm#ref_944_14">Set_NoDelay_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_899_7" HREF="terminal_interface-curses__ads.htm#ref_945_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_946_7">Mode</A></span> : Boolean := False) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_902_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_902_25" HREF="terminal_interface-curses__adb.htm#ref_902_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_902_39" HREF="terminal_interface-curses__adb.htm#ref_902_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_902_16">Nodelay</A></span> (<span class="symbol"><A NAME="ref_902_25" HREF="terminal_interface-curses__adb.htm#ref_902_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_902_39" HREF="terminal_interface-curses__adb.htm#ref_902_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Nodelay, "nodelay"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_902_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_946_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_947_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_902_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_945_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_946_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_945_14">Set_NoDelay_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_944_14">Set_NoDelay_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_910_14" HREF="terminal_interface-curses__ads.htm#ref_954_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_910_32" HREF="terminal_interface-curses__ads.htm#ref_954_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_955_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_951_9">Timeout_Mode</A>; +- <FONT COLOR=red><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_956_32">Amount</A></FONT> : Natural) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_910_14" HREF="terminal_interface-curses__ads.htm#ref_953_14">Set_Timeout_Mode</A></span> (<span class="symbol"><A NAME="ref_910_32" HREF="terminal_interface-curses__ads.htm#ref_953_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_954_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_950_9">Timeout_Mode</A>; ++ <span class="symbol"><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_955_32">Amount</A></span> : Natural) + <b>is</b> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_914_17">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_914_27" HREF="terminal_interface-curses__adb.htm#ref_914_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_914_41" HREF="terminal_interface-curses__adb.htm#ref_914_17">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_914_17">Wtimeout</A></span> (<span class="symbol"><A NAME="ref_914_27" HREF="terminal_interface-curses__adb.htm#ref_914_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_914_41" HREF="terminal_interface-curses__adb.htm#ref_914_17">Amount</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>); + <b>pragma</b> Import (C, Wtimeout, "wtimeout"); + +- <FONT COLOR=red><A NAME="ref_917_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_917_7">Time</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_955_32">Mode</A> <b>is</b> +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_26">Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := -1; +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := 0; +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_50">Delayed</A> =&gt; +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_956_32">Amount</A> = 0 <b>then</b> ++ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_954_32">Mode</A> <b>is</b> ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_950_26">Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := -1; ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_950_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := 0; ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_950_50">Delayed</A> =&gt; ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_955_32">Amount</A> = 0 <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_956_32">Amount</A>); ++ <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_955_32">Amount</A>); + <b>end</b> <b>case</b>; +- <A HREF="terminal_interface-curses__adb.htm#ref_914_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_954_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_954_14">Set_Timeout_Mode</A>; ++ <A HREF="terminal_interface-curses__adb.htm#ref_914_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_953_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_953_14">Set_Timeout_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_931_14" HREF="terminal_interface-curses__ads.htm#ref_966_14">Set_Escape_Timer_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_967_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_968_7">Timer_Off</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_931_14" HREF="terminal_interface-curses__ads.htm#ref_965_14">Set_Escape_Timer_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_966_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_967_7">Timer_Off</A></span> : Boolean := False) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_935_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_935_27" HREF="terminal_interface-curses__adb.htm#ref_935_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_935_41" HREF="terminal_interface-curses__adb.htm#ref_935_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_935_16">Notimeout</A></span> (<span class="symbol"><A NAME="ref_935_27" HREF="terminal_interface-curses__adb.htm#ref_935_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_935_41" HREF="terminal_interface-curses__adb.htm#ref_935_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Notimeout, "notimeout"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_935_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_967_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_968_7">Timer_Off</A>))) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_935_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_966_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_967_7">Timer_Off</A>))) + = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_966_14">Set_Escape_Timer_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_965_14">Set_Escape_Timer_Mode</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_945_14" HREF="terminal_interface-curses__ads.htm#ref_977_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_945_27" HREF="terminal_interface-curses__ads.htm#ref_977_27">SwitchOn</A></FONT> : Boolean := True) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_945_14" HREF="terminal_interface-curses__ads.htm#ref_976_14">Set_NL_Mode</A></span> (<span class="symbol"><A NAME="ref_945_27" HREF="terminal_interface-curses__ads.htm#ref_976_27">SwitchOn</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_947_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_947_16">NL</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, NL, "nl"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_949_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_949_16">NoNL</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, NoNL, "nonl"); + +- <FONT COLOR=red><A NAME="ref_952_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_952_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_977_27">SwitchOn</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_976_27">SwitchOn</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_947_16">NL</A>; + <b>else</b> + <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_949_16">NoNL</A>; + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_977_14">Set_NL_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_976_14">Set_NL_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_964_14" HREF="terminal_interface-curses__ads.htm#ref_983_14">Clear_On_Next_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_965_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_966_7" HREF="terminal_interface-curses__ads.htm#ref_985_7">Do_Clear</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_964_14" HREF="terminal_interface-curses__ads.htm#ref_982_14">Clear_On_Next_Update</A></span> ++ (<span class="symbol"><A NAME="ref_965_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_966_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Clear</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_968_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_968_26" HREF="terminal_interface-curses__adb.htm#ref_968_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_968_38" HREF="terminal_interface-curses__adb.htm#ref_968_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_968_16">Clear_Ok</A></span> (<span class="symbol"><A NAME="ref_968_26" HREF="terminal_interface-curses__adb.htm#ref_968_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_968_38" HREF="terminal_interface-curses__adb.htm#ref_968_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Clear_Ok, "clearok"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_968_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_984_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_985_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_968_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_983_14">Clear_On_Next_Update</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_982_14">Clear_On_Next_Update</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_976_14" HREF="terminal_interface-curses__ads.htm#ref_990_14">Use_Insert_Delete_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_978_7" HREF="terminal_interface-curses__ads.htm#ref_992_7">Do_Idl</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_976_14" HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Line</A></span> ++ (<span class="symbol"><A NAME="ref_977_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_978_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idl</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_980_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_980_24" HREF="terminal_interface-curses__adb.htm#ref_980_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_980_36" HREF="terminal_interface-curses__adb.htm#ref_980_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_980_16">IDL_Ok</A></span> (<span class="symbol"><A NAME="ref_980_24" HREF="terminal_interface-curses__adb.htm#ref_980_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_980_36" HREF="terminal_interface-curses__adb.htm#ref_980_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, IDL_Ok, "idlok"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_980_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_992_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_980_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_990_14">Use_Insert_Delete_Line</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Line</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_988_14" HREF="terminal_interface-curses__ads.htm#ref_997_14">Use_Insert_Delete_Character</A></FONT> +- (<FONT COLOR=red><A NAME="ref_989_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_990_7" HREF="terminal_interface-curses__ads.htm#ref_999_7">Do_Idc</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_988_14" HREF="terminal_interface-curses__ads.htm#ref_996_14">Use_Insert_Delete_Character</A></span> ++ (<span class="symbol"><A NAME="ref_989_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_990_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Idc</A></span> : Boolean := True) + <b>is</b> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_17">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_992_25" HREF="terminal_interface-curses__adb.htm#ref_992_17">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_992_37" HREF="terminal_interface-curses__adb.htm#ref_992_17">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_992_17">IDC_Ok</A></span> (<span class="symbol"><A NAME="ref_992_25" HREF="terminal_interface-curses__adb.htm#ref_992_17">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_992_37" HREF="terminal_interface-curses__adb.htm#ref_992_17">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>); + <b>pragma</b> Import (C, IDC_Ok, "idcok"); + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_992_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_999_7">Do_Idc</A>))); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_997_14">Use_Insert_Delete_Character</A>; ++ <A HREF="terminal_interface-curses__adb.htm#ref_992_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Idc</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_996_14">Use_Insert_Delete_Character</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_1004_14">Leave_Cursor_After_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_999_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1000_7" HREF="terminal_interface-curses__ads.htm#ref_1006_7">Do_Leave</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_1003_14">Leave_Cursor_After_Update</A></span> ++ (<span class="symbol"><A NAME="ref_999_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1000_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Do_Leave</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1002_26" HREF="terminal_interface-curses__adb.htm#ref_1002_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1002_38" HREF="terminal_interface-curses__adb.htm#ref_1002_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1002_16">Leave_Ok</A></span> (<span class="symbol"><A NAME="ref_1002_26" HREF="terminal_interface-curses__adb.htm#ref_1002_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1002_38" HREF="terminal_interface-curses__adb.htm#ref_1002_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Leave_Ok, "leaveok"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1005_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1006_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1005_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1004_14">Leave_Cursor_After_Update</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1003_14">Leave_Cursor_After_Update</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1010_14" HREF="terminal_interface-curses__ads.htm#ref_1011_14">Immediate_Update_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1011_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__ads.htm#ref_1013_7">Mode</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1010_14" HREF="terminal_interface-curses__ads.htm#ref_1010_14">Immediate_Update_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_1011_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1012_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A></span> : Boolean := False) + <b>is</b> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1014_17">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1014_26" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1014_40" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1014_17">Immedok</A></span> (<span class="symbol"><A NAME="ref_1014_26" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1014_40" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>); + <b>pragma</b> Import (C, Immedok, "immedok"); + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1014_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1012_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1013_7">Mode</A>))); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1011_14">Immediate_Update_Mode</A>; ++ <A HREF="terminal_interface-curses__adb.htm#ref_1014_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1010_14">Immediate_Update_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1020_14" HREF="terminal_interface-curses__ads.htm#ref_1018_14">Allow_Scrolling</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1021_7" HREF="terminal_interface-curses__ads.htm#ref_1019_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1022_7" HREF="terminal_interface-curses__ads.htm#ref_1020_7">Mode</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1020_14" HREF="terminal_interface-curses__ads.htm#ref_1017_14">Allow_Scrolling</A></span> ++ (<span class="symbol"><A NAME="ref_1021_7" HREF="terminal_interface-curses__ads.htm#ref_1018_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1022_7" HREF="terminal_interface-curses__ads.htm#ref_1019_7">Mode</A></span> : Boolean := False) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1024_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1024_26" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1024_40" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1024_16">Scrollok</A></span> (<span class="symbol"><A NAME="ref_1024_26" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1024_40" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Scrollok, "scrollok"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1024_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1019_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1020_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1024_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1018_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1019_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1018_14">Allow_Scrolling</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1017_14">Allow_Scrolling</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1032_13" HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1032_32" HREF="terminal_interface-curses__ads.htm#ref_1024_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_1032_13" HREF="terminal_interface-curses__ads.htm#ref_1023_13">Scrolling_Allowed</A></span> (<span class="symbol"><A NAME="ref_1032_32" HREF="terminal_interface-curses__ads.htm#ref_1023_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1035_16">Is_Scroll_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1035_30" HREF="terminal_interface-curses__adb.htm#ref_1035_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1035_16">Is_Scroll_Ok</A></span> (<span class="symbol"><A NAME="ref_1035_30" HREF="terminal_interface-curses__adb.htm#ref_1035_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Is_Scroll_Ok, "is_scrollok"); + <b>begin</b> +- <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1035_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1024_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A>; ++ <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1035_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1023_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1023_13">Scrolling_Allowed</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_1029_14">Set_Scroll_Region</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_1031_7">Top_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1032_7">Bottom_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1046_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1046_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1047_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_1028_14">Set_Scroll_Region</A></span> ++ (<span class="symbol"><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_1029_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Top_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1031_7">Bottom_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1046_16">Wsetscrreg</A></span> (<span class="symbol"><A NAME="ref_1046_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1047_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wsetscrreg, "wsetscrreg"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1046_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1031_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1032_7">Bottom_Line</A>)) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1046_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1029_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1031_7">Bottom_Line</A>)) + = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1029_14">Set_Scroll_Region</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1057_14" HREF="terminal_interface-curses__ads.htm#ref_1042_14">Update_Screen</A></FONT> ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1028_14">Set_Scroll_Region</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1057_14" HREF="terminal_interface-curses__ads.htm#ref_1041_14">Update_Screen</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1059_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1059_16">Do_Update</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Do_Update, "doupdate"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1059_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1042_14">Update_Screen</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1041_14">Update_Screen</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1067_14" HREF="terminal_interface-curses__ads.htm#ref_1047_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1067_23" HREF="terminal_interface-curses__ads.htm#ref_1047_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1067_14" HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh</A></span> (<span class="symbol"><A NAME="ref_1067_23" HREF="terminal_interface-curses__ads.htm#ref_1046_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_26" HREF="terminal_interface-curses__adb.htm#ref_1069_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1069_16">Wrefresh</A></span> (<span class="symbol"><A NAME="ref_1069_26" HREF="terminal_interface-curses__adb.htm#ref_1069_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wrefresh, "wrefresh"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1047_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1046_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1047_14">Refresh</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1054_14">Refresh_Without_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1055_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1053_14">Refresh_Without_Update</A></span> ++ (<span class="symbol"><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1054_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1080_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1080_30" HREF="terminal_interface-curses__adb.htm#ref_1080_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1080_16">Wnoutrefresh</A></span> (<span class="symbol"><A NAME="ref_1080_30" HREF="terminal_interface-curses__adb.htm#ref_1080_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wnoutrefresh, "wnoutrefresh"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1080_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1055_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1080_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1054_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1054_14">Refresh_Without_Update</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1053_14">Refresh_Without_Update</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1088_14" HREF="terminal_interface-curses__ads.htm#ref_1061_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1088_22" HREF="terminal_interface-curses__ads.htm#ref_1061_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1088_14" HREF="terminal_interface-curses__ads.htm#ref_1060_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1088_22" HREF="terminal_interface-curses__ads.htm#ref_1060_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1090_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1090_27" HREF="terminal_interface-curses__adb.htm#ref_1090_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1090_16">Redrawwin</A></span> (<span class="symbol"><A NAME="ref_1090_27" HREF="terminal_interface-curses__adb.htm#ref_1090_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Redrawwin, "redrawwin"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1090_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1061_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1090_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1060_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1061_14">Redraw</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1060_14">Redraw</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1098_14" HREF="terminal_interface-curses__ads.htm#ref_1065_14">Redraw</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1065_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1100_7" HREF="terminal_interface-curses__ads.htm#ref_1066_22">Begin_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1101_7" HREF="terminal_interface-curses__ads.htm#ref_1067_22">Line_Count</A></FONT> : Positive) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1098_14" HREF="terminal_interface-curses__ads.htm#ref_1064_14">Redraw</A></span> ++ (<span class="symbol"><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1064_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1100_7" HREF="terminal_interface-curses__ads.htm#ref_1065_22">Begin_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1101_7" HREF="terminal_interface-curses__ads.htm#ref_1066_22">Line_Count</A></span> : Positive) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1103_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1103_27" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1103_41" HREF="terminal_interface-curses__adb.htm#ref_1103_16">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1103_56" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_1103_16">Wredrawln</A></span> (<span class="symbol"><A NAME="ref_1103_27" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1103_41" HREF="terminal_interface-curses__adb.htm#ref_1103_16">First</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <span class="symbol"><A NAME="ref_1103_56" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wredrawln, "wredrawln"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1103_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1065_22">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1066_22">Begin_Line</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1067_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1103_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1064_22">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1065_22">Begin_Line</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1066_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1065_14">Redraw</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1064_14">Redraw</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1115_14" HREF="terminal_interface-curses__ads.htm#ref_1076_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1115_21" HREF="terminal_interface-curses__ads.htm#ref_1076_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1115_14" HREF="terminal_interface-curses__ads.htm#ref_1075_14">Erase</A></span> (<span class="symbol"><A NAME="ref_1115_21" HREF="terminal_interface-curses__ads.htm#ref_1075_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1117_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_24" HREF="terminal_interface-curses__adb.htm#ref_1117_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1117_16">Werase</A></span> (<span class="symbol"><A NAME="ref_1117_24" HREF="terminal_interface-curses__adb.htm#ref_1117_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Werase, "werase"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1117_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1076_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1117_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1075_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1076_14">Erase</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1075_14">Erase</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1125_14" HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1125_21" HREF="terminal_interface-curses__ads.htm#ref_1083_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1125_14" HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear</A></span> (<span class="symbol"><A NAME="ref_1125_21" HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1127_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1127_24" HREF="terminal_interface-curses__adb.htm#ref_1127_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1127_16">Wclear</A></span> (<span class="symbol"><A NAME="ref_1127_24" HREF="terminal_interface-curses__adb.htm#ref_1127_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wclear, "wclear"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1127_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1083_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1127_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1135_14" HREF="terminal_interface-curses__ads.htm#ref_1089_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_38" HREF="terminal_interface-curses__ads.htm#ref_1090_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1135_14" HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Screen</A></span> (<span class="symbol"><A NAME="ref_1135_38" HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1137_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1137_27" HREF="terminal_interface-curses__adb.htm#ref_1137_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1137_16">Wclearbot</A></span> (<span class="symbol"><A NAME="ref_1137_27" HREF="terminal_interface-curses__adb.htm#ref_1137_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wclearbot, "wclrtobot"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1137_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1090_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1137_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1089_14">Clear_To_End_Of_Screen</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Screen</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1145_14" HREF="terminal_interface-curses__ads.htm#ref_1096_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_36" HREF="terminal_interface-curses__ads.htm#ref_1097_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1145_14" HREF="terminal_interface-curses__ads.htm#ref_1095_14">Clear_To_End_Of_Line</A></span> (<span class="symbol"><A NAME="ref_1145_36" HREF="terminal_interface-curses__ads.htm#ref_1096_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1147_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1147_27" HREF="terminal_interface-curses__adb.htm#ref_1147_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1147_16">Wcleareol</A></span> (<span class="symbol"><A NAME="ref_1147_27" HREF="terminal_interface-curses__adb.htm#ref_1147_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wcleareol, "wclrtoeol"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1147_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1097_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1147_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1096_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1096_14">Clear_To_End_Of_Line</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1155_14" HREF="terminal_interface-curses__ads.htm#ref_1110_14">Set_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1157_7" HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1095_14">Clear_To_End_Of_Line</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1155_14" HREF="terminal_interface-curses__ads.htm#ref_1109_14">Set_Background</A></span> ++ (<span class="symbol"><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1110_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1157_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) + <b>is</b> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1159_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1159_30" HREF="terminal_interface-curses__adb.htm#ref_1159_17">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1159_42" HREF="terminal_interface-curses__adb.htm#ref_1159_17">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1159_17">WBackground</A></span> (<span class="symbol"><A NAME="ref_1159_30" HREF="terminal_interface-curses__adb.htm#ref_1159_17">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1159_42" HREF="terminal_interface-curses__adb.htm#ref_1159_17">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>); + <b>pragma</b> Import (C, WBackground, "wbkgdset"); + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1159_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Set_Background</A>; ++ <A HREF="terminal_interface-curses__adb.htm#ref_1159_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1110_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Ch</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1109_14">Set_Background</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1165_14" HREF="terminal_interface-curses__ads.htm#ref_1118_14">Change_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1166_7" HREF="terminal_interface-curses__ads.htm#ref_1119_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1167_7" HREF="terminal_interface-curses__ads.htm#ref_1120_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1165_14" HREF="terminal_interface-curses__ads.htm#ref_1117_14">Change_Background</A></span> ++ (<span class="symbol"><A NAME="ref_1166_7" HREF="terminal_interface-curses__ads.htm#ref_1118_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1167_7" HREF="terminal_interface-curses__ads.htm#ref_1119_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1169_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1169_29" HREF="terminal_interface-curses__adb.htm#ref_1169_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1169_41" HREF="terminal_interface-curses__adb.htm#ref_1169_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1169_16">WChangeBkgd</A></span> (<span class="symbol"><A NAME="ref_1169_29" HREF="terminal_interface-curses__adb.htm#ref_1169_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1169_41" HREF="terminal_interface-curses__adb.htm#ref_1169_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, WChangeBkgd, "wbkgd"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1169_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1120_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1169_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1118_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1118_14">Change_Background</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1117_14">Change_Background</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1177_13" HREF="terminal_interface-curses__ads.htm#ref_1127_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1177_29" HREF="terminal_interface-curses__ads.htm#ref_1127_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_1177_13" HREF="terminal_interface-curses__ads.htm#ref_1126_13">Get_Background</A></span> (<span class="symbol"><A NAME="ref_1177_29" HREF="terminal_interface-curses__ads.htm#ref_1126_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1180_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_26" HREF="terminal_interface-curses__adb.htm#ref_1180_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1180_16">Wgetbkgd</A></span> (<span class="symbol"><A NAME="ref_1180_26" HREF="terminal_interface-curses__adb.htm#ref_1180_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Wgetbkgd, "getbkgd"); + <b>begin</b> +- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1180_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1127_29">Win</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1127_13">Get_Background</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1186_14" HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1186_35" HREF="terminal_interface-curses__ads.htm#ref_1154_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1187_35" HREF="terminal_interface-curses__ads.htm#ref_1155_35">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1188_35" HREF="terminal_interface-curses__ads.htm#ref_1156_35">Count</A></FONT> : Positive; +- <FONT COLOR=red><A NAME="ref_1189_35" HREF="terminal_interface-curses__ads.htm#ref_1157_35">State</A></FONT> : Boolean) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1191_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1191_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1192_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1193_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1194_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1180_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1126_29">Win</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1126_13">Get_Background</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1186_14" HREF="terminal_interface-curses__ads.htm#ref_1153_14">Change_Lines_Status</A></span> (<span class="symbol"><A NAME="ref_1186_35" HREF="terminal_interface-curses__ads.htm#ref_1153_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1187_35" HREF="terminal_interface-curses__ads.htm#ref_1154_35">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1188_35" HREF="terminal_interface-curses__ads.htm#ref_1155_35">Count</A></span> : Positive; ++ <span class="symbol"><A NAME="ref_1189_35" HREF="terminal_interface-curses__ads.htm#ref_1156_35">State</A></span> : Boolean) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1191_16">Wtouchln</A></span> (<span class="symbol"><A NAME="ref_1191_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1192_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Sta</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1193_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1194_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Chg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wtouchln, "wtouchln"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1191_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1155_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1156_35">Count</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1157_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1191_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1153_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1155_35">Count</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1156_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1153_14">Change_Lines_Status</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1203_14" HREF="terminal_interface-curses__ads.htm#ref_1143_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1203_21" HREF="terminal_interface-curses__ads.htm#ref_1143_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1203_14" HREF="terminal_interface-curses__ads.htm#ref_1142_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1203_21" HREF="terminal_interface-curses__ads.htm#ref_1142_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_1205_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1206_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1205_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1206_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1143_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1142_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>); + <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1143_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>), True); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1143_14">Touch</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1153_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1142_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>), True); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1142_14">Touch</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1213_14" HREF="terminal_interface-curses__ads.htm#ref_1138_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1213_23" HREF="terminal_interface-curses__ads.htm#ref_1138_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1213_14" HREF="terminal_interface-curses__ads.htm#ref_1137_14">Untouch</A></span> (<span class="symbol"><A NAME="ref_1213_23" HREF="terminal_interface-curses__ads.htm#ref_1137_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_1215_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1216_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1215_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1216_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1138_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1215_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1216_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1137_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1215_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1216_7">X</A>); + <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses__adb.htm#ref_1216_7">X</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1138_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1215_7">Y</A>), False); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1138_14">Untouch</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1153_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1137_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1215_7">Y</A>), False); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1137_14">Untouch</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1223_14" HREF="terminal_interface-curses__ads.htm#ref_1147_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1223_21" HREF="terminal_interface-curses__ads.htm#ref_1147_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1224_21" HREF="terminal_interface-curses__ads.htm#ref_1148_21">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1225_21" HREF="terminal_interface-curses__ads.htm#ref_1149_21">Count</A></FONT> : Positive) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1223_14" HREF="terminal_interface-curses__ads.htm#ref_1146_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1223_21" HREF="terminal_interface-curses__ads.htm#ref_1146_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1224_21" HREF="terminal_interface-curses__ads.htm#ref_1147_21">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1225_21" HREF="terminal_interface-curses__ads.htm#ref_1148_21">Count</A></span> : Positive) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1147_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1148_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1149_21">Count</A>, True); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1147_14">Touch</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1153_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1146_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1147_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1148_21">Count</A>, True); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Touch</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1231_13" HREF="terminal_interface-curses__ads.htm#ref_1162_13">Is_Touched</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__ads.htm#ref_1162_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__ads.htm#ref_1163_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_1231_13" HREF="terminal_interface-curses__ads.htm#ref_1161_13">Is_Touched</A></span> ++ (<span class="symbol"><A NAME="ref_1232_7" HREF="terminal_interface-curses__ads.htm#ref_1161_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1233_7" HREF="terminal_interface-curses__ads.htm#ref_1162_25">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1235_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1235_30" HREF="terminal_interface-curses__adb.htm#ref_1235_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1235_42" HREF="terminal_interface-curses__adb.htm#ref_1235_16">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1235_16">WLineTouched</A></span> (<span class="symbol"><A NAME="ref_1235_30" HREF="terminal_interface-curses__adb.htm#ref_1235_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1235_42" HREF="terminal_interface-curses__adb.htm#ref_1235_16">L</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, WLineTouched, "is_linetouched"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1235_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1162_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1163_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1235_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1161_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1162_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1162_13">Is_Touched</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1161_13">Is_Touched</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1245_13" HREF="terminal_interface-curses__ads.htm#ref_1167_13">Is_Touched</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1246_7" HREF="terminal_interface-curses__ads.htm#ref_1167_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_1245_13" HREF="terminal_interface-curses__ads.htm#ref_1166_13">Is_Touched</A></span> ++ (<span class="symbol"><A NAME="ref_1246_7" HREF="terminal_interface-curses__ads.htm#ref_1166_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1248_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1248_29" HREF="terminal_interface-curses__adb.htm#ref_1248_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1248_16">WWinTouched</A></span> (<span class="symbol"><A NAME="ref_1248_29" HREF="terminal_interface-curses__adb.htm#ref_1248_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, WWinTouched, "is_wintouched"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1248_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1167_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1248_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1166_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1167_13">Is_Touched</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1176_14">Copy</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1259_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1260_7" HREF="terminal_interface-curses__ads.htm#ref_1178_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1261_7" HREF="terminal_interface-curses__ads.htm#ref_1179_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1262_7" HREF="terminal_interface-curses__ads.htm#ref_1180_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1263_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1264_7" HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1183_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1266_7" HREF="terminal_interface-curses__ads.htm#ref_1184_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1267_7" HREF="terminal_interface-curses__ads.htm#ref_1185_7">Non_Destructive_Mode</A></FONT> : Boolean := True) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1269_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1269_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1270_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1271_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1272_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1273_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1274_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1276_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1277_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1166_13">Is_Touched</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1175_14">Copy</A></span> ++ (<span class="symbol"><A NAME="ref_1259_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1260_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1261_7" HREF="terminal_interface-curses__ads.htm#ref_1178_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1262_7" HREF="terminal_interface-curses__ads.htm#ref_1179_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1263_7" HREF="terminal_interface-curses__ads.htm#ref_1180_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1264_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1266_7" HREF="terminal_interface-curses__ads.htm#ref_1183_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1267_7" HREF="terminal_interface-curses__ads.htm#ref_1184_7">Non_Destructive_Mode</A></span> : Boolean := True) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1269_16">Copywin</A></span> (<span class="symbol"><A NAME="ref_1269_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1270_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1271_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Str</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1272_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Slc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1273_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dtr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1274_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dlc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dbr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1276_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Drc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1277_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Ndm</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Copywin, "copywin"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1269_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Window</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_1178_7">Destination_Window</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1179_7">Source_Top_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1180_7">Source_Left_Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Top_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Left_Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1183_7">Destination_Bottom_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1184_7">Destination_Right_Column</A>), +- Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1185_7">Non_Destructive_Mode</A>) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1269_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1176_7">Source_Window</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Destination_Window</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1178_7">Source_Top_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1179_7">Source_Left_Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1180_7">Destination_Top_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Left_Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Bottom_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1183_7">Destination_Right_Column</A>), ++ Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1184_7">Non_Destructive_Mode</A>) + ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1176_14">Copy</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1175_14">Copy</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1294_14" HREF="terminal_interface-curses__ads.htm#ref_1190_14">Overwrite</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1295_7" HREF="terminal_interface-curses__ads.htm#ref_1190_25">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__ads.htm#ref_1191_25">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1294_14" HREF="terminal_interface-curses__ads.htm#ref_1189_14">Overwrite</A></span> ++ (<span class="symbol"><A NAME="ref_1295_7" HREF="terminal_interface-curses__ads.htm#ref_1189_25">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1296_7" HREF="terminal_interface-curses__ads.htm#ref_1190_25">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1298_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1298_27" HREF="terminal_interface-curses__adb.htm#ref_1298_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1298_41" HREF="terminal_interface-curses__adb.htm#ref_1298_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1298_16">Overwrite</A></span> (<span class="symbol"><A NAME="ref_1298_27" HREF="terminal_interface-curses__adb.htm#ref_1298_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1298_41" HREF="terminal_interface-curses__adb.htm#ref_1298_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Overwrite, "overwrite"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1298_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1190_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1191_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1298_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1189_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1190_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1190_14">Overwrite</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1189_14">Overwrite</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1306_14" HREF="terminal_interface-curses__ads.htm#ref_1196_14">Overlay</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1307_7" HREF="terminal_interface-curses__ads.htm#ref_1196_23">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__ads.htm#ref_1197_23">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1306_14" HREF="terminal_interface-curses__ads.htm#ref_1195_14">Overlay</A></span> ++ (<span class="symbol"><A NAME="ref_1307_7" HREF="terminal_interface-curses__ads.htm#ref_1195_23">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1308_7" HREF="terminal_interface-curses__ads.htm#ref_1196_23">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1310_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1310_25" HREF="terminal_interface-curses__adb.htm#ref_1310_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1310_39" HREF="terminal_interface-curses__adb.htm#ref_1310_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1310_16">Overlay</A></span> (<span class="symbol"><A NAME="ref_1310_25" HREF="terminal_interface-curses__adb.htm#ref_1310_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1310_39" HREF="terminal_interface-curses__adb.htm#ref_1310_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Overlay, "overlay"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1310_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1196_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1197_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1310_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1195_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1196_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1196_14">Overlay</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1195_14">Overlay</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1319_14" HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1207_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1321_7" HREF="terminal_interface-curses__ads.htm#ref_1208_7">Lines</A></FONT> : Integer := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1319_14" HREF="terminal_interface-curses__ads.htm#ref_1205_14">Insert_Delete_Lines</A></span> ++ (<span class="symbol"><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1206_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1321_7" HREF="terminal_interface-curses__ads.htm#ref_1207_7">Lines</A></span> : Integer := 1) <span class="comment"><EM>-- default is to insert one line above</EM></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1323_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1323_27" HREF="terminal_interface-curses__adb.htm#ref_1323_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1323_39" HREF="terminal_interface-curses__adb.htm#ref_1323_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1323_16">Winsdelln</A></span> (<span class="symbol"><A NAME="ref_1323_27" HREF="terminal_interface-curses__adb.htm#ref_1323_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1323_39" HREF="terminal_interface-curses__adb.htm#ref_1323_16">N</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Winsdelln, "winsdelln"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1323_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1207_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1208_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1323_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1207_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1205_14">Insert_Delete_Lines</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1331_14" HREF="terminal_interface-curses__ads.htm#ref_1214_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1331_27" HREF="terminal_interface-curses__ads.htm#ref_1214_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1331_14" HREF="terminal_interface-curses__ads.htm#ref_1213_14">Delete_Line</A></span> (<span class="symbol"><A NAME="ref_1331_27" HREF="terminal_interface-curses__ads.htm#ref_1213_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1214_27">Win</A>, -1); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1214_14">Delete_Line</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1205_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1213_27">Win</A>, -1); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1213_14">Delete_Line</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1337_14" HREF="terminal_interface-curses__ads.htm#ref_1220_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1337_27" HREF="terminal_interface-curses__ads.htm#ref_1220_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1337_14" HREF="terminal_interface-curses__ads.htm#ref_1219_14">Insert_Line</A></span> (<span class="symbol"><A NAME="ref_1337_27" HREF="terminal_interface-curses__ads.htm#ref_1219_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1220_27">Win</A>, 1); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1220_14">Insert_Line</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1205_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1219_27">Win</A>, 1); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1219_14">Insert_Line</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1344_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1345_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1346_7" HREF="terminal_interface-curses__ads.htm#ref_1232_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1347_7" HREF="terminal_interface-curses__ads.htm#ref_1233_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1344_14" HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A></span> ++ (<span class="symbol"><A NAME="ref_1345_7" HREF="terminal_interface-curses__ads.htm#ref_1230_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1346_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Number_Of_Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1347_7" HREF="terminal_interface-curses__ads.htm#ref_1232_7">Number_Of_Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1349_16">GetMaxY</A></FONT> (<FONT COLOR=red><A NAME="ref_1349_25" HREF="terminal_interface-curses__adb.htm#ref_1349_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1349_16">GetMaxY</A></span> (<span class="symbol"><A NAME="ref_1349_25" HREF="terminal_interface-curses__adb.htm#ref_1349_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetMaxY, "getmaxy"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1352_16">GetMaxX</A></FONT> (<FONT COLOR=red><A NAME="ref_1352_25" HREF="terminal_interface-curses__adb.htm#ref_1352_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1352_16">GetMaxX</A></span> (<span class="symbol"><A NAME="ref_1352_25" HREF="terminal_interface-curses__adb.htm#ref_1352_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetMaxX, "getmaxx"); + +- <FONT COLOR=red><A NAME="ref_1355_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1349_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>); +- <FONT COLOR=red><A NAME="ref_1356_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1352_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>); ++ <span class="symbol"><A NAME="ref_1355_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1349_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1230_7">Win</A>); ++ <span class="symbol"><A NAME="ref_1356_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1352_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1230_7">Win</A>); + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1232_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1355_7">Y</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1233_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1356_7">X</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1362_14" HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Window_Position</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1363_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1364_7" HREF="terminal_interface-curses__ads.htm#ref_1240_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1365_7" HREF="terminal_interface-curses__ads.htm#ref_1241_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1355_7">Y</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1232_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1356_7">X</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1362_14" HREF="terminal_interface-curses__ads.htm#ref_1237_14">Get_Window_Position</A></span> ++ (<span class="symbol"><A NAME="ref_1363_7" HREF="terminal_interface-curses__ads.htm#ref_1238_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1364_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1365_7" HREF="terminal_interface-curses__ads.htm#ref_1240_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1367_16">GetBegY</A></FONT> (<FONT COLOR=red><A NAME="ref_1367_25" HREF="terminal_interface-curses__adb.htm#ref_1367_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1367_16">GetBegY</A></span> (<span class="symbol"><A NAME="ref_1367_25" HREF="terminal_interface-curses__adb.htm#ref_1367_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetBegY, "getbegy"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1370_16">GetBegX</A></FONT> (<FONT COLOR=red><A NAME="ref_1370_25" HREF="terminal_interface-curses__adb.htm#ref_1370_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1370_16">GetBegX</A></span> (<span class="symbol"><A NAME="ref_1370_25" HREF="terminal_interface-curses__adb.htm#ref_1370_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetBegX, "getbegx"); + +- <FONT COLOR=red><A NAME="ref_1373_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1367_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>)); +- <FONT COLOR=red><A NAME="ref_1374_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1370_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>)); ++ <span class="symbol"><A NAME="ref_1373_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1367_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1238_7">Win</A>)); ++ <span class="symbol"><A NAME="ref_1374_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1370_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1238_7">Win</A>)); + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1373_7">Y</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1241_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_7">X</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Window_Position</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1380_14" HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1381_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1382_7" HREF="terminal_interface-curses__ads.htm#ref_1248_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1383_7" HREF="terminal_interface-curses__ads.htm#ref_1249_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1373_7">Y</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_7">X</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1237_14">Get_Window_Position</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1380_14" HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A></span> ++ (<span class="symbol"><A NAME="ref_1381_7" HREF="terminal_interface-curses__ads.htm#ref_1246_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1382_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1383_7" HREF="terminal_interface-curses__ads.htm#ref_1248_7">Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1385_16">GetCurY</A></FONT> (<FONT COLOR=red><A NAME="ref_1385_25" HREF="terminal_interface-curses__adb.htm#ref_1385_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1385_16">GetCurY</A></span> (<span class="symbol"><A NAME="ref_1385_25" HREF="terminal_interface-curses__adb.htm#ref_1385_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetCurY, "getcury"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1388_16">GetCurX</A></FONT> (<FONT COLOR=red><A NAME="ref_1388_25" HREF="terminal_interface-curses__adb.htm#ref_1388_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1388_16">GetCurX</A></span> (<span class="symbol"><A NAME="ref_1388_25" HREF="terminal_interface-curses__adb.htm#ref_1388_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetCurX, "getcurx"); + +- <FONT COLOR=red><A NAME="ref_1391_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1385_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>)); +- <FONT COLOR=red><A NAME="ref_1392_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1388_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>)); ++ <span class="symbol"><A NAME="ref_1391_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1385_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1246_7">Win</A>)); ++ <span class="symbol"><A NAME="ref_1392_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1388_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1246_7">Win</A>)); + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1391_7">Y</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_7">X</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1254_14">Get_Origin_Relative_To_Parent</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1255_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1257_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1402_7" HREF="terminal_interface-curses__ads.htm#ref_1258_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean) ++ <A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1391_7">Y</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_7">X</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1253_14">Get_Origin_Relative_To_Parent</A></span> ++ (<span class="symbol"><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1254_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1402_7" HREF="terminal_interface-curses__ads.htm#ref_1257_7">Is_Not_A_Subwindow</A></span> : <b>out</b> Boolean) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1404_16">GetParY</A></FONT> (<FONT COLOR=red><A NAME="ref_1404_25" HREF="terminal_interface-curses__adb.htm#ref_1404_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1404_16">GetParY</A></span> (<span class="symbol"><A NAME="ref_1404_25" HREF="terminal_interface-curses__adb.htm#ref_1404_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetParY, "getpary"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1407_16">GetParX</A></FONT> (<FONT COLOR=red><A NAME="ref_1407_25" HREF="terminal_interface-curses__adb.htm#ref_1407_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1407_16">GetParX</A></span> (<span class="symbol"><A NAME="ref_1407_25" HREF="terminal_interface-curses__adb.htm#ref_1407_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, GetParX, "getparx"); + +- <FONT COLOR=red><A NAME="ref_1410_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1404_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Win</A>); +- <FONT COLOR=red><A NAME="ref_1411_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1407_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Win</A>); ++ <span class="symbol"><A NAME="ref_1410_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1404_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1254_7">Win</A>); ++ <span class="symbol"><A NAME="ref_1411_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1407_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1254_7">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A> = -1 <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last; +- <A HREF="terminal_interface-curses__ads.htm#ref_1257_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last; +- <A HREF="terminal_interface-curses__ads.htm#ref_1258_7">Is_Not_A_Subwindow</A> := True; +- <b>else</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1257_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1411_7">X</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1258_7">Is_Not_A_Subwindow</A> := False; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1254_14">Get_Origin_Relative_To_Parent</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1424_13" HREF="terminal_interface-curses__ads.htm#ref_1269_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1424_22" HREF="terminal_interface-curses__ads.htm#ref_1269_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1425_22" HREF="terminal_interface-curses__ads.htm#ref_1270_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1257_7">Is_Not_A_Subwindow</A> := True; ++ <b>else</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1411_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1257_7">Is_Not_A_Subwindow</A> := False; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1253_14">Get_Origin_Relative_To_Parent</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1424_13" HREF="terminal_interface-curses__ads.htm#ref_1268_13">New_Pad</A></span> (<span class="symbol"><A NAME="ref_1424_22" HREF="terminal_interface-curses__ads.htm#ref_1268_22">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1425_22" HREF="terminal_interface-curses__ads.htm#ref_1269_22">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1427_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1427_24" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1427_39" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1427_16">Newpad</A></span> (<span class="symbol"><A NAME="ref_1427_24" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <span class="symbol"><A NAME="ref_1427_39" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Newpad, "newpad"); + +- <FONT COLOR=red><A NAME="ref_1430_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1430_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1427_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1269_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1270_22">Columns</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1427_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1269_22">Columns</A>)); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1269_13">New_Pad</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1268_13">New_Pad</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1439_13" HREF="terminal_interface-curses__ads.htm#ref_1275_13">Sub_Pad</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1276_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1277_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_1443_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1444_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1446_16">Subpad</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1447_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1448_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1449_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1450_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1451_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1439_13" HREF="terminal_interface-curses__ads.htm#ref_1274_13">Sub_Pad</A></span> ++ (<span class="symbol"><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1275_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1276_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1277_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_1443_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1444_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1446_16">Subpad</A></span> ++ (<span class="symbol"><A NAME="ref_1447_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1448_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1449_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1450_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1451_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Subpad, "subpad"); + +- <FONT COLOR=red><A NAME="ref_1454_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1454_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1446_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1276_7">Pad</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1277_7">Number_Of_Lines</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">Number_Of_Columns</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">First_Line_Position</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1280_7">First_Column_Position</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1446_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1275_7">Pad</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1276_7">Number_Of_Lines</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1277_7">Number_Of_Columns</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">First_Line_Position</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">First_Column_Position</A>)); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1275_13">Sub_Pad</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1274_13">Sub_Pad</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1467_14" HREF="terminal_interface-curses__ads.htm#ref_1285_14">Refresh</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1468_7" HREF="terminal_interface-curses__ads.htm#ref_1286_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1469_7" HREF="terminal_interface-curses__ads.htm#ref_1287_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1470_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1471_7" HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1472_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1292_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1476_16">Prefresh</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1477_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1478_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1479_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1467_14" HREF="terminal_interface-curses__ads.htm#ref_1284_14">Refresh</A></span> ++ (<span class="symbol"><A NAME="ref_1468_7" HREF="terminal_interface-curses__ads.htm#ref_1285_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1469_7" HREF="terminal_interface-curses__ads.htm#ref_1286_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1470_7" HREF="terminal_interface-curses__ads.htm#ref_1287_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1471_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1472_7" HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1476_16">Prefresh</A></span> ++ (<span class="symbol"><A NAME="ref_1477_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1478_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1479_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Prefresh, "prefresh"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1476_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1286_7">Pad</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1287_7">Source_Top_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Source_Left_Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Top_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Left_Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1291_7">Destination_Bottom_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1292_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1285_14">Refresh</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1497_14" HREF="terminal_interface-curses__ads.htm#ref_1297_14">Refresh_Without_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1498_7" HREF="terminal_interface-curses__ads.htm#ref_1298_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1499_7" HREF="terminal_interface-curses__ads.htm#ref_1299_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1500_7" HREF="terminal_interface-curses__ads.htm#ref_1300_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1304_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1506_16">Pnoutrefresh</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1507_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1508_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1509_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1476_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1285_7">Pad</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1286_7">Source_Top_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1287_7">Source_Left_Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Destination_Top_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Left_Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Bottom_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1291_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1284_14">Refresh</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1497_14" HREF="terminal_interface-curses__ads.htm#ref_1296_14">Refresh_Without_Update</A></span> ++ (<span class="symbol"><A NAME="ref_1498_7" HREF="terminal_interface-curses__ads.htm#ref_1297_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1499_7" HREF="terminal_interface-curses__ads.htm#ref_1298_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1500_7" HREF="terminal_interface-curses__ads.htm#ref_1299_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1300_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1506_16">Pnoutrefresh</A></span> ++ (<span class="symbol"><A NAME="ref_1507_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1508_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1509_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Pnoutrefresh, "pnoutrefresh"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1298_7">Pad</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1299_7">Source_Top_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1300_7">Source_Left_Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Top_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Left_Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_7">Destination_Bottom_Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1304_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1297_14">Refresh_Without_Update</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1527_14" HREF="terminal_interface-curses__ads.htm#ref_1309_14">Add_Character_To_Pad_And_Echo_It</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1528_7" HREF="terminal_interface-curses__ads.htm#ref_1310_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1529_7" HREF="terminal_interface-curses__ads.htm#ref_1311_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1297_7">Pad</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1298_7">Source_Top_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1299_7">Source_Left_Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1300_7">Destination_Top_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Left_Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Bottom_Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1296_14">Refresh_Without_Update</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1527_14" HREF="terminal_interface-curses__ads.htm#ref_1308_14">Add_Character_To_Pad_And_Echo_It</A></span> ++ (<span class="symbol"><A NAME="ref_1528_7" HREF="terminal_interface-curses__ads.htm#ref_1309_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1529_7" HREF="terminal_interface-curses__ads.htm#ref_1310_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1531_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1531_27" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1531_41" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_1531_16">Pechochar</A></span> (<span class="symbol"><A NAME="ref_1531_27" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1531_41" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Pechochar, "pechochar"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1310_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1311_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1309_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1310_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1309_14">Add_Character_To_Pad_And_Echo_It</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1308_14">Add_Character_To_Pad_And_Echo_It</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1540_14" HREF="terminal_interface-curses__ads.htm#ref_1314_14">Add_Character_To_Pad_And_Echo_It</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1541_7" HREF="terminal_interface-curses__ads.htm#ref_1315_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1542_7" HREF="terminal_interface-curses__ads.htm#ref_1316_7">Ch</A></FONT> : Character) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1309_14">Add_Character_To_Pad_And_Echo_It</A> +- (<A HREF="terminal_interface-curses__ads.htm#ref_1315_7">Pad</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1316_7">Ch</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1314_14">Add_Character_To_Pad_And_Echo_It</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1552_14" HREF="terminal_interface-curses__ads.htm#ref_1324_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1552_22" HREF="terminal_interface-curses__ads.htm#ref_1324_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1553_22" HREF="terminal_interface-curses__ads.htm#ref_1325_22">Amount</A></FONT> : Integer := 1) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1540_14" HREF="terminal_interface-curses__ads.htm#ref_1313_14">Add_Character_To_Pad_And_Echo_It</A></span> ++ (<span class="symbol"><A NAME="ref_1541_7" HREF="terminal_interface-curses__ads.htm#ref_1314_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1542_7" HREF="terminal_interface-curses__ads.htm#ref_1315_7">Ch</A></span> : Character) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1308_14">Add_Character_To_Pad_And_Echo_It</A> ++ (<A HREF="terminal_interface-curses__ads.htm#ref_1314_7">Pad</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1315_7">Ch</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1313_14">Add_Character_To_Pad_And_Echo_It</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1552_14" HREF="terminal_interface-curses__ads.htm#ref_1323_14">Scroll</A></span> (<span class="symbol"><A NAME="ref_1552_22" HREF="terminal_interface-curses__ads.htm#ref_1323_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1553_22" HREF="terminal_interface-curses__ads.htm#ref_1324_22">Amount</A></span> : Integer := 1) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1555_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1555_23" HREF="terminal_interface-curses__adb.htm#ref_1555_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1555_37" HREF="terminal_interface-curses__adb.htm#ref_1555_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1555_16">Wscrl</A></span> (<span class="symbol"><A NAME="ref_1555_23" HREF="terminal_interface-curses__adb.htm#ref_1555_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1555_37" HREF="terminal_interface-curses__adb.htm#ref_1555_16">N</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wscrl, "wscrl"); + + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1555_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1324_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1325_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1555_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1323_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1324_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1324_14">Scroll</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Scroll</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1565_14" HREF="terminal_interface-curses__ads.htm#ref_1336_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1565_32" HREF="terminal_interface-curses__ads.htm#ref_1336_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1565_14" HREF="terminal_interface-curses__ads.htm#ref_1335_14">Delete_Character</A></span> (<span class="symbol"><A NAME="ref_1565_32" HREF="terminal_interface-curses__ads.htm#ref_1335_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1567_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1567_24" HREF="terminal_interface-curses__adb.htm#ref_1567_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1567_16">Wdelch</A></span> (<span class="symbol"><A NAME="ref_1567_24" HREF="terminal_interface-curses__adb.htm#ref_1567_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wdelch, "wdelch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1567_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1336_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1567_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1335_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1336_14">Delete_Character</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1335_14">Delete_Character</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1575_14" HREF="terminal_interface-curses__ads.htm#ref_1341_14">Delete_Character</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1342_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1577_7" HREF="terminal_interface-curses__ads.htm#ref_1343_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1578_7" HREF="terminal_interface-curses__ads.htm#ref_1344_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1580_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1580_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1582_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1575_14" HREF="terminal_interface-curses__ads.htm#ref_1340_14">Delete_Character</A></span> ++ (<span class="symbol"><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1341_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1577_7" HREF="terminal_interface-curses__ads.htm#ref_1342_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1578_7" HREF="terminal_interface-curses__ads.htm#ref_1343_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1580_16">Mvwdelch</A></span> (<span class="symbol"><A NAME="ref_1580_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1582_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mvwdelch, "mvwdelch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1580_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1342_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1343_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1344_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1580_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1341_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1342_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1343_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1341_14">Delete_Character</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1590_13" HREF="terminal_interface-curses__ads.htm#ref_1354_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1590_19" HREF="terminal_interface-curses__ads.htm#ref_1354_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1340_14">Delete_Character</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1590_13" HREF="terminal_interface-curses__ads.htm#ref_1353_13">Peek</A></span> (<span class="symbol"><A NAME="ref_1590_19" HREF="terminal_interface-curses__ads.htm#ref_1353_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1593_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1593_23" HREF="terminal_interface-curses__adb.htm#ref_1593_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1593_16">Winch</A></span> (<span class="symbol"><A NAME="ref_1593_23" HREF="terminal_interface-curses__adb.htm#ref_1593_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Winch, "winch"); + <b>begin</b> +- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1593_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1354_19">Win</A>)); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1354_13">Peek</A>; ++ <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1593_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1353_19">Win</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1353_13">Peek</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1360_13">Peek</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1600_7" HREF="terminal_interface-curses__ads.htm#ref_1361_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1601_7" HREF="terminal_interface-curses__ads.htm#ref_1362_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1602_7" HREF="terminal_interface-curses__ads.htm#ref_1363_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1604_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1604_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1605_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1606_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1359_13">Peek</A></span> ++ (<span class="symbol"><A NAME="ref_1600_7" HREF="terminal_interface-curses__ads.htm#ref_1360_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1601_7" HREF="terminal_interface-curses__ads.htm#ref_1361_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1602_7" HREF="terminal_interface-curses__ads.htm#ref_1362_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1604_16">Mvwinch</A></span> (<span class="symbol"><A NAME="ref_1604_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1605_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1606_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Mvwinch, "mvwinch"); + <b>begin</b> +- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1604_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1361_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1362_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1363_7">Column</A>))); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1360_13">Peek</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1612_14" HREF="terminal_interface-curses__ads.htm#ref_1373_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1612_22" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1613_22" HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) ++ <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1604_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1360_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1361_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1362_7">Column</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1359_13">Peek</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1612_14" HREF="terminal_interface-curses__ads.htm#ref_1372_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1612_22" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1613_22" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1615_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1615_24" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1615_38" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1615_16">Winsch</A></span> (<span class="symbol"><A NAME="ref_1615_24" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_1615_38" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Winsch, "winsch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1615_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1373_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1615_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1372_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1373_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1373_14">Insert</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1372_14">Insert</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1623_14" HREF="terminal_interface-curses__ads.htm#ref_1379_14">Insert</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1624_7" HREF="terminal_interface-curses__ads.htm#ref_1379_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1625_7" HREF="terminal_interface-curses__ads.htm#ref_1380_22">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1626_7" HREF="terminal_interface-curses__ads.htm#ref_1381_22">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1627_7" HREF="terminal_interface-curses__ads.htm#ref_1382_22">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1629_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1629_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1630_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1631_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1632_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1623_14" HREF="terminal_interface-curses__ads.htm#ref_1378_14">Insert</A></span> ++ (<span class="symbol"><A NAME="ref_1624_7" HREF="terminal_interface-curses__ads.htm#ref_1378_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1625_7" HREF="terminal_interface-curses__ads.htm#ref_1379_22">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1626_7" HREF="terminal_interface-curses__ads.htm#ref_1380_22">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1627_7" HREF="terminal_interface-curses__ads.htm#ref_1381_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1629_16">Mvwinsch</A></span> (<span class="symbol"><A NAME="ref_1629_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1630_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1631_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1632_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mvwinsch, "mvwinsch"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1629_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1379_22">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1380_22">Line</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1381_22">Column</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1382_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1379_14">Insert</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1643_14" HREF="terminal_interface-curses__ads.htm#ref_1391_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1643_22" HREF="terminal_interface-curses__ads.htm#ref_1391_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1644_22" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1393_22">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1647_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1647_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1648_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Str</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_1649_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1629_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1378_22">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1379_22">Line</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1380_22">Column</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1381_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1378_14">Insert</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1643_14" HREF="terminal_interface-curses__ads.htm#ref_1390_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1643_22" HREF="terminal_interface-curses__ads.htm#ref_1390_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1644_22" HREF="terminal_interface-curses__ads.htm#ref_1391_22">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1647_16">Winsnstr</A></span> (<span class="symbol"><A NAME="ref_1647_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1648_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Str</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_1649_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Len</A></span> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Winsnstr, "winsnstr"); + +- <FONT COLOR=red><A NAME="ref_1652_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_1653_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_1652_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1391_22">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_1653_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1653_7">Length</A>); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1647_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1391_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1393_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1391_14">Insert</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1661_14" HREF="terminal_interface-curses__ads.htm#ref_1400_14">Insert</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1662_7" HREF="terminal_interface-curses__ads.htm#ref_1400_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1663_7" HREF="terminal_interface-curses__ads.htm#ref_1401_22">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1664_7" HREF="terminal_interface-curses__ads.htm#ref_1402_22">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1665_7" HREF="terminal_interface-curses__ads.htm#ref_1403_22">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1666_7" HREF="terminal_interface-curses__ads.htm#ref_1404_22">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1668_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1668_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1669_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1670_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1671_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Str</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_1672_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1391_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1653_7">Length</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1647_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1390_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1390_14">Insert</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1661_14" HREF="terminal_interface-curses__ads.htm#ref_1399_14">Insert</A></span> ++ (<span class="symbol"><A NAME="ref_1662_7" HREF="terminal_interface-curses__ads.htm#ref_1399_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1663_7" HREF="terminal_interface-curses__ads.htm#ref_1400_22">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1664_7" HREF="terminal_interface-curses__ads.htm#ref_1401_22">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1665_7" HREF="terminal_interface-curses__ads.htm#ref_1402_22">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_1666_7" HREF="terminal_interface-curses__ads.htm#ref_1403_22">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1668_16">Mvwinsnstr</A></span> (<span class="symbol"><A NAME="ref_1668_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1669_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1670_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1671_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Str</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_1672_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mvwinsnstr, "mvwinsnstr"); + +- <FONT COLOR=red><A NAME="ref_1675_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1403_22">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_1676_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_1675_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1402_22">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_1676_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1403_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1676_7">Length</A>); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1668_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1402_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1404_22">Len</A>)) ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1402_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1676_7">Length</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1668_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1399_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1403_22">Len</A>)) + = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1400_14">Insert</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1685_14" HREF="terminal_interface-curses__ads.htm#ref_1416_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1685_20" HREF="terminal_interface-curses__ads.htm#ref_1416_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1686_20" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1687_20" HREF="terminal_interface-curses__ads.htm#ref_1418_20">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1689_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1689_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1690_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Str</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_1691_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Insert</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1685_14" HREF="terminal_interface-curses__ads.htm#ref_1415_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1685_20" HREF="terminal_interface-curses__ads.htm#ref_1415_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1686_20" HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1687_20" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1689_16">Winnstr</A></span> (<span class="symbol"><A NAME="ref_1689_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1690_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Str</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_1691_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Winnstr, "winnstr"); + +- <FONT COLOR=red><A NAME="ref_1694_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1418_20">Len</A>; +- <FONT COLOR=red><A NAME="ref_1695_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_1696_7">Cnt</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_1694_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Len</A>; ++ <span class="symbol"><A NAME="ref_1695_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_1696_7">Cnt</A></span> : Natural; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &lt; 0 <b>then</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length; ++ <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>'Length; + <b>end</b> <b>if</b>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>'Length <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1689_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>, True); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Last) := (<b>others</b> =&gt; ' '); +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1416_14">Peek</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1714_14" HREF="terminal_interface-curses__ads.htm#ref_1425_14">Peek</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1715_7" HREF="terminal_interface-curses__ads.htm#ref_1425_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1716_7" HREF="terminal_interface-curses__ads.htm#ref_1426_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1717_7" HREF="terminal_interface-curses__ads.htm#ref_1427_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1718_7" HREF="terminal_interface-curses__ads.htm#ref_1428_20">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1719_7" HREF="terminal_interface-curses__ads.htm#ref_1429_20">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1426_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1427_20">Column</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1416_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1428_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1429_20">Len</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1425_14">Peek</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1726_14" HREF="terminal_interface-curses__ads.htm#ref_1440_14">Peek</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1440_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>; +- <FONT COLOR=red><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1442_20">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1731_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1731_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1732_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Str</A></FONT> : chtype_array; <FONT COLOR=green><EM>-- out</EM></FONT> +- <FONT COLOR=red><A NAME="ref_1733_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'First; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1689_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>, True); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>'Length <b>then</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Str</A>'Last) := (<b>others</b> =&gt; ' '); ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Peek</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1714_14" HREF="terminal_interface-curses__ads.htm#ref_1424_14">Peek</A></span> ++ (<span class="symbol"><A NAME="ref_1715_7" HREF="terminal_interface-curses__ads.htm#ref_1424_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1716_7" HREF="terminal_interface-curses__ads.htm#ref_1425_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1717_7" HREF="terminal_interface-curses__ads.htm#ref_1426_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1718_7" HREF="terminal_interface-curses__ads.htm#ref_1427_20">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1719_7" HREF="terminal_interface-curses__ads.htm#ref_1428_20">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1424_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1426_20">Column</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1424_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1427_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1428_20">Len</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1424_14">Peek</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1726_14" HREF="terminal_interface-curses__ads.htm#ref_1439_14">Peek</A></span> ++ (<span class="symbol"><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1439_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Attributed_String</A>; ++ <span class="symbol"><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1731_16">Winchnstr</A></span> (<span class="symbol"><A NAME="ref_1731_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1732_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Str</A></span> : chtype_array; <span class="comment"><EM>-- out</EM></span> ++ <span class="symbol"><A NAME="ref_1733_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Winchnstr, "winchnstr"); + +- <FONT COLOR=red><A NAME="ref_1736_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1442_20">Len</A>; +- <FONT COLOR=red><A NAME="ref_1737_7">Txt</A></FONT> : <b>constant</b> chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length) +- := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>); +- <FONT COLOR=red><A NAME="ref_1739_7">Cnt</A></FONT> : Natural := 0; ++ <span class="symbol"><A NAME="ref_1736_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Len</A>; ++ <span class="symbol"><A NAME="ref_1737_7">Txt</A></span> : <b>constant</b> chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'Length) ++ := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>); ++ <span class="symbol"><A NAME="ref_1739_7">Cnt</A></span> : Natural := 0; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &lt; 0 <b>then</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length; ++ <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'Length; + <b>end</b> <b>if</b>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'Length <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1731_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1731_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>for</b> <FONT COLOR=red><A NAME="ref_1750_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'<b>Range</b> <b>loop</b> +- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1750_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)); ++ <b>for</b> <span class="symbol"><A NAME="ref_1750_11">To</A></span> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'<b>Range</b> <b>loop</b> ++ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1750_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)); + <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> + 1; + <b>end</b> <b>loop</b>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Last) := +- (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; ' ', +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>)); +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1440_14">Peek</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1763_14" HREF="terminal_interface-curses__ads.htm#ref_1449_14">Peek</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1764_7" HREF="terminal_interface-curses__ads.htm#ref_1449_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1765_7" HREF="terminal_interface-curses__ads.htm#ref_1450_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1766_7" HREF="terminal_interface-curses__ads.htm#ref_1451_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1767_7" HREF="terminal_interface-curses__ads.htm#ref_1452_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>; +- <FONT COLOR=red><A NAME="ref_1768_7" HREF="terminal_interface-curses__ads.htm#ref_1453_20">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1450_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1451_20">Column</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1440_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1452_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1453_20">Len</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1449_14">Peek</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1775_14" HREF="terminal_interface-curses__ads.htm#ref_1465_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1775_19" HREF="terminal_interface-curses__ads.htm#ref_1465_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1776_19" HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1777_19" HREF="terminal_interface-curses__ads.htm#ref_1467_19">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1779_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1779_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1780_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Str</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_1781_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'Length <b>then</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Str</A>'Last) := ++ (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; ' ', ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>)); ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1439_14">Peek</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1763_14" HREF="terminal_interface-curses__ads.htm#ref_1448_14">Peek</A></span> ++ (<span class="symbol"><A NAME="ref_1764_7" HREF="terminal_interface-curses__ads.htm#ref_1448_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1765_7" HREF="terminal_interface-curses__ads.htm#ref_1449_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1766_7" HREF="terminal_interface-curses__ads.htm#ref_1450_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1767_7" HREF="terminal_interface-curses__ads.htm#ref_1451_20">Str</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Attributed_String</A>; ++ <span class="symbol"><A NAME="ref_1768_7" HREF="terminal_interface-curses__ads.htm#ref_1452_20">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1448_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1450_20">Column</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1439_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1448_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1451_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1452_20">Len</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1448_14">Peek</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1775_14" HREF="terminal_interface-curses__ads.htm#ref_1464_14">Get</A></span> (<span class="symbol"><A NAME="ref_1775_19" HREF="terminal_interface-curses__ads.htm#ref_1464_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1776_19" HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1777_19" HREF="terminal_interface-curses__ads.htm#ref_1466_19">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1779_16">Wgetnstr</A></span> (<span class="symbol"><A NAME="ref_1779_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1780_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Str</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_1781_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Wgetnstr, "wgetnstr"); + +- <FONT COLOR=red><A NAME="ref_1784_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1467_19">Len</A>; +- <FONT COLOR=red><A NAME="ref_1785_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_1786_7">Cnt</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_1784_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Len</A>; ++ <span class="symbol"><A NAME="ref_1785_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_1786_7">Cnt</A></span> : Natural; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &lt; 0 <b>then</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length; ++ <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>'Length; + <b>end</b> <b>if</b>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>'Length <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1779_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>, True); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Last) := (<b>others</b> =&gt; ' '); +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1465_14">Get</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1804_14" HREF="terminal_interface-curses__ads.htm#ref_1476_14">Get</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1805_7" HREF="terminal_interface-curses__ads.htm#ref_1476_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1806_7" HREF="terminal_interface-curses__ads.htm#ref_1477_19">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1807_7" HREF="terminal_interface-curses__ads.htm#ref_1478_19">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1808_7" HREF="terminal_interface-curses__ads.htm#ref_1479_19">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1809_7" HREF="terminal_interface-curses__ads.htm#ref_1480_19">Len</A></FONT> : Integer := -1) +- <b>is</b> +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1477_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1478_19">Column</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1465_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1479_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1480_19">Len</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1476_14">Get</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1816_14" HREF="terminal_interface-curses__ads.htm#ref_1501_14">Init_Soft_Label_Keys</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1502_7">Format</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1493_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1493_35">Three_Two_Three</A>) ++ <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'First; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1779_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>, True); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>'Length <b>then</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Str</A>'Last) := (<b>others</b> =&gt; ' '); ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1464_14">Get</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1804_14" HREF="terminal_interface-curses__ads.htm#ref_1475_14">Get</A></span> ++ (<span class="symbol"><A NAME="ref_1805_7" HREF="terminal_interface-curses__ads.htm#ref_1475_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1806_7" HREF="terminal_interface-curses__ads.htm#ref_1476_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1807_7" HREF="terminal_interface-curses__ads.htm#ref_1477_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1808_7" HREF="terminal_interface-curses__ads.htm#ref_1478_19">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1809_7" HREF="terminal_interface-curses__ads.htm#ref_1479_19">Len</A></span> : Integer := -1) ++ <b>is</b> ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1475_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1477_19">Column</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1464_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1475_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1478_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1479_19">Len</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1475_14">Get</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1816_14" HREF="terminal_interface-curses__ads.htm#ref_1500_14">Init_Soft_Label_Keys</A></span> ++ (<span class="symbol"><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1501_7">Format</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1492_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1492_35">Three_Two_Three</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1819_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1819_26" HREF="terminal_interface-curses__adb.htm#ref_1819_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1819_16">Slk_Init</A></span> (<span class="symbol"><A NAME="ref_1819_26" HREF="terminal_interface-curses__adb.htm#ref_1819_16">Fmt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Init, "slk_init"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1493_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1502_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1492_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1501_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1501_14">Init_Soft_Label_Keys</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1500_14">Init_Soft_Label_Keys</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1507_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1827_34" HREF="terminal_interface-curses__ads.htm#ref_1507_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>; +- <FONT COLOR=red><A NAME="ref_1828_34" HREF="terminal_interface-curses__ads.htm#ref_1508_34">Text</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1829_34" HREF="terminal_interface-curses__ads.htm#ref_1509_34">Fmt</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1498_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1498_33">Left</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1831_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1831_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1832_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Txt</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_1833_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1506_14">Set_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1827_34" HREF="terminal_interface-curses__ads.htm#ref_1506_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Number</A>; ++ <span class="symbol"><A NAME="ref_1828_34" HREF="terminal_interface-curses__ads.htm#ref_1507_34">Text</A></span> : String; ++ <span class="symbol"><A NAME="ref_1829_34" HREF="terminal_interface-curses__ads.htm#ref_1508_34">Fmt</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1497_33">Left</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_1831_16">Slk_Set</A></span> (<span class="symbol"><A NAME="ref_1831_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1832_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Txt</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_1833_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Fmt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Set, "slk_set"); + +- <FONT COLOR=red><A NAME="ref_1836_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1508_34">Text</A>'Length); +- <FONT COLOR=red><A NAME="ref_1837_7">Len</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_1836_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1507_34">Text</A>'Length); ++ <span class="symbol"><A NAME="ref_1837_7">Len</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1508_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1837_7">Len</A>); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1831_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1507_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1498_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1509_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1507_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1837_7">Len</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1831_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1506_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1508_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1507_14">Set_Soft_Label_Key</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1506_14">Set_Soft_Label_Key</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1846_14" HREF="terminal_interface-curses__ads.htm#ref_1514_14">Refresh_Soft_Label_Keys</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1846_14" HREF="terminal_interface-curses__ads.htm#ref_1513_14">Refresh_Soft_Label_Keys</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1848_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1848_16">Slk_Refresh</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Refresh, "slk_refresh"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1848_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1514_14">Refresh_Soft_Label_Keys</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1513_14">Refresh_Soft_Label_Keys</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1856_14" HREF="terminal_interface-curses__ads.htm#ref_1519_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1856_14" HREF="terminal_interface-curses__ads.htm#ref_1518_14">Refresh_Soft_Label_Keys_Without_Update</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1858_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1858_16">Slk_Noutrefresh</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Noutrefresh, "slk_noutrefresh"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1858_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1519_14">Refresh_Soft_Label_Keys_Without_Update</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1518_14">Refresh_Soft_Label_Keys_Without_Update</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1866_14" HREF="terminal_interface-curses__ads.htm#ref_1524_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1866_34" HREF="terminal_interface-curses__ads.htm#ref_1524_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>; +- <FONT COLOR=red><A NAME="ref_1867_34" HREF="terminal_interface-curses__ads.htm#ref_1525_34">Text</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1866_14" HREF="terminal_interface-curses__ads.htm#ref_1523_14">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1866_34" HREF="terminal_interface-curses__ads.htm#ref_1523_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Number</A>; ++ <span class="symbol"><A NAME="ref_1867_34" HREF="terminal_interface-curses__ads.htm#ref_1524_34">Text</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1869_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1869_27" HREF="terminal_interface-curses__adb.htm#ref_1869_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_1869_16">Slk_Label</A></span> (<span class="symbol"><A NAME="ref_1869_27" HREF="terminal_interface-curses__adb.htm#ref_1869_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Slk_Label, "slk_label"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1869_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1524_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1525_34">Text</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1524_14">Get_Soft_Label_Key</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1869_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1523_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1524_34">Text</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1523_14">Get_Soft_Label_Key</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1875_13" HREF="terminal_interface-curses__ads.htm#ref_1529_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1875_33" HREF="terminal_interface-curses__ads.htm#ref_1529_33">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_1875_13" HREF="terminal_interface-curses__ads.htm#ref_1528_13">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1875_33" HREF="terminal_interface-curses__ads.htm#ref_1528_33">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Number</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1877_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1877_27" HREF="terminal_interface-curses__adb.htm#ref_1877_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_1877_16">Slk_Label</A></span> (<span class="symbol"><A NAME="ref_1877_27" HREF="terminal_interface-curses__adb.htm#ref_1877_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Slk_Label, "slk_label"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1877_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1529_33">Label</A>))); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1529_13">Get_Soft_Label_Key</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1877_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1528_33">Label</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1528_13">Get_Soft_Label_Key</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1883_14" HREF="terminal_interface-curses__ads.htm#ref_1535_14">Clear_Soft_Label_Keys</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1883_14" HREF="terminal_interface-curses__ads.htm#ref_1534_14">Clear_Soft_Label_Keys</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1885_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1885_16">Slk_Clear</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Clear, "slk_clear"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1885_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1535_14">Clear_Soft_Label_Keys</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1534_14">Clear_Soft_Label_Keys</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1893_14" HREF="terminal_interface-curses__ads.htm#ref_1540_14">Restore_Soft_Label_Keys</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1893_14" HREF="terminal_interface-curses__ads.htm#ref_1539_14">Restore_Soft_Label_Keys</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1895_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1895_16">Slk_Restore</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Restore, "slk_restore"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1895_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1540_14">Restore_Soft_Label_Keys</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1539_14">Restore_Soft_Label_Keys</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1903_14" HREF="terminal_interface-curses__ads.htm#ref_1545_14">Touch_Soft_Label_Keys</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1903_14" HREF="terminal_interface-curses__ads.htm#ref_1544_14">Touch_Soft_Label_Keys</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1905_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1905_16">Slk_Touch</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Touch, "slk_touch"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1905_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1545_14">Touch_Soft_Label_Keys</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1544_14">Touch_Soft_Label_Keys</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1913_14" HREF="terminal_interface-curses__ads.htm#ref_1550_14">Switch_Soft_Label_Key_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1914_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_1915_7" HREF="terminal_interface-curses__ads.htm#ref_1552_7">On</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1913_14" HREF="terminal_interface-curses__ads.htm#ref_1549_14">Switch_Soft_Label_Key_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_1914_7" HREF="terminal_interface-curses__ads.htm#ref_1550_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_1915_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1917_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1917_28" HREF="terminal_interface-curses__adb.htm#ref_1917_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1917_16">Slk_Attron</A></span> (<span class="symbol"><A NAME="ref_1917_28" HREF="terminal_interface-curses__adb.htm#ref_1917_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Attron, "slk_attron"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_1919_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1919_29" HREF="terminal_interface-curses__adb.htm#ref_1919_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1919_16">Slk_Attroff</A></span> (<span class="symbol"><A NAME="ref_1919_29" HREF="terminal_interface-curses__adb.htm#ref_1919_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Attroff, "slk_attroff"); + +- <FONT COLOR=red><A NAME="ref_1922_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1923_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="symbol"><A NAME="ref_1922_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1923_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1550_7">Attr</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1552_7">On</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">On</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Attron</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>)); + <b>else</b> + <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1919_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>)); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Switch_Soft_Label_Key_Attributes</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1549_14">Switch_Soft_Label_Key_Attributes</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1558_14">Set_Soft_Label_Key_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1938_7" HREF="terminal_interface-curses__ads.htm#ref_1559_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_1939_7" HREF="terminal_interface-curses__ads.htm#ref_1560_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1557_14">Set_Soft_Label_Key_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_1938_7" HREF="terminal_interface-curses__ads.htm#ref_1558_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_1939_7" HREF="terminal_interface-curses__ads.htm#ref_1559_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1941_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1941_29" HREF="terminal_interface-curses__adb.htm#ref_1941_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1941_16">Slk_Attrset</A></span> (<span class="symbol"><A NAME="ref_1941_29" HREF="terminal_interface-curses__adb.htm#ref_1941_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Attrset, "slk_attrset"); + +- <FONT COLOR=red><A NAME="ref_1944_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1559_7">Attr</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1560_7">Color</A>); ++ <span class="symbol"><A NAME="ref_1944_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1558_7">Attr</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1559_7">Color</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1941_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1944_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1558_14">Set_Soft_Label_Key_Attributes</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1557_14">Set_Soft_Label_Key_Attributes</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1953_13" HREF="terminal_interface-curses__ads.htm#ref_1565_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_1953_13" HREF="terminal_interface-curses__ads.htm#ref_1564_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1955_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1955_16">Slk_Attr</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Slk_Attr, "slk_attr"); + +- <FONT COLOR=red><A NAME="ref_1958_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1955_16">Slk_Attr</A>; ++ <span class="symbol"><A NAME="ref_1958_7">Attr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1955_16">Slk_Attr</A>; + <b>begin</b> +- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1958_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1565_13">Get_Soft_Label_Key_Attributes</A>; ++ <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1958_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1564_13">Get_Soft_Label_Key_Attributes</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1963_13" HREF="terminal_interface-curses__ads.htm#ref_1569_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_1963_13" HREF="terminal_interface-curses__ads.htm#ref_1568_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1965_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1965_16">Slk_Attr</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Slk_Attr, "slk_attr"); + +- <FONT COLOR=red><A NAME="ref_1968_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1965_16">Slk_Attr</A>; ++ <span class="symbol"><A NAME="ref_1968_7">Attr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1965_16">Slk_Attr</A>; + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1968_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1569_13">Get_Soft_Label_Key_Attributes</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1968_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1568_13">Get_Soft_Label_Key_Attributes</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1973_14" HREF="terminal_interface-curses__ads.htm#ref_1574_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1973_40" HREF="terminal_interface-curses__ads.htm#ref_1574_40">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1973_14" HREF="terminal_interface-curses__ads.htm#ref_1573_14">Set_Soft_Label_Key_Color</A></span> (<span class="symbol"><A NAME="ref_1973_40" HREF="terminal_interface-curses__ads.htm#ref_1573_40">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1975_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1975_27" HREF="terminal_interface-curses__adb.htm#ref_1975_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1975_16">Slk_Color</A></span> (<span class="symbol"><A NAME="ref_1975_27" HREF="terminal_interface-curses__adb.htm#ref_1975_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Slk_Color, "slk_color"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1574_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1573_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1574_14">Set_Soft_Label_Key_Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1573_14">Set_Soft_Label_Key_Color</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1984_14" HREF="terminal_interface-curses__ads.htm#ref_1588_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1984_26" HREF="terminal_interface-curses__ads.htm#ref_1588_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>; +- <FONT COLOR=red><A NAME="ref_1985_26" HREF="terminal_interface-curses__ads.htm#ref_1589_26">Enable</A></FONT> : Boolean := True) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1984_14" HREF="terminal_interface-curses__ads.htm#ref_1587_14">Enable_Key</A></span> (<span class="symbol"><A NAME="ref_1984_26" HREF="terminal_interface-curses__ads.htm#ref_1587_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>; ++ <span class="symbol"><A NAME="ref_1985_26" HREF="terminal_interface-curses__ads.htm#ref_1588_26">Enable</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1987_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_1987_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_1988_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">On_Off</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1987_16">Keyok</A></span> (<span class="symbol"><A NAME="ref_1987_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keycode</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_1988_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">On_Off</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Keyok, "keyok"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1588_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1589_26">Enable</A>))) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1587_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1588_26">Enable</A>))) + = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1588_14">Enable_Key</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1997_14" HREF="terminal_interface-curses__ads.htm#ref_1598_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1598_26">Definition</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1998_26" HREF="terminal_interface-curses__ads.htm#ref_1599_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1587_14">Enable_Key</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1997_14" HREF="terminal_interface-curses__ads.htm#ref_1597_14">Define_Key</A></span> (<span class="symbol"><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1597_26">Definition</A></span> : String; ++ <span class="symbol"><A NAME="ref_1998_26" HREF="terminal_interface-curses__ads.htm#ref_1598_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2000_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2000_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Def</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_2001_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2000_16">Defkey</A></span> (<span class="symbol"><A NAME="ref_2000_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Def</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_2001_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Defkey, "define_key"); + +- <FONT COLOR=red><A NAME="ref_2004_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1598_26">Definition</A>'Length); +- <FONT COLOR=red><A NAME="ref_2005_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_2004_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1597_26">Definition</A>'Length); ++ <span class="symbol"><A NAME="ref_2005_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1598_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2005_7">Length</A>); +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2000_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1599_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1598_14">Define_Key</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2013_14" HREF="terminal_interface-curses__ads.htm#ref_1624_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2013_26" HREF="terminal_interface-curses__ads.htm#ref_1624_26">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; +- <FONT COLOR=red><A NAME="ref_2014_26" HREF="terminal_interface-curses__ads.htm#ref_1625_26">Str</A></FONT> : <b>out</b> String) ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1597_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2005_7">Length</A>); ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2000_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1598_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1597_14">Define_Key</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2013_14" HREF="terminal_interface-curses__ads.htm#ref_1623_14">Un_Control</A></span> (<span class="symbol"><A NAME="ref_2013_26" HREF="terminal_interface-curses__ads.htm#ref_1623_26">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; ++ <span class="symbol"><A NAME="ref_2014_26" HREF="terminal_interface-curses__ads.htm#ref_1624_26">Str</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2016_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2016_24" HREF="terminal_interface-curses__adb.htm#ref_2016_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2016_16">Unctrl</A></span> (<span class="symbol"><A NAME="ref_2016_24" HREF="terminal_interface-curses__adb.htm#ref_2016_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Unctrl, "unctrl"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2016_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1624_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1625_26">Str</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1624_14">Un_Control</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2016_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1623_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1624_26">Str</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1623_14">Un_Control</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2022_13" HREF="terminal_interface-curses__ads.htm#ref_1629_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2022_25" HREF="terminal_interface-curses__ads.htm#ref_1629_25">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_2022_13" HREF="terminal_interface-curses__ads.htm#ref_1628_13">Un_Control</A></span> (<span class="symbol"><A NAME="ref_2022_25" HREF="terminal_interface-curses__ads.htm#ref_1628_25">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2024_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2024_24" HREF="terminal_interface-curses__adb.htm#ref_2024_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2024_16">Unctrl</A></span> (<span class="symbol"><A NAME="ref_2024_24" HREF="terminal_interface-curses__adb.htm#ref_2024_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Unctrl, "unctrl"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2024_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1629_25">Ch</A>))); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1629_13">Un_Control</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2024_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1628_25">Ch</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1628_13">Un_Control</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1635_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2030_28" HREF="terminal_interface-curses__ads.htm#ref_1635_28">Msecs</A></FONT> : Natural) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1634_14">Delay_Output</A></span> (<span class="symbol"><A NAME="ref_2030_28" HREF="terminal_interface-curses__ads.htm#ref_1634_28">Msecs</A></span> : Natural) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2032_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2032_29" HREF="terminal_interface-curses__adb.htm#ref_2032_16">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2032_16">Delayoutput</A></span> (<span class="symbol"><A NAME="ref_2032_29" HREF="terminal_interface-curses__adb.htm#ref_2032_16">Msecs</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Delayoutput, "delay_output"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2032_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1635_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2032_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1634_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1635_14">Delay_Output</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1634_14">Delay_Output</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2040_14" HREF="terminal_interface-curses__ads.htm#ref_1640_14">Flush_Input</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2040_14" HREF="terminal_interface-curses__ads.htm#ref_1639_14">Flush_Input</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2042_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2042_16">Flushinp</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Flushinp, "flushinp"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2042_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2042_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> <span class="comment"><EM>-- docu says that never happens, but...</EM></span> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1640_14">Flush_Input</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2050_13" HREF="terminal_interface-curses__ads.htm#ref_1649_13">Baudrate</A></FONT> <b>return</b> Natural ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1639_14">Flush_Input</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_2050_13" HREF="terminal_interface-curses__ads.htm#ref_1648_13">Baudrate</A></span> <b>return</b> Natural + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2052_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2052_16">Baud</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Baud, "baudrate"); + <b>begin</b> + <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2052_16">Baud</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1649_13">Baudrate</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1648_13">Baudrate</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2058_13" HREF="terminal_interface-curses__ads.htm#ref_1654_13">Erase_Character</A></FONT> <b>return</b> Character ++ <b>function</b> <span class="symbol"><A NAME="ref_2058_13" HREF="terminal_interface-curses__ads.htm#ref_1653_13">Erase_Character</A></span> <b>return</b> Character + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2060_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2060_16">Erasechar</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Erasechar, "erasechar"); + <b>begin</b> + <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2060_16">Erasechar</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1654_13">Erase_Character</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1653_13">Erase_Character</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2066_13" HREF="terminal_interface-curses__ads.htm#ref_1659_13">Kill_Character</A></FONT> <b>return</b> Character ++ <b>function</b> <span class="symbol"><A NAME="ref_2066_13" HREF="terminal_interface-curses__ads.htm#ref_1658_13">Kill_Character</A></span> <b>return</b> Character + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2068_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2068_16">Killchar</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Killchar, "killchar"); + <b>begin</b> + <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2068_16">Killchar</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1659_13">Kill_Character</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1658_13">Kill_Character</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2074_13" HREF="terminal_interface-curses__ads.htm#ref_1664_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_2074_13" HREF="terminal_interface-curses__ads.htm#ref_1663_13">Has_Insert_Character</A></span> <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2076_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2076_16">Has_Ic</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Has_Ic, "has_ic"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1664_13">Has_Insert_Character</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1663_13">Has_Insert_Character</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2086_13" HREF="terminal_interface-curses__ads.htm#ref_1669_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_2086_13" HREF="terminal_interface-curses__ads.htm#ref_1668_13">Has_Insert_Line</A></span> <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2088_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2088_16">Has_Il</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Has_Il, "has_il"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2088_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2088_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1669_13">Has_Insert_Line</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1668_13">Has_Insert_Line</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2098_13" HREF="terminal_interface-curses__ads.htm#ref_1674_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_2098_13" HREF="terminal_interface-curses__ads.htm#ref_1673_13">Supported_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2100_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2100_16">Termattrs</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Termattrs, "termattrs"); + +- <FONT COLOR=red><A NAME="ref_2103_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2100_16">Termattrs</A>); ++ <span class="symbol"><A NAME="ref_2103_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2100_16">Termattrs</A>); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2103_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1674_13">Supported_Attributes</A>; ++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2103_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1673_13">Supported_Attributes</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2108_14" HREF="terminal_interface-curses__ads.htm#ref_1679_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2108_25" HREF="terminal_interface-curses__ads.htm#ref_1679_25">Name</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2108_14" HREF="terminal_interface-curses__ads.htm#ref_1678_14">Long_Name</A></span> (<span class="symbol"><A NAME="ref_2108_25" HREF="terminal_interface-curses__ads.htm#ref_1678_25">Name</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2110_16">Longname</A></FONT> <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2110_16">Longname</A></span> <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Longname, "longname"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1679_25">Name</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1679_14">Long_Name</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1678_25">Name</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1678_14">Long_Name</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2116_13" HREF="terminal_interface-curses__ads.htm#ref_1683_13">Long_Name</A></FONT> <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_2116_13" HREF="terminal_interface-curses__ads.htm#ref_1682_13">Long_Name</A></span> <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2118_16">Longname</A></FONT> <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2118_16">Longname</A></span> <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Longname, "longname"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2118_16">Longname</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1683_13">Long_Name</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1682_13">Long_Name</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2124_14" HREF="terminal_interface-curses__ads.htm#ref_1689_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2124_29" HREF="terminal_interface-curses__ads.htm#ref_1689_29">Name</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2124_14" HREF="terminal_interface-curses__ads.htm#ref_1688_14">Terminal_Name</A></span> (<span class="symbol"><A NAME="ref_2124_29" HREF="terminal_interface-curses__ads.htm#ref_1688_29">Name</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2126_16">Termname</A></FONT> <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2126_16">Termname</A></span> <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Termname, "termname"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2126_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1689_29">Name</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1689_14">Terminal_Name</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2126_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1688_29">Name</A>); ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1688_14">Terminal_Name</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1693_13">Terminal_Name</A></FONT> <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1692_13">Terminal_Name</A></span> <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2134_16">Termname</A></FONT> <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2134_16">Termname</A></span> <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Termname, "termname"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termname</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1693_13">Terminal_Name</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2140_14" HREF="terminal_interface-curses__ads.htm#ref_1714_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2140_25" HREF="terminal_interface-curses__ads.htm#ref_1714_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>; +- <FONT COLOR=red><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1715_25">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1716_25">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2144_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2144_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_2145_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_2146_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1692_13">Terminal_Name</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2140_14" HREF="terminal_interface-curses__ads.htm#ref_1713_14">Init_Pair</A></span> (<span class="symbol"><A NAME="ref_2140_25" HREF="terminal_interface-curses__ads.htm#ref_1713_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>; ++ <span class="symbol"><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1714_25">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1715_25">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_2144_16">Initpair</A></span> (<span class="symbol"><A NAME="ref_2144_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Pair</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2145_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Fore</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2146_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Back</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Initpair, "init_pair"); + <b>begin</b> +- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A> <b>then</b> ++ <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1713_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_425_13">Number_Of_Color_Pairs</A> <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1715_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A> <b>or</b> <b>else</b> +- Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1716_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A> <b>then</b> ++ <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_422_13">Number_Of_Colors</A> <b>or</b> <b>else</b> ++ Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1715_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_422_13">Number_Of_Colors</A> <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1715_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1716_25">Back</A>)) ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1713_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1715_25">Back</A>)) + = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1714_14">Init_Pair</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Init_Pair</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2162_14" HREF="terminal_interface-curses__ads.htm#ref_1721_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2162_28" HREF="terminal_interface-curses__ads.htm#ref_1721_28">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; +- <FONT COLOR=red><A NAME="ref_2163_28" HREF="terminal_interface-curses__ads.htm#ref_1722_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_2164_28" HREF="terminal_interface-curses__ads.htm#ref_1723_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_2166_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_2167_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2167_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_2168_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Fp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2166_12">C_Short_Access</A>; +- <FONT COLOR=red><A NAME="ref_2169_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Bp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2166_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2162_14" HREF="terminal_interface-curses__ads.htm#ref_1720_14">Pair_Content</A></span> (<span class="symbol"><A NAME="ref_2162_28" HREF="terminal_interface-curses__ads.htm#ref_1720_28">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; ++ <span class="symbol"><A NAME="ref_2163_28" HREF="terminal_interface-curses__ads.htm#ref_1721_28">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_2164_28" HREF="terminal_interface-curses__ads.htm#ref_1722_28">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_2166_12">C_Short_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2167_16">Paircontent</A></span> (<span class="symbol"><A NAME="ref_2167_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Pair</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2168_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Fp</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2166_12">C_Short_Access</A>; ++ <span class="symbol"><A NAME="ref_2169_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Bp</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2166_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Paircontent, "pair_content"); + +- <FONT COLOR=red><A NAME="ref_2172_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2172_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2172_7">F</A></span>, <span class="symbol"><A NAME="ref_2172_10">B</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2167_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1721_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2172_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2172_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2167_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1720_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2172_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2172_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1722_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2172_7">F</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1723_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2172_10">B</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1721_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2172_7">F</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1722_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2172_10">B</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1721_14">Pair_Content</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1720_14">Pair_Content</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2182_13" HREF="terminal_interface-curses__ads.htm#ref_1728_13">Has_Colors</A></FONT> <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_2182_13" HREF="terminal_interface-curses__ads.htm#ref_1727_13">Has_Colors</A></span> <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2184_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2184_16">Hascolors</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Hascolors, "has_colors"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2184_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2184_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1728_13">Has_Colors</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1727_13">Has_Colors</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2194_14" HREF="terminal_interface-curses__ads.htm#ref_1733_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2194_26" HREF="terminal_interface-curses__ads.htm#ref_1733_26">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_2195_26" HREF="terminal_interface-curses__ads.htm#ref_1734_26">Red</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_2196_26" HREF="terminal_interface-curses__ads.htm#ref_1735_26">Green</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_2197_26" HREF="terminal_interface-curses__ads.htm#ref_1736_26">Blue</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2199_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2199_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_2200_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Red</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_2201_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; +- <FONT COLOR=red><A NAME="ref_2202_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Blue</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2194_14" HREF="terminal_interface-curses__ads.htm#ref_1732_14">Init_Color</A></span> (<span class="symbol"><A NAME="ref_2194_26" HREF="terminal_interface-curses__ads.htm#ref_1732_26">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_2195_26" HREF="terminal_interface-curses__ads.htm#ref_1733_26">Red</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_2196_26" HREF="terminal_interface-curses__ads.htm#ref_1734_26">Green</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_2197_26" HREF="terminal_interface-curses__ads.htm#ref_1735_26">Blue</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_2199_16">Initcolor</A></span> (<span class="symbol"><A NAME="ref_2199_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2200_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Red</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2201_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Green</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2202_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Blue</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Initcolor, "init_color"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1733_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1734_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1735_26">Green</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1736_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1732_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1733_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1734_26">Green</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1735_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_14">Init_Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1732_14">Init_Color</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2211_13" HREF="terminal_interface-curses__ads.htm#ref_1741_13">Can_Change_Color</A></FONT> <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_2211_13" HREF="terminal_interface-curses__ads.htm#ref_1740_13">Can_Change_Color</A></span> <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2213_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2213_16">Canchangecolor</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Canchangecolor, "can_change_color"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2213_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2213_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1741_13">Can_Change_Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1740_13">Can_Change_Color</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2223_14" HREF="terminal_interface-curses__ads.htm#ref_1746_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2223_29" HREF="terminal_interface-curses__ads.htm#ref_1746_29">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_2224_29" HREF="terminal_interface-curses__ads.htm#ref_1747_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_2225_29" HREF="terminal_interface-curses__ads.htm#ref_1748_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_2226_29" HREF="terminal_interface-curses__ads.htm#ref_1749_29">Blue</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2223_14" HREF="terminal_interface-curses__ads.htm#ref_1745_14">Color_Content</A></span> (<span class="symbol"><A NAME="ref_2223_29" HREF="terminal_interface-curses__ads.htm#ref_1745_29">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_2224_29" HREF="terminal_interface-curses__ads.htm#ref_1746_29">Red</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_2225_29" HREF="terminal_interface-curses__ads.htm#ref_1747_29">Green</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_2226_29" HREF="terminal_interface-curses__ads.htm#ref_1748_29">Blue</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>) + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_2228_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_2228_12">C_Short_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2230_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2230_30" HREF="terminal_interface-curses__adb.htm#ref_2230_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2230_47" HREF="terminal_interface-curses__adb.htm#ref_2230_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2230_50" HREF="terminal_interface-curses__adb.htm#ref_2230_16">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2230_53" HREF="terminal_interface-curses__adb.htm#ref_2230_16">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2228_12">C_Short_Access</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_2230_16">Colorcontent</A></span> (<span class="symbol"><A NAME="ref_2230_30" HREF="terminal_interface-curses__adb.htm#ref_2230_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <span class="symbol"><A NAME="ref_2230_47" HREF="terminal_interface-curses__adb.htm#ref_2230_16">R</A></span>, <span class="symbol"><A NAME="ref_2230_50" HREF="terminal_interface-curses__adb.htm#ref_2230_16">G</A></span>, <span class="symbol"><A NAME="ref_2230_53" HREF="terminal_interface-curses__adb.htm#ref_2230_16">B</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2228_12">C_Short_Access</A>) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Colorcontent, "color_content"); + +- <FONT COLOR=red><A NAME="ref_2234_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2234_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2234_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; ++ <span class="symbol"><A NAME="ref_2234_7">R</A></span>, <span class="symbol"><A NAME="ref_2234_10">G</A></span>, <span class="symbol"><A NAME="ref_2234_13">B</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2230_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1746_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2234_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2234_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2234_13">B</A>'<b>Access</b>) = ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2230_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1745_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2234_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2234_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2234_13">B</A>'<b>Access</b>) = + <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1747_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_7">R</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1748_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_10">G</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1749_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_13">B</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1746_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_7">R</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1747_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_10">G</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1748_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_13">B</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1746_14">Color_Content</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1745_14">Color_Content</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2247_14" HREF="terminal_interface-curses__ads.htm#ref_1761_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2247_32" HREF="terminal_interface-curses__ads.htm#ref_1761_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2247_14" HREF="terminal_interface-curses__ads.htm#ref_1760_14">Save_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_2247_32" HREF="terminal_interface-curses__ads.htm#ref_1760_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1757_9">Curses_Mode</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2249_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2249_16">Def_Prog_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Def_Prog_Mode, "def_prog_mode"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_2251_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2251_16">Def_Shell_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Def_Shell_Mode, "def_shell_mode"); + +- <FONT COLOR=red><A NAME="ref_2254_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2254_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1761_32">Mode</A> <b>is</b> +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2249_16">Def_Prog_Mode</A>; +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2251_16">Def_Shell_Mode</A>; ++ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1760_32">Mode</A> <b>is</b> ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1757_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2249_16">Def_Prog_Mode</A>; ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1757_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2251_16">Def_Shell_Mode</A>; + <b>end</b> <b>case</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1761_14">Save_Curses_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1760_14">Save_Curses_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2265_14" HREF="terminal_interface-curses__ads.htm#ref_1767_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2265_33" HREF="terminal_interface-curses__ads.htm#ref_1767_33">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2265_14" HREF="terminal_interface-curses__ads.htm#ref_1766_14">Reset_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_2265_33" HREF="terminal_interface-curses__ads.htm#ref_1766_33">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1757_9">Curses_Mode</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2267_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2267_16">Reset_Prog_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Reset_Prog_Mode, "reset_prog_mode"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_2269_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2269_16">Reset_Shell_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Reset_Shell_Mode, "reset_shell_mode"); + +- <FONT COLOR=red><A NAME="ref_2272_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2272_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1767_33">Mode</A> <b>is</b> +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2267_16">Reset_Prog_Mode</A>; +- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2269_16">Reset_Shell_Mode</A>; ++ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1766_33">Mode</A> <b>is</b> ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1757_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2267_16">Reset_Prog_Mode</A>; ++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1757_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2269_16">Reset_Shell_Mode</A>; + <b>end</b> <b>case</b>; + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1767_14">Reset_Curses_Mode</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1766_14">Reset_Curses_Mode</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2283_14" HREF="terminal_interface-curses__ads.htm#ref_1773_14">Save_Terminal_State</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2283_14" HREF="terminal_interface-curses__ads.htm#ref_1772_14">Save_Terminal_State</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2285_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2285_16">Savetty</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Savetty, "savetty"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2285_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1773_14">Save_Terminal_State</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1772_14">Save_Terminal_State</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2293_14" HREF="terminal_interface-curses__ads.htm#ref_1778_14">Reset_Terminal_State</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2293_14" HREF="terminal_interface-curses__ads.htm#ref_1777_14">Reset_Terminal_State</A></span> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2295_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2295_16">Resetty</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Resetty, "resetty"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2295_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1778_14">Reset_Terminal_State</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1777_14">Reset_Terminal_State</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2303_14" HREF="terminal_interface-curses__ads.htm#ref_1791_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2303_29" HREF="terminal_interface-curses__ads.htm#ref_1791_29">Lines</A></FONT> : Integer; +- <FONT COLOR=red><A NAME="ref_2304_29" HREF="terminal_interface-curses__ads.htm#ref_1792_29">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2303_14" HREF="terminal_interface-curses__ads.htm#ref_1790_14">Rip_Off_Lines</A></span> (<span class="symbol"><A NAME="ref_2303_29" HREF="terminal_interface-curses__ads.htm#ref_1790_29">Lines</A></span> : Integer; ++ <span class="symbol"><A NAME="ref_2304_29" HREF="terminal_interface-curses__ads.htm#ref_1791_29">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1781_9">Stdscr_Init_Proc</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2306_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2306_28" HREF="terminal_interface-curses__adb.htm#ref_2306_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_2307_28" HREF="terminal_interface-curses__adb.htm#ref_2306_16">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2306_16">Ripoffline</A></span> (<span class="symbol"><A NAME="ref_2306_28" HREF="terminal_interface-curses__adb.htm#ref_2306_16">Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2307_28" HREF="terminal_interface-curses__adb.htm#ref_2306_16">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1781_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Ripoffline, "_nc_ripoffline"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2306_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1791_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1792_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2306_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1790_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1791_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1791_14">Rip_Off_Lines</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1790_14">Rip_Off_Lines</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2315_14" HREF="terminal_interface-curses__ads.htm#ref_1803_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2315_37" HREF="terminal_interface-curses__ads.htm#ref_1803_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2315_14" HREF="terminal_interface-curses__ads.htm#ref_1802_14">Set_Cursor_Visibility</A></span> (<span class="symbol"><A NAME="ref_2315_37" HREF="terminal_interface-curses__ads.htm#ref_1802_37">Visibility</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1799_9">Cursor_Visibility</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2317_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2317_26" HREF="terminal_interface-curses__adb.htm#ref_2317_16">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2317_16">Curs_Set</A></span> (<span class="symbol"><A NAME="ref_2317_26" HREF="terminal_interface-curses__adb.htm#ref_2317_16">Curs</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Curs_Set, "curs_set"); + +- <FONT COLOR=red><A NAME="ref_2320_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2320_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2317_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1803_37">Visibility</A>)); ++ <A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2317_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1799_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1802_37">Visibility</A>)); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1803_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1802_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1799_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1803_14">Set_Cursor_Visibility</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1802_14">Set_Cursor_Visibility</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2328_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2328_33" HREF="terminal_interface-curses__ads.htm#ref_1808_33">Ms</A></FONT> : Natural) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2328_14" HREF="terminal_interface-curses__ads.htm#ref_1807_14">Nap_Milli_Seconds</A></span> (<span class="symbol"><A NAME="ref_2328_33" HREF="terminal_interface-curses__ads.htm#ref_1807_33">Ms</A></span> : Natural) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2330_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2330_23" HREF="terminal_interface-curses__adb.htm#ref_2330_16">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2330_16">Napms</A></span> (<span class="symbol"><A NAME="ref_2330_23" HREF="terminal_interface-curses__adb.htm#ref_2330_16">Ms</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Napms, "napms"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2330_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1808_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2330_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1807_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Nap_Milli_Seconds</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1807_14">Nap_Milli_Seconds</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2339_13" HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_2339_13" HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2341_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_2341_7">Result</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2341_7">Result</A>, "stdscr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2341_7">Result</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2347_13" HREF="terminal_interface-curses__ads.htm#ref_483_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_2347_13" HREF="terminal_interface-curses__ads.htm#ref_482_13">Current_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2349_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_2349_7">Result</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2349_7">Result</A>, "curscr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2349_7">Result</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_483_13">Current_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_482_13">Current_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2355_13" HREF="terminal_interface-curses__ads.htm#ref_414_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_2355_13" HREF="terminal_interface-curses__ads.htm#ref_413_13">Lines</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2357_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2357_7">Result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2357_7">Result</A>, "LINES"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2357_7">Result</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_414_13">Lines</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_413_13">Lines</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2363_13" HREF="terminal_interface-curses__ads.htm#ref_417_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_2363_13" HREF="terminal_interface-curses__ads.htm#ref_416_13">Columns</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2365_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2365_7">Result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2365_7">Result</A>, "COLS"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2365_7">Result</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_13">Columns</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_416_13">Columns</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_420_13">Tab_Size</A></FONT> <b>return</b> Natural ++ <b>function</b> <span class="symbol"><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_419_13">Tab_Size</A></span> <b>return</b> Natural + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2373_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2373_7">Result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Result</A>, "TABSIZE"); + <b>begin</b> + <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Result</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_420_13">Tab_Size</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_419_13">Tab_Size</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2379_13" HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A></FONT> <b>return</b> Natural ++ <b>function</b> <span class="symbol"><A NAME="ref_2379_13" HREF="terminal_interface-curses__ads.htm#ref_422_13">Number_Of_Colors</A></span> <b>return</b> Natural + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2381_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2381_7">Result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2381_7">Result</A>, "COLORS"); + <b>begin</b> + <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2381_7">Result</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_422_13">Number_Of_Colors</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_2387_13" HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural ++ <b>function</b> <span class="symbol"><A NAME="ref_2387_13" HREF="terminal_interface-curses__ads.htm#ref_425_13">Number_Of_Color_Pairs</A></span> <b>return</b> Natural + <b>is</b> +- <FONT COLOR=red><A NAME="ref_2389_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2389_7">Result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2389_7">Result</A>, "COLOR_PAIRS"); + <b>begin</b> + <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2389_7">Result</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_425_13">Number_Of_Color_Pairs</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2396_14" HREF="terminal_interface-curses__ads.htm#ref_1816_14">Transform_Coordinates</A></FONT> +- (<FONT COLOR=red><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1817_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1818_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1819_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_2400_7" HREF="terminal_interface-curses__ads.htm#ref_1820_7">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1815_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1815_33">From_Screen</A>) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_2402_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_2403_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2404_30" HREF="terminal_interface-curses__adb.htm#ref_2403_16">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2402_12">Int_Access</A>; +- <FONT COLOR=red><A NAME="ref_2405_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2396_14" HREF="terminal_interface-curses__ads.htm#ref_1815_14">Transform_Coordinates</A></span> ++ (<span class="symbol"><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1816_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1817_7">Line</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1818_7">Column</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_2400_7" HREF="terminal_interface-curses__ads.htm#ref_1819_7">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1814_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1814_33">From_Screen</A>) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_2402_12">Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2403_16">Transform</A></span> (<span class="symbol"><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Y</A></span>, <span class="symbol"><A NAME="ref_2404_30" HREF="terminal_interface-curses__adb.htm#ref_2403_16">X</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2402_12">Int_Access</A>; ++ <span class="symbol"><A NAME="ref_2405_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Transform, "wmouse_trafo"); + +- <FONT COLOR=red><A NAME="ref_2408_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1819_7">Column</A>); +- <FONT COLOR=red><A NAME="ref_2409_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Line</A>); +- <FONT COLOR=red><A NAME="ref_2410_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>; +- <FONT COLOR=red><A NAME="ref_2411_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2408_7">X</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Column</A>); ++ <span class="symbol"><A NAME="ref_2409_7">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1817_7">Line</A>); ++ <span class="symbol"><A NAME="ref_2410_7">D</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A>; ++ <span class="symbol"><A NAME="ref_2411_7">R</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1820_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1815_46">To_Screen</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1819_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1814_46">To_Screen</A> <b>then</b> + <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A> := 1; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2403_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1817_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A>); ++ <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2403_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1816_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A>); + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1819_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1817_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1816_14">Transform_Coordinates</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2425_14" HREF="terminal_interface-curses__ads.htm#ref_1833_14">Use_Default_Colors</A></FONT> <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2426_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1815_14">Transform_Coordinates</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2425_14" HREF="terminal_interface-curses__ads.htm#ref_1832_14">Use_Default_Colors</A></span> <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_2426_16">C_Use_Default_Colors</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, C_Use_Default_Colors, "use_default_colors"); +- <FONT COLOR=red><A NAME="ref_2428_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">C_Use_Default_Colors</A>; ++ <span class="symbol"><A NAME="ref_2428_7">Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">C_Use_Default_Colors</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2428_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1833_14">Use_Default_Colors</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1832_14">Use_Default_Colors</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2435_14" HREF="terminal_interface-curses__ads.htm#ref_1838_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_1838_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>; +- <FONT COLOR=red><A NAME="ref_2436_37" HREF="terminal_interface-curses__ads.htm#ref_1839_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2435_14" HREF="terminal_interface-curses__ads.htm#ref_1837_14">Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_1837_37">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>; ++ <span class="symbol"><A NAME="ref_2436_37" HREF="terminal_interface-curses__ads.htm#ref_1838_37">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2438_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_2439_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2438_16">C_Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Fore</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2439_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Back</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, C_Assume_Default_Colors, "assume_default_colors"); + +- <FONT COLOR=red><A NAME="ref_2442_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2438_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1838_37">Fore</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1839_37">Back</A>)); ++ <span class="symbol"><A NAME="ref_2442_7">Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2438_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1837_37">Fore</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1838_37">Back</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2442_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1838_14">Assume_Default_Colors</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2450_13" HREF="terminal_interface-curses__ads.htm#ref_1848_13">Curses_Version</A></FONT> <b>return</b> String ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1837_14">Assume_Default_Colors</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_2450_13" HREF="terminal_interface-curses__ads.htm#ref_1847_13">Curses_Version</A></span> <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2452_16">curses_versionC</A></FONT> <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_2452_16">curses_versionC</A></span> <b>return</b> chars_ptr; + <b>pragma</b> Import (C, curses_versionC, "curses_version"); +- <FONT COLOR=red><A NAME="ref_2454_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2452_16">curses_versionC</A>; ++ <span class="symbol"><A NAME="ref_2454_7">Result</A></span> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2452_16">curses_versionC</A>; + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2454_7">Result</A>); +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1848_13">Curses_Version</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_1861_14">Curses_Free_All</A></FONT> <b>is</b> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2460_17">curses_freeall</A></FONT>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1847_13">Curses_Version</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_1860_14">Curses_Free_All</A></span> <b>is</b> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2460_17">curses_freeall</A></span>; + <b>pragma</b> Import (C, curses_freeall, "_nc_freeall"); + <b>begin</b> +- <FONT COLOR=green><EM>-- Use this only for testing: you cannot use curses after calling it,</EM></FONT> +- <FONT COLOR=green><EM>-- so it has to be the "last" thing done before exiting the program.</EM></FONT> +- <FONT COLOR=green><EM>-- This will not really free ALL of memory used by curses. That is</EM></FONT> +- <FONT COLOR=green><EM>-- because it cannot free the memory used for stdout's setbuf. The</EM></FONT> +- <FONT COLOR=green><EM>-- _nc_free_and_exit() procedure can do that, but it can be invoked</EM></FONT> +- <FONT COLOR=green><EM>-- safely only from C - and again, that only as the "last" thing done</EM></FONT> +- <FONT COLOR=green><EM>-- before exiting the program.</EM></FONT> ++ <span class="comment"><EM>-- Use this only for testing: you cannot use curses after calling it,</EM></span> ++ <span class="comment"><EM>-- so it has to be the "last" thing done before exiting the program.</EM></span> ++ <span class="comment"><EM>-- This will not really free ALL of memory used by curses. That is</EM></span> ++ <span class="comment"><EM>-- because it cannot free the memory used for stdout's setbuf. The</EM></span> ++ <span class="comment"><EM>-- _nc_free_and_exit() procedure can do that, but it can be invoked</EM></span> ++ <span class="comment"><EM>-- safely only from C - and again, that only as the "last" thing done</EM></span> ++ <span class="comment"><EM>-- before exiting the program.</EM></span> + <A HREF="terminal_interface-curses__adb.htm#ref_2460_17">curses_freeall</A>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_14">Curses_Free_All</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_1853_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2473_33" HREF="terminal_interface-curses__ads.htm#ref_1853_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1860_14">Curses_Free_All</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_1852_13">Use_Extended_Names</A></span> (<span class="symbol"><A NAME="ref_2473_33" HREF="terminal_interface-curses__ads.htm#ref_1852_33">Enable</A></span> : Boolean) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2475_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2475_37" HREF="terminal_interface-curses__adb.htm#ref_2475_16">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2475_16">use_extended_namesC</A></span> (<span class="symbol"><A NAME="ref_2475_37" HREF="terminal_interface-curses__adb.htm#ref_2475_16">e</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, use_extended_namesC, "use_extended_names"); + +- <FONT COLOR=red><A NAME="ref_2478_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := +- <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1853_33">Enable</A>))); ++ <span class="symbol"><A NAME="ref_2478_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := ++ <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1852_33">Enable</A>))); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>) <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A>) <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1853_13">Use_Extended_Names</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2488_14" HREF="terminal_interface-curses__ads.htm#ref_1869_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2488_35" HREF="terminal_interface-curses__ads.htm#ref_1869_35">Filename</A></FONT> : String) ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1852_13">Use_Extended_Names</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2488_14" HREF="terminal_interface-curses__ads.htm#ref_1868_14">Screen_Dump_To_File</A></span> (<span class="symbol"><A NAME="ref_2488_35" HREF="terminal_interface-curses__ads.htm#ref_1868_35">Filename</A></span> : String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2490_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2490_26" HREF="terminal_interface-curses__adb.htm#ref_2490_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2490_16">scr_dump</A></span> (<span class="symbol"><A NAME="ref_2490_26" HREF="terminal_interface-curses__adb.htm#ref_2490_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, scr_dump, "scr_dump"); +- <FONT COLOR=red><A NAME="ref_2492_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1869_35">Filename</A>'Length); +- <FONT COLOR=red><A NAME="ref_2493_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_2492_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1868_35">Filename</A>'Length); ++ <span class="symbol"><A NAME="ref_2493_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1869_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2493_7">Length</A>); ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1868_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2493_7">Length</A>); + <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2490_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1869_14">Screen_Dump_To_File</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1868_14">Screen_Dump_To_File</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2501_14" HREF="terminal_interface-curses__ads.htm#ref_1873_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2501_40" HREF="terminal_interface-curses__ads.htm#ref_1873_40">Filename</A></FONT> : String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2501_14" HREF="terminal_interface-curses__ads.htm#ref_1872_14">Screen_Restore_From_File</A></span> (<span class="symbol"><A NAME="ref_2501_40" HREF="terminal_interface-curses__ads.htm#ref_1872_40">Filename</A></span> : String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2503_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2503_29" HREF="terminal_interface-curses__adb.htm#ref_2503_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2503_16">scr_restore</A></span> (<span class="symbol"><A NAME="ref_2503_29" HREF="terminal_interface-curses__adb.htm#ref_2503_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, scr_restore, "scr_restore"); +- <FONT COLOR=red><A NAME="ref_2505_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1873_40">Filename</A>'Length); +- <FONT COLOR=red><A NAME="ref_2506_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_2505_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1872_40">Filename</A>'Length); ++ <span class="symbol"><A NAME="ref_2506_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1873_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2506_7">Length</A>); ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1872_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2506_7">Length</A>); + <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2503_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1873_14">Screen_Restore_From_File</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1872_14">Screen_Restore_From_File</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2514_14" HREF="terminal_interface-curses__ads.htm#ref_1877_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2514_37" HREF="terminal_interface-curses__ads.htm#ref_1877_37">Filename</A></FONT> : String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2514_14" HREF="terminal_interface-curses__ads.htm#ref_1876_14">Screen_Init_From_File</A></span> (<span class="symbol"><A NAME="ref_2514_37" HREF="terminal_interface-curses__ads.htm#ref_1876_37">Filename</A></span> : String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2516_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2516_26" HREF="terminal_interface-curses__adb.htm#ref_2516_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2516_16">scr_init</A></span> (<span class="symbol"><A NAME="ref_2516_26" HREF="terminal_interface-curses__adb.htm#ref_2516_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, scr_init, "scr_init"); +- <FONT COLOR=red><A NAME="ref_2518_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1877_37">Filename</A>'Length); +- <FONT COLOR=red><A NAME="ref_2519_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_2518_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1876_37">Filename</A>'Length); ++ <span class="symbol"><A NAME="ref_2519_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1877_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2519_7">Length</A>); ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1876_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2519_7">Length</A>); + <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2516_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1877_14">Screen_Init_From_File</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1876_14">Screen_Init_From_File</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2527_14" HREF="terminal_interface-curses__ads.htm#ref_1881_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2527_31" HREF="terminal_interface-curses__ads.htm#ref_1881_31">Filename</A></FONT> : String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2527_14" HREF="terminal_interface-curses__ads.htm#ref_1880_14">Screen_Set_File</A></span> (<span class="symbol"><A NAME="ref_2527_31" HREF="terminal_interface-curses__ads.htm#ref_1880_31">Filename</A></span> : String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2529_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2529_25" HREF="terminal_interface-curses__adb.htm#ref_2529_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_2529_16">scr_set</A></span> (<span class="symbol"><A NAME="ref_2529_25" HREF="terminal_interface-curses__adb.htm#ref_2529_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, scr_set, "scr_set"); +- <FONT COLOR=red><A NAME="ref_2531_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1881_31">Filename</A>'Length); +- <FONT COLOR=red><A NAME="ref_2532_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_2531_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1880_31">Filename</A>'Length); ++ <span class="symbol"><A NAME="ref_2532_7">Length</A></span> : size_t; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1881_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2532_7">Length</A>); ++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1880_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2532_7">Length</A>); + <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2529_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1881_14">Screen_Set_File</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2540_14" HREF="terminal_interface-curses__ads.htm#ref_1913_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_1913_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_1914_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_2542_22" HREF="terminal_interface-curses__ads.htm#ref_1915_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_2543_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_2545_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1880_14">Screen_Set_File</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_2540_14" HREF="terminal_interface-curses__ads.htm#ref_1912_14">Resize</A></span> (<span class="symbol"><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_1912_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_1913_22">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_2542_22" HREF="terminal_interface-curses__ads.htm#ref_1914_22">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_2543_16">wresize</A></span> (<span class="symbol"><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_2545_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, wresize); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2543_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1913_22">Win</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1914_22">Number_Of_Lines</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1915_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2543_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1912_22">Win</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1913_22">Number_Of_Lines</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1914_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1913_14">Resize</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1912_14">Resize</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses__ads.htm 2011-04-02 21:53:41.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses__ads.htm 2014-09-01 16:33:22.314792053 +0200 +@@ -1,225 +1,237 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.44 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 23:05:56 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- curses binding.</EM></FONT> +-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT> +-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.44 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 23:05:56 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- curses binding.</EM></span> ++<span class="comment"><EM>-- This module is generated. Please don't change it manually!</EM></span> ++<span class="comment"><EM>-- Run the generator instead.</EM></span> ++<span class="comment"><EM>-- |</EM></span> + <b>with</b> System.Storage_Elements; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <span class="comment"><EM>-- We need this for some assertions.</EM></span> + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_49_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_49_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>); + <b>pragma</b> Linker_Options ("-lncurses"); + +- <FONT COLOR=red><A NAME="ref_53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Major version of the library</EM></FONT> +- <FONT COLOR=red><A NAME="ref_54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 9; <FONT COLOR=green><EM>-- Minor version of the library</EM></FONT> +- <FONT COLOR=red><A NAME="ref_55_4">NC_Version</A></FONT> : <b>constant</b> String := "5.9"; <FONT COLOR=green><EM>-- Version of library</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Window</A></FONT> <b>is</b> <b>private</b>; +- <FONT COLOR=red><A NAME="ref_58_4">Null_Window</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_60_9">Line_Position</A></FONT> <b>is</b> <b>new</b> Integer; <FONT COLOR=green><EM>-- line coordinate</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Column_Position</A></FONT> <b>is</b> <b>new</b> Integer; <FONT COLOR=green><EM>-- column coordinate</EM></FONT> +- +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_63_12">Line_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last; +- <FONT COLOR=green><EM>-- Type to count lines. We do not allow null windows, so must be positive</EM></FONT> +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Column_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last; +- <FONT COLOR=green><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Key_Code</A></FONT> <b>is</b> <b>new</b> Integer; +- <FONT COLOR=green><EM>-- That is anything including real characters, special keys and logical</EM></FONT> +- <FONT COLOR=green><EM>-- request codes.</EM></FONT> +- +- <FONT COLOR=green><EM>-- FIXME: The "-1" should be Curses_Err</EM></FONT> +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_73_12">Real_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> -1 .. 8#777#; +- <FONT COLOR=green><EM>-- This are the codes that potentially represent a real keystroke.</EM></FONT> +- <FONT COLOR=green><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></FONT> +- <FONT COLOR=green><EM>-- availability of a special key, the Has_Key function is provided.</EM></FONT> ++ <span class="symbol"><A NAME="ref_53_4">NC_Major_Version</A></span> : <b>constant</b> := 5; <span class="comment"><EM>-- Major version of the library</EM></span> ++ <span class="symbol"><A NAME="ref_54_4">NC_Minor_Version</A></span> : <b>constant</b> := 9; <span class="comment"><EM>-- Minor version of the library</EM></span> ++ <span class="symbol"><A NAME="ref_55_4">NC_Version</A></span> : <b>constant</b> String := "5.9"; <span class="comment"><EM>-- Version of library</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_57_9">Window</A></span> <b>is</b> <b>private</b>; ++ <span class="symbol"><A NAME="ref_58_4">Null_Window</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_60_9">Line_Position</A></span> <b>is</b> <b>new</b> Integer; <span class="comment"><EM>-- line coordinate</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_61_9">Column_Position</A></span> <b>is</b> <b>new</b> Integer; <span class="comment"><EM>-- column coordinate</EM></span> ++ ++ <b>subtype</b> <span class="symbol"><A NAME="ref_63_12">Line_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last; ++ <span class="comment"><EM>-- Type to count lines. We do not allow null windows, so must be positive</EM></span> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_65_12">Column_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last; ++ <span class="comment"><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_68_9">Key_Code</A></span> <b>is</b> <b>new</b> Integer; ++ <span class="comment"><EM>-- That is anything including real characters, special keys and logical</EM></span> ++ <span class="comment"><EM>-- request codes.</EM></span> ++ ++ <span class="comment"><EM>-- FIXME: The "-1" should be Curses_Err</EM></span> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_73_12">Real_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> -1 .. 8#777#; ++ <span class="comment"><EM>-- This are the codes that potentially represent a real keystroke.</EM></span> ++ <span class="comment"><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></span> ++ <span class="comment"><EM>-- availability of a special key, the Has_Key function is provided.</EM></span> + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Special_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_78_12">Special_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> + <b>range</b> 8#400# .. <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>'Last; +- <FONT COLOR=green><EM>-- Type for a function- or special key number</EM></FONT> ++ <span class="comment"><EM>-- Type for a function- or special key number</EM></span> + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_82_12">Normal_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> <b>range</b> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_82_12">Normal_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> <b>range</b> + Character'Pos (Character'First) .. Character'Pos (Character'Last); +- <FONT COLOR=green><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></FONT> ++ <span class="comment"><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></span> + +- <FONT COLOR=green><EM>-- Constants for function- and special keys</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=red><A NAME="ref_88_4">Key_None</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#; +- <FONT COLOR=red><A NAME="ref_89_4">Key_Code_Yes</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#; +- <FONT COLOR=red><A NAME="ref_90_4">Key_Min</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#; +- <FONT COLOR=red><A NAME="ref_91_4">Key_Break</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#; +- <FONT COLOR=red><A NAME="ref_92_4">Key_Cursor_Down</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#; +- <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Up</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#; +- <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#; +- <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#; +- <FONT COLOR=red><A NAME="ref_96_4">Key_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#; +- <FONT COLOR=red><A NAME="ref_97_4">Key_Backspace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#; +- <FONT COLOR=red><A NAME="ref_98_4">Key_F0</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#; +- <FONT COLOR=red><A NAME="ref_99_4">Key_F1</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#; +- <FONT COLOR=red><A NAME="ref_100_4">Key_F2</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#; +- <FONT COLOR=red><A NAME="ref_101_4">Key_F3</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#; +- <FONT COLOR=red><A NAME="ref_102_4">Key_F4</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#; +- <FONT COLOR=red><A NAME="ref_103_4">Key_F5</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#; +- <FONT COLOR=red><A NAME="ref_104_4">Key_F6</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#; +- <FONT COLOR=red><A NAME="ref_105_4">Key_F7</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#; +- <FONT COLOR=red><A NAME="ref_106_4">Key_F8</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#; +- <FONT COLOR=red><A NAME="ref_107_4">Key_F9</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#; +- <FONT COLOR=red><A NAME="ref_108_4">Key_F10</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#; +- <FONT COLOR=red><A NAME="ref_109_4">Key_F11</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#; +- <FONT COLOR=red><A NAME="ref_110_4">Key_F12</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#; +- <FONT COLOR=red><A NAME="ref_111_4">Key_F13</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#; +- <FONT COLOR=red><A NAME="ref_112_4">Key_F14</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#; +- <FONT COLOR=red><A NAME="ref_113_4">Key_F15</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#; +- <FONT COLOR=red><A NAME="ref_114_4">Key_F16</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#; +- <FONT COLOR=red><A NAME="ref_115_4">Key_F17</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#; +- <FONT COLOR=red><A NAME="ref_116_4">Key_F18</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#; +- <FONT COLOR=red><A NAME="ref_117_4">Key_F19</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#; +- <FONT COLOR=red><A NAME="ref_118_4">Key_F20</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#; +- <FONT COLOR=red><A NAME="ref_119_4">Key_F21</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#; +- <FONT COLOR=red><A NAME="ref_120_4">Key_F22</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#; +- <FONT COLOR=red><A NAME="ref_121_4">Key_F23</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#; +- <FONT COLOR=red><A NAME="ref_122_4">Key_F24</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#; +- <FONT COLOR=red><A NAME="ref_123_4">Key_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#; +- <FONT COLOR=red><A NAME="ref_124_4">Key_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#; +- <FONT COLOR=red><A NAME="ref_125_4">Key_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#; +- <FONT COLOR=red><A NAME="ref_126_4">Key_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#; +- <FONT COLOR=red><A NAME="ref_127_4">Key_Exit_Insert_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#; +- <FONT COLOR=red><A NAME="ref_128_4">Key_Clear_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#; +- <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_End_Of_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#; +- <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#; +- <FONT COLOR=red><A NAME="ref_131_4">Key_Scroll_1_Forward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#; +- <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Backward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#; +- <FONT COLOR=red><A NAME="ref_133_4">Key_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#; +- <FONT COLOR=red><A NAME="ref_134_4">Key_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#; +- <FONT COLOR=red><A NAME="ref_135_4">Key_Set_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#; +- <FONT COLOR=red><A NAME="ref_136_4">Key_Clear_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#; +- <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_All_Tabs</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#; +- <FONT COLOR=red><A NAME="ref_138_4">Key_Enter_Or_Send</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#; +- <FONT COLOR=red><A NAME="ref_139_4">Key_Soft_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#; +- <FONT COLOR=red><A NAME="ref_140_4">Key_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#; +- <FONT COLOR=red><A NAME="ref_141_4">Key_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#; +- <FONT COLOR=red><A NAME="ref_142_4">Key_Bottom</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#; +- <FONT COLOR=red><A NAME="ref_143_4">Key_Upper_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#; +- <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#; +- <FONT COLOR=red><A NAME="ref_145_4">Key_Center_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#; +- <FONT COLOR=red><A NAME="ref_146_4">Key_Lower_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#; +- <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#; +- <FONT COLOR=red><A NAME="ref_148_4">Key_Back_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#; +- <FONT COLOR=red><A NAME="ref_149_4">Key_Beginning</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#; +- <FONT COLOR=red><A NAME="ref_150_4">Key_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#; +- <FONT COLOR=red><A NAME="ref_151_4">Key_Close</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#; +- <FONT COLOR=red><A NAME="ref_152_4">Key_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#; +- <FONT COLOR=red><A NAME="ref_153_4">Key_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#; +- <FONT COLOR=red><A NAME="ref_154_4">Key_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#; +- <FONT COLOR=red><A NAME="ref_155_4">Key_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#; +- <FONT COLOR=red><A NAME="ref_156_4">Key_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#; +- <FONT COLOR=red><A NAME="ref_157_4">Key_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#; +- <FONT COLOR=red><A NAME="ref_158_4">Key_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#; +- <FONT COLOR=red><A NAME="ref_159_4">Key_Mark</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#; +- <FONT COLOR=red><A NAME="ref_160_4">Key_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#; +- <FONT COLOR=red><A NAME="ref_161_4">Key_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#; +- <FONT COLOR=red><A NAME="ref_162_4">Key_Next</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#; +- <FONT COLOR=red><A NAME="ref_163_4">Key_Open</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#; +- <FONT COLOR=red><A NAME="ref_164_4">Key_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#; +- <FONT COLOR=red><A NAME="ref_165_4">Key_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#; +- <FONT COLOR=red><A NAME="ref_166_4">Key_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#; +- <FONT COLOR=red><A NAME="ref_167_4">Key_Reference</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#; +- <FONT COLOR=red><A NAME="ref_168_4">Key_Refresh</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#; +- <FONT COLOR=red><A NAME="ref_169_4">Key_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#; +- <FONT COLOR=red><A NAME="ref_170_4">Key_Restart</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#; +- <FONT COLOR=red><A NAME="ref_171_4">Key_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#; +- <FONT COLOR=red><A NAME="ref_172_4">Key_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#; +- <FONT COLOR=red><A NAME="ref_173_4">Key_Shift_Begin</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#; +- <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#; +- <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#; +- <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#; +- <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#; +- <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#; +- <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#; +- <FONT COLOR=red><A NAME="ref_180_4">Key_Select</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#; +- <FONT COLOR=red><A NAME="ref_181_4">Key_Shift_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#; +- <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#; +- <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#; +- <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#; +- <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#; +- <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#; +- <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#; +- <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#; +- <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#; +- <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#; +- <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#; +- <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#; +- <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#; +- <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#; +- <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#; +- <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#; +- <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#; +- <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#; +- <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#; +- <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#; +- <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#; +- <FONT COLOR=red><A NAME="ref_202_4">Key_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#; +- <FONT COLOR=red><A NAME="ref_203_4">Key_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#; +- <FONT COLOR=red><A NAME="ref_204_4">Key_Mouse</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#; +- <FONT COLOR=red><A NAME="ref_205_4">Key_Resize</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#632#; ++ <span class="comment"><EM>-- Constants for function- and special keys</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="symbol"><A NAME="ref_88_4">Key_None</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#; ++ <span class="symbol"><A NAME="ref_89_4">Key_Code_Yes</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#; ++ <span class="symbol"><A NAME="ref_90_4">Key_Min</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#; ++ <span class="symbol"><A NAME="ref_91_4">Key_Break</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#; ++ <span class="symbol"><A NAME="ref_92_4">Key_Cursor_Down</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#; ++ <span class="symbol"><A NAME="ref_93_4">Key_Cursor_Up</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#; ++ <span class="symbol"><A NAME="ref_94_4">Key_Cursor_Left</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#; ++ <span class="symbol"><A NAME="ref_95_4">Key_Cursor_Right</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#; ++ <span class="symbol"><A NAME="ref_96_4">Key_Home</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#; ++ <span class="symbol"><A NAME="ref_97_4">Key_Backspace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#; ++ <span class="symbol"><A NAME="ref_98_4">Key_F0</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#; ++ <span class="symbol"><A NAME="ref_99_4">Key_F1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#; ++ <span class="symbol"><A NAME="ref_100_4">Key_F2</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#; ++ <span class="symbol"><A NAME="ref_101_4">Key_F3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#; ++ <span class="symbol"><A NAME="ref_102_4">Key_F4</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#; ++ <span class="symbol"><A NAME="ref_103_4">Key_F5</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#; ++ <span class="symbol"><A NAME="ref_104_4">Key_F6</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#; ++ <span class="symbol"><A NAME="ref_105_4">Key_F7</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#; ++ <span class="symbol"><A NAME="ref_106_4">Key_F8</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#; ++ <span class="symbol"><A NAME="ref_107_4">Key_F9</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#; ++ <span class="symbol"><A NAME="ref_108_4">Key_F10</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#; ++ <span class="symbol"><A NAME="ref_109_4">Key_F11</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#; ++ <span class="symbol"><A NAME="ref_110_4">Key_F12</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#; ++ <span class="symbol"><A NAME="ref_111_4">Key_F13</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#; ++ <span class="symbol"><A NAME="ref_112_4">Key_F14</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#; ++ <span class="symbol"><A NAME="ref_113_4">Key_F15</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#; ++ <span class="symbol"><A NAME="ref_114_4">Key_F16</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#; ++ <span class="symbol"><A NAME="ref_115_4">Key_F17</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#; ++ <span class="symbol"><A NAME="ref_116_4">Key_F18</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#; ++ <span class="symbol"><A NAME="ref_117_4">Key_F19</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#; ++ <span class="symbol"><A NAME="ref_118_4">Key_F20</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#; ++ <span class="symbol"><A NAME="ref_119_4">Key_F21</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#; ++ <span class="symbol"><A NAME="ref_120_4">Key_F22</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#; ++ <span class="symbol"><A NAME="ref_121_4">Key_F23</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#; ++ <span class="symbol"><A NAME="ref_122_4">Key_F24</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#; ++ <span class="symbol"><A NAME="ref_123_4">Key_Delete_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#; ++ <span class="symbol"><A NAME="ref_124_4">Key_Insert_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#; ++ <span class="symbol"><A NAME="ref_125_4">Key_Delete_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#; ++ <span class="symbol"><A NAME="ref_126_4">Key_Insert_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#; ++ <span class="symbol"><A NAME="ref_127_4">Key_Exit_Insert_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#; ++ <span class="symbol"><A NAME="ref_128_4">Key_Clear_Screen</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#; ++ <span class="symbol"><A NAME="ref_129_4">Key_Clear_End_Of_Screen</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#; ++ <span class="symbol"><A NAME="ref_130_4">Key_Clear_End_Of_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#; ++ <span class="symbol"><A NAME="ref_131_4">Key_Scroll_1_Forward</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#; ++ <span class="symbol"><A NAME="ref_132_4">Key_Scroll_1_Backward</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#; ++ <span class="symbol"><A NAME="ref_133_4">Key_Next_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#; ++ <span class="symbol"><A NAME="ref_134_4">Key_Previous_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#; ++ <span class="symbol"><A NAME="ref_135_4">Key_Set_Tab</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#; ++ <span class="symbol"><A NAME="ref_136_4">Key_Clear_Tab</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#; ++ <span class="symbol"><A NAME="ref_137_4">Key_Clear_All_Tabs</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#; ++ <span class="symbol"><A NAME="ref_138_4">Key_Enter_Or_Send</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#; ++ <span class="symbol"><A NAME="ref_139_4">Key_Soft_Reset</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#; ++ <span class="symbol"><A NAME="ref_140_4">Key_Reset</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#; ++ <span class="symbol"><A NAME="ref_141_4">Key_Print</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#; ++ <span class="symbol"><A NAME="ref_142_4">Key_Bottom</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#; ++ <span class="symbol"><A NAME="ref_143_4">Key_Upper_Left_Of_Keypad</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#; ++ <span class="symbol"><A NAME="ref_144_4">Key_Upper_Right_Of_Keypad</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#; ++ <span class="symbol"><A NAME="ref_145_4">Key_Center_Of_Keypad</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#; ++ <span class="symbol"><A NAME="ref_146_4">Key_Lower_Left_Of_Keypad</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#; ++ <span class="symbol"><A NAME="ref_147_4">Key_Lower_Right_Of_Keypad</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#; ++ <span class="symbol"><A NAME="ref_148_4">Key_Back_Tab</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#; ++ <span class="symbol"><A NAME="ref_149_4">Key_Beginning</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#; ++ <span class="symbol"><A NAME="ref_150_4">Key_Cancel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#; ++ <span class="symbol"><A NAME="ref_151_4">Key_Close</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#; ++ <span class="symbol"><A NAME="ref_152_4">Key_Command</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#; ++ <span class="symbol"><A NAME="ref_153_4">Key_Copy</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#; ++ <span class="symbol"><A NAME="ref_154_4">Key_Create</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#; ++ <span class="symbol"><A NAME="ref_155_4">Key_End</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#; ++ <span class="symbol"><A NAME="ref_156_4">Key_Exit</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#; ++ <span class="symbol"><A NAME="ref_157_4">Key_Find</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#; ++ <span class="symbol"><A NAME="ref_158_4">Key_Help</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#; ++ <span class="symbol"><A NAME="ref_159_4">Key_Mark</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#; ++ <span class="symbol"><A NAME="ref_160_4">Key_Message</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#; ++ <span class="symbol"><A NAME="ref_161_4">Key_Move</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#; ++ <span class="symbol"><A NAME="ref_162_4">Key_Next</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#; ++ <span class="symbol"><A NAME="ref_163_4">Key_Open</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#; ++ <span class="symbol"><A NAME="ref_164_4">Key_Options</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#; ++ <span class="symbol"><A NAME="ref_165_4">Key_Previous</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#; ++ <span class="symbol"><A NAME="ref_166_4">Key_Redo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#; ++ <span class="symbol"><A NAME="ref_167_4">Key_Reference</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#; ++ <span class="symbol"><A NAME="ref_168_4">Key_Refresh</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#; ++ <span class="symbol"><A NAME="ref_169_4">Key_Replace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#; ++ <span class="symbol"><A NAME="ref_170_4">Key_Restart</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#; ++ <span class="symbol"><A NAME="ref_171_4">Key_Resume</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#; ++ <span class="symbol"><A NAME="ref_172_4">Key_Save</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#; ++ <span class="symbol"><A NAME="ref_173_4">Key_Shift_Begin</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#; ++ <span class="symbol"><A NAME="ref_174_4">Key_Shift_Cancel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#; ++ <span class="symbol"><A NAME="ref_175_4">Key_Shift_Command</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#; ++ <span class="symbol"><A NAME="ref_176_4">Key_Shift_Copy</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#; ++ <span class="symbol"><A NAME="ref_177_4">Key_Shift_Create</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#; ++ <span class="symbol"><A NAME="ref_178_4">Key_Shift_Delete_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#; ++ <span class="symbol"><A NAME="ref_179_4">Key_Shift_Delete_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#; ++ <span class="symbol"><A NAME="ref_180_4">Key_Select</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#; ++ <span class="symbol"><A NAME="ref_181_4">Key_Shift_End</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#; ++ <span class="symbol"><A NAME="ref_182_4">Key_Shift_Clear_End_Of_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#; ++ <span class="symbol"><A NAME="ref_183_4">Key_Shift_Exit</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#; ++ <span class="symbol"><A NAME="ref_184_4">Key_Shift_Find</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#; ++ <span class="symbol"><A NAME="ref_185_4">Key_Shift_Help</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#; ++ <span class="symbol"><A NAME="ref_186_4">Key_Shift_Home</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#; ++ <span class="symbol"><A NAME="ref_187_4">Key_Shift_Insert_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#; ++ <span class="symbol"><A NAME="ref_188_4">Key_Shift_Cursor_Left</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#; ++ <span class="symbol"><A NAME="ref_189_4">Key_Shift_Message</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#; ++ <span class="symbol"><A NAME="ref_190_4">Key_Shift_Move</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#; ++ <span class="symbol"><A NAME="ref_191_4">Key_Shift_Next_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#; ++ <span class="symbol"><A NAME="ref_192_4">Key_Shift_Options</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#; ++ <span class="symbol"><A NAME="ref_193_4">Key_Shift_Previous_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#; ++ <span class="symbol"><A NAME="ref_194_4">Key_Shift_Print</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#; ++ <span class="symbol"><A NAME="ref_195_4">Key_Shift_Redo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#; ++ <span class="symbol"><A NAME="ref_196_4">Key_Shift_Replace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#; ++ <span class="symbol"><A NAME="ref_197_4">Key_Shift_Cursor_Right</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#; ++ <span class="symbol"><A NAME="ref_198_4">Key_Shift_Resume</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#; ++ <span class="symbol"><A NAME="ref_199_4">Key_Shift_Save</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#; ++ <span class="symbol"><A NAME="ref_200_4">Key_Shift_Suspend</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#; ++ <span class="symbol"><A NAME="ref_201_4">Key_Shift_Undo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#; ++ <span class="symbol"><A NAME="ref_202_4">Key_Suspend</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#; ++ <span class="symbol"><A NAME="ref_203_4">Key_Undo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#; ++ <span class="symbol"><A NAME="ref_204_4">Key_Mouse</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#; ++ <span class="symbol"><A NAME="ref_205_4">Key_Resize</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#632#; + +- <FONT COLOR=red><A NAME="ref_207_4">Key_Max</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> ++ <span class="symbol"><A NAME="ref_207_4">Key_Max</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> + := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>'Last; + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_210_12">User_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_210_12">User_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> + <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 129) .. <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>'Last; +- <FONT COLOR=green><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></FONT> +- <FONT COLOR=green><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></FONT> ++ <span class="comment"><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></span> ++ <span class="comment"><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></span> + +- <FONT COLOR=green><EM>-- For those who like to use the original key names we produce them were</EM></FONT> +- <FONT COLOR=green><EM>-- they differ from the original. Please note that they may differ in</EM></FONT> +- <FONT COLOR=green><EM>-- lower/upper case.</EM></FONT> ++ <span class="comment"><EM>-- For those who like to use the original key names we produce them were</EM></span> ++ <span class="comment"><EM>-- they differ from the original. Please note that they may differ in</EM></span> ++ <span class="comment"><EM>-- lower/upper case.</EM></span> + KEY_DOWN : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_92_4">Key_Cursor_Down</A>; + KEY_UP : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Up</A>; + KEY_LEFT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Left</A>; +@@ -278,55 +290,54 @@ + KEY_SSUSPEND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Suspend</A>; + KEY_SUNDO : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Undo</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_278_9">Color_Number</A></FONT> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last); +- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size; +- <FONT COLOR=green><EM>-- (n)curses uses a short for the color index</EM></FONT> +- <FONT COLOR=green><EM>-- The model is, that a Color_Number is an index into an array of</EM></FONT> +- <FONT COLOR=green><EM>-- (potentially) definable colors. Some of those indices are</EM></FONT> +- <FONT COLOR=green><EM>-- predefined (see below), although they may not really exist.</EM></FONT> +- +- <FONT COLOR=red><A NAME="ref_285_4">Default_Color</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1; +- <FONT COLOR=red><A NAME="ref_286_4">Black</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0; +- <FONT COLOR=red><A NAME="ref_287_4">Red</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1; +- <FONT COLOR=red><A NAME="ref_288_4">Green</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2; +- <FONT COLOR=red><A NAME="ref_289_4">Yellow</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3; +- <FONT COLOR=red><A NAME="ref_290_4">Blue</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4; +- <FONT COLOR=red><A NAME="ref_291_4">Magenta</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5; +- <FONT COLOR=red><A NAME="ref_292_4">Cyan</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6; +- <FONT COLOR=red><A NAME="ref_293_4">White</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 7; +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_295_9">RGB_Value</A></FONT> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last); +- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size; +- <FONT COLOR=green><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></FONT> ++ <b>type</b> <span class="symbol"><A NAME="ref_278_9">Color_Number</A></span> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last); ++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Size; ++ <span class="comment"><EM>-- (n)curses uses a short for the color index</EM></span> ++ <span class="comment"><EM>-- The model is, that a Color_Number is an index into an array of</EM></span> ++ <span class="comment"><EM>-- (potentially) definable colors. Some of those indices are</EM></span> ++ <span class="comment"><EM>-- predefined (see below), although they may not really exist.</EM></span> ++ ++ <span class="symbol"><A NAME="ref_285_4">Default_Color</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1; ++ <span class="symbol"><A NAME="ref_286_4">Black</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0; ++ <span class="symbol"><A NAME="ref_287_4">Red</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1; ++ <span class="symbol"><A NAME="ref_288_4">Green</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2; ++ <span class="symbol"><A NAME="ref_289_4">Yellow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3; ++ <span class="symbol"><A NAME="ref_290_4">Blue</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4; ++ <span class="symbol"><A NAME="ref_291_4">Magenta</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5; ++ <span class="symbol"><A NAME="ref_292_4">Cyan</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6; ++ <span class="symbol"><A NAME="ref_293_4">White</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 7; ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_295_9">RGB_Value</A></span> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last); ++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Size; ++ <span class="comment"><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_299_9">Color_Pair</A></FONT> <b>is</b> <b>range</b> 0 .. 255; ++ <b>type</b> <span class="symbol"><A NAME="ref_299_9">Color_Pair</A></span> <b>is</b> <b>range</b> 0 .. 255; + <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'Size <b>use</b> 8; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_301_12">Redefinable_Color_Pair</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> <b>range</b> 1 .. 255; +- <FONT COLOR=green><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></FONT> +- <FONT COLOR=green><EM>-- is fixed (Black &amp; White). A color pair is simply a combination of</EM></FONT> +- <FONT COLOR=green><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></FONT> +- <FONT COLOR=green><EM>-- the other for the background</EM></FONT> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_301_12">Redefinable_Color_Pair</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> <b>range</b> 1 .. 255; ++ <span class="comment"><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></span> ++ <span class="comment"><EM>-- is fixed (Black &amp; White). A color pair is simply a combination of</EM></span> ++ <span class="comment"><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></span> ++ <span class="comment"><EM>-- the other for the background</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_307_9">Character_Attribute_Set</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_307_9">Character_Attribute_Set</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_309_10">Stand_Out</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_310_10">Under_Line</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_311_10">Reverse_Video</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_312_10">Blink</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_313_10">Dim_Character</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_314_10">Bold_Character</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_315_10">Alternate_Character_Set</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_316_10">Invisible_Character</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_317_10">Protected_Character</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_318_10">Horizontal</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_319_10">Left</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_320_10">Low</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_321_10">Right</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_322_10">Top</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_323_10">Vertical</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_324_10">Unused</A></FONT> : Boolean; ++ <span class="symbol"><A NAME="ref_309_10">Stand_Out</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_310_10">Under_Line</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_311_10">Reverse_Video</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_312_10">Blink</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_313_10">Dim_Character</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_314_10">Bold_Character</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_315_10">Alternate_Character_Set</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_316_10">Invisible_Character</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_317_10">Protected_Character</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_318_10">Horizontal</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_319_10">Left</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_320_10">Low</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_321_10">Right</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_322_10">Top</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_323_10">Vertical</A></span> : Boolean; + <b>end</b> <b>record</b>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); + +@@ -347,1589 +358,1589 @@ + <A HREF="terminal_interface-curses__ads.htm#ref_321_10">Right</A> <b>at</b> 0 <b>range</b> 12 .. 12; + <A HREF="terminal_interface-curses__ads.htm#ref_322_10">Top</A> <b>at</b> 0 <b>range</b> 13 .. 13; + <A HREF="terminal_interface-curses__ads.htm#ref_323_10">Vertical</A> <b>at</b> 0 <b>range</b> 14 .. 14; +- <A HREF="terminal_interface-curses__ads.htm#ref_324_10">Unused</A> <b>at</b> 0 <b>range</b> 15 .. 15; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>'Size <b>use</b> 16; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.</EM></FONT> +- <FONT COLOR=green><EM>-- (n)curses uses all but the lowest 16 Bits for Attributes.</EM></FONT> ++ <b>pragma</b> Warnings (Off); <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>'Size <b>use</b> 16; ++ <b>pragma</b> Warnings (On); ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.</EM></span> ++ <span class="comment"><EM>-- (n)curses uses all but the lowest 16 Bits for Attributes.</EM></span> + +- <FONT COLOR=red><A NAME="ref_352_4">Normal_Video</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False); ++ <span class="symbol"><A NAME="ref_351_4">Normal_Video</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_354_9">Attributed_Character</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_353_9">Attributed_Character</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_356_10">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_357_10">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; +- <FONT COLOR=red><A NAME="ref_358_10">Ch</A></FONT> : Character; ++ <span class="symbol"><A NAME="ref_355_10">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_356_10">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; ++ <span class="symbol"><A NAME="ref_357_10">Ch</A></span> : Character; + <b>end</b> <b>record</b>; +- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- This is the counterpart for the chtype in C.</EM></FONT> ++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- This is the counterpart for the chtype in C.</EM></span> + +- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> <b>use</b> ++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> <b>use</b> + <b>record</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> <b>at</b> 0 <b>range</b> 0 .. 7; +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> <b>at</b> 0 <b>range</b> 8 .. 15; +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> <b>at</b> 0 <b>range</b> 16 .. 31; ++ <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> <b>at</b> 0 <b>range</b> 0 .. 7; ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> <b>at</b> 0 <b>range</b> 8 .. 15; ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> <b>at</b> 0 <b>range</b> 16 .. 31; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'Size <b>use</b> 32; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.</EM></FONT> +- +- <FONT COLOR=red><A NAME="ref_373_4">Default_Character</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> +- := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; (<b>others</b> =&gt; False)); <FONT COLOR=green><EM>-- preelaboratable Normal_Video</EM></FONT> ++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>'Size <b>use</b> 32; ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.</EM></span> ++ ++ <span class="symbol"><A NAME="ref_372_4">Default_Character</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> ++ := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; (<b>others</b> =&gt; False)); <span class="comment"><EM>-- preelaboratable Normal_Video</EM></span> + +- <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; ++ <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; + <b>pragma</b> Pack (Attributed_String); +- <FONT COLOR=green><EM>-- In this binding we allow strings of attributed characters.</EM></FONT> ++ <span class="comment"><EM>-- In this binding we allow strings of attributed characters.</EM></span> + +- <FONT COLOR=green><EM>------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT> +- <FONT COLOR=green><EM>------------------</EM></FONT> +- <FONT COLOR=red><A NAME="ref_385_4">Curses_Exception</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_386_4">Wrong_Curses_Version</A></FONT> : <b>exception</b>; +- +- <FONT COLOR=green><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT> +- <FONT COLOR=green><EM>-- subpackets for Menu and Forms handling.</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=red><A NAME="ref_391_4">Eti_System_Error</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_392_4">Eti_Bad_Argument</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_393_4">Eti_Posted</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_394_4">Eti_Connected</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_395_4">Eti_Bad_State</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_396_4">Eti_No_Room</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_397_4">Eti_Not_Posted</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_398_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_399_4">Eti_No_Match</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_400_4">Eti_Not_Selectable</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_401_4">Eti_Not_Connected</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_402_4">Eti_Request_Denied</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_403_4">Eti_Invalid_Field</A></FONT> : <b>exception</b>; +- <FONT COLOR=red><A NAME="ref_404_4">Eti_Current</A></FONT> : <b>exception</b>; +- +- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- External C variables</EM></FONT> +- <FONT COLOR=green><EM>-- Conceptually even in C this are kind of constants, but they are</EM></FONT> +- <FONT COLOR=green><EM>-- initialized and sometimes changed by the library routines at runtime</EM></FONT> +- <FONT COLOR=green><EM>-- depending on the type of terminal. I believe the best way to model</EM></FONT> +- <FONT COLOR=green><EM>-- this is to use functions.</EM></FONT> +- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_414_13" HREF="terminal_interface-curses__adb.htm#ref_2355_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_414_13">Lines</A>); +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_417_13" HREF="terminal_interface-curses__adb.htm#ref_2363_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_417_13">Columns</A>); ++ <span class="comment"><EM>------------------</EM></span> ++ <span class="comment"><EM>-- Exceptions --</EM></span> ++ <span class="comment"><EM>------------------</EM></span> ++ <span class="symbol"><A NAME="ref_384_4">Curses_Exception</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_385_4">Wrong_Curses_Version</A></span> : <b>exception</b>; ++ ++ <span class="comment"><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></span> ++ <span class="comment"><EM>-- subpackets for Menu and Forms handling.</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="symbol"><A NAME="ref_390_4">Eti_System_Error</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_391_4">Eti_Bad_Argument</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_392_4">Eti_Posted</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_393_4">Eti_Connected</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_394_4">Eti_Bad_State</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_395_4">Eti_No_Room</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_396_4">Eti_Not_Posted</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_397_4">Eti_Unknown_Command</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_398_4">Eti_No_Match</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_399_4">Eti_Not_Selectable</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_400_4">Eti_Not_Connected</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_401_4">Eti_Request_Denied</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_402_4">Eti_Invalid_Field</A></span> : <b>exception</b>; ++ <span class="symbol"><A NAME="ref_403_4">Eti_Current</A></span> : <b>exception</b>; ++ ++ <span class="comment"><EM>--------------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- External C variables</EM></span> ++ <span class="comment"><EM>-- Conceptually even in C this are kind of constants, but they are</EM></span> ++ <span class="comment"><EM>-- initialized and sometimes changed by the library routines at runtime</EM></span> ++ <span class="comment"><EM>-- depending on the type of terminal. I believe the best way to model</EM></span> ++ <span class="comment"><EM>-- this is to use functions.</EM></span> ++ <span class="comment"><EM>--------------------------------------------------------------------------</EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_413_13" HREF="terminal_interface-curses__adb.htm#ref_2355_13">Lines</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_413_13">Lines</A>); ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_416_13" HREF="terminal_interface-curses__adb.htm#ref_2363_13">Columns</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_416_13">Columns</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_420_13" HREF="terminal_interface-curses__adb.htm#ref_2371_13">Tab_Size</A></FONT> <b>return</b> Natural; +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_420_13">Tab_Size</A>); ++ <b>function</b> <span class="symbol"><A NAME="ref_419_13" HREF="terminal_interface-curses__adb.htm#ref_2371_13">Tab_Size</A></span> <b>return</b> Natural; ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_419_13">Tab_Size</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_423_13" HREF="terminal_interface-curses__adb.htm#ref_2379_13">Number_Of_Colors</A></FONT> <b>return</b> Natural; +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A>); ++ <b>function</b> <span class="symbol"><A NAME="ref_422_13" HREF="terminal_interface-curses__adb.htm#ref_2379_13">Number_Of_Colors</A></span> <b>return</b> Natural; ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_422_13">Number_Of_Colors</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_426_13" HREF="terminal_interface-curses__adb.htm#ref_2387_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural; +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A>); ++ <b>function</b> <span class="symbol"><A NAME="ref_425_13" HREF="terminal_interface-curses__adb.htm#ref_2387_13">Number_Of_Color_Pairs</A></span> <b>return</b> Natural; ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_425_13">Number_Of_Color_Pairs</A>); + + <b>type</b> C_ACS_Map <b>is</b> <b>array</b> (Character'Val (0) .. Character'Val (127)) +- <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; +- <FONT COLOR=red><A NAME="ref_431_4">ACS_Map</A></FONT> : C_ACS_Map; +- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__ads.htm#ref_431_4">ACS_Map</A>, "acs_map"); +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Constants for several characters from the Alternate Character Set</EM></FONT> +- <FONT COLOR=green><EM>-- You must use these constants as indices into the ACS_Map array</EM></FONT> +- <FONT COLOR=green><EM>-- to get the corresponding attributed character at runtime.</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=red><A NAME="ref_439_4">ACS_Upper_Left_Corner</A></FONT> : <b>constant</b> Character := 'l'; +- <FONT COLOR=red><A NAME="ref_440_4">ACS_Lower_Left_Corner</A></FONT> : <b>constant</b> Character := 'm'; +- <FONT COLOR=red><A NAME="ref_441_4">ACS_Upper_Right_Corner</A></FONT> : <b>constant</b> Character := 'k'; +- <FONT COLOR=red><A NAME="ref_442_4">ACS_Lower_Right_Corner</A></FONT> : <b>constant</b> Character := 'j'; +- <FONT COLOR=red><A NAME="ref_443_4">ACS_Left_Tee</A></FONT> : <b>constant</b> Character := 't'; +- <FONT COLOR=red><A NAME="ref_444_4">ACS_Right_Tee</A></FONT> : <b>constant</b> Character := 'u'; +- <FONT COLOR=red><A NAME="ref_445_4">ACS_Bottom_Tee</A></FONT> : <b>constant</b> Character := 'v'; +- <FONT COLOR=red><A NAME="ref_446_4">ACS_Top_Tee</A></FONT> : <b>constant</b> Character := 'w'; +- <FONT COLOR=red><A NAME="ref_447_4">ACS_Horizontal_Line</A></FONT> : <b>constant</b> Character := 'q'; +- <FONT COLOR=red><A NAME="ref_448_4">ACS_Vertical_Line</A></FONT> : <b>constant</b> Character := 'x'; +- <FONT COLOR=red><A NAME="ref_449_4">ACS_Plus_Symbol</A></FONT> : <b>constant</b> Character := 'n'; +- <FONT COLOR=red><A NAME="ref_450_4">ACS_Scan_Line_1</A></FONT> : <b>constant</b> Character := 'o'; +- <FONT COLOR=red><A NAME="ref_451_4">ACS_Scan_Line_9</A></FONT> : <b>constant</b> Character := 's'; +- <FONT COLOR=red><A NAME="ref_452_4">ACS_Diamond</A></FONT> : <b>constant</b> Character := Character'Val (96); +- <FONT COLOR=red><A NAME="ref_453_4">ACS_Checker_Board</A></FONT> : <b>constant</b> Character := 'a'; +- <FONT COLOR=red><A NAME="ref_454_4">ACS_Degree</A></FONT> : <b>constant</b> Character := 'f'; +- <FONT COLOR=red><A NAME="ref_455_4">ACS_Plus_Minus</A></FONT> : <b>constant</b> Character := 'g'; +- <FONT COLOR=red><A NAME="ref_456_4">ACS_Bullet</A></FONT> : <b>constant</b> Character := '~'; +- <FONT COLOR=red><A NAME="ref_457_4">ACS_Left_Arrow</A></FONT> : <b>constant</b> Character := ','; +- <FONT COLOR=red><A NAME="ref_458_4">ACS_Right_Arrow</A></FONT> : <b>constant</b> Character := '+'; +- <FONT COLOR=red><A NAME="ref_459_4">ACS_Down_Arrow</A></FONT> : <b>constant</b> Character := '.'; +- <FONT COLOR=red><A NAME="ref_460_4">ACS_Up_Arrow</A></FONT> : <b>constant</b> Character := '-'; +- <FONT COLOR=red><A NAME="ref_461_4">ACS_Board_Of_Squares</A></FONT> : <b>constant</b> Character := 'h'; +- <FONT COLOR=red><A NAME="ref_462_4">ACS_Lantern</A></FONT> : <b>constant</b> Character := 'i'; +- <FONT COLOR=red><A NAME="ref_463_4">ACS_Solid_Block</A></FONT> : <b>constant</b> Character := '0'; +- <FONT COLOR=red><A NAME="ref_464_4">ACS_Scan_Line_3</A></FONT> : <b>constant</b> Character := 'p'; +- <FONT COLOR=red><A NAME="ref_465_4">ACS_Scan_Line_7</A></FONT> : <b>constant</b> Character := 'r'; +- <FONT COLOR=red><A NAME="ref_466_4">ACS_Less_Or_Equal</A></FONT> : <b>constant</b> Character := 'y'; +- <FONT COLOR=red><A NAME="ref_467_4">ACS_Greater_Or_Equal</A></FONT> : <b>constant</b> Character := 'z'; +- <FONT COLOR=red><A NAME="ref_468_4">ACS_PI</A></FONT> : <b>constant</b> Character := '{'; +- <FONT COLOR=red><A NAME="ref_469_4">ACS_Not_Equal</A></FONT> : <b>constant</b> Character := '|'; +- <FONT COLOR=red><A NAME="ref_470_4">ACS_Sterling</A></FONT> : <b>constant</b> Character := '}'; +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Not implemented: newterm, set_term, delscreen</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_478_13" HREF="terminal_interface-curses__adb.htm#ref_2339_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_483_13" HREF="terminal_interface-curses__adb.htm#ref_2347_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_483_13">Current_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_488_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></FONT>; +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_491_14">Init_Windows</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A>); +- <FONT COLOR=green><EM>-- pragma Inline (Init_Windows);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_499_14">End_Screen</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A>; +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A>); +- <FONT COLOR=green><EM>-- pragma Inline (End_Screen);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_504_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></FONT> <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_504_13">Is_End_Window</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_513_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_513_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_514_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_515_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: move()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_525_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_525_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_526_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: addch()</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_530_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_530_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_531_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></FONT> : Character); +- <FONT COLOR=green><EM>-- Add a single character at the current logical cursor position to</EM></FONT> +- <FONT COLOR=green><EM>-- the window. Use the current windows attributes.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_536_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_537_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvaddch()</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_544_14" HREF="terminal_interface-curses__adb.htm#ref_189_14">Add</A></FONT> +- (<FONT COLOR=red><A NAME="ref_545_7" HREF="terminal_interface-curses__adb.htm#ref_190_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_546_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_548_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Ch</A></FONT> : Character); +- <FONT COLOR=green><EM>-- Move to the position and add a single character into the window</EM></FONT> +- <FONT COLOR=green><EM>-- There are more Add routines, so the Inline pragma follows later</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses__adb.htm#ref_204_14">Add_With_Immediate_Echo</A></FONT> +- (<FONT COLOR=red><A NAME="ref_554_7" HREF="terminal_interface-curses__adb.htm#ref_205_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_555_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: echochar()</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_559_14" HREF="terminal_interface-curses__adb.htm#ref_217_14">Add_With_Immediate_Echo</A></FONT> +- (<FONT COLOR=red><A NAME="ref_560_7" HREF="terminal_interface-curses__adb.htm#ref_218_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_561_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Ch</A></FONT> : Character); +- <FONT COLOR=green><EM>-- Add a character and do an immediate refresh of the screen.</EM></FONT> ++ <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; ++ <span class="symbol"><A NAME="ref_430_4">ACS_Map</A></span> : C_ACS_Map; ++ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__ads.htm#ref_430_4">ACS_Map</A>, "acs_map"); ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Constants for several characters from the Alternate Character Set</EM></span> ++ <span class="comment"><EM>-- You must use these constants as indices into the ACS_Map array</EM></span> ++ <span class="comment"><EM>-- to get the corresponding attributed character at runtime.</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="symbol"><A NAME="ref_438_4">ACS_Upper_Left_Corner</A></span> : <b>constant</b> Character := 'l'; ++ <span class="symbol"><A NAME="ref_439_4">ACS_Lower_Left_Corner</A></span> : <b>constant</b> Character := 'm'; ++ <span class="symbol"><A NAME="ref_440_4">ACS_Upper_Right_Corner</A></span> : <b>constant</b> Character := 'k'; ++ <span class="symbol"><A NAME="ref_441_4">ACS_Lower_Right_Corner</A></span> : <b>constant</b> Character := 'j'; ++ <span class="symbol"><A NAME="ref_442_4">ACS_Left_Tee</A></span> : <b>constant</b> Character := 't'; ++ <span class="symbol"><A NAME="ref_443_4">ACS_Right_Tee</A></span> : <b>constant</b> Character := 'u'; ++ <span class="symbol"><A NAME="ref_444_4">ACS_Bottom_Tee</A></span> : <b>constant</b> Character := 'v'; ++ <span class="symbol"><A NAME="ref_445_4">ACS_Top_Tee</A></span> : <b>constant</b> Character := 'w'; ++ <span class="symbol"><A NAME="ref_446_4">ACS_Horizontal_Line</A></span> : <b>constant</b> Character := 'q'; ++ <span class="symbol"><A NAME="ref_447_4">ACS_Vertical_Line</A></span> : <b>constant</b> Character := 'x'; ++ <span class="symbol"><A NAME="ref_448_4">ACS_Plus_Symbol</A></span> : <b>constant</b> Character := 'n'; ++ <span class="symbol"><A NAME="ref_449_4">ACS_Scan_Line_1</A></span> : <b>constant</b> Character := 'o'; ++ <span class="symbol"><A NAME="ref_450_4">ACS_Scan_Line_9</A></span> : <b>constant</b> Character := 's'; ++ <span class="symbol"><A NAME="ref_451_4">ACS_Diamond</A></span> : <b>constant</b> Character := Character'Val (96); ++ <span class="symbol"><A NAME="ref_452_4">ACS_Checker_Board</A></span> : <b>constant</b> Character := 'a'; ++ <span class="symbol"><A NAME="ref_453_4">ACS_Degree</A></span> : <b>constant</b> Character := 'f'; ++ <span class="symbol"><A NAME="ref_454_4">ACS_Plus_Minus</A></span> : <b>constant</b> Character := 'g'; ++ <span class="symbol"><A NAME="ref_455_4">ACS_Bullet</A></span> : <b>constant</b> Character := '~'; ++ <span class="symbol"><A NAME="ref_456_4">ACS_Left_Arrow</A></span> : <b>constant</b> Character := ','; ++ <span class="symbol"><A NAME="ref_457_4">ACS_Right_Arrow</A></span> : <b>constant</b> Character := '+'; ++ <span class="symbol"><A NAME="ref_458_4">ACS_Down_Arrow</A></span> : <b>constant</b> Character := '.'; ++ <span class="symbol"><A NAME="ref_459_4">ACS_Up_Arrow</A></span> : <b>constant</b> Character := '-'; ++ <span class="symbol"><A NAME="ref_460_4">ACS_Board_Of_Squares</A></span> : <b>constant</b> Character := 'h'; ++ <span class="symbol"><A NAME="ref_461_4">ACS_Lantern</A></span> : <b>constant</b> Character := 'i'; ++ <span class="symbol"><A NAME="ref_462_4">ACS_Solid_Block</A></span> : <b>constant</b> Character := '0'; ++ <span class="symbol"><A NAME="ref_463_4">ACS_Scan_Line_3</A></span> : <b>constant</b> Character := 'p'; ++ <span class="symbol"><A NAME="ref_464_4">ACS_Scan_Line_7</A></span> : <b>constant</b> Character := 'r'; ++ <span class="symbol"><A NAME="ref_465_4">ACS_Less_Or_Equal</A></span> : <b>constant</b> Character := 'y'; ++ <span class="symbol"><A NAME="ref_466_4">ACS_Greater_Or_Equal</A></span> : <b>constant</b> Character := 'z'; ++ <span class="symbol"><A NAME="ref_467_4">ACS_PI</A></span> : <b>constant</b> Character := '{'; ++ <span class="symbol"><A NAME="ref_468_4">ACS_Not_Equal</A></span> : <b>constant</b> Character := '|'; ++ <span class="symbol"><A NAME="ref_469_4">ACS_Sterling</A></span> : <b>constant</b> Character := '}'; ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Not implemented: newterm, set_term, delscreen</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_477_13" HREF="terminal_interface-curses__adb.htm#ref_2339_13">Standard_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_482_13" HREF="terminal_interface-curses__adb.htm#ref_2347_13">Current_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_482_13">Current_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_487_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></span>; ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_490_14">Init_Windows</A></span> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_14">Init_Screen</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_487_14">Init_Screen</A>); ++ <span class="comment"><EM>-- pragma Inline (Init_Windows);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_496_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_498_14">End_Screen</A></span> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_496_14">End_Windows</A>; ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_496_14">End_Windows</A>); ++ <span class="comment"><EM>-- pragma Inline (End_Screen);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_503_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></span> <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_503_13">Is_End_Window</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_512_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></span> (<span class="symbol"><A NAME="ref_512_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_513_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_514_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></span> ++ <span class="comment"><EM>-- AKA: move()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_512_14">Move_Cursor</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_524_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></span> (<span class="symbol"><A NAME="ref_524_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_525_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: addch()</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_529_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></span> (<span class="symbol"><A NAME="ref_529_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_530_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></span> : Character); ++ <span class="comment"><EM>-- Add a single character at the current logical cursor position to</EM></span> ++ <span class="comment"><EM>-- the window. Use the current windows attributes.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_535_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_536_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_537_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvaddch()</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_543_14" HREF="terminal_interface-curses__adb.htm#ref_189_14">Add</A></span> ++ (<span class="symbol"><A NAME="ref_544_7" HREF="terminal_interface-curses__adb.htm#ref_190_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_545_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_546_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Ch</A></span> : Character); ++ <span class="comment"><EM>-- Move to the position and add a single character into the window</EM></span> ++ <span class="comment"><EM>-- There are more Add routines, so the Inline pragma follows later</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_552_14" HREF="terminal_interface-curses__adb.htm#ref_204_14">Add_With_Immediate_Echo</A></span> ++ (<span class="symbol"><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_205_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_554_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></span> ++ <span class="comment"><EM>-- AKA: echochar()</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_558_14" HREF="terminal_interface-curses__adb.htm#ref_217_14">Add_With_Immediate_Echo</A></span> ++ (<span class="symbol"><A NAME="ref_559_7" HREF="terminal_interface-curses__adb.htm#ref_218_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_560_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Ch</A></span> : Character); ++ <span class="comment"><EM>-- Add a character and do an immediate refresh of the screen.</EM></span> + <b>pragma</b> Inline (Add_With_Immediate_Echo); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: wcursyncup</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_571_13" HREF="terminal_interface-curses__adb.htm#ref_229_13">Create</A></FONT> +- (<FONT COLOR=red><A NAME="ref_572_7" HREF="terminal_interface-curses__adb.htm#ref_229_21">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_573_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_574_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_575_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></FONT> +- <FONT COLOR=green><EM>-- the C version lets them be 0, see the man page.</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A>); ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not Implemented: wcursyncup</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_570_13" HREF="terminal_interface-curses__adb.htm#ref_229_13">Create</A></span> ++ (<span class="symbol"><A NAME="ref_571_7" HREF="terminal_interface-curses__adb.htm#ref_229_21">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_572_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_573_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_574_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></span> ++ <span class="comment"><EM>-- the C version lets them be 0, see the man page.</EM></span> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_570_13">Create</A>); + + <b>function</b> New_Window +- (<FONT COLOR=red><A NAME="ref_582_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_583_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_584_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_585_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> +- <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A>; +- <FONT COLOR=green><EM>-- pragma Inline (New_Window);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_590_14" HREF="terminal_interface-curses__adb.htm#ref_252_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_590_22" HREF="terminal_interface-curses__adb.htm#ref_252_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Reset Win to Null_Window</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_590_14">Delete</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_596_13" HREF="terminal_interface-curses__adb.htm#ref_263_13">Sub_Window</A></FONT> +- (<FONT COLOR=red><A NAME="ref_597_7" HREF="terminal_interface-curses__adb.htm#ref_264_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_598_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_599_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_601_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_596_13">Sub_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_606_13" HREF="terminal_interface-curses__adb.htm#ref_291_13">Derived_Window</A></FONT> +- (<FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__adb.htm#ref_292_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_610_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_611_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_606_13">Derived_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_616_13" HREF="terminal_interface-curses__adb.htm#ref_319_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_616_24" HREF="terminal_interface-curses__adb.htm#ref_319_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_616_13">Duplicate</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_621_14" HREF="terminal_interface-curses__adb.htm#ref_332_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_621_27" HREF="terminal_interface-curses__adb.htm#ref_332_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_622_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_623_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_621_14">Move_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_628_14" HREF="terminal_interface-curses__adb.htm#ref_346_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_628_35" HREF="terminal_interface-curses__adb.htm#ref_346_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_629_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_630_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_628_14">Move_Derived_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_635_14">Synchronize_Upwards</A></FONT> (<FONT COLOR=red><A NAME="ref_635_35" HREF="terminal_interface-curses__ads.htm#ref_635_14">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></FONT> ++ (<span class="symbol"><A NAME="ref_581_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_582_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_583_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_584_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_570_13">Create</A>; ++ <span class="comment"><EM>-- pragma Inline (New_Window);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_589_14" HREF="terminal_interface-curses__adb.htm#ref_252_14">Delete</A></span> (<span class="symbol"><A NAME="ref_589_22" HREF="terminal_interface-curses__adb.htm#ref_252_22">Win</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></span> ++ <span class="comment"><EM>-- Reset Win to Null_Window</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_589_14">Delete</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_595_13" HREF="terminal_interface-curses__adb.htm#ref_263_13">Sub_Window</A></span> ++ (<span class="symbol"><A NAME="ref_596_7" HREF="terminal_interface-curses__adb.htm#ref_264_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_597_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_598_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_599_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_595_13">Sub_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_605_13" HREF="terminal_interface-curses__adb.htm#ref_291_13">Derived_Window</A></span> ++ (<span class="symbol"><A NAME="ref_606_7" HREF="terminal_interface-curses__adb.htm#ref_292_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_607_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_608_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_609_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_610_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_605_13">Derived_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_615_13" HREF="terminal_interface-curses__adb.htm#ref_319_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_615_24" HREF="terminal_interface-curses__adb.htm#ref_319_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_615_13">Duplicate</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_16"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_620_14" HREF="terminal_interface-curses__adb.htm#ref_332_14">Move_Window</A></span> (<span class="symbol"><A NAME="ref_620_27" HREF="terminal_interface-curses__adb.htm#ref_332_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_621_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_622_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_17"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_627_14" HREF="terminal_interface-curses__adb.htm#ref_346_14">Move_Derived_Window</A></span> (<span class="symbol"><A NAME="ref_627_35" HREF="terminal_interface-curses__adb.htm#ref_346_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_628_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_629_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_627_14">Move_Derived_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_18"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_634_14">Synchronize_Upwards</A></span> (<span class="symbol"><A NAME="ref_634_35" HREF="terminal_interface-curses__ads.htm#ref_634_14">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></span> + <b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_640_14">Synchronize_Downwards</A></FONT> (<FONT COLOR=red><A NAME="ref_640_37" HREF="terminal_interface-curses__ads.htm#ref_640_14">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_19"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_639_14">Synchronize_Downwards</A></span> (<span class="symbol"><A NAME="ref_639_37" HREF="terminal_interface-curses__ads.htm#ref_639_14">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></span> + <b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_645_14" HREF="terminal_interface-curses__adb.htm#ref_360_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_645_30" HREF="terminal_interface-curses__adb.htm#ref_360_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_646_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Mode</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_645_14">Set_Synch_Mode</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_655_14" HREF="terminal_interface-curses__adb.htm#ref_372_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_655_19" HREF="terminal_interface-curses__adb.htm#ref_372_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_656_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_657_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: waddstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: addnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: addstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_664_14" HREF="terminal_interface-curses__adb.htm#ref_390_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_664_19" HREF="terminal_interface-curses__adb.htm#ref_391_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_665_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_666_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_667_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_668_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvwaddstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvaddnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvaddstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_679_14" HREF="terminal_interface-curses__adb.htm#ref_402_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_679_19" HREF="terminal_interface-curses__adb.htm#ref_403_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_680_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Str</A></FONT> : Attributed_String; +- <FONT COLOR=red><A NAME="ref_681_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: waddchstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: addchnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: addchstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_688_14" HREF="terminal_interface-curses__adb.htm#ref_425_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_688_19" HREF="terminal_interface-curses__adb.htm#ref_426_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_689_19" HREF="terminal_interface-curses__adb.htm#ref_427_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_690_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_691_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Str</A></FONT> : Attributed_String; +- <FONT COLOR=red><A NAME="ref_692_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvwaddchstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvaddchnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvaddchstr()</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_20"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_644_14" HREF="terminal_interface-curses__adb.htm#ref_360_14">Set_Synch_Mode</A></span> (<span class="symbol"><A NAME="ref_644_30" HREF="terminal_interface-curses__adb.htm#ref_360_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_645_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Mode</A></span> : Boolean := False); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_644_14">Set_Synch_Mode</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_21"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_654_14" HREF="terminal_interface-curses__adb.htm#ref_372_14">Add</A></span> (<span class="symbol"><A NAME="ref_654_19" HREF="terminal_interface-curses__adb.htm#ref_372_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_655_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_656_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: waddstr()</EM></span> ++ <span class="comment"><EM>-- AKA: addnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: addstr()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_22"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_663_14" HREF="terminal_interface-curses__adb.htm#ref_390_14">Add</A></span> (<span class="symbol"><A NAME="ref_663_19" HREF="terminal_interface-curses__adb.htm#ref_391_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_664_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_665_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_666_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_667_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvwaddstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvaddnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvaddstr()</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_23"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_678_14" HREF="terminal_interface-curses__adb.htm#ref_402_14">Add</A></span> (<span class="symbol"><A NAME="ref_678_19" HREF="terminal_interface-curses__adb.htm#ref_403_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_679_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Str</A></span> : Attributed_String; ++ <span class="symbol"><A NAME="ref_680_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: waddchstr()</EM></span> ++ <span class="comment"><EM>-- AKA: addchnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: addchstr()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_24"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_687_14" HREF="terminal_interface-curses__adb.htm#ref_425_14">Add</A></span> (<span class="symbol"><A NAME="ref_687_19" HREF="terminal_interface-curses__adb.htm#ref_426_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_688_19" HREF="terminal_interface-curses__adb.htm#ref_427_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_689_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_690_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Str</A></span> : Attributed_String; ++ <span class="symbol"><A NAME="ref_691_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvwaddchstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvaddchnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvaddchstr()</EM></span> + <b>pragma</b> Inline (Add); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Not implemented: mvhline, mvwhline, mvvline, mvwvline</EM></FONT> +- <FONT COLOR=green><EM>-- | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_706_14" HREF="terminal_interface-curses__adb.htm#ref_437_14">Border</A></FONT> +- (<FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_438_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_439_7">Left_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_709_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Right_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_710_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Top_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_711_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Bottom_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_712_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Upper_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_713_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Upper_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_714_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Lower_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_715_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Lower_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Not implemented: mvhline, mvwhline, mvvline, mvwvline</EM></span> ++ <span class="comment"><EM>-- | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_25"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_705_14" HREF="terminal_interface-curses__adb.htm#ref_437_14">Border</A></span> ++ (<span class="symbol"><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_438_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_439_7">Left_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Right_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_709_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Top_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_710_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Bottom_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_711_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Upper_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_712_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Upper_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_713_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Lower_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_714_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Lower_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A> + ); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: border()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_722_14" HREF="terminal_interface-curses__adb.htm#ref_474_14">Box</A></FONT> +- (<FONT COLOR=red><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_475_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Vertical_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>; +- <FONT COLOR=red><A NAME="ref_725_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Horizontal_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_722_14">Box</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_730_14" HREF="terminal_interface-curses__adb.htm#ref_485_14">Horizontal_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_731_7" HREF="terminal_interface-curses__adb.htm#ref_486_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_732_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Line_Size</A></FONT> : Natural; +- <FONT COLOR=red><A NAME="ref_733_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: hline()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_730_14">Horizontal_Line</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_739_14" HREF="terminal_interface-curses__adb.htm#ref_502_14">Vertical_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__adb.htm#ref_503_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_741_7" HREF="terminal_interface-curses__adb.htm#ref_504_7">Line_Size</A></FONT> : Natural; +- <FONT COLOR=red><A NAME="ref_742_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: vline()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_739_14">Vertical_Line</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented: mvgetch, mvwgetch</EM></FONT> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></span> ++ <span class="comment"><EM>-- AKA: border()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_705_14">Border</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_26"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_721_14" HREF="terminal_interface-curses__adb.htm#ref_474_14">Box</A></span> ++ (<span class="symbol"><A NAME="ref_722_7" HREF="terminal_interface-curses__adb.htm#ref_475_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Vertical_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>; ++ <span class="symbol"><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Horizontal_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_721_14">Box</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_27"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_729_14" HREF="terminal_interface-curses__adb.htm#ref_485_14">Horizontal_Line</A></span> ++ (<span class="symbol"><A NAME="ref_730_7" HREF="terminal_interface-curses__adb.htm#ref_486_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_731_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Line_Size</A></span> : Natural; ++ <span class="symbol"><A NAME="ref_732_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></span> ++ <span class="comment"><EM>-- AKA: hline()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_729_14">Horizontal_Line</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_28"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_738_14" HREF="terminal_interface-curses__adb.htm#ref_502_14">Vertical_Line</A></span> ++ (<span class="symbol"><A NAME="ref_739_7" HREF="terminal_interface-curses__adb.htm#ref_503_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_740_7" HREF="terminal_interface-curses__adb.htm#ref_504_7">Line_Size</A></span> : Natural; ++ <span class="symbol"><A NAME="ref_741_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_372_4">Default_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></span> ++ <span class="comment"><EM>-- AKA: vline()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_738_14">Vertical_Line</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not implemented: mvgetch, mvwgetch</EM></span> + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_753_13" HREF="terminal_interface-curses__adb.htm#ref_520_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_753_28" HREF="terminal_interface-curses__adb.htm#ref_520_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <span class="comment"><EM>-- #1A NAME="AFU_29"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_752_13" HREF="terminal_interface-curses__adb.htm#ref_520_13">Get_Keystroke</A></span> (<span class="symbol"><A NAME="ref_752_28" HREF="terminal_interface-curses__adb.htm#ref_520_28">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: getch()</EM></FONT> +- <FONT COLOR=green><EM>-- Get a character from the keyboard and echo it - if enabled - to the</EM></FONT> +- <FONT COLOR=green><EM>-- window.</EM></FONT> +- <FONT COLOR=green><EM>-- If for any reason (i.e. a timeout) we could not get a character the</EM></FONT> +- <FONT COLOR=green><EM>-- returned keycode is Key_None.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_753_13">Get_Keystroke</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_764_14" HREF="terminal_interface-curses__adb.htm#ref_535_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_764_30" HREF="terminal_interface-curses__adb.htm#ref_535_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_764_14">Undo_Keystroke</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_769_13" HREF="terminal_interface-curses__adb.htm#ref_545_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_769_22" HREF="terminal_interface-curses__adb.htm#ref_545_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A>); +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- | Some helper functions</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_776_13" HREF="terminal_interface-curses__adb.htm#ref_557_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_776_30" HREF="terminal_interface-curses__adb.htm#ref_557_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A>); +- +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_780_12">Function_Key_Number</A></FONT> <b>is</b> Integer <b>range</b> 0 .. 63; +- <FONT COLOR=green><EM>-- (n)curses allows for 64 function keys.</EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_783_13" HREF="terminal_interface-curses__adb.htm#ref_569_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_783_27" HREF="terminal_interface-curses__adb.htm#ref_569_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>; +- <FONT COLOR=green><EM>-- Return the number of the function key. If the code is not a</EM></FONT> +- <FONT COLOR=green><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_783_13">Function_Key</A>); +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_788_13" HREF="terminal_interface-curses__adb.htm#ref_580_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_788_32" HREF="terminal_interface-curses__adb.htm#ref_580_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; +- <FONT COLOR=green><EM>-- Return the key code for a given function-key number.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_788_13">Function_Key_Code</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Not implemented attr_off, wattr_off,</EM></FONT> +- <FONT COLOR=green><EM>-- | attr_on, wattr_on, attr_set, wattr_set</EM></FONT> +- +- <FONT COLOR=green><EM>-- PAIR_NUMBER</EM></FONT> +- <FONT COLOR=green><EM>-- PAIR_NUMBER(c) is the same as c.Color</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses__adb.htm#ref_586_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_802_24" HREF="terminal_interface-curses__adb.htm#ref_586_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_803_24" HREF="terminal_interface-curses__adb.htm#ref_587_24">On</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: wstandout()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: wstandend()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_808_14" HREF="terminal_interface-curses__adb.htm#ref_606_14">Switch_Character_Attribute</A></FONT> +- (<FONT COLOR=red><A NAME="ref_809_7" HREF="terminal_interface-curses__adb.htm#ref_607_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_810_7" HREF="terminal_interface-curses__adb.htm#ref_608_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_811_7" HREF="terminal_interface-curses__adb.htm#ref_609_7">On</A></FONT> : Boolean := True); <FONT COLOR=green><EM>-- if False we switch Off.</EM></FONT> +- <FONT COLOR=green><EM>-- Switches those Attributes set to true in the list.</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: wattroff()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: attron()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: attroff()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_819_14" HREF="terminal_interface-curses__adb.htm#ref_634_14">Set_Character_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_820_7" HREF="terminal_interface-curses__adb.htm#ref_635_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_821_7" HREF="terminal_interface-curses__adb.htm#ref_636_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_822_7" HREF="terminal_interface-curses__adb.htm#ref_637_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: attrset()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_819_14">Set_Character_Attributes</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_828_13" HREF="terminal_interface-curses__adb.htm#ref_652_13">Get_Character_Attribute</A></FONT> +- (<FONT COLOR=red><A NAME="ref_829_7" HREF="terminal_interface-curses__adb.htm#ref_652_38">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: attr_get()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_834_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></FONT> +- (<FONT COLOR=red><A NAME="ref_835_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: getch()</EM></span> ++ <span class="comment"><EM>-- Get a character from the keyboard and echo it - if enabled - to the</EM></span> ++ <span class="comment"><EM>-- window.</EM></span> ++ <span class="comment"><EM>-- If for any reason (i.e. a timeout) we could not get a character the</EM></span> ++ <span class="comment"><EM>-- returned keycode is Key_None.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_752_13">Get_Keystroke</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_30"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_763_14" HREF="terminal_interface-curses__adb.htm#ref_535_14">Undo_Keystroke</A></span> (<span class="symbol"><A NAME="ref_763_30" HREF="terminal_interface-curses__adb.htm#ref_535_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_763_14">Undo_Keystroke</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_31"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_768_13" HREF="terminal_interface-curses__adb.htm#ref_545_13">Has_Key</A></span> (<span class="symbol"><A NAME="ref_768_22" HREF="terminal_interface-curses__adb.htm#ref_545_22">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_768_13">Has_Key</A>); ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- | Some helper functions</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_775_13" HREF="terminal_interface-curses__adb.htm#ref_557_13">Is_Function_Key</A></span> (<span class="symbol"><A NAME="ref_775_30" HREF="terminal_interface-curses__adb.htm#ref_557_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_775_13">Is_Function_Key</A>); ++ ++ <b>subtype</b> <span class="symbol"><A NAME="ref_779_12">Function_Key_Number</A></span> <b>is</b> Integer <b>range</b> 0 .. 63; ++ <span class="comment"><EM>-- (n)curses allows for 64 function keys.</EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_782_13" HREF="terminal_interface-curses__adb.htm#ref_569_13">Function_Key</A></span> (<span class="symbol"><A NAME="ref_782_27" HREF="terminal_interface-curses__adb.htm#ref_569_27">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_779_12">Function_Key_Number</A>; ++ <span class="comment"><EM>-- Return the number of the function key. If the code is not a</EM></span> ++ <span class="comment"><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_782_13">Function_Key</A>); ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_787_13" HREF="terminal_interface-curses__adb.htm#ref_580_13">Function_Key_Code</A></span> (<span class="symbol"><A NAME="ref_787_32" HREF="terminal_interface-curses__adb.htm#ref_580_32">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_779_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; ++ <span class="comment"><EM>-- Return the key code for a given function-key number.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_787_13">Function_Key_Code</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Not implemented attr_off, wattr_off,</EM></span> ++ <span class="comment"><EM>-- | attr_on, wattr_on, attr_set, wattr_set</EM></span> ++ ++ <span class="comment"><EM>-- PAIR_NUMBER</EM></span> ++ <span class="comment"><EM>-- PAIR_NUMBER(c) is the same as c.Color</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_32"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_801_14" HREF="terminal_interface-curses__adb.htm#ref_586_14">Standout</A></span> (<span class="symbol"><A NAME="ref_801_24" HREF="terminal_interface-curses__adb.htm#ref_586_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_802_24" HREF="terminal_interface-curses__adb.htm#ref_587_24">On</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: wstandout()</EM></span> ++ <span class="comment"><EM>-- AKA: wstandend()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_33"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_807_14" HREF="terminal_interface-curses__adb.htm#ref_606_14">Switch_Character_Attribute</A></span> ++ (<span class="symbol"><A NAME="ref_808_7" HREF="terminal_interface-curses__adb.htm#ref_607_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_809_7" HREF="terminal_interface-curses__adb.htm#ref_608_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_810_7" HREF="terminal_interface-curses__adb.htm#ref_609_7">On</A></span> : Boolean := True); <span class="comment"><EM>-- if False we switch Off.</EM></span> ++ <span class="comment"><EM>-- Switches those Attributes set to true in the list.</EM></span> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></span> ++ <span class="comment"><EM>-- AKA: wattroff()</EM></span> ++ <span class="comment"><EM>-- AKA: attron()</EM></span> ++ <span class="comment"><EM>-- AKA: attroff()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_34"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_818_14" HREF="terminal_interface-curses__adb.htm#ref_634_14">Set_Character_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_819_7" HREF="terminal_interface-curses__adb.htm#ref_635_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_820_7" HREF="terminal_interface-curses__adb.htm#ref_636_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_821_7" HREF="terminal_interface-curses__adb.htm#ref_637_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></span> ++ <span class="comment"><EM>-- AKA: attrset()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_818_14">Set_Character_Attributes</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_35"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_827_13" HREF="terminal_interface-curses__adb.htm#ref_652_13">Get_Character_Attribute</A></span> ++ (<span class="symbol"><A NAME="ref_828_7" HREF="terminal_interface-curses__adb.htm#ref_652_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></span> ++ <span class="comment"><EM>-- AKA: attr_get()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_36"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_833_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></span> ++ (<span class="symbol"><A NAME="ref_834_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></span> + <b>pragma</b> Inline (Get_Character_Attribute); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_840_14" HREF="terminal_interface-curses__adb.htm#ref_698_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_840_25" HREF="terminal_interface-curses__adb.htm#ref_698_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_841_25" HREF="terminal_interface-curses__adb.htm#ref_699_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: color_set()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_840_14">Set_Color</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_847_14" HREF="terminal_interface-curses__adb.htm#ref_713_14">Change_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_848_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_849_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Count</A></FONT> : Integer := -1; +- <FONT COLOR=red><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_851_7" HREF="terminal_interface-curses__adb.htm#ref_717_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: chgat()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_856_14" HREF="terminal_interface-curses__adb.htm#ref_736_14">Change_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_857_7" HREF="terminal_interface-curses__adb.htm#ref_737_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_858_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First; +- <FONT COLOR=red><A NAME="ref_859_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First; +- <FONT COLOR=red><A NAME="ref_860_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Count</A></FONT> : Integer := -1; +- <FONT COLOR=red><A NAME="ref_861_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_862_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvchgat()</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_37"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_839_14" HREF="terminal_interface-curses__adb.htm#ref_698_14">Set_Color</A></span> (<span class="symbol"><A NAME="ref_839_25" HREF="terminal_interface-curses__adb.htm#ref_698_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_840_25" HREF="terminal_interface-curses__adb.htm#ref_699_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></span> ++ <span class="comment"><EM>-- AKA: color_set()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_839_14">Set_Color</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_38"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_846_14" HREF="terminal_interface-curses__adb.htm#ref_713_14">Change_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_847_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_848_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Count</A></span> : Integer := -1; ++ <span class="symbol"><A NAME="ref_849_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_717_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></span> ++ <span class="comment"><EM>-- AKA: chgat()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_39"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_855_14" HREF="terminal_interface-curses__adb.htm#ref_736_14">Change_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_856_7" HREF="terminal_interface-curses__adb.htm#ref_737_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_857_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First; ++ <span class="symbol"><A NAME="ref_858_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First; ++ <span class="symbol"><A NAME="ref_859_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Count</A></span> : Integer := -1; ++ <span class="symbol"><A NAME="ref_860_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_861_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvchgat()</EM></span> + <b>pragma</b> Inline (Change_Attributes); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_872_14" HREF="terminal_interface-curses__adb.htm#ref_749_14">Beep</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_877_14" HREF="terminal_interface-curses__adb.htm#ref_759_14">Flash_Screen</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_877_14">Flash_Screen</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- | Not implemented : typeahead</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_888_14" HREF="terminal_interface-curses__adb.htm#ref_769_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_888_31" HREF="terminal_interface-curses__adb.htm#ref_769_31">SwitchOn</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: nocbreak()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_888_14">Set_Cbreak_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_894_14" HREF="terminal_interface-curses__adb.htm#ref_788_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_894_28" HREF="terminal_interface-curses__adb.htm#ref_788_28">SwitchOn</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: noraw()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_894_14">Set_Raw_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_900_14" HREF="terminal_interface-curses__adb.htm#ref_807_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_900_29" HREF="terminal_interface-curses__adb.htm#ref_807_29">SwitchOn</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: noecho()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_900_14">Set_Echo_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_906_14" HREF="terminal_interface-curses__adb.htm#ref_826_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_906_29" HREF="terminal_interface-curses__adb.htm#ref_826_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_907_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">SwitchOn</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_906_14">Set_Meta_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_912_14" HREF="terminal_interface-curses__adb.htm#ref_837_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_912_31" HREF="terminal_interface-curses__adb.htm#ref_837_31">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_913_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">SwitchOn</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_912_14">Set_KeyPad_Mode</A>); ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_40"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_871_14" HREF="terminal_interface-curses__adb.htm#ref_749_14">Beep</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_871_14">Beep</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_41"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_876_14" HREF="terminal_interface-curses__adb.htm#ref_759_14">Flash_Screen</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_876_14">Flash_Screen</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- | Not implemented : typeahead</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- #1A NAME="AFU_42"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_887_14" HREF="terminal_interface-curses__adb.htm#ref_769_14">Set_Cbreak_Mode</A></span> (<span class="symbol"><A NAME="ref_887_31" HREF="terminal_interface-curses__adb.htm#ref_769_31">SwitchOn</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></span> ++ <span class="comment"><EM>-- AKA: nocbreak()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_887_14">Set_Cbreak_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_43"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_893_14" HREF="terminal_interface-curses__adb.htm#ref_788_14">Set_Raw_Mode</A></span> (<span class="symbol"><A NAME="ref_893_28" HREF="terminal_interface-curses__adb.htm#ref_788_28">SwitchOn</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></span> ++ <span class="comment"><EM>-- AKA: noraw()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_893_14">Set_Raw_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_44"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_899_14" HREF="terminal_interface-curses__adb.htm#ref_807_14">Set_Echo_Mode</A></span> (<span class="symbol"><A NAME="ref_899_29" HREF="terminal_interface-curses__adb.htm#ref_807_29">SwitchOn</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></span> ++ <span class="comment"><EM>-- AKA: noecho()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_899_14">Set_Echo_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_45"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_905_14" HREF="terminal_interface-curses__adb.htm#ref_826_14">Set_Meta_Mode</A></span> (<span class="symbol"><A NAME="ref_905_29" HREF="terminal_interface-curses__adb.htm#ref_826_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_906_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">SwitchOn</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_905_14">Set_Meta_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_46"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_911_14" HREF="terminal_interface-curses__adb.htm#ref_837_14">Set_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_911_31" HREF="terminal_interface-curses__adb.htm#ref_837_31">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_912_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">SwitchOn</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_911_14">Set_KeyPad_Mode</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_917_13" HREF="terminal_interface-curses__adb.htm#ref_848_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_917_30" HREF="terminal_interface-curses__adb.htm#ref_848_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_916_13" HREF="terminal_interface-curses__adb.htm#ref_848_13">Get_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_916_30" HREF="terminal_interface-curses__adb.htm#ref_848_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) + <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- This has no pendant in C. There you've to look into the WINDOWS</EM></FONT> +- <FONT COLOR=green><EM>-- structure to get the value. Bad practice, not repeated in Ada.</EM></FONT> ++ <span class="comment"><EM>-- This has no pendant in C. There you've to look into the WINDOWS</EM></span> ++ <span class="comment"><EM>-- structure to get the value. Bad practice, not repeated in Ada.</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_922_9">Half_Delay_Amount</A></FONT> <b>is</b> <b>range</b> 1 .. 255; ++ <b>type</b> <span class="symbol"><A NAME="ref_921_9">Half_Delay_Amount</A></span> <b>is</b> <b>range</b> 1 .. 255; + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_925_14" HREF="terminal_interface-curses__adb.htm#ref_857_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_925_26" HREF="terminal_interface-curses__adb.htm#ref_857_26">Amount</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_922_9">Half_Delay_Amount</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_925_14">Half_Delay</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_930_14" HREF="terminal_interface-curses__adb.htm#ref_867_14">Set_Flush_On_Interrupt_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_868_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Mode</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_930_14">Set_Flush_On_Interrupt_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_937_14" HREF="terminal_interface-curses__adb.htm#ref_879_14">Set_Queue_Interrupt_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_938_7" HREF="terminal_interface-curses__adb.htm#ref_880_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_939_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Flush</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: noqiflush()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_Queue_Interrupt_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_945_14" HREF="terminal_interface-curses__adb.htm#ref_898_14">Set_NoDelay_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_946_7" HREF="terminal_interface-curses__adb.htm#ref_899_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_947_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Mode</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_945_14">Set_NoDelay_Mode</A>); +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_951_9">Timeout_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_951_26">Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_951_36">Non_Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_951_50">Delayed</A></FONT>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_954_14" HREF="terminal_interface-curses__adb.htm#ref_910_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_954_32" HREF="terminal_interface-curses__adb.htm#ref_910_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_955_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_951_9">Timeout_Mode</A>; +- <FONT COLOR=red><A NAME="ref_956_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Amount</A></FONT> : Natural); <FONT COLOR=green><EM>-- in Milliseconds</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: timeout()</EM></FONT> +- <FONT COLOR=green><EM>-- Instead of overloading the semantic of the sign of amount, we</EM></FONT> +- <FONT COLOR=green><EM>-- introduce the Timeout_Mode parameter. This should improve</EM></FONT> +- <FONT COLOR=green><EM>-- readability. For Blocking and Non_Blocking, the Amount is not</EM></FONT> +- <FONT COLOR=green><EM>-- evaluated.</EM></FONT> +- <FONT COLOR=green><EM>-- We do not inline this procedure.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_966_14" HREF="terminal_interface-curses__adb.htm#ref_931_14">Set_Escape_Timer_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_967_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_968_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Timer_Off</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_966_14">Set_Escape_Timer_Mode</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_977_14" HREF="terminal_interface-curses__adb.htm#ref_945_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_977_27" HREF="terminal_interface-curses__adb.htm#ref_945_27">SwitchOn</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: nonl()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_977_14">Set_NL_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_983_14" HREF="terminal_interface-curses__adb.htm#ref_964_14">Clear_On_Next_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_965_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_985_7" HREF="terminal_interface-curses__adb.htm#ref_966_7">Do_Clear</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_983_14">Clear_On_Next_Update</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_990_14" HREF="terminal_interface-curses__adb.htm#ref_976_14">Use_Insert_Delete_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_977_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_992_7" HREF="terminal_interface-curses__adb.htm#ref_978_7">Do_Idl</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_990_14">Use_Insert_Delete_Line</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_997_14" HREF="terminal_interface-curses__adb.htm#ref_988_14">Use_Insert_Delete_Character</A></FONT> +- (<FONT COLOR=red><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_989_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_999_7" HREF="terminal_interface-curses__adb.htm#ref_990_7">Do_Idc</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_997_14">Use_Insert_Delete_Character</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1004_14" HREF="terminal_interface-curses__adb.htm#ref_998_14">Leave_Cursor_After_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_999_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1006_7" HREF="terminal_interface-curses__adb.htm#ref_1000_7">Do_Leave</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1004_14">Leave_Cursor_After_Update</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1011_14" HREF="terminal_interface-curses__adb.htm#ref_1010_14">Immediate_Update_Mode</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1011_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1013_7" HREF="terminal_interface-curses__adb.htm#ref_1012_7">Mode</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1011_14">Immediate_Update_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1018_14" HREF="terminal_interface-curses__adb.htm#ref_1020_14">Allow_Scrolling</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1019_7" HREF="terminal_interface-curses__adb.htm#ref_1021_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1020_7" HREF="terminal_interface-curses__adb.htm#ref_1022_7">Mode</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1018_14">Allow_Scrolling</A>); +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_1024_13" HREF="terminal_interface-curses__adb.htm#ref_1032_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1024_32" HREF="terminal_interface-curses__adb.htm#ref_1032_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- There is no such function in the C interface.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1029_14" HREF="terminal_interface-curses__adb.htm#ref_1041_14">Set_Scroll_Region</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_1042_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1031_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Top_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1032_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Bottom_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: setscrreg()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1029_14">Set_Scroll_Region</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1042_14" HREF="terminal_interface-curses__adb.htm#ref_1057_14">Update_Screen</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1042_14">Update_Screen</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1047_14" HREF="terminal_interface-curses__adb.htm#ref_1067_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1047_23" HREF="terminal_interface-curses__adb.htm#ref_1067_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></FONT> +- <FONT COLOR=green><EM>-- There is an overloaded Refresh for Pads.</EM></FONT> +- <FONT COLOR=green><EM>-- The Inline pragma appears there</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: refresh()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_63"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1054_14" HREF="terminal_interface-curses__adb.htm#ref_1077_14">Refresh_Without_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1055_7" HREF="terminal_interface-curses__adb.htm#ref_1078_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></FONT> +- <FONT COLOR=green><EM>-- There is an overloaded Refresh_Without_Update for Pads.</EM></FONT> +- <FONT COLOR=green><EM>-- The Inline pragma appears there</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_64"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1061_14" HREF="terminal_interface-curses__adb.htm#ref_1088_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1061_22" HREF="terminal_interface-curses__adb.htm#ref_1088_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_65"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1065_14" HREF="terminal_interface-curses__adb.htm#ref_1098_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1065_22" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1066_22" HREF="terminal_interface-curses__adb.htm#ref_1100_7">Begin_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1067_22" HREF="terminal_interface-curses__adb.htm#ref_1101_7">Line_Count</A></FONT> : Positive); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_47"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_924_14" HREF="terminal_interface-curses__adb.htm#ref_857_14">Half_Delay</A></span> (<span class="symbol"><A NAME="ref_924_26" HREF="terminal_interface-curses__adb.htm#ref_857_26">Amount</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_921_9">Half_Delay_Amount</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_924_14">Half_Delay</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_48"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_929_14" HREF="terminal_interface-curses__adb.htm#ref_867_14">Set_Flush_On_Interrupt_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_930_7" HREF="terminal_interface-curses__adb.htm#ref_868_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Mode</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Flush_On_Interrupt_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_49"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_936_14" HREF="terminal_interface-curses__adb.htm#ref_879_14">Set_Queue_Interrupt_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_937_7" HREF="terminal_interface-curses__adb.htm#ref_880_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_938_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Flush</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></span> ++ <span class="comment"><EM>-- AKA: noqiflush()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_936_14">Set_Queue_Interrupt_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_50"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_944_14" HREF="terminal_interface-curses__adb.htm#ref_898_14">Set_NoDelay_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_945_7" HREF="terminal_interface-curses__adb.htm#ref_899_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_946_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Mode</A></span> : Boolean := False); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_944_14">Set_NoDelay_Mode</A>); ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_950_9">Timeout_Mode</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_950_26">Blocking</A></span>, <span class="symbol"><A NAME="ref_950_36">Non_Blocking</A></span>, <span class="symbol"><A NAME="ref_950_50">Delayed</A></span>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_51"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_953_14" HREF="terminal_interface-curses__adb.htm#ref_910_14">Set_Timeout_Mode</A></span> (<span class="symbol"><A NAME="ref_953_32" HREF="terminal_interface-curses__adb.htm#ref_910_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_954_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_950_9">Timeout_Mode</A>; ++ <span class="symbol"><A NAME="ref_955_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Amount</A></span> : Natural); <span class="comment"><EM>-- in Milliseconds</EM></span> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></span> ++ <span class="comment"><EM>-- AKA: timeout()</EM></span> ++ <span class="comment"><EM>-- Instead of overloading the semantic of the sign of amount, we</EM></span> ++ <span class="comment"><EM>-- introduce the Timeout_Mode parameter. This should improve</EM></span> ++ <span class="comment"><EM>-- readability. For Blocking and Non_Blocking, the Amount is not</EM></span> ++ <span class="comment"><EM>-- evaluated.</EM></span> ++ <span class="comment"><EM>-- We do not inline this procedure.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_52"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_965_14" HREF="terminal_interface-curses__adb.htm#ref_931_14">Set_Escape_Timer_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_966_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_967_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Timer_Off</A></span> : Boolean := False); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_965_14">Set_Escape_Timer_Mode</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_53"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_976_14" HREF="terminal_interface-curses__adb.htm#ref_945_14">Set_NL_Mode</A></span> (<span class="symbol"><A NAME="ref_976_27" HREF="terminal_interface-curses__adb.htm#ref_945_27">SwitchOn</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></span> ++ <span class="comment"><EM>-- AKA: nonl()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_976_14">Set_NL_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_54"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_982_14" HREF="terminal_interface-curses__adb.htm#ref_964_14">Clear_On_Next_Update</A></span> ++ (<span class="symbol"><A NAME="ref_983_7" HREF="terminal_interface-curses__adb.htm#ref_965_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_966_7">Do_Clear</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_982_14">Clear_On_Next_Update</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_55"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_989_14" HREF="terminal_interface-curses__adb.htm#ref_976_14">Use_Insert_Delete_Line</A></span> ++ (<span class="symbol"><A NAME="ref_990_7" HREF="terminal_interface-curses__adb.htm#ref_977_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_978_7">Do_Idl</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Line</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_56"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_996_14" HREF="terminal_interface-curses__adb.htm#ref_988_14">Use_Insert_Delete_Character</A></span> ++ (<span class="symbol"><A NAME="ref_997_7" HREF="terminal_interface-curses__adb.htm#ref_989_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_990_7">Do_Idc</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_996_14">Use_Insert_Delete_Character</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_57"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1003_14" HREF="terminal_interface-curses__adb.htm#ref_998_14">Leave_Cursor_After_Update</A></span> ++ (<span class="symbol"><A NAME="ref_1004_7" HREF="terminal_interface-curses__adb.htm#ref_999_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_1000_7">Do_Leave</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1003_14">Leave_Cursor_After_Update</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_58"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1010_14" HREF="terminal_interface-curses__adb.htm#ref_1010_14">Immediate_Update_Mode</A></span> ++ (<span class="symbol"><A NAME="ref_1011_7" HREF="terminal_interface-curses__adb.htm#ref_1011_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1012_7">Mode</A></span> : Boolean := False); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1010_14">Immediate_Update_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_59"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1017_14" HREF="terminal_interface-curses__adb.htm#ref_1020_14">Allow_Scrolling</A></span> ++ (<span class="symbol"><A NAME="ref_1018_7" HREF="terminal_interface-curses__adb.htm#ref_1021_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1019_7" HREF="terminal_interface-curses__adb.htm#ref_1022_7">Mode</A></span> : Boolean := False); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1017_14">Allow_Scrolling</A>); ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_1023_13" HREF="terminal_interface-curses__adb.htm#ref_1032_13">Scrolling_Allowed</A></span> (<span class="symbol"><A NAME="ref_1023_32" HREF="terminal_interface-curses__adb.htm#ref_1032_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- There is no such function in the C interface.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1023_13">Scrolling_Allowed</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_60"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1028_14" HREF="terminal_interface-curses__adb.htm#ref_1041_14">Set_Scroll_Region</A></span> ++ (<span class="symbol"><A NAME="ref_1029_7" HREF="terminal_interface-curses__adb.htm#ref_1042_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Top_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1031_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Bottom_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></span> ++ <span class="comment"><EM>-- AKA: setscrreg()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1028_14">Set_Scroll_Region</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_61"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1041_14" HREF="terminal_interface-curses__adb.htm#ref_1057_14">Update_Screen</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1041_14">Update_Screen</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_62"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1046_14" HREF="terminal_interface-curses__adb.htm#ref_1067_14">Refresh</A></span> (<span class="symbol"><A NAME="ref_1046_23" HREF="terminal_interface-curses__adb.htm#ref_1067_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></span> ++ <span class="comment"><EM>-- There is an overloaded Refresh for Pads.</EM></span> ++ <span class="comment"><EM>-- The Inline pragma appears there</EM></span> ++ <span class="comment"><EM>-- AKA: refresh()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_63"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1053_14" HREF="terminal_interface-curses__adb.htm#ref_1077_14">Refresh_Without_Update</A></span> ++ (<span class="symbol"><A NAME="ref_1054_7" HREF="terminal_interface-curses__adb.htm#ref_1078_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></span> ++ <span class="comment"><EM>-- There is an overloaded Refresh_Without_Update for Pads.</EM></span> ++ <span class="comment"><EM>-- The Inline pragma appears there</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_64"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1060_14" HREF="terminal_interface-curses__adb.htm#ref_1088_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1060_22" HREF="terminal_interface-curses__adb.htm#ref_1088_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_65"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1064_14" HREF="terminal_interface-curses__adb.htm#ref_1098_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1064_22" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1065_22" HREF="terminal_interface-curses__adb.htm#ref_1100_7">Begin_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1066_22" HREF="terminal_interface-curses__adb.htm#ref_1101_7">Line_Count</A></span> : Positive); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></span> + <b>pragma</b> Inline (Redraw); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_66"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1076_14" HREF="terminal_interface-curses__adb.htm#ref_1115_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1076_21" HREF="terminal_interface-curses__adb.htm#ref_1115_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: erase()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1076_14">Erase</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_67"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1082_14" HREF="terminal_interface-curses__adb.htm#ref_1125_14">Clear</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1083_7" HREF="terminal_interface-curses__adb.htm#ref_1125_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: clear()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_68"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1089_14" HREF="terminal_interface-curses__adb.htm#ref_1135_14">Clear_To_End_Of_Screen</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1090_7" HREF="terminal_interface-curses__adb.htm#ref_1135_38">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: clrtobot()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1089_14">Clear_To_End_Of_Screen</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_69"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1096_14" HREF="terminal_interface-curses__adb.htm#ref_1145_14">Clear_To_End_Of_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1097_7" HREF="terminal_interface-curses__adb.htm#ref_1145_36">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: clrtoeol()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1096_14">Clear_To_End_Of_Line</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_70"#2|</EM></FONT> +- <FONT COLOR=green><EM>-- TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></FONT> +- <FONT COLOR=green><EM>-- because in C it is common to see bkgdset(A_BOLD) or</EM></FONT> +- <FONT COLOR=green><EM>-- bkgdset(COLOR_PAIR(n))</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1110_14" HREF="terminal_interface-curses__adb.htm#ref_1155_14">Set_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1111_7" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1112_7" HREF="terminal_interface-curses__adb.htm#ref_1157_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: bkgdset()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Set_Background</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_71"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1118_14" HREF="terminal_interface-curses__adb.htm#ref_1165_14">Change_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1119_7" HREF="terminal_interface-curses__adb.htm#ref_1166_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1120_7" HREF="terminal_interface-curses__adb.htm#ref_1167_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: bkgd()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1118_14">Change_Background</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_72"#2|</EM></FONT> +- <FONT COLOR=green><EM>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1127_13" HREF="terminal_interface-curses__adb.htm#ref_1177_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1127_29" HREF="terminal_interface-curses__adb.htm#ref_1177_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: bkgdget()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1127_13">Get_Background</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_73"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1138_14" HREF="terminal_interface-curses__adb.htm#ref_1213_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1138_23" HREF="terminal_interface-curses__adb.htm#ref_1213_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1138_14">Untouch</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_74"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1143_14" HREF="terminal_interface-curses__adb.htm#ref_1203_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1143_21" HREF="terminal_interface-curses__adb.htm#ref_1203_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_75"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1147_14" HREF="terminal_interface-curses__adb.htm#ref_1223_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1147_21" HREF="terminal_interface-curses__adb.htm#ref_1223_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1148_21" HREF="terminal_interface-curses__adb.htm#ref_1224_21">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1149_21" HREF="terminal_interface-curses__adb.htm#ref_1225_21">Count</A></FONT> : Positive); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_66"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1075_14" HREF="terminal_interface-curses__adb.htm#ref_1115_14">Erase</A></span> (<span class="symbol"><A NAME="ref_1075_21" HREF="terminal_interface-curses__adb.htm#ref_1115_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></span> ++ <span class="comment"><EM>-- AKA: erase()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1075_14">Erase</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_67"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1081_14" HREF="terminal_interface-curses__adb.htm#ref_1125_14">Clear</A></span> ++ (<span class="symbol"><A NAME="ref_1082_7" HREF="terminal_interface-curses__adb.htm#ref_1125_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></span> ++ <span class="comment"><EM>-- AKA: clear()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_68"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1088_14" HREF="terminal_interface-curses__adb.htm#ref_1135_14">Clear_To_End_Of_Screen</A></span> ++ (<span class="symbol"><A NAME="ref_1089_7" HREF="terminal_interface-curses__adb.htm#ref_1135_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></span> ++ <span class="comment"><EM>-- AKA: clrtobot()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Screen</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_69"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1095_14" HREF="terminal_interface-curses__adb.htm#ref_1145_14">Clear_To_End_Of_Line</A></span> ++ (<span class="symbol"><A NAME="ref_1096_7" HREF="terminal_interface-curses__adb.htm#ref_1145_36">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></span> ++ <span class="comment"><EM>-- AKA: clrtoeol()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1095_14">Clear_To_End_Of_Line</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_70"#2|</EM></span> ++ <span class="comment"><EM>-- TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></span> ++ <span class="comment"><EM>-- because in C it is common to see bkgdset(A_BOLD) or</EM></span> ++ <span class="comment"><EM>-- bkgdset(COLOR_PAIR(n))</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1109_14" HREF="terminal_interface-curses__adb.htm#ref_1155_14">Set_Background</A></span> ++ (<span class="symbol"><A NAME="ref_1110_7" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1111_7" HREF="terminal_interface-curses__adb.htm#ref_1157_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></span> ++ <span class="comment"><EM>-- AKA: bkgdset()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1109_14">Set_Background</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_71"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1117_14" HREF="terminal_interface-curses__adb.htm#ref_1165_14">Change_Background</A></span> ++ (<span class="symbol"><A NAME="ref_1118_7" HREF="terminal_interface-curses__adb.htm#ref_1166_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1119_7" HREF="terminal_interface-curses__adb.htm#ref_1167_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></span> ++ <span class="comment"><EM>-- AKA: bkgd()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1117_14">Change_Background</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_72"#2|</EM></span> ++ <span class="comment"><EM>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1126_13" HREF="terminal_interface-curses__adb.htm#ref_1177_13">Get_Background</A></span> (<span class="symbol"><A NAME="ref_1126_29" HREF="terminal_interface-curses__adb.htm#ref_1177_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></span> ++ <span class="comment"><EM>-- AKA: bkgdget()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1126_13">Get_Background</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_73"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1137_14" HREF="terminal_interface-curses__adb.htm#ref_1213_14">Untouch</A></span> (<span class="symbol"><A NAME="ref_1137_23" HREF="terminal_interface-curses__adb.htm#ref_1213_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1137_14">Untouch</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_74"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1142_14" HREF="terminal_interface-curses__adb.htm#ref_1203_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1142_21" HREF="terminal_interface-curses__adb.htm#ref_1203_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_75"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1146_14" HREF="terminal_interface-curses__adb.htm#ref_1223_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1146_21" HREF="terminal_interface-curses__adb.htm#ref_1223_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1147_21" HREF="terminal_interface-curses__adb.htm#ref_1224_21">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1148_21" HREF="terminal_interface-curses__adb.htm#ref_1225_21">Count</A></span> : Positive); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></span> + <b>pragma</b> Inline (Touch); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_76"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1154_14" HREF="terminal_interface-curses__adb.htm#ref_1186_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1154_35" HREF="terminal_interface-curses__adb.htm#ref_1186_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1155_35" HREF="terminal_interface-curses__adb.htm#ref_1187_35">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1156_35" HREF="terminal_interface-curses__adb.htm#ref_1188_35">Count</A></FONT> : Positive; +- <FONT COLOR=red><A NAME="ref_1157_35" HREF="terminal_interface-curses__adb.htm#ref_1189_35">State</A></FONT> : Boolean); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_77"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1162_13" HREF="terminal_interface-curses__adb.htm#ref_1231_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1162_25" HREF="terminal_interface-curses__adb.htm#ref_1232_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1163_25" HREF="terminal_interface-curses__adb.htm#ref_1233_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_78"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1167_13" HREF="terminal_interface-curses__adb.htm#ref_1245_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1167_25" HREF="terminal_interface-curses__adb.htm#ref_1246_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_76"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1153_14" HREF="terminal_interface-curses__adb.htm#ref_1186_14">Change_Lines_Status</A></span> (<span class="symbol"><A NAME="ref_1153_35" HREF="terminal_interface-curses__adb.htm#ref_1186_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1154_35" HREF="terminal_interface-curses__adb.htm#ref_1187_35">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1155_35" HREF="terminal_interface-curses__adb.htm#ref_1188_35">Count</A></span> : Positive; ++ <span class="symbol"><A NAME="ref_1156_35" HREF="terminal_interface-curses__adb.htm#ref_1189_35">State</A></span> : Boolean); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1153_14">Change_Lines_Status</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_77"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1161_13" HREF="terminal_interface-curses__adb.htm#ref_1231_13">Is_Touched</A></span> (<span class="symbol"><A NAME="ref_1161_25" HREF="terminal_interface-curses__adb.htm#ref_1232_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1162_25" HREF="terminal_interface-curses__adb.htm#ref_1233_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_78"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1166_13" HREF="terminal_interface-curses__adb.htm#ref_1245_13">Is_Touched</A></span> (<span class="symbol"><A NAME="ref_1166_25" HREF="terminal_interface-curses__adb.htm#ref_1246_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></span> + <b>pragma</b> Inline (Is_Touched); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_79"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1176_14" HREF="terminal_interface-curses__adb.htm#ref_1258_14">Copy</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1259_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1178_7" HREF="terminal_interface-curses__adb.htm#ref_1260_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1179_7" HREF="terminal_interface-curses__adb.htm#ref_1261_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1180_7" HREF="terminal_interface-curses__adb.htm#ref_1262_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1263_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1182_7" HREF="terminal_interface-curses__adb.htm#ref_1264_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1183_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1184_7" HREF="terminal_interface-curses__adb.htm#ref_1266_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1185_7" HREF="terminal_interface-curses__adb.htm#ref_1267_7">Non_Destructive_Mode</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1176_14">Copy</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_80"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1190_14" HREF="terminal_interface-curses__adb.htm#ref_1294_14">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1190_25" HREF="terminal_interface-curses__adb.htm#ref_1295_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1191_25" HREF="terminal_interface-curses__adb.htm#ref_1296_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1190_14">Overwrite</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_81"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1196_14" HREF="terminal_interface-curses__adb.htm#ref_1306_14">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1196_23" HREF="terminal_interface-curses__adb.htm#ref_1307_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1197_23" HREF="terminal_interface-curses__adb.htm#ref_1308_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1196_14">Overlay</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_82"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1206_14" HREF="terminal_interface-curses__adb.htm#ref_1319_14">Insert_Delete_Lines</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1207_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1208_7" HREF="terminal_interface-curses__adb.htm#ref_1321_7">Lines</A></FONT> : Integer := 1); <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: insdelln()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_83"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1214_14" HREF="terminal_interface-curses__adb.htm#ref_1331_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1214_27" HREF="terminal_interface-curses__adb.htm#ref_1331_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: deleteln()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1214_14">Delete_Line</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_84"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1220_14" HREF="terminal_interface-curses__adb.htm#ref_1337_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1220_27" HREF="terminal_interface-curses__adb.htm#ref_1337_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: insertln()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1220_14">Insert_Line</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_85"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1230_14" HREF="terminal_interface-curses__adb.htm#ref_1344_14">Get_Size</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1231_7" HREF="terminal_interface-curses__adb.htm#ref_1345_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1346_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__adb.htm#ref_1347_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_86"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1238_14" HREF="terminal_interface-curses__adb.htm#ref_1362_14">Get_Window_Position</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1239_7" HREF="terminal_interface-curses__adb.htm#ref_1363_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1364_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1241_7" HREF="terminal_interface-curses__adb.htm#ref_1365_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Window_Position</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_87"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1246_14" HREF="terminal_interface-curses__adb.htm#ref_1380_14">Get_Cursor_Position</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1247_7" HREF="terminal_interface-curses__adb.htm#ref_1381_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1382_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1249_7" HREF="terminal_interface-curses__adb.htm#ref_1383_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_88"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1254_14" HREF="terminal_interface-curses__adb.htm#ref_1398_14">Get_Origin_Relative_To_Parent</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1255_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1256_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1257_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1258_7" HREF="terminal_interface-curses__adb.htm#ref_1402_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Instead of placing -1 in the coordinates as return, we use a Boolean</EM></FONT> +- <FONT COLOR=green><EM>-- to return the info that the window has no parent.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1254_14">Get_Origin_Relative_To_Parent</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_89"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1269_13" HREF="terminal_interface-curses__adb.htm#ref_1424_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1269_22" HREF="terminal_interface-curses__adb.htm#ref_1424_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1270_22" HREF="terminal_interface-curses__adb.htm#ref_1425_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1269_13">New_Pad</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_90"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1275_13" HREF="terminal_interface-curses__adb.htm#ref_1439_13">Sub_Pad</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1276_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1277_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1278_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1443_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1444_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1275_13">Sub_Pad</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_91"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1285_14" HREF="terminal_interface-curses__adb.htm#ref_1467_14">Refresh</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__adb.htm#ref_1468_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1287_7" HREF="terminal_interface-curses__adb.htm#ref_1469_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1470_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1289_7" HREF="terminal_interface-curses__adb.htm#ref_1471_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1290_7" HREF="terminal_interface-curses__adb.htm#ref_1472_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1473_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1292_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_79"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1175_14" HREF="terminal_interface-curses__adb.htm#ref_1258_14">Copy</A></span> ++ (<span class="symbol"><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1259_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1260_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1178_7" HREF="terminal_interface-curses__adb.htm#ref_1261_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1179_7" HREF="terminal_interface-curses__adb.htm#ref_1262_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1180_7" HREF="terminal_interface-curses__adb.htm#ref_1263_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1264_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1182_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1183_7" HREF="terminal_interface-curses__adb.htm#ref_1266_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1184_7" HREF="terminal_interface-curses__adb.htm#ref_1267_7">Non_Destructive_Mode</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1175_14">Copy</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_80"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1189_14" HREF="terminal_interface-curses__adb.htm#ref_1294_14">Overwrite</A></span> (<span class="symbol"><A NAME="ref_1189_25" HREF="terminal_interface-curses__adb.htm#ref_1295_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1190_25" HREF="terminal_interface-curses__adb.htm#ref_1296_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1189_14">Overwrite</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_81"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1195_14" HREF="terminal_interface-curses__adb.htm#ref_1306_14">Overlay</A></span> (<span class="symbol"><A NAME="ref_1195_23" HREF="terminal_interface-curses__adb.htm#ref_1307_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1196_23" HREF="terminal_interface-curses__adb.htm#ref_1308_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1195_14">Overlay</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_82"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1205_14" HREF="terminal_interface-curses__adb.htm#ref_1319_14">Insert_Delete_Lines</A></span> ++ (<span class="symbol"><A NAME="ref_1206_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1207_7" HREF="terminal_interface-curses__adb.htm#ref_1321_7">Lines</A></span> : Integer := 1); <span class="comment"><EM>-- default is to insert one line above</EM></span> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></span> ++ <span class="comment"><EM>-- AKA: insdelln()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1205_14">Insert_Delete_Lines</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_83"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1213_14" HREF="terminal_interface-curses__adb.htm#ref_1331_14">Delete_Line</A></span> (<span class="symbol"><A NAME="ref_1213_27" HREF="terminal_interface-curses__adb.htm#ref_1331_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></span> ++ <span class="comment"><EM>-- AKA: deleteln()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1213_14">Delete_Line</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_84"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1219_14" HREF="terminal_interface-curses__adb.htm#ref_1337_14">Insert_Line</A></span> (<span class="symbol"><A NAME="ref_1219_27" HREF="terminal_interface-curses__adb.htm#ref_1337_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></span> ++ <span class="comment"><EM>-- AKA: insertln()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1219_14">Insert_Line</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_85"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1229_14" HREF="terminal_interface-curses__adb.htm#ref_1344_14">Get_Size</A></span> ++ (<span class="symbol"><A NAME="ref_1230_7" HREF="terminal_interface-curses__adb.htm#ref_1345_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1231_7" HREF="terminal_interface-curses__adb.htm#ref_1346_7">Number_Of_Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1347_7">Number_Of_Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_86"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1237_14" HREF="terminal_interface-curses__adb.htm#ref_1362_14">Get_Window_Position</A></span> ++ (<span class="symbol"><A NAME="ref_1238_7" HREF="terminal_interface-curses__adb.htm#ref_1363_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1239_7" HREF="terminal_interface-curses__adb.htm#ref_1364_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1365_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1237_14">Get_Window_Position</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_87"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1245_14" HREF="terminal_interface-curses__adb.htm#ref_1380_14">Get_Cursor_Position</A></span> ++ (<span class="symbol"><A NAME="ref_1246_7" HREF="terminal_interface-curses__adb.htm#ref_1381_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1247_7" HREF="terminal_interface-curses__adb.htm#ref_1382_7">Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1383_7">Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_88"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1253_14" HREF="terminal_interface-curses__adb.htm#ref_1398_14">Get_Origin_Relative_To_Parent</A></span> ++ (<span class="symbol"><A NAME="ref_1254_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1255_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1256_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1257_7" HREF="terminal_interface-curses__adb.htm#ref_1402_7">Is_Not_A_Subwindow</A></span> : <b>out</b> Boolean); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></span> ++ <span class="comment"><EM>-- Instead of placing -1 in the coordinates as return, we use a Boolean</EM></span> ++ <span class="comment"><EM>-- to return the info that the window has no parent.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1253_14">Get_Origin_Relative_To_Parent</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_89"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1268_13" HREF="terminal_interface-curses__adb.htm#ref_1424_13">New_Pad</A></span> (<span class="symbol"><A NAME="ref_1268_22" HREF="terminal_interface-curses__adb.htm#ref_1424_22">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1269_22" HREF="terminal_interface-curses__adb.htm#ref_1425_22">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1268_13">New_Pad</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_90"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1274_13" HREF="terminal_interface-curses__adb.htm#ref_1439_13">Sub_Pad</A></span> ++ (<span class="symbol"><A NAME="ref_1275_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1276_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1277_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_1278_7" HREF="terminal_interface-curses__adb.htm#ref_1443_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1444_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1274_13">Sub_Pad</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_91"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1284_14" HREF="terminal_interface-curses__adb.htm#ref_1467_14">Refresh</A></span> ++ (<span class="symbol"><A NAME="ref_1285_7" HREF="terminal_interface-curses__adb.htm#ref_1468_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1286_7" HREF="terminal_interface-curses__adb.htm#ref_1469_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1287_7" HREF="terminal_interface-curses__adb.htm#ref_1470_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1471_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1289_7" HREF="terminal_interface-curses__adb.htm#ref_1472_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1290_7" HREF="terminal_interface-curses__adb.htm#ref_1473_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></span> + <b>pragma</b> Inline (Refresh); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_92"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1297_14" HREF="terminal_interface-curses__adb.htm#ref_1497_14">Refresh_Without_Update</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1298_7" HREF="terminal_interface-curses__adb.htm#ref_1498_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__adb.htm#ref_1499_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1300_7" HREF="terminal_interface-curses__adb.htm#ref_1500_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1301_7" HREF="terminal_interface-curses__adb.htm#ref_1501_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1302_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1304_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_92"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1296_14" HREF="terminal_interface-curses__adb.htm#ref_1497_14">Refresh_Without_Update</A></span> ++ (<span class="symbol"><A NAME="ref_1297_7" HREF="terminal_interface-curses__adb.htm#ref_1498_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1298_7" HREF="terminal_interface-curses__adb.htm#ref_1499_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1299_7" HREF="terminal_interface-curses__adb.htm#ref_1500_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1300_7" HREF="terminal_interface-curses__adb.htm#ref_1501_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1301_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1302_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></span> + <b>pragma</b> Inline (Refresh_Without_Update); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_93"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1309_14" HREF="terminal_interface-curses__adb.htm#ref_1527_14">Add_Character_To_Pad_And_Echo_It</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1310_7" HREF="terminal_interface-curses__adb.htm#ref_1528_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1311_7" HREF="terminal_interface-curses__adb.htm#ref_1529_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1314_14" HREF="terminal_interface-curses__adb.htm#ref_1540_14">Add_Character_To_Pad_And_Echo_It</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1315_7" HREF="terminal_interface-curses__adb.htm#ref_1541_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1316_7" HREF="terminal_interface-curses__adb.htm#ref_1542_7">Ch</A></FONT> : Character); ++ <span class="comment"><EM>-- #1A NAME="AFU_93"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1308_14" HREF="terminal_interface-curses__adb.htm#ref_1527_14">Add_Character_To_Pad_And_Echo_It</A></span> ++ (<span class="symbol"><A NAME="ref_1309_7" HREF="terminal_interface-curses__adb.htm#ref_1528_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1310_7" HREF="terminal_interface-curses__adb.htm#ref_1529_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1313_14" HREF="terminal_interface-curses__adb.htm#ref_1540_14">Add_Character_To_Pad_And_Echo_It</A></span> ++ (<span class="symbol"><A NAME="ref_1314_7" HREF="terminal_interface-curses__adb.htm#ref_1541_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1315_7" HREF="terminal_interface-curses__adb.htm#ref_1542_7">Ch</A></span> : Character); + <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_94"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1324_14" HREF="terminal_interface-curses__adb.htm#ref_1552_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1324_22" HREF="terminal_interface-curses__adb.htm#ref_1552_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1325_22" HREF="terminal_interface-curses__adb.htm#ref_1553_22">Amount</A></FONT> : Integer := 1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: scroll()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: scrl()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1324_14">Scroll</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_95"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1336_14" HREF="terminal_interface-curses__adb.htm#ref_1565_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1336_32" HREF="terminal_interface-curses__adb.htm#ref_1565_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: delch()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_96"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1341_14" HREF="terminal_interface-curses__adb.htm#ref_1575_14">Delete_Character</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1342_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1343_7" HREF="terminal_interface-curses__adb.htm#ref_1577_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1344_7" HREF="terminal_interface-curses__adb.htm#ref_1578_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvdelch()</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_94"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1323_14" HREF="terminal_interface-curses__adb.htm#ref_1552_14">Scroll</A></span> (<span class="symbol"><A NAME="ref_1323_22" HREF="terminal_interface-curses__adb.htm#ref_1552_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1324_22" HREF="terminal_interface-curses__adb.htm#ref_1553_22">Amount</A></span> : Integer := 1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></span> ++ <span class="comment"><EM>-- AKA: scroll()</EM></span> ++ <span class="comment"><EM>-- AKA: scrl()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Scroll</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_95"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1335_14" HREF="terminal_interface-curses__adb.htm#ref_1565_14">Delete_Character</A></span> (<span class="symbol"><A NAME="ref_1335_32" HREF="terminal_interface-curses__adb.htm#ref_1565_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: delch()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_96"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1340_14" HREF="terminal_interface-curses__adb.htm#ref_1575_14">Delete_Character</A></span> ++ (<span class="symbol"><A NAME="ref_1341_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1342_7" HREF="terminal_interface-curses__adb.htm#ref_1577_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1343_7" HREF="terminal_interface-curses__adb.htm#ref_1578_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvdelch()</EM></span> + <b>pragma</b> Inline (Delete_Character); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_97"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1354_13" HREF="terminal_interface-curses__adb.htm#ref_1590_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1354_19" HREF="terminal_interface-curses__adb.htm#ref_1590_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; +- <FONT COLOR=green><EM>-- AKA: inch()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_98"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1360_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__adb.htm#ref_1600_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1362_7" HREF="terminal_interface-curses__adb.htm#ref_1601_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1363_7" HREF="terminal_interface-curses__adb.htm#ref_1602_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinch()</EM></FONT> +- <FONT COLOR=green><EM>-- More Peek's follow, pragma Inline appears later.</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_99"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1373_14" HREF="terminal_interface-curses__adb.htm#ref_1612_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1612_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1374_22" HREF="terminal_interface-curses__adb.htm#ref_1613_22">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: insch()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_100"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1379_14" HREF="terminal_interface-curses__adb.htm#ref_1623_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1379_22" HREF="terminal_interface-curses__adb.htm#ref_1624_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1380_22" HREF="terminal_interface-curses__adb.htm#ref_1625_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1381_22" HREF="terminal_interface-curses__adb.htm#ref_1626_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1382_22" HREF="terminal_interface-curses__adb.htm#ref_1627_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinsch()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_101"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1391_14" HREF="terminal_interface-curses__adb.htm#ref_1643_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1391_22" HREF="terminal_interface-curses__adb.htm#ref_1643_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1392_22" HREF="terminal_interface-curses__adb.htm#ref_1644_22">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1393_22" HREF="terminal_interface-curses__adb.htm#ref_1645_22">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: winsstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: insnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: insstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_102"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1400_14" HREF="terminal_interface-curses__adb.htm#ref_1661_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1400_22" HREF="terminal_interface-curses__adb.htm#ref_1662_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1401_22" HREF="terminal_interface-curses__adb.htm#ref_1663_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1402_22" HREF="terminal_interface-curses__adb.htm#ref_1664_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1403_22" HREF="terminal_interface-curses__adb.htm#ref_1665_7">Str</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1404_22" HREF="terminal_interface-curses__adb.htm#ref_1666_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvwinsstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinsnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinsstr()</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_97"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1353_13" HREF="terminal_interface-curses__adb.htm#ref_1590_13">Peek</A></span> (<span class="symbol"><A NAME="ref_1353_19" HREF="terminal_interface-curses__adb.htm#ref_1590_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; ++ <span class="comment"><EM>-- AKA: inch()</EM></span> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_98"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1359_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></span> ++ (<span class="symbol"><A NAME="ref_1360_7" HREF="terminal_interface-curses__adb.htm#ref_1600_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1361_7" HREF="terminal_interface-curses__adb.htm#ref_1601_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1362_7" HREF="terminal_interface-curses__adb.htm#ref_1602_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvinch()</EM></span> ++ <span class="comment"><EM>-- More Peek's follow, pragma Inline appears later.</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_99"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1372_14" HREF="terminal_interface-curses__adb.htm#ref_1612_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1612_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1613_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: insch()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_100"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1378_14" HREF="terminal_interface-curses__adb.htm#ref_1623_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1378_22" HREF="terminal_interface-curses__adb.htm#ref_1624_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1379_22" HREF="terminal_interface-curses__adb.htm#ref_1625_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1380_22" HREF="terminal_interface-curses__adb.htm#ref_1626_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1381_22" HREF="terminal_interface-curses__adb.htm#ref_1627_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvinsch()</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_101"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1390_14" HREF="terminal_interface-curses__adb.htm#ref_1643_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1390_22" HREF="terminal_interface-curses__adb.htm#ref_1643_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1391_22" HREF="terminal_interface-curses__adb.htm#ref_1644_22">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_1392_22" HREF="terminal_interface-curses__adb.htm#ref_1645_22">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: winsstr()</EM></span> ++ <span class="comment"><EM>-- AKA: insnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: insstr()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_102"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1399_14" HREF="terminal_interface-curses__adb.htm#ref_1661_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1399_22" HREF="terminal_interface-curses__adb.htm#ref_1662_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1400_22" HREF="terminal_interface-curses__adb.htm#ref_1663_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1401_22" HREF="terminal_interface-curses__adb.htm#ref_1664_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1402_22" HREF="terminal_interface-curses__adb.htm#ref_1665_7">Str</A></span> : String; ++ <span class="symbol"><A NAME="ref_1403_22" HREF="terminal_interface-curses__adb.htm#ref_1666_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvwinsstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvinsnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvinsstr()</EM></span> + <b>pragma</b> Inline (Insert); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_103"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1416_14" HREF="terminal_interface-curses__adb.htm#ref_1685_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1416_20" HREF="terminal_interface-curses__adb.htm#ref_1685_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1417_20" HREF="terminal_interface-curses__adb.htm#ref_1686_20">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1418_20" HREF="terminal_interface-curses__adb.htm#ref_1687_20">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: winstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: innstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: instr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_104"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1425_14" HREF="terminal_interface-curses__adb.htm#ref_1714_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1425_20" HREF="terminal_interface-curses__adb.htm#ref_1715_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1426_20" HREF="terminal_interface-curses__adb.htm#ref_1716_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1427_20" HREF="terminal_interface-curses__adb.htm#ref_1717_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1428_20" HREF="terminal_interface-curses__adb.htm#ref_1718_7">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1429_20" HREF="terminal_interface-curses__adb.htm#ref_1719_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvwinstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_105"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1440_14" HREF="terminal_interface-curses__adb.htm#ref_1726_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1440_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1441_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Str</A></FONT> : <b>out</b> Attributed_String; +- <FONT COLOR=red><A NAME="ref_1442_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: winchstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: inchnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: inchstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_106"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1449_14" HREF="terminal_interface-curses__adb.htm#ref_1763_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1449_20" HREF="terminal_interface-curses__adb.htm#ref_1764_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1450_20" HREF="terminal_interface-curses__adb.htm#ref_1765_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1451_20" HREF="terminal_interface-curses__adb.htm#ref_1766_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1452_20" HREF="terminal_interface-curses__adb.htm#ref_1767_7">Str</A></FONT> : <b>out</b> Attributed_String; +- <FONT COLOR=red><A NAME="ref_1453_20" HREF="terminal_interface-curses__adb.htm#ref_1768_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvwinchstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinchnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvinchstr()</EM></FONT> +- <FONT COLOR=green><EM>-- We do not inline the Peek procedures</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_107"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1465_14" HREF="terminal_interface-curses__adb.htm#ref_1775_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1465_19" HREF="terminal_interface-curses__adb.htm#ref_1775_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1466_19" HREF="terminal_interface-curses__adb.htm#ref_1776_19">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1467_19" HREF="terminal_interface-curses__adb.htm#ref_1777_19">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: wgetstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: getnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: getstr()</EM></FONT> +- <FONT COLOR=green><EM>-- actually getstr is not supported because that results in buffer</EM></FONT> +- <FONT COLOR=green><EM>-- overflows.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_108"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1476_14" HREF="terminal_interface-curses__adb.htm#ref_1804_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1476_19" HREF="terminal_interface-curses__adb.htm#ref_1805_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1477_19" HREF="terminal_interface-curses__adb.htm#ref_1806_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1478_19" HREF="terminal_interface-curses__adb.htm#ref_1807_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1479_19" HREF="terminal_interface-curses__adb.htm#ref_1808_7">Str</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_1480_19" HREF="terminal_interface-curses__adb.htm#ref_1809_7">Len</A></FONT> : Integer := -1); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvwgetstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvgetnstr()</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: mvgetstr()</EM></FONT> +- <FONT COLOR=green><EM>-- Get is not inlined</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_1493_9">Soft_Label_Key_Format</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1493_35">Three_Two_Three</A></FONT>, +- <FONT COLOR=red><A NAME="ref_1494_35">Four_Four</A></FONT>, +- <FONT COLOR=red><A NAME="ref_1495_35">PC_Style</A></FONT>, <FONT COLOR=green><EM>-- ncurses specific</EM></FONT> +- <FONT COLOR=red><A NAME="ref_1496_35">PC_Style_With_Index</A></FONT>); <FONT COLOR=green><EM>-- "</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_1497_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12; +- <b>type</b> <FONT COLOR=red><A NAME="ref_1498_9">Label_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1498_33">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_1498_39">Centered</A></FONT>, <FONT COLOR=red><A NAME="ref_1498_49">Right</A></FONT>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_109"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1501_14" HREF="terminal_interface-curses__adb.htm#ref_1816_14">Init_Soft_Label_Keys</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Format</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1493_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1493_35">Three_Two_Three</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1501_14">Init_Soft_Label_Keys</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_110"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1507_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1507_34" HREF="terminal_interface-curses__adb.htm#ref_1827_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>; +- <FONT COLOR=red><A NAME="ref_1508_34" HREF="terminal_interface-curses__adb.htm#ref_1828_34">Text</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1509_34" HREF="terminal_interface-curses__adb.htm#ref_1829_34">Fmt</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1498_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1498_33">Left</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></FONT> +- <FONT COLOR=green><EM>-- We do not inline this procedure</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_111"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1514_14" HREF="terminal_interface-curses__adb.htm#ref_1846_14">Refresh_Soft_Label_Keys</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1514_14">Refresh_Soft_Label_Keys</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_112"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1519_14" HREF="terminal_interface-curses__adb.htm#ref_1856_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1519_14">Refresh_Soft_Label_Keys_Without_Update</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_113"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1524_14" HREF="terminal_interface-curses__adb.htm#ref_1866_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1524_34" HREF="terminal_interface-curses__adb.htm#ref_1866_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>; +- <FONT COLOR=red><A NAME="ref_1525_34" HREF="terminal_interface-curses__adb.htm#ref_1867_34">Text</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_114"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1529_13" HREF="terminal_interface-curses__adb.htm#ref_1875_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1529_33" HREF="terminal_interface-curses__adb.htm#ref_1875_33">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_103"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1415_14" HREF="terminal_interface-curses__adb.htm#ref_1685_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1415_20" HREF="terminal_interface-curses__adb.htm#ref_1685_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1416_20" HREF="terminal_interface-curses__adb.htm#ref_1686_20">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1417_20" HREF="terminal_interface-curses__adb.htm#ref_1687_20">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: winstr()</EM></span> ++ <span class="comment"><EM>-- AKA: innstr()</EM></span> ++ <span class="comment"><EM>-- AKA: instr()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_104"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1424_14" HREF="terminal_interface-curses__adb.htm#ref_1714_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1424_20" HREF="terminal_interface-curses__adb.htm#ref_1715_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1425_20" HREF="terminal_interface-curses__adb.htm#ref_1716_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1426_20" HREF="terminal_interface-curses__adb.htm#ref_1717_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1427_20" HREF="terminal_interface-curses__adb.htm#ref_1718_7">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1428_20" HREF="terminal_interface-curses__adb.htm#ref_1719_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvwinstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvinnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvinstr()</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_105"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1439_14" HREF="terminal_interface-curses__adb.htm#ref_1726_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1439_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1440_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Str</A></span> : <b>out</b> Attributed_String; ++ <span class="symbol"><A NAME="ref_1441_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: winchstr()</EM></span> ++ <span class="comment"><EM>-- AKA: inchnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: inchstr()</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_106"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1448_14" HREF="terminal_interface-curses__adb.htm#ref_1763_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1448_20" HREF="terminal_interface-curses__adb.htm#ref_1764_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1449_20" HREF="terminal_interface-curses__adb.htm#ref_1765_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1450_20" HREF="terminal_interface-curses__adb.htm#ref_1766_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1451_20" HREF="terminal_interface-curses__adb.htm#ref_1767_7">Str</A></span> : <b>out</b> Attributed_String; ++ <span class="symbol"><A NAME="ref_1452_20" HREF="terminal_interface-curses__adb.htm#ref_1768_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvwinchstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvinchnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvinchstr()</EM></span> ++ <span class="comment"><EM>-- We do not inline the Peek procedures</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_107"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1464_14" HREF="terminal_interface-curses__adb.htm#ref_1775_14">Get</A></span> (<span class="symbol"><A NAME="ref_1464_19" HREF="terminal_interface-curses__adb.htm#ref_1775_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1465_19" HREF="terminal_interface-curses__adb.htm#ref_1776_19">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1466_19" HREF="terminal_interface-curses__adb.htm#ref_1777_19">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: wgetstr()</EM></span> ++ <span class="comment"><EM>-- AKA: getnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: getstr()</EM></span> ++ <span class="comment"><EM>-- actually getstr is not supported because that results in buffer</EM></span> ++ <span class="comment"><EM>-- overflows.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_108"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1475_14" HREF="terminal_interface-curses__adb.htm#ref_1804_14">Get</A></span> (<span class="symbol"><A NAME="ref_1475_19" HREF="terminal_interface-curses__adb.htm#ref_1805_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1476_19" HREF="terminal_interface-curses__adb.htm#ref_1806_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1477_19" HREF="terminal_interface-curses__adb.htm#ref_1807_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1478_19" HREF="terminal_interface-curses__adb.htm#ref_1808_7">Str</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_1479_19" HREF="terminal_interface-curses__adb.htm#ref_1809_7">Len</A></span> : Integer := -1); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></span> ++ <span class="comment"><EM>-- AKA: mvwgetstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvgetnstr()</EM></span> ++ <span class="comment"><EM>-- AKA: mvgetstr()</EM></span> ++ <span class="comment"><EM>-- Get is not inlined</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_1492_9">Soft_Label_Key_Format</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1492_35">Three_Two_Three</A></span>, ++ <span class="symbol"><A NAME="ref_1493_35">Four_Four</A></span>, ++ <span class="symbol"><A NAME="ref_1494_35">PC_Style</A></span>, <span class="comment"><EM>-- ncurses specific</EM></span> ++ <span class="symbol"><A NAME="ref_1495_35">PC_Style_With_Index</A></span>); <span class="comment"><EM>-- "</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_1496_9">Label_Number</A></span> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12; ++ <b>type</b> <span class="symbol"><A NAME="ref_1497_9">Label_Justification</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1497_33">Left</A></span>, <span class="symbol"><A NAME="ref_1497_39">Centered</A></span>, <span class="symbol"><A NAME="ref_1497_49">Right</A></span>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_109"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1500_14" HREF="terminal_interface-curses__adb.htm#ref_1816_14">Init_Soft_Label_Keys</A></span> ++ (<span class="symbol"><A NAME="ref_1501_7" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Format</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1492_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1492_35">Three_Two_Three</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1500_14">Init_Soft_Label_Keys</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_110"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1506_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Set_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1506_34" HREF="terminal_interface-curses__adb.htm#ref_1827_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Number</A>; ++ <span class="symbol"><A NAME="ref_1507_34" HREF="terminal_interface-curses__adb.htm#ref_1828_34">Text</A></span> : String; ++ <span class="symbol"><A NAME="ref_1508_34" HREF="terminal_interface-curses__adb.htm#ref_1829_34">Fmt</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1497_33">Left</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></span> ++ <span class="comment"><EM>-- We do not inline this procedure</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_111"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1513_14" HREF="terminal_interface-curses__adb.htm#ref_1846_14">Refresh_Soft_Label_Keys</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1513_14">Refresh_Soft_Label_Keys</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_112"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1518_14" HREF="terminal_interface-curses__adb.htm#ref_1856_14">Refresh_Soft_Label_Keys_Without_Update</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1518_14">Refresh_Soft_Label_Keys_Without_Update</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_113"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1523_14" HREF="terminal_interface-curses__adb.htm#ref_1866_14">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1523_34" HREF="terminal_interface-curses__adb.htm#ref_1866_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Number</A>; ++ <span class="symbol"><A NAME="ref_1524_34" HREF="terminal_interface-curses__adb.htm#ref_1867_34">Text</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_114"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1528_13" HREF="terminal_interface-curses__adb.htm#ref_1875_13">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1528_33" HREF="terminal_interface-curses__adb.htm#ref_1875_33">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Number</A>) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Get_Soft_Label_Key); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_115"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1535_14" HREF="terminal_interface-curses__adb.htm#ref_1883_14">Clear_Soft_Label_Keys</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1535_14">Clear_Soft_Label_Keys</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_116"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1540_14" HREF="terminal_interface-curses__adb.htm#ref_1893_14">Restore_Soft_Label_Keys</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1540_14">Restore_Soft_Label_Keys</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_117"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1545_14" HREF="terminal_interface-curses__adb.htm#ref_1903_14">Touch_Soft_Label_Keys</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1545_14">Touch_Soft_Label_Keys</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_118"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1550_14" HREF="terminal_interface-curses__adb.htm#ref_1913_14">Switch_Soft_Label_Key_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1551_7" HREF="terminal_interface-curses__adb.htm#ref_1914_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_1552_7" HREF="terminal_interface-curses__adb.htm#ref_1915_7">On</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: slk_attroff()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Switch_Soft_Label_Key_Attributes</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_119"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1558_14" HREF="terminal_interface-curses__adb.htm#ref_1937_14">Set_Soft_Label_Key_Attributes</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1559_7" HREF="terminal_interface-curses__adb.htm#ref_1938_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_1560_7" HREF="terminal_interface-curses__adb.htm#ref_1939_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1558_14">Set_Soft_Label_Key_Attributes</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_120"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1565_13" HREF="terminal_interface-curses__adb.htm#ref_1953_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_121"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1569_13" HREF="terminal_interface-curses__adb.htm#ref_1963_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_115"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1534_14" HREF="terminal_interface-curses__adb.htm#ref_1883_14">Clear_Soft_Label_Keys</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1534_14">Clear_Soft_Label_Keys</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_116"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1539_14" HREF="terminal_interface-curses__adb.htm#ref_1893_14">Restore_Soft_Label_Keys</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1539_14">Restore_Soft_Label_Keys</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_117"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1544_14" HREF="terminal_interface-curses__adb.htm#ref_1903_14">Touch_Soft_Label_Keys</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1544_14">Touch_Soft_Label_Keys</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_118"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1549_14" HREF="terminal_interface-curses__adb.htm#ref_1913_14">Switch_Soft_Label_Key_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_1550_7" HREF="terminal_interface-curses__adb.htm#ref_1914_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_1551_7" HREF="terminal_interface-curses__adb.htm#ref_1915_7">On</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></span> ++ <span class="comment"><EM>-- AKA: slk_attroff()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1549_14">Switch_Soft_Label_Key_Attributes</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_119"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1557_14" HREF="terminal_interface-curses__adb.htm#ref_1937_14">Set_Soft_Label_Key_Attributes</A></span> ++ (<span class="symbol"><A NAME="ref_1558_7" HREF="terminal_interface-curses__adb.htm#ref_1938_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_1559_7" HREF="terminal_interface-curses__adb.htm#ref_1939_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1557_14">Set_Soft_Label_Key_Attributes</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_120"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1564_13" HREF="terminal_interface-curses__adb.htm#ref_1953_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_121"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1568_13" HREF="terminal_interface-curses__adb.htm#ref_1963_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></span> + <b>pragma</b> Inline (Get_Soft_Label_Key_Attributes); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_122"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1574_14" HREF="terminal_interface-curses__adb.htm#ref_1973_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1574_40" HREF="terminal_interface-curses__adb.htm#ref_1973_40">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1574_14">Set_Soft_Label_Key_Color</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: keybound</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_123"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1588_14" HREF="terminal_interface-curses__adb.htm#ref_1984_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1588_26" HREF="terminal_interface-curses__adb.htm#ref_1984_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>; +- <FONT COLOR=red><A NAME="ref_1589_26" HREF="terminal_interface-curses__adb.htm#ref_1985_26">Enable</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1588_14">Enable_Key</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_124"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1598_14" HREF="terminal_interface-curses__adb.htm#ref_1997_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1598_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Definition</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_1599_26" HREF="terminal_interface-curses__adb.htm#ref_1998_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1598_14">Define_Key</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- | Not implemented : filter, use_env</EM></FONT> +- <FONT COLOR=green><EM>-- | putwin, getwin are in the child package PutWin</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_125"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1612_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1612_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; +- <FONT COLOR=red><A NAME="ref_1613_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT> +- <FONT COLOR=green><EM>-- The external name for a real keystroke.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_126"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1618_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1618_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> +- <FONT COLOR=green><EM>-- We do not inline this routine</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_127"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1624_14" HREF="terminal_interface-curses__adb.htm#ref_2013_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1624_26" HREF="terminal_interface-curses__adb.htm#ref_2013_26">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>; +- <FONT COLOR=red><A NAME="ref_1625_26" HREF="terminal_interface-curses__adb.htm#ref_2014_26">Str</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_128"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1629_13" HREF="terminal_interface-curses__adb.htm#ref_2022_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1629_25" HREF="terminal_interface-curses__adb.htm#ref_2022_25">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_122"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1573_14" HREF="terminal_interface-curses__adb.htm#ref_1973_14">Set_Soft_Label_Key_Color</A></span> (<span class="symbol"><A NAME="ref_1573_40" HREF="terminal_interface-curses__adb.htm#ref_1973_40">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1573_14">Set_Soft_Label_Key_Color</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not Implemented: keybound</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_123"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1587_14" HREF="terminal_interface-curses__adb.htm#ref_1984_14">Enable_Key</A></span> (<span class="symbol"><A NAME="ref_1587_26" HREF="terminal_interface-curses__adb.htm#ref_1984_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>; ++ <span class="symbol"><A NAME="ref_1588_26" HREF="terminal_interface-curses__adb.htm#ref_1985_26">Enable</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1587_14">Enable_Key</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_124"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1597_14" HREF="terminal_interface-curses__adb.htm#ref_1997_14">Define_Key</A></span> (<span class="symbol"><A NAME="ref_1597_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Definition</A></span> : String; ++ <span class="symbol"><A NAME="ref_1598_26" HREF="terminal_interface-curses__adb.htm#ref_1998_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1597_14">Define_Key</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- | Not implemented : filter, use_env</EM></span> ++ <span class="comment"><EM>-- | putwin, getwin are in the child package PutWin</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_125"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1611_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></span> (<span class="symbol"><A NAME="ref_1611_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>; ++ <span class="symbol"><A NAME="ref_1612_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></span> ++ <span class="comment"><EM>-- The external name for a real keystroke.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_126"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1617_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></span> (<span class="symbol"><A NAME="ref_1617_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> ++ <span class="comment"><EM>-- We do not inline this routine</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_127"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1623_14" HREF="terminal_interface-curses__adb.htm#ref_2013_14">Un_Control</A></span> (<span class="symbol"><A NAME="ref_1623_26" HREF="terminal_interface-curses__adb.htm#ref_2013_26">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>; ++ <span class="symbol"><A NAME="ref_1624_26" HREF="terminal_interface-curses__adb.htm#ref_2014_26">Str</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_128"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1628_13" HREF="terminal_interface-curses__adb.htm#ref_2022_13">Un_Control</A></span> (<span class="symbol"><A NAME="ref_1628_25" HREF="terminal_interface-curses__adb.htm#ref_2022_25">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Un_Control); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_129"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1635_14" HREF="terminal_interface-curses__adb.htm#ref_2030_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_1635_28" HREF="terminal_interface-curses__adb.htm#ref_2030_28">Msecs</A></FONT> : Natural); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1635_14">Delay_Output</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_130"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1640_14" HREF="terminal_interface-curses__adb.htm#ref_2040_14">Flush_Input</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1640_14">Flush_Input</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_131"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1649_13" HREF="terminal_interface-curses__adb.htm#ref_2050_13">Baudrate</A></FONT> <b>return</b> Natural; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1649_13">Baudrate</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_132"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1654_13" HREF="terminal_interface-curses__adb.htm#ref_2058_13">Erase_Character</A></FONT> <b>return</b> Character; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1654_13">Erase_Character</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_133"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1659_13" HREF="terminal_interface-curses__adb.htm#ref_2066_13">Kill_Character</A></FONT> <b>return</b> Character; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1659_13">Kill_Character</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_134"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1664_13" HREF="terminal_interface-curses__adb.htm#ref_2074_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1664_13">Has_Insert_Character</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_135"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1669_13" HREF="terminal_interface-curses__adb.htm#ref_2086_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1669_13">Has_Insert_Line</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_136"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1674_13" HREF="terminal_interface-curses__adb.htm#ref_2098_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1674_13">Supported_Attributes</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_137"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1679_14" HREF="terminal_interface-curses__adb.htm#ref_2108_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1679_25" HREF="terminal_interface-curses__adb.htm#ref_2108_25">Name</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_138"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1683_13" HREF="terminal_interface-curses__adb.htm#ref_2116_13">Long_Name</A></FONT> <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_129"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1634_14" HREF="terminal_interface-curses__adb.htm#ref_2030_14">Delay_Output</A></span> (<span class="symbol"><A NAME="ref_1634_28" HREF="terminal_interface-curses__adb.htm#ref_2030_28">Msecs</A></span> : Natural); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1634_14">Delay_Output</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_130"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1639_14" HREF="terminal_interface-curses__adb.htm#ref_2040_14">Flush_Input</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1639_14">Flush_Input</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_131"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1648_13" HREF="terminal_interface-curses__adb.htm#ref_2050_13">Baudrate</A></span> <b>return</b> Natural; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1648_13">Baudrate</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_132"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1653_13" HREF="terminal_interface-curses__adb.htm#ref_2058_13">Erase_Character</A></span> <b>return</b> Character; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1653_13">Erase_Character</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_133"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1658_13" HREF="terminal_interface-curses__adb.htm#ref_2066_13">Kill_Character</A></span> <b>return</b> Character; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1658_13">Kill_Character</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_134"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1663_13" HREF="terminal_interface-curses__adb.htm#ref_2074_13">Has_Insert_Character</A></span> <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1663_13">Has_Insert_Character</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_135"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1668_13" HREF="terminal_interface-curses__adb.htm#ref_2086_13">Has_Insert_Line</A></span> <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1668_13">Has_Insert_Line</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_136"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1673_13" HREF="terminal_interface-curses__adb.htm#ref_2098_13">Supported_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1673_13">Supported_Attributes</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_137"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1678_14" HREF="terminal_interface-curses__adb.htm#ref_2108_14">Long_Name</A></span> (<span class="symbol"><A NAME="ref_1678_25" HREF="terminal_interface-curses__adb.htm#ref_2108_25">Name</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_138"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1682_13" HREF="terminal_interface-curses__adb.htm#ref_2116_13">Long_Name</A></span> <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Long_Name); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_139"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1689_14" HREF="terminal_interface-curses__adb.htm#ref_2124_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1689_29" HREF="terminal_interface-curses__adb.htm#ref_2124_29">Name</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_140"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1693_13" HREF="terminal_interface-curses__adb.htm#ref_2132_13">Terminal_Name</A></FONT> <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_139"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1688_14" HREF="terminal_interface-curses__adb.htm#ref_2124_14">Terminal_Name</A></span> (<span class="symbol"><A NAME="ref_1688_29" HREF="terminal_interface-curses__adb.htm#ref_2124_29">Name</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_140"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1692_13" HREF="terminal_interface-curses__adb.htm#ref_2132_13">Terminal_Name</A></span> <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Terminal_Name); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- COLOR_PAIR</EM></FONT> +- <FONT COLOR=green><EM>-- COLOR_PAIR(n) in C is the same as</EM></FONT> +- <FONT COLOR=green><EM>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></FONT> +- <FONT COLOR=green><EM>-- In C you often see something like c = c | COLOR_PAIR(n);</EM></FONT> +- <FONT COLOR=green><EM>-- This is equivalent to c.Color := n;</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_141"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1709_14">Start_Color</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- COLOR_PAIR</EM></span> ++ <span class="comment"><EM>-- COLOR_PAIR(n) in C is the same as</EM></span> ++ <span class="comment"><EM>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></span> ++ <span class="comment"><EM>-- In C you often see something like c = c | COLOR_PAIR(n);</EM></span> ++ <span class="comment"><EM>-- This is equivalent to c.Color := n;</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_141"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1708_14">Start_Color</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></span> + <b>pragma</b> Import (C, Start_Color, "start_color"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_142"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1714_14" HREF="terminal_interface-curses__adb.htm#ref_2140_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_1714_25" HREF="terminal_interface-curses__adb.htm#ref_2140_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>; +- <FONT COLOR=red><A NAME="ref_1715_25" HREF="terminal_interface-curses__adb.htm#ref_2141_25">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_1716_25" HREF="terminal_interface-curses__adb.htm#ref_2142_25">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1714_14">Init_Pair</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_143"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1721_14" HREF="terminal_interface-curses__adb.htm#ref_2162_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1721_28" HREF="terminal_interface-curses__adb.htm#ref_2162_28">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; +- <FONT COLOR=red><A NAME="ref_1722_28" HREF="terminal_interface-curses__adb.htm#ref_2163_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_1723_28" HREF="terminal_interface-curses__adb.htm#ref_2164_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1721_14">Pair_Content</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_144"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1728_13" HREF="terminal_interface-curses__adb.htm#ref_2182_13">Has_Colors</A></FONT> <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1728_13">Has_Colors</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_145"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1733_14" HREF="terminal_interface-curses__adb.htm#ref_2194_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1733_26" HREF="terminal_interface-curses__adb.htm#ref_2194_26">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_1734_26" HREF="terminal_interface-curses__adb.htm#ref_2195_26">Red</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_1735_26" HREF="terminal_interface-curses__adb.htm#ref_2196_26">Green</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_1736_26" HREF="terminal_interface-curses__adb.htm#ref_2197_26">Blue</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1733_14">Init_Color</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_146"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1741_13" HREF="terminal_interface-curses__adb.htm#ref_2211_13">Can_Change_Color</A></FONT> <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1741_13">Can_Change_Color</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_147"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1746_14" HREF="terminal_interface-curses__adb.htm#ref_2223_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1746_29" HREF="terminal_interface-curses__adb.htm#ref_2223_29">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; +- <FONT COLOR=red><A NAME="ref_1747_29" HREF="terminal_interface-curses__adb.htm#ref_2224_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_1748_29" HREF="terminal_interface-curses__adb.htm#ref_2225_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; +- <FONT COLOR=red><A NAME="ref_1749_29" HREF="terminal_interface-curses__adb.htm#ref_2226_29">Blue</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1746_14">Color_Content</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Not implemented: getsyx, setsyx</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_1758_9">Curses_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1758_25">Curses</A></FONT>, <FONT COLOR=red><A NAME="ref_1758_33">Shell</A></FONT>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_148"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1761_14" HREF="terminal_interface-curses__adb.htm#ref_2247_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1761_32" HREF="terminal_interface-curses__adb.htm#ref_2247_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: def_shell_mode()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1761_14">Save_Curses_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_149"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1767_14" HREF="terminal_interface-curses__adb.htm#ref_2265_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1767_33" HREF="terminal_interface-curses__adb.htm#ref_2265_33">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: reset_shell_mode()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1767_14">Reset_Curses_Mode</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_150"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1773_14" HREF="terminal_interface-curses__adb.htm#ref_2283_14">Save_Terminal_State</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1773_14">Save_Terminal_State</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_151"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1778_14" HREF="terminal_interface-curses__adb.htm#ref_2293_14">Reset_Terminal_State</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1778_14">Reset_Terminal_State</A>); +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_1782_9">Stdscr_Init_Proc</A></FONT> <b>is</b> <b>access</b> +- <b>function</b> (<FONT COLOR=red><A NAME="ref_1783_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_1784_17">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> Integer; +- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>); +- <FONT COLOR=green><EM>-- N.B.: the return value is actually ignored, but it seems to be</EM></FONT> +- <FONT COLOR=green><EM>-- a good practice to return 0 if you think all went fine</EM></FONT> +- <FONT COLOR=green><EM>-- and -1 otherwise.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_152"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1791_14" HREF="terminal_interface-curses__adb.htm#ref_2303_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_1791_29" HREF="terminal_interface-curses__adb.htm#ref_2303_29">Lines</A></FONT> : Integer; +- <FONT COLOR=red><A NAME="ref_1792_29" HREF="terminal_interface-curses__adb.htm#ref_2304_29">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></FONT> +- <FONT COLOR=green><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></FONT> +- <FONT COLOR=green><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></FONT> +- <FONT COLOR=green><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></FONT> +- <FONT COLOR=green><EM>-- uses the sign of Lines to remove a single line from bottom or top.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1791_14">Rip_Off_Lines</A>); +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_1800_9">Cursor_Visibility</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1800_31">Invisible</A></FONT>, <FONT COLOR=red><A NAME="ref_1800_42">Normal</A></FONT>, <FONT COLOR=red><A NAME="ref_1800_50">Very_Visible</A></FONT>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_153"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1803_14" HREF="terminal_interface-curses__adb.htm#ref_2315_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_1803_37" HREF="terminal_interface-curses__adb.htm#ref_2315_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1803_14">Set_Cursor_Visibility</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_154"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1808_14" HREF="terminal_interface-curses__adb.htm#ref_2328_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_1808_33" HREF="terminal_interface-curses__adb.htm#ref_2328_33">Ms</A></FONT> : Natural); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Nap_Milli_Seconds</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Some useful helpers.</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_1815_9">Transform_Direction</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1815_33">From_Screen</A></FONT>, <FONT COLOR=red><A NAME="ref_1815_46">To_Screen</A></FONT>); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1816_14" HREF="terminal_interface-curses__adb.htm#ref_2396_14">Transform_Coordinates</A></FONT> +- (<FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1818_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_1819_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_1820_7" HREF="terminal_interface-curses__adb.htm#ref_2400_7">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1815_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1815_33">From_Screen</A>); +- <FONT COLOR=green><EM>-- This procedure transforms screen coordinates into coordinates relative</EM></FONT> +- <FONT COLOR=green><EM>-- to the window and vice versa, depending on the Dir parameter.</EM></FONT> +- <FONT COLOR=green><EM>-- Screen coordinates are the position information for the physical device.</EM></FONT> +- <FONT COLOR=green><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></FONT> +- <FONT COLOR=green><EM>-- Window or if you pass the Null_Window as argument.</EM></FONT> +- <FONT COLOR=green><EM>-- We do not inline this procedure</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_155"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1833_14" HREF="terminal_interface-curses__adb.htm#ref_2425_14">Use_Default_Colors</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1833_14">Use_Default_Colors</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_156"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1838_14" HREF="terminal_interface-curses__adb.htm#ref_2435_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_1838_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>; +- <FONT COLOR=red><A NAME="ref_1839_37" HREF="terminal_interface-curses__adb.htm#ref_2436_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1838_14">Assume_Default_Colors</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_157"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1848_13" HREF="terminal_interface-curses__adb.htm#ref_2450_13">Curses_Version</A></FONT> <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_158"#2|</EM></FONT> +- <FONT COLOR=green><EM>-- The returnvalue is the previous setting of the flag</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1853_13" HREF="terminal_interface-curses__adb.htm#ref_2473_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_1853_33" HREF="terminal_interface-curses__adb.htm#ref_2473_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_159"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1861_14" HREF="terminal_interface-curses__adb.htm#ref_2459_14">Curses_Free_All</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_160"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1869_14" HREF="terminal_interface-curses__adb.htm#ref_2488_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1869_35" HREF="terminal_interface-curses__adb.htm#ref_2488_35">Filename</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_161"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1873_14" HREF="terminal_interface-curses__adb.htm#ref_2501_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1873_40" HREF="terminal_interface-curses__adb.htm#ref_2501_40">Filename</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_162"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1877_14" HREF="terminal_interface-curses__adb.htm#ref_2514_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1877_37" HREF="terminal_interface-curses__adb.htm#ref_2514_37">Filename</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_163"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1881_14" HREF="terminal_interface-curses__adb.htm#ref_2527_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1881_31" HREF="terminal_interface-curses__adb.htm#ref_2527_31">Filename</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented: mcprint</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented: printw, wprintw, mvprintw, mvwprintw, vwprintw,</EM></FONT> +- <FONT COLOR=green><EM>-- vw_printw</EM></FONT> +- <FONT COLOR=green><EM>-- Please use the Ada style Text_IO child packages for formatted</EM></FONT> +- <FONT COLOR=green><EM>-- printing. It does not make a lot of sense to map the printf style</EM></FONT> +- <FONT COLOR=green><EM>-- C functions to Ada.</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: resizeterm</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_164"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1913_14" HREF="terminal_interface-curses__adb.htm#ref_2540_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_1913_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_1914_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_1915_22" HREF="terminal_interface-curses__adb.htm#ref_2542_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_142"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1713_14" HREF="terminal_interface-curses__adb.htm#ref_2140_14">Init_Pair</A></span> (<span class="symbol"><A NAME="ref_1713_25" HREF="terminal_interface-curses__adb.htm#ref_2140_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>; ++ <span class="symbol"><A NAME="ref_1714_25" HREF="terminal_interface-curses__adb.htm#ref_2141_25">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_1715_25" HREF="terminal_interface-curses__adb.htm#ref_2142_25">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Init_Pair</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_143"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1720_14" HREF="terminal_interface-curses__adb.htm#ref_2162_14">Pair_Content</A></span> (<span class="symbol"><A NAME="ref_1720_28" HREF="terminal_interface-curses__adb.htm#ref_2162_28">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>; ++ <span class="symbol"><A NAME="ref_1721_28" HREF="terminal_interface-curses__adb.htm#ref_2163_28">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_1722_28" HREF="terminal_interface-curses__adb.htm#ref_2164_28">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1720_14">Pair_Content</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_144"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1727_13" HREF="terminal_interface-curses__adb.htm#ref_2182_13">Has_Colors</A></span> <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1727_13">Has_Colors</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_145"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1732_14" HREF="terminal_interface-curses__adb.htm#ref_2194_14">Init_Color</A></span> (<span class="symbol"><A NAME="ref_1732_26" HREF="terminal_interface-curses__adb.htm#ref_2194_26">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_1733_26" HREF="terminal_interface-curses__adb.htm#ref_2195_26">Red</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_1734_26" HREF="terminal_interface-curses__adb.htm#ref_2196_26">Green</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_1735_26" HREF="terminal_interface-curses__adb.htm#ref_2197_26">Blue</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1732_14">Init_Color</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_146"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1740_13" HREF="terminal_interface-curses__adb.htm#ref_2211_13">Can_Change_Color</A></span> <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1740_13">Can_Change_Color</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_147"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1745_14" HREF="terminal_interface-curses__adb.htm#ref_2223_14">Color_Content</A></span> (<span class="symbol"><A NAME="ref_1745_29" HREF="terminal_interface-curses__adb.htm#ref_2223_29">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>; ++ <span class="symbol"><A NAME="ref_1746_29" HREF="terminal_interface-curses__adb.htm#ref_2224_29">Red</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_1747_29" HREF="terminal_interface-curses__adb.htm#ref_2225_29">Green</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>; ++ <span class="symbol"><A NAME="ref_1748_29" HREF="terminal_interface-curses__adb.htm#ref_2226_29">Blue</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1745_14">Color_Content</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Not implemented: getsyx, setsyx</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_1757_9">Curses_Mode</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1757_25">Curses</A></span>, <span class="symbol"><A NAME="ref_1757_33">Shell</A></span>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_148"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1760_14" HREF="terminal_interface-curses__adb.htm#ref_2247_14">Save_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_1760_32" HREF="terminal_interface-curses__adb.htm#ref_2247_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1757_9">Curses_Mode</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></span> ++ <span class="comment"><EM>-- AKA: def_shell_mode()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1760_14">Save_Curses_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_149"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1766_14" HREF="terminal_interface-curses__adb.htm#ref_2265_14">Reset_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_1766_33" HREF="terminal_interface-curses__adb.htm#ref_2265_33">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1757_9">Curses_Mode</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></span> ++ <span class="comment"><EM>-- AKA: reset_shell_mode()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1766_14">Reset_Curses_Mode</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_150"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1772_14" HREF="terminal_interface-curses__adb.htm#ref_2283_14">Save_Terminal_State</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1772_14">Save_Terminal_State</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_151"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1777_14" HREF="terminal_interface-curses__adb.htm#ref_2293_14">Reset_Terminal_State</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1777_14">Reset_Terminal_State</A>); ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_1781_9">Stdscr_Init_Proc</A></span> <b>is</b> <b>access</b> ++ <b>function</b> (<span class="symbol"><A NAME="ref_1782_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_1783_17">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> Integer; ++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1781_9">Stdscr_Init_Proc</A>); ++ <span class="comment"><EM>-- N.B.: the return value is actually ignored, but it seems to be</EM></span> ++ <span class="comment"><EM>-- a good practice to return 0 if you think all went fine</EM></span> ++ <span class="comment"><EM>-- and -1 otherwise.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_152"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1790_14" HREF="terminal_interface-curses__adb.htm#ref_2303_14">Rip_Off_Lines</A></span> (<span class="symbol"><A NAME="ref_1790_29" HREF="terminal_interface-curses__adb.htm#ref_2303_29">Lines</A></span> : Integer; ++ <span class="symbol"><A NAME="ref_1791_29" HREF="terminal_interface-curses__adb.htm#ref_2304_29">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1781_9">Stdscr_Init_Proc</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></span> ++ <span class="comment"><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></span> ++ <span class="comment"><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></span> ++ <span class="comment"><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></span> ++ <span class="comment"><EM>-- uses the sign of Lines to remove a single line from bottom or top.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1790_14">Rip_Off_Lines</A>); ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_1799_9">Cursor_Visibility</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1799_31">Invisible</A></span>, <span class="symbol"><A NAME="ref_1799_42">Normal</A></span>, <span class="symbol"><A NAME="ref_1799_50">Very_Visible</A></span>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_153"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1802_14" HREF="terminal_interface-curses__adb.htm#ref_2315_14">Set_Cursor_Visibility</A></span> (<span class="symbol"><A NAME="ref_1802_37" HREF="terminal_interface-curses__adb.htm#ref_2315_37">Visibility</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1799_9">Cursor_Visibility</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1802_14">Set_Cursor_Visibility</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_154"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1807_14" HREF="terminal_interface-curses__adb.htm#ref_2328_14">Nap_Milli_Seconds</A></span> (<span class="symbol"><A NAME="ref_1807_33" HREF="terminal_interface-curses__adb.htm#ref_2328_33">Ms</A></span> : Natural); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1807_14">Nap_Milli_Seconds</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Some useful helpers.</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_1814_9">Transform_Direction</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1814_33">From_Screen</A></span>, <span class="symbol"><A NAME="ref_1814_46">To_Screen</A></span>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1815_14" HREF="terminal_interface-curses__adb.htm#ref_2396_14">Transform_Coordinates</A></span> ++ (<span class="symbol"><A NAME="ref_1816_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1817_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Line</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_1818_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Column</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_1819_7" HREF="terminal_interface-curses__adb.htm#ref_2400_7">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1814_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1814_33">From_Screen</A>); ++ <span class="comment"><EM>-- This procedure transforms screen coordinates into coordinates relative</EM></span> ++ <span class="comment"><EM>-- to the window and vice versa, depending on the Dir parameter.</EM></span> ++ <span class="comment"><EM>-- Screen coordinates are the position information for the physical device.</EM></span> ++ <span class="comment"><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></span> ++ <span class="comment"><EM>-- Window or if you pass the Null_Window as argument.</EM></span> ++ <span class="comment"><EM>-- We do not inline this procedure</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_155"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1832_14" HREF="terminal_interface-curses__adb.htm#ref_2425_14">Use_Default_Colors</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1832_14">Use_Default_Colors</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_156"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1837_14" HREF="terminal_interface-curses__adb.htm#ref_2435_14">Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_1837_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>; ++ <span class="symbol"><A NAME="ref_1838_37" HREF="terminal_interface-curses__adb.htm#ref_2436_37">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1837_14">Assume_Default_Colors</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_157"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1847_13" HREF="terminal_interface-curses__adb.htm#ref_2450_13">Curses_Version</A></span> <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_158"#2|</EM></span> ++ <span class="comment"><EM>-- The returnvalue is the previous setting of the flag</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1852_13" HREF="terminal_interface-curses__adb.htm#ref_2473_13">Use_Extended_Names</A></span> (<span class="symbol"><A NAME="ref_1852_33" HREF="terminal_interface-curses__adb.htm#ref_2473_33">Enable</A></span> : Boolean) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_159"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1860_14" HREF="terminal_interface-curses__adb.htm#ref_2459_14">Curses_Free_All</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_160"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1868_14" HREF="terminal_interface-curses__adb.htm#ref_2488_14">Screen_Dump_To_File</A></span> (<span class="symbol"><A NAME="ref_1868_35" HREF="terminal_interface-curses__adb.htm#ref_2488_35">Filename</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_161"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1872_14" HREF="terminal_interface-curses__adb.htm#ref_2501_14">Screen_Restore_From_File</A></span> (<span class="symbol"><A NAME="ref_1872_40" HREF="terminal_interface-curses__adb.htm#ref_2501_40">Filename</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_162"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1876_14" HREF="terminal_interface-curses__adb.htm#ref_2514_14">Screen_Init_From_File</A></span> (<span class="symbol"><A NAME="ref_1876_37" HREF="terminal_interface-curses__adb.htm#ref_2514_37">Filename</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_163"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1880_14" HREF="terminal_interface-curses__adb.htm#ref_2527_14">Screen_Set_File</A></span> (<span class="symbol"><A NAME="ref_1880_31" HREF="terminal_interface-curses__adb.htm#ref_2527_31">Filename</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not implemented: mcprint</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not implemented: printw, wprintw, mvprintw, mvwprintw, vwprintw,</EM></span> ++ <span class="comment"><EM>-- vw_printw</EM></span> ++ <span class="comment"><EM>-- Please use the Ada style Text_IO child packages for formatted</EM></span> ++ <span class="comment"><EM>-- printing. It does not make a lot of sense to map the printf style</EM></span> ++ <span class="comment"><EM>-- C functions to Ada.</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not Implemented: resizeterm</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_164"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1912_14" HREF="terminal_interface-curses__adb.htm#ref_2540_14">Resize</A></span> (<span class="symbol"><A NAME="ref_1912_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_1913_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_1914_22" HREF="terminal_interface-curses__adb.htm#ref_2542_22">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></span> + + <b>private</b> + <b>type</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; + <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := 0; + +- <FONT COLOR=green><EM>-- The next constants are generated and may be different on your</EM></FONT> +- <FONT COLOR=green><EM>-- architecture.</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=red><A NAME="ref_1925_4">Sizeof_bool</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- bool</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_1926_9">Curses_Bool</A></FONT> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'Size; +- <FONT COLOR=red><A NAME="ref_1927_4">Curses_Bool_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := 0; ++ <span class="comment"><EM>-- The next constants are generated and may be different on your</EM></span> ++ <span class="comment"><EM>-- architecture.</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="symbol"><A NAME="ref_1924_4">Sizeof_bool</A></span> : <b>constant</b> Natural := 1; <span class="comment"><EM>-- bool</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_1925_9">Curses_Bool</A></span> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'Size; ++ <span class="symbol"><A NAME="ref_1926_4">Curses_Bool_False</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> := 0; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-aux__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-aux__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-aux__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-aux__adb.htm 2014-09-01 16:33:22.272791983 +0200 +@@ -1,58 +1,70 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-aux.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-aux.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_41_40" HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A></FONT> <b>is</b> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Some helpers</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_44_27" HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A></FONT> : chars_ptr; +- <FONT COLOR=red><A NAME="ref_45_27" HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A></FONT> : <b>out</b> String) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Aux --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_41_40" HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A></span> <b>is</b> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Some helpers</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_44_14" HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A></span> (<span class="symbol"><A NAME="ref_44_27" HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A></span> : chars_ptr; ++ <span class="symbol"><A NAME="ref_45_27" HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A></span> : <b>out</b> String) + <b>is</b> +- <FONT COLOR=green><EM>-- Fill the string with the characters referenced by the</EM></FONT> +- <FONT COLOR=green><EM>-- chars_ptr.</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=red><A NAME="ref_50_7">Len</A></FONT> : Natural; ++ <span class="comment"><EM>-- Fill the string with the characters referenced by the</EM></span> ++ <span class="comment"><EM>-- chars_ptr.</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="symbol"><A NAME="ref_50_7">Len</A></span> : Natural; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A> /= Null_Ptr <b>then</b> + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A>)); +@@ -60,7 +72,7 @@ + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; + <b>declare</b> +- <FONT COLOR=red><A NAME="ref_58_13">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>); ++ <span class="symbol"><A NAME="ref_58_13">S</A></span> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>); + <b>begin</b> + <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A>); + <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A>'<b>Range</b>); +@@ -75,9 +87,9 @@ + + <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_73_13" HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_73_26" HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A></FONT> : chars_ptr) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_73_13" HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A></span> (<span class="symbol"><A NAME="ref_73_26" HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A></span> : chars_ptr) <b>return</b> String + <b>is</b> +- <FONT COLOR=red><A NAME="ref_75_7">Len</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_75_7">Len</A></span> : Natural; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A> /= Null_Ptr <b>then</b> + <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>)); +@@ -85,7 +97,7 @@ + <b>return</b> ""; + <b>else</b> + <b>declare</b> +- <FONT COLOR=red><A NAME="ref_83_16">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A>); ++ <span class="symbol"><A NAME="ref_83_16">S</A></span> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A>); + <b>begin</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>); + <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>; +@@ -96,25 +108,25 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_94_14" HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_94_29" HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A></span> (<span class="symbol"><A NAME="ref_94_29" HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>) + <b>is</b> + <b>begin</b> + <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A> <b>is</b> + <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> =&gt; <b>null</b>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_4">E_System_Error</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_391_4">Eti_System_Error</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_4">E_Bad_Argument</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_392_4">Eti_Bad_Argument</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_4">E_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_393_4">Eti_Posted</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_4">E_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_394_4">Eti_Connected</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_4">E_Bad_State</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_395_4">Eti_Bad_State</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_4">E_No_Room</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_396_4">Eti_No_Room</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_4">E_Not_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_397_4">Eti_Not_Posted</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_398_4">Eti_Unknown_Command</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_399_4">Eti_No_Match</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_400_4">Eti_Not_Selectable</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_4">E_Not_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_401_4">Eti_Not_Connected</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_402_4">Eti_Request_Denied</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_403_4">Eti_Invalid_Field</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_94_4">E_Current</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_404_4">Eti_Current</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_4">E_System_Error</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_4">Eti_System_Error</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_4">E_Bad_Argument</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_391_4">Eti_Bad_Argument</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_4">E_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_392_4">Eti_Posted</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_4">E_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_393_4">Eti_Connected</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_4">E_Bad_State</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_394_4">Eti_Bad_State</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_4">E_No_Room</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_395_4">Eti_No_Room</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_4">E_Not_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_396_4">Eti_Not_Posted</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_397_4">Eti_Unknown_Command</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_398_4">Eti_No_Match</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_399_4">Eti_Not_Selectable</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_4">E_Not_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_400_4">Eti_Not_Connected</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_401_4">Eti_Request_Denied</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_402_4">Eti_Invalid_Field</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_94_4">E_Current</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_403_4">Eti_Current</A>; + <b>end</b> <b>case</b>; + <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A>; + +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-aux__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-aux__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-aux__ads.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-aux__ads.htm 2014-09-01 16:33:22.272791983 +0200 +@@ -1,130 +1,142 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-aux.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-aux.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.18 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- curses binding.</EM></FONT> +-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT> +-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Aux --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.18 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- curses binding.</EM></span> ++<span class="comment"><EM>-- This module is generated. Please don't change it manually!</EM></span> ++<span class="comment"><EM>-- Run the generator instead.</EM></span> ++<span class="comment"><EM>-- |</EM></span> + <b>with</b> System; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; + <b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A>; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_50_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_50_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>); + +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_55_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Short</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Size_T</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_UInt</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_ULong</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_Char_Ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr; +- <b>type</b> <FONT COLOR=red><A NAME="ref_62_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> System.Address; +- <b>type</b> <FONT COLOR=red><A NAME="ref_63_12">C_Chtype</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_64_12">C_AttrType</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>; +- +- <FONT COLOR=green><EM>-- This is how those constants are defined in ncurses. I see them also</EM></FONT> +- <FONT COLOR=green><EM>-- exactly like this in all ETI implementations I ever tested. So it</EM></FONT> +- <FONT COLOR=green><EM>-- could be that this is quite general, but please check with your curses.</EM></FONT> +- <FONT COLOR=green><EM>-- This is critical, because curses sometime mixes Boolean returns with</EM></FONT> +- <FONT COLOR=green><EM>-- returning an error status.</EM></FONT> +- <FONT COLOR=red><A NAME="ref_71_4">Curses_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0; +- <FONT COLOR=red><A NAME="ref_72_4">Curses_Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1; +- +- <FONT COLOR=red><A NAME="ref_74_4">Curses_True</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1; +- <FONT COLOR=red><A NAME="ref_75_4">Curses_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0; +- +- <FONT COLOR=green><EM>-- Eti_Error: type for error codes returned by the menu and form subsystem</EM></FONT> +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Eti_Error</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> <b>range</b> -14 .. 0; +- +- <FONT COLOR=red><A NAME="ref_80_4">E_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0; +- <FONT COLOR=red><A NAME="ref_81_4">E_System_Error</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1; +- <FONT COLOR=red><A NAME="ref_82_4">E_Bad_Argument</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2; +- <FONT COLOR=red><A NAME="ref_83_4">E_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3; +- <FONT COLOR=red><A NAME="ref_84_4">E_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4; +- <FONT COLOR=red><A NAME="ref_85_4">E_Bad_State</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5; +- <FONT COLOR=red><A NAME="ref_86_4">E_No_Room</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6; +- <FONT COLOR=red><A NAME="ref_87_4">E_Not_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7; +- <FONT COLOR=red><A NAME="ref_88_4">E_Unknown_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8; +- <FONT COLOR=red><A NAME="ref_89_4">E_No_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9; +- <FONT COLOR=red><A NAME="ref_90_4">E_Not_Selectable</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10; +- <FONT COLOR=red><A NAME="ref_91_4">E_Not_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11; +- <FONT COLOR=red><A NAME="ref_92_4">E_Request_Denied</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12; +- <FONT COLOR=red><A NAME="ref_93_4">E_Invalid_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13; +- <FONT COLOR=red><A NAME="ref_94_4">E_Current</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -14; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-aux__adb.htm#ref_94_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_96_29" HREF="terminal_interface-curses-aux__adb.htm#ref_94_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>); +- <FONT COLOR=green><EM>-- Dispatch the error code and raise the appropriate exception</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Some helpers</EM></FONT> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_55_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_56_12">C_Short</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_57_12">C_Long_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.long; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_58_12">C_Size_T</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.size_t; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_59_12">C_UInt</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_60_12">C_ULong</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_long; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_61_12">C_Char_Ptr</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr; ++ <b>type</b> <span class="symbol"><A NAME="ref_62_12">C_Void_Ptr</A></span> <b>is</b> <b>new</b> System.Address; ++ <b>type</b> <span class="symbol"><A NAME="ref_63_12">C_Chtype</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_59_12">C_UInt</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_64_12">C_AttrType</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_59_12">C_UInt</A>; ++ ++ <span class="comment"><EM>-- This is how those constants are defined in ncurses. I see them also</EM></span> ++ <span class="comment"><EM>-- exactly like this in all ETI implementations I ever tested. So it</EM></span> ++ <span class="comment"><EM>-- could be that this is quite general, but please check with your curses.</EM></span> ++ <span class="comment"><EM>-- This is critical, because curses sometime mixes Boolean returns with</EM></span> ++ <span class="comment"><EM>-- returning an error status.</EM></span> ++ <span class="symbol"><A NAME="ref_71_4">Curses_Ok</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0; ++ <span class="symbol"><A NAME="ref_72_4">Curses_Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1; ++ ++ <span class="symbol"><A NAME="ref_74_4">Curses_True</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1; ++ <span class="symbol"><A NAME="ref_75_4">Curses_False</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0; ++ ++ <span class="comment"><EM>-- Eti_Error: type for error codes returned by the menu and form subsystem</EM></span> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_78_12">Eti_Error</A></span> <b>is</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> <b>range</b> -14 .. 0; ++ ++ <span class="symbol"><A NAME="ref_80_4">E_Ok</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0; ++ <span class="symbol"><A NAME="ref_81_4">E_System_Error</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1; ++ <span class="symbol"><A NAME="ref_82_4">E_Bad_Argument</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2; ++ <span class="symbol"><A NAME="ref_83_4">E_Posted</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3; ++ <span class="symbol"><A NAME="ref_84_4">E_Connected</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4; ++ <span class="symbol"><A NAME="ref_85_4">E_Bad_State</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5; ++ <span class="symbol"><A NAME="ref_86_4">E_No_Room</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6; ++ <span class="symbol"><A NAME="ref_87_4">E_Not_Posted</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7; ++ <span class="symbol"><A NAME="ref_88_4">E_Unknown_Command</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8; ++ <span class="symbol"><A NAME="ref_89_4">E_No_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9; ++ <span class="symbol"><A NAME="ref_90_4">E_Not_Selectable</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10; ++ <span class="symbol"><A NAME="ref_91_4">E_Not_Connected</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11; ++ <span class="symbol"><A NAME="ref_92_4">E_Request_Denied</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12; ++ <span class="symbol"><A NAME="ref_93_4">E_Invalid_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13; ++ <span class="symbol"><A NAME="ref_94_4">E_Current</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -14; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_96_14" HREF="terminal_interface-curses-aux__adb.htm#ref_94_14">Eti_Exception</A></span> (<span class="symbol"><A NAME="ref_96_29" HREF="terminal_interface-curses-aux__adb.htm#ref_94_29">Code</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>); ++ <span class="comment"><EM>-- Dispatch the error code and raise the appropriate exception</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Some helpers</EM></span> + <b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b> + <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>, +- <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); ++ <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); + <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b> +- <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>, ++ <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>, + <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>); + + <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b> +- <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>, ++ <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>, + <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>); + + <b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b> + <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>, +- <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>); ++ <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-aux__adb.htm#ref_44_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_116_27" HREF="terminal_interface-curses-aux__adb.htm#ref_44_27">Cp</A></FONT> : chars_ptr; +- <FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Str</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- Fill the Str parameter with the string denoted by the chars_ptr</EM></FONT> +- <FONT COLOR=green><EM>-- C-Style string.</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-aux__adb.htm#ref_44_14">Fill_String</A></span> (<span class="symbol"><A NAME="ref_116_27" HREF="terminal_interface-curses-aux__adb.htm#ref_44_27">Cp</A></span> : chars_ptr; ++ <span class="symbol"><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Str</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- Fill the Str parameter with the string denoted by the chars_ptr</EM></span> ++ <span class="comment"><EM>-- C-Style string.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses-aux__adb.htm#ref_73_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_121_26" HREF="terminal_interface-curses-aux__adb.htm#ref_73_26">Cp</A></FONT> : chars_ptr) <b>return</b> String; +- <FONT COLOR=green><EM>-- Same but as function.</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_121_13" HREF="terminal_interface-curses-aux__adb.htm#ref_73_13">Fill_String</A></span> (<span class="symbol"><A NAME="ref_121_26" HREF="terminal_interface-curses-aux__adb.htm#ref_73_26">Cp</A></span> : chars_ptr) <b>return</b> String; ++ <span class="comment"><EM>-- Same but as function.</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms__adb.htm 2014-09-01 16:33:22.285792004 +0200 +@@ -1,71 +1,83 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.28 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:37:32 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.28 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 23:37:32 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Unchecked_Deallocation; + <b>with</b> Ada.Unchecked_Conversion; + +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers; + + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_51_40" HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_51_40" HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A></span> <b>is</b> + + <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + + <b>type</b> C_Field_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; + <b>package</b> F_Array <b>is</b> <b>new</b> +- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); ++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></span> + + <b>function</b> FOS_2_CInt <b>is</b> <b>new</b> + Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>, +@@ -76,467 +88,467 @@ + <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>); + + <b>function</b> FrmOS_2_CInt <b>is</b> <b>new</b> +- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>, ++ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>, + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>); + + <b>function</b> CInt_2_FrmOS <b>is</b> <b>new</b> + Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>, +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_81_14" HREF="terminal_interface-curses-forms__ads.htm#ref_280_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_81_28" HREF="terminal_interface-curses-forms__ads.htm#ref_280_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>; +- <FONT COLOR=red><A NAME="ref_82_33" HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Name</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_81_14" HREF="terminal_interface-curses-forms__ads.htm#ref_278_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_81_28" HREF="terminal_interface-curses-forms__ads.htm#ref_278_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>; ++ <span class="symbol"><A NAME="ref_82_33" HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Name</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_84_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_84_35" HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_84_16">Form_Request_Name</A></span> (<span class="symbol"><A NAME="ref_84_35" HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Form_Request_Name, "form_request_name"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_280_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Name</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_280_14">Request_Name</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_278_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Name</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_278_14">Request_Name</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_90_13" HREF="terminal_interface-curses-forms__ads.htm#ref_283_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_27" HREF="terminal_interface-curses-forms__ads.htm#ref_283_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_90_13" HREF="terminal_interface-curses-forms__ads.htm#ref_281_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_90_27" HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_92_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_92_35" HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_92_16">Form_Request_Name</A></span> (<span class="symbol"><A NAME="ref_92_35" HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Form_Request_Name, "form_request_name"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_283_28">Key</A>))); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_283_14">Request_Name</A>; +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_new.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_108_13" HREF="terminal_interface-curses-forms__ads.htm#ref_297_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_108_21" HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_109_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_110_21" HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_111_21" HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_112_21" HREF="terminal_interface-curses-forms__ads.htm#ref_301_21">Off_Screen</A></FONT> : Natural := 0; +- <FONT COLOR=red><A NAME="ref_113_21" HREF="terminal_interface-curses-forms__ads.htm#ref_302_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Key</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_281_14">Request_Name</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_new.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_108_13" HREF="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</A></span> (<span class="symbol"><A NAME="ref_108_21" HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_109_21" HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_110_21" HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_111_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_112_21" HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Off_Screen</A></span> : Natural := 0; ++ <span class="symbol"><A NAME="ref_113_21" HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) + <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_116_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="ref_116_26" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">H</A></FONT>, <FONT COLOR=red><A NAME="ref_116_29" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">W</A></FONT>, <FONT COLOR=red><A NAME="ref_116_32" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">T</A></FONT>, <FONT COLOR=red><A NAME="ref_116_35" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_116_38" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">O</A></FONT>, <FONT COLOR=red><A NAME="ref_116_41" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_116_16">Newfield</A></span> (<span class="symbol"><A NAME="ref_116_26" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">H</A></span>, <span class="symbol"><A NAME="ref_116_29" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">W</A></span>, <span class="symbol"><A NAME="ref_116_32" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">T</A></span>, <span class="symbol"><A NAME="ref_116_35" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">L</A></span>, <span class="symbol"><A NAME="ref_116_38" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">O</A></span>, <span class="symbol"><A NAME="ref_116_41" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">M</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; + <b>pragma</b> Import (C, Newfield, "new_field"); +- <FONT COLOR=red><A NAME="ref_118_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Width</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">Left</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_301_21">Off_Screen</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_302_21">More_Buffers</A>)); ++ <span class="symbol"><A NAME="ref_118_7">Fld</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Width</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Left</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Off_Screen</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">More_Buffers</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_118_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_118_7">Fld</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_297_13">Create</A>; +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_319_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_131_22" HREF="terminal_interface-curses-forms__ads.htm#ref_319_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</A>; ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</A></span> (<span class="symbol"><A NAME="ref_131_22" HREF="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_133_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_133_28" HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_133_16">Free_Field</A></span> (<span class="symbol"><A NAME="ref_133_28" HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Free_Field, "free_field"); + +- <FONT COLOR=red><A NAME="ref_136_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_136_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_319_22">Fld</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</A>); + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_319_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_319_14">Delete</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_147_13" HREF="terminal_interface-curses-forms__ads.htm#ref_325_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_147_24" HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_148_24" HREF="terminal_interface-curses-forms__ads.htm#ref_326_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_149_24" HREF="terminal_interface-curses-forms__ads.htm#ref_327_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_151_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_152_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_153_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_147_13" HREF="terminal_interface-curses-forms__ads.htm#ref_323_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_147_24" HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_148_24" HREF="terminal_interface-curses-forms__ads.htm#ref_324_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_149_24" HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_151_16">Dup_Field</A></span> (<span class="symbol"><A NAME="ref_151_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_152_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Top</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_153_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Left</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; + <b>pragma</b> Import (C, Dup_Field, "dup_field"); + +- <FONT COLOR=red><A NAME="ref_156_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Fld</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_326_24">Top</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_327_24">Left</A>)); ++ <span class="symbol"><A NAME="ref_156_7">F</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Fld</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_324_24">Top</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Left</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_325_13">Duplicate</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_168_13" HREF="terminal_interface-curses-forms__ads.htm#ref_332_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_168_19" HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_169_19" HREF="terminal_interface-curses-forms__ads.htm#ref_333_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_170_19" HREF="terminal_interface-curses-forms__ads.htm#ref_334_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_172_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_172_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_173_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_174_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_323_13">Duplicate</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_168_13" HREF="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</A></span> (<span class="symbol"><A NAME="ref_168_19" HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_169_19" HREF="terminal_interface-curses-forms__ads.htm#ref_331_19">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_170_19" HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_172_16">Lnk_Field</A></span> (<span class="symbol"><A NAME="ref_172_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_173_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Top</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_174_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Left</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; + <b>pragma</b> Import (C, Lnk_Field, "link_field"); + +- <FONT COLOR=red><A NAME="ref_177_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Fld</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_333_19">Top</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_334_19">Left</A>)); ++ <span class="symbol"><A NAME="ref_177_7">F</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Fld</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_331_19">Top</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Left</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_177_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_177_7">F</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_332_13">Link</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_just.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_193_14" HREF="terminal_interface-curses-forms__ads.htm#ref_343_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_193_33" HREF="terminal_interface-curses-forms__ads.htm#ref_343_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_194_33" HREF="terminal_interface-curses-forms__ads.htm#ref_344_33">Just</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_just.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_193_14" HREF="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</A></span> (<span class="symbol"><A NAME="ref_193_33" HREF="terminal_interface-curses-forms__ads.htm#ref_341_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_194_33" HREF="terminal_interface-curses-forms__ads.htm#ref_342_33">Just</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_196_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_196_32" HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_197_32" HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Just</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_196_16">Set_Field_Just</A></span> (<span class="symbol"><A NAME="ref_196_32" HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_197_32" HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Just</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Just, "set_field_just"); + +- <FONT COLOR=red><A NAME="ref_200_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_343_33">Fld</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_344_33">Just</A>))); ++ <span class="symbol"><A NAME="ref_200_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_341_33">Fld</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_342_33">Just</A>))); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_200_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_200_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_343_14">Set_Justification</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_211_13" HREF="terminal_interface-curses-forms__ads.htm#ref_349_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_211_32" HREF="terminal_interface-curses-forms__ads.htm#ref_349_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_211_13" HREF="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</A></span> (<span class="symbol"><A NAME="ref_211_32" HREF="terminal_interface-curses-forms__ads.htm#ref_347_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_213_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_213_28" HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_213_16">Field_Just</A></span> (<span class="symbol"><A NAME="ref_213_28" HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Field_Just, "field_just"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_349_32">Fld</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_349_13">Get_Justification</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_buffer.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_225_14" HREF="terminal_interface-curses-forms__ads.htm#ref_358_14">Set_Buffer</A></FONT> +- (<FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses-forms__ads.htm#ref_360_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First; +- <FONT COLOR=red><A NAME="ref_228_7" HREF="terminal_interface-curses-forms__ads.htm#ref_361_7">Str</A></FONT> : String) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_230_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char; +- <b>function</b> <FONT COLOR=red><A NAME="ref_231_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_231_32" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_232_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_233_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">S</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_230_12">Char_Ptr</A>) ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_347_32">Fld</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_buffer.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_225_14" HREF="terminal_interface-curses-forms__ads.htm#ref_356_14">Set_Buffer</A></span> ++ (<span class="symbol"><A NAME="ref_226_7" HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_227_7" HREF="terminal_interface-curses-forms__ads.htm#ref_358_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First; ++ <span class="symbol"><A NAME="ref_228_7" HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</A></span> : String) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_230_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char; ++ <b>function</b> <span class="symbol"><A NAME="ref_231_16">Set_Fld_Buffer</A></span> (<span class="symbol"><A NAME="ref_231_32" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_232_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Bufnum</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_233_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">S</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_230_12">Char_Ptr</A>) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Buffer, "set_field_buffer"); + +- <FONT COLOR=red><A NAME="ref_237_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#ref_361_7">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_238_7">Len</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_239_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_237_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_238_7">Len</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_239_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_361_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_238_7">Len</A>); +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_360_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>'First)'<b>Access</b>); ++ To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_238_7">Len</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_358_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>'First)'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_358_14">Set_Buffer</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-forms__ads.htm#ref_366_14">Get_Buffer</A></FONT> +- (<FONT COLOR=red><A NAME="ref_251_7" HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_252_7" HREF="terminal_interface-curses-forms__ads.htm#ref_368_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First; +- <FONT COLOR=red><A NAME="ref_253_7" HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Str</A></FONT> : <b>out</b> String) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_356_14">Set_Buffer</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_250_14" HREF="terminal_interface-curses-forms__ads.htm#ref_364_14">Get_Buffer</A></span> ++ (<span class="symbol"><A NAME="ref_251_7" HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_252_7" HREF="terminal_interface-curses-forms__ads.htm#ref_366_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First; ++ <span class="symbol"><A NAME="ref_253_7" HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Str</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_255_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_255_30" HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_256_30" HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_255_16">Field_Buffer</A></span> (<span class="symbol"><A NAME="ref_255_30" HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_256_30" HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">B</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Field_Buffer, "field_buffer"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_368_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Str</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_366_14">Get_Buffer</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_366_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Str</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_364_14">Get_Buffer</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_262_13" HREF="terminal_interface-curses-forms__ads.htm#ref_372_13">Get_Buffer</A></FONT> +- (<FONT COLOR=red><A NAME="ref_263_7" HREF="terminal_interface-curses-forms__ads.htm#ref_373_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses-forms__ads.htm#ref_374_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_262_13" HREF="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</A></span> ++ (<span class="symbol"><A NAME="ref_263_7" HREF="terminal_interface-curses-forms__ads.htm#ref_371_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_264_7" HREF="terminal_interface-curses-forms__ads.htm#ref_372_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_266_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_266_30" HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_267_30" HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_266_16">Field_Buffer</A></span> (<span class="symbol"><A NAME="ref_266_30" HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_267_30" HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">B</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, Field_Buffer, "field_buffer"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_373_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_374_7">Buffer</A>))); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_372_13">Get_Buffer</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_275_14" HREF="terminal_interface-curses-forms__ads.htm#ref_380_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_275_26" HREF="terminal_interface-curses-forms__ads.htm#ref_380_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-forms__ads.htm#ref_381_26">Status</A></FONT> : Boolean := True) ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_371_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_372_7">Buffer</A>))); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_275_14" HREF="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</A></span> (<span class="symbol"><A NAME="ref_275_26" HREF="terminal_interface-curses-forms__ads.htm#ref_378_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_276_26" HREF="terminal_interface-curses-forms__ads.htm#ref_379_26">Status</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_278_32" HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_279_32" HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">St</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_278_16">Set_Fld_Status</A></span> (<span class="symbol"><A NAME="ref_278_32" HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_279_32" HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">St</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Status, "set_field_status"); + +- <FONT COLOR=red><A NAME="ref_282_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_380_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_381_26">Status</A>)); ++ <span class="symbol"><A NAME="ref_282_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_378_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_379_26">Status</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_282_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_380_14">Set_Status</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses-forms__ads.htm#ref_386_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_291_22" HREF="terminal_interface-curses-forms__ads.htm#ref_386_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_291_13" HREF="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</A></span> (<span class="symbol"><A NAME="ref_291_22" HREF="terminal_interface-curses-forms__ads.htm#ref_384_22">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_293_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_293_30" HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_293_16">Field_Status</A></span> (<span class="symbol"><A NAME="ref_293_30" HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Field_Status, "field_status"); + +- <FONT COLOR=red><A NAME="ref_296_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_386_22">Fld</A>); ++ <span class="symbol"><A NAME="ref_296_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_384_22">Fld</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_296_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_386_13">Changed</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_307_14" HREF="terminal_interface-curses-forms__ads.htm#ref_391_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_307_32" HREF="terminal_interface-curses-forms__ads.htm#ref_391_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_308_32" HREF="terminal_interface-curses-forms__ads.htm#ref_392_32">Max</A></FONT> : Natural := 0) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_307_14" HREF="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</A></span> (<span class="symbol"><A NAME="ref_307_32" HREF="terminal_interface-curses-forms__ads.htm#ref_389_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_308_32" HREF="terminal_interface-curses-forms__ads.htm#ref_390_32">Max</A></span> : Natural := 0) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_310_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="ref_310_31" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_311_31" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_310_16">Set_Field_Max</A></span> (<span class="symbol"><A NAME="ref_310_31" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_311_31" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">M</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Max, "set_max_field"); + +- <FONT COLOR=red><A NAME="ref_314_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_391_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_392_32">Max</A>)); ++ <span class="symbol"><A NAME="ref_314_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_389_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_390_32">Max</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_314_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_314_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_391_14">Set_Maximum_Size</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_opts.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_327_14" HREF="terminal_interface-curses-forms__ads.htm#ref_401_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_327_27" HREF="terminal_interface-curses-forms__ads.htm#ref_401_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_328_27" HREF="terminal_interface-curses-forms__ads.htm#ref_402_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_opts.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_327_14" HREF="terminal_interface-curses-forms__ads.htm#ref_399_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_327_27" HREF="terminal_interface-curses-forms__ads.htm#ref_399_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_328_27" HREF="terminal_interface-curses-forms__ads.htm#ref_400_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_330_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_330_32" HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_331_32" HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_330_16">Set_Field_Opts</A></span> (<span class="symbol"><A NAME="ref_330_32" HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_331_32" HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Opts, "set_field_opts"); + +- <FONT COLOR=red><A NAME="ref_334_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_402_27">Options</A>); +- <FONT COLOR=red><A NAME="ref_335_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_334_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_400_27">Options</A>); ++ <span class="symbol"><A NAME="ref_335_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_401_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_334_7">Opt</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_399_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_334_7">Opt</A>); + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_401_14">Set_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_345_14" HREF="terminal_interface-curses-forms__ads.htm#ref_407_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_345_30" HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_346_30" HREF="terminal_interface-curses-forms__ads.htm#ref_408_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_347_30" HREF="terminal_interface-curses-forms__ads.htm#ref_409_30">On</A></FONT> : Boolean := True) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_399_14">Set_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_345_14" HREF="terminal_interface-curses-forms__ads.htm#ref_405_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_345_30" HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_346_30" HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_347_30" HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_349_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_349_31" HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_350_31" HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_349_16">Field_Opts_On</A></span> (<span class="symbol"><A NAME="ref_349_31" HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_350_31" HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Field_Opts_On, "field_opts_on"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_352_16">Field_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_352_32" HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_353_32" HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_352_16">Field_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_352_32" HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_353_32" HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Field_Opts_Off, "field_opts_off"); + +- <FONT COLOR=red><A NAME="ref_356_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_357_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_408_30">Options</A>); ++ <span class="symbol"><A NAME="ref_356_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_357_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</A>); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_409_30">On</A> <b>then</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">On</A> <b>then</b> ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_407_14">Switch_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-forms__ads.htm#ref_415_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-forms__ads.htm#ref_415_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-forms__ads.htm#ref_416_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_405_14">Switch_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_371_14" HREF="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_371_27" HREF="terminal_interface-curses-forms__ads.htm#ref_413_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_372_27" HREF="terminal_interface-curses-forms__ads.htm#ref_414_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_28" HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_374_16">Field_Opts</A></span> (<span class="symbol"><A NAME="ref_374_28" HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Field_Opts, "field_opts"); + +- <FONT COLOR=red><A NAME="ref_377_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_415_27">Fld</A>); ++ <span class="symbol"><A NAME="ref_377_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_413_27">Fld</A>); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_416_27">Options</A> := CInt_2_FOS (<A HREF="terminal_interface-curses-forms__adb.htm#ref_377_7">Res</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_415_14">Get_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__ads.htm#ref_420_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_384_26" HREF="terminal_interface-curses-forms__ads.htm#ref_420_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_414_27">Options</A> := CInt_2_FOS (<A HREF="terminal_interface-curses-forms__adb.htm#ref_377_7">Res</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_384_26" HREF="terminal_interface-curses-forms__ads.htm#ref_418_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>) + <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_387_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_387_7">Fos</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_415_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_420_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_418_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>); + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_420_13">Get_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_attributes.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__ads.htm#ref_430_14">Set_Foreground</A></FONT> +- (<FONT COLOR=red><A NAME="ref_400_7" HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_401_7" HREF="terminal_interface-curses-forms__ads.htm#ref_432_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_402_7" HREF="terminal_interface-curses-forms__ads.htm#ref_433_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_attributes.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</A></span> ++ (<span class="symbol"><A NAME="ref_400_7" HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_401_7" HREF="terminal_interface-curses-forms__ads.htm#ref_430_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_402_7" HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_404_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_404_32" HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_405_32" HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_404_16">Set_Field_Fore</A></span> (<span class="symbol"><A NAME="ref_404_32" HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_405_32" HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Fore, "set_field_fore"); + +- <FONT COLOR=red><A NAME="ref_408_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_433_7">Color</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_432_7">Fore</A>); +- <FONT COLOR=red><A NAME="ref_411_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Fld</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-forms__adb.htm#ref_408_7">Ch</A>)); ++ <span class="symbol"><A NAME="ref_408_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Color</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_430_7">Fore</A>); ++ <span class="symbol"><A NAME="ref_411_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Fld</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-forms__adb.htm#ref_408_7">Ch</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_411_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_411_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_430_14">Set_Foreground</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_421_14" HREF="terminal_interface-curses-forms__ads.htm#ref_438_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_421_26" HREF="terminal_interface-curses-forms__ads.htm#ref_438_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_421_14" HREF="terminal_interface-curses-forms__ads.htm#ref_436_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_421_26" HREF="terminal_interface-curses-forms__ads.htm#ref_436_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_422_26" HREF="terminal_interface-curses-forms__ads.htm#ref_437_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_424_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_424_28" HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_424_16">Field_Fore</A></span> (<span class="symbol"><A NAME="ref_424_28" HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Field_Fore, "field_fore"); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_438_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_438_14">Foreground</A>; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_437_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_436_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_436_14">Foreground</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__ads.htm#ref_443_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-forms__ads.htm#ref_444_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-forms__ads.htm#ref_445_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__ads.htm#ref_441_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_430_26" HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_431_26" HREF="terminal_interface-curses-forms__ads.htm#ref_442_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_432_26" HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_434_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_434_28" HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_434_16">Field_Fore</A></span> (<span class="symbol"><A NAME="ref_434_28" HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Field_Fore, "field_fore"); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_444_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_445_26">Color</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_443_14">Foreground</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__ads.htm#ref_450_14">Set_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-forms__ads.htm#ref_452_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-forms__ads.htm#ref_453_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_442_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Color</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_441_14">Foreground</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__ads.htm#ref_448_14">Set_Background</A></span> ++ (<span class="symbol"><A NAME="ref_444_7" HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_445_7" HREF="terminal_interface-curses-forms__ads.htm#ref_450_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_446_7" HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_448_32" HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_449_32" HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_448_16">Set_Field_Back</A></span> (<span class="symbol"><A NAME="ref_448_32" HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_449_32" HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Back, "set_field_back"); + +- <FONT COLOR=red><A NAME="ref_452_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_453_7">Color</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_452_7">Back</A>); +- <FONT COLOR=red><A NAME="ref_455_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Fld</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-forms__adb.htm#ref_452_7">Ch</A>)); ++ <span class="symbol"><A NAME="ref_452_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Color</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_450_7">Back</A>); ++ <span class="symbol"><A NAME="ref_455_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Fld</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-forms__adb.htm#ref_452_7">Ch</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_455_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_455_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_450_14">Set_Background</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_465_14" HREF="terminal_interface-curses-forms__ads.htm#ref_458_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__ads.htm#ref_458_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_466_26" HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_448_14">Set_Background</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_465_14" HREF="terminal_interface-curses-forms__ads.htm#ref_456_14">Background</A></span> (<span class="symbol"><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__ads.htm#ref_456_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_466_26" HREF="terminal_interface-curses-forms__ads.htm#ref_457_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_468_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_468_28" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_468_16">Field_Back</A></span> (<span class="symbol"><A NAME="ref_468_28" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Field_Back, "field_back"); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Back</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_458_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_458_14">Background</A>; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_457_26">Back</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_456_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_456_14">Background</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__ads.htm#ref_463_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_474_26" HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_475_26" HREF="terminal_interface-curses-forms__ads.htm#ref_464_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_476_26" HREF="terminal_interface-curses-forms__ads.htm#ref_465_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__ads.htm#ref_461_14">Background</A></span> (<span class="symbol"><A NAME="ref_474_26" HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_475_26" HREF="terminal_interface-curses-forms__ads.htm#ref_462_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_476_26" HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_478_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_478_28" HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_478_16">Field_Back</A></span> (<span class="symbol"><A NAME="ref_478_28" HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Field_Back, "field_back"); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_464_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_465_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_463_14">Background</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_487_14" HREF="terminal_interface-curses-forms__ads.htm#ref_470_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_487_33" HREF="terminal_interface-curses-forms__ads.htm#ref_470_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_488_33" HREF="terminal_interface-curses-forms__ads.htm#ref_471_33">Pad</A></FONT> : Character := Space) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_462_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_461_14">Background</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_487_14" HREF="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_487_33" HREF="terminal_interface-curses-forms__ads.htm#ref_468_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_488_33" HREF="terminal_interface-curses-forms__ads.htm#ref_469_33">Pad</A></span> : Character := Space) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_490_31" HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_491_31" HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_490_16">Set_Field_Pad</A></span> (<span class="symbol"><A NAME="ref_490_31" HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_491_31" HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Pad, "set_field_pad"); + +- <FONT COLOR=red><A NAME="ref_494_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_470_33">Fld</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_471_33">Pad</A>))); ++ <span class="symbol"><A NAME="ref_494_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_468_33">Fld</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_469_33">Pad</A>))); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_494_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_494_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_470_14">Set_Pad_Character</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_504_14" HREF="terminal_interface-curses-forms__ads.htm#ref_476_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_504_29" HREF="terminal_interface-curses-forms__ads.htm#ref_476_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_505_29" HREF="terminal_interface-curses-forms__ads.htm#ref_477_29">Pad</A></FONT> : <b>out</b> Character) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_504_14" HREF="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_504_29" HREF="terminal_interface-curses-forms__ads.htm#ref_474_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_505_29" HREF="terminal_interface-curses-forms__ads.htm#ref_475_29">Pad</A></span> : <b>out</b> Character) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_507_16">Field_Pad</A></span> (<span class="symbol"><A NAME="ref_507_27" HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Field_Pad, "field_pad"); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_477_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_476_29">Fld</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_476_14">Pad_Character</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_info.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_519_14" HREF="terminal_interface-curses-forms__ads.htm#ref_486_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_519_20" HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_520_20" HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_521_20" HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_522_20" HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_523_20" HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">First_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_524_20" HREF="terminal_interface-curses-forms__ads.htm#ref_491_20">Off_Screen</A></FONT> : <b>out</b> Natural; +- <FONT COLOR=red><A NAME="ref_525_20" HREF="terminal_interface-curses-forms__ads.htm#ref_492_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_527_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_528_16">Fld_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_528_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_529_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_529_29" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">C</A></FONT>, <FONT COLOR=red><A NAME="ref_529_32" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_529_36" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_529_40" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_529_44" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Ab</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_527_12">C_Int_Access</A>) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_475_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_474_29">Fld</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_info.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_519_14" HREF="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</A></span> (<span class="symbol"><A NAME="ref_519_20" HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_520_20" HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_521_20" HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_522_20" HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_523_20" HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">First_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_524_20" HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">Off_Screen</A></span> : <b>out</b> Natural; ++ <span class="symbol"><A NAME="ref_525_20" HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">Additional_Buffers</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_527_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_528_16">Fld_Info</A></span> (<span class="symbol"><A NAME="ref_528_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_529_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">L</A></span>, <span class="symbol"><A NAME="ref_529_29" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">C</A></span>, <span class="symbol"><A NAME="ref_529_32" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fr</A></span>, <span class="symbol"><A NAME="ref_529_36" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fc</A></span>, <span class="symbol"><A NAME="ref_529_40" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Os</A></span>, <span class="symbol"><A NAME="ref_529_44" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Ab</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_527_12">C_Int_Access</A>) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Fld_Info, "field_info"); + +- <FONT COLOR=red><A NAME="ref_533_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_533_10">C</A></FONT>, <FONT COLOR=red><A NAME="ref_533_13">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_533_17">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_533_21">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_533_25">Ab</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_534_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Fld</A>, ++ <span class="symbol"><A NAME="ref_533_7">L</A></span>, <span class="symbol"><A NAME="ref_533_10">C</A></span>, <span class="symbol"><A NAME="ref_533_13">Fr</A></span>, <span class="symbol"><A NAME="ref_533_17">Fc</A></span>, <span class="symbol"><A NAME="ref_533_21">Os</A></span>, <span class="symbol"><A NAME="ref_533_25">Ab</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_534_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Fld</A>, + <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>'<b>Access</b>); +@@ -544,624 +556,624 @@ + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_534_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_534_7">Res</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_491_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_492_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>); +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_486_14">Info</A>; +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__ads.htm#ref_497_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_553_28" HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_554_28" HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_555_28" HREF="terminal_interface-curses-forms__ads.htm#ref_499_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_556_28" HREF="terminal_interface-curses-forms__ads.htm#ref_500_28">Max</A></FONT> : <b>out</b> Natural) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>); ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</A>; ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</A></span> (<span class="symbol"><A NAME="ref_553_28" HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_554_28" HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_555_28" HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_556_28" HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Max</A></span> : <b>out</b> Natural) + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_558_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_559_16">Dyn_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_559_26" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_559_39" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_559_42" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">C</A></FONT>, <FONT COLOR=red><A NAME="ref_559_45" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">M</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_558_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_558_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_559_16">Dyn_Info</A></span> (<span class="symbol"><A NAME="ref_559_26" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <span class="symbol"><A NAME="ref_559_39" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">L</A></span>, <span class="symbol"><A NAME="ref_559_42" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">C</A></span>, <span class="symbol"><A NAME="ref_559_45" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">M</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_558_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Dyn_Info, "dynamic_field_info"); + +- <FONT COLOR=red><A NAME="ref_562_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_562_10">C</A></FONT>, <FONT COLOR=red><A NAME="ref_562_13">M</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_563_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Fld</A>, ++ <span class="symbol"><A NAME="ref_562_7">L</A></span>, <span class="symbol"><A NAME="ref_562_10">C</A></span>, <span class="symbol"><A NAME="ref_562_13">M</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_563_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Fld</A>, + <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>'<b>Access</b>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_563_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_563_7">Res</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_499_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_500_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>); +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_497_14">Dynamic_Info</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_win.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_582_14" HREF="terminal_interface-curses-forms__ads.htm#ref_509_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_582_26" HREF="terminal_interface-curses-forms__ads.htm#ref_509_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_583_26" HREF="terminal_interface-curses-forms__ads.htm#ref_510_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>); ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_win.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_582_14" HREF="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_582_26" HREF="terminal_interface-curses-forms__ads.htm#ref_507_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_583_26" HREF="terminal_interface-curses-forms__ads.htm#ref_508_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_585_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_585_30" HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_586_30" HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_585_16">Set_Form_Win</A></span> (<span class="symbol"><A NAME="ref_585_30" HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_586_30" HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Form_Win, "set_form_win"); + +- <FONT COLOR=red><A NAME="ref_589_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_509_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_510_26">Win</A>); ++ <span class="symbol"><A NAME="ref_589_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_507_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_508_26">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_589_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_589_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_509_14">Set_Window</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses-forms__ads.htm#ref_515_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_598_25" HREF="terminal_interface-curses-forms__ads.htm#ref_515_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_598_13" HREF="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_598_25" HREF="terminal_interface-curses-forms__ads.htm#ref_513_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_600_26" HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_600_16">Form_Win</A></span> (<span class="symbol"><A NAME="ref_600_26" HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Form_Win, "form_win"); + +- <FONT COLOR=red><A NAME="ref_603_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_515_25">Frm</A>); ++ <span class="symbol"><A NAME="ref_603_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_513_25">Frm</A>); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_603_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_515_13">Get_Window</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_610_14" HREF="terminal_interface-curses-forms__ads.htm#ref_520_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses-forms__ads.htm#ref_520_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_611_30" HREF="terminal_interface-curses-forms__ads.htm#ref_521_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_610_14" HREF="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_610_30" HREF="terminal_interface-curses-forms__ads.htm#ref_518_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_611_30" HREF="terminal_interface-curses-forms__ads.htm#ref_519_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_613_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_613_30" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_614_30" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_613_16">Set_Form_Sub</A></span> (<span class="symbol"><A NAME="ref_613_30" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_614_30" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Form_Sub, "set_form_sub"); + +- <FONT COLOR=red><A NAME="ref_617_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_520_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_521_30">Win</A>); ++ <span class="symbol"><A NAME="ref_617_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_518_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_519_30">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_617_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_617_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_520_14">Set_Sub_Window</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_626_13" HREF="terminal_interface-curses-forms__ads.htm#ref_526_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_626_29" HREF="terminal_interface-curses-forms__ads.htm#ref_526_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_626_13" HREF="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_626_29" HREF="terminal_interface-curses-forms__ads.htm#ref_524_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_628_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_628_26" HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_628_16">Form_Sub</A></span> (<span class="symbol"><A NAME="ref_628_26" HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Form_Sub, "form_sub"); + +- <FONT COLOR=red><A NAME="ref_631_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_526_29">Frm</A>); ++ <span class="symbol"><A NAME="ref_631_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_524_29">Frm</A>); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_631_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_526_13">Get_Sub_Window</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__ads.htm#ref_531_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_638_21" HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_639_21" HREF="terminal_interface-curses-forms__ads.htm#ref_532_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_640_21" HREF="terminal_interface-curses-forms__ads.htm#ref_533_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</A></span> (<span class="symbol"><A NAME="ref_638_21" HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_639_21" HREF="terminal_interface-curses-forms__ads.htm#ref_530_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_640_21" HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_642_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_643_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_643_25" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_643_37" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_643_41" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Xp</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_642_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_642_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_643_16">M_Scale</A></span> (<span class="symbol"><A NAME="ref_643_25" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <span class="symbol"><A NAME="ref_643_37" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Yp</A></span>, <span class="symbol"><A NAME="ref_643_41" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Xp</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_642_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, M_Scale, "scale_form"); + +- <FONT COLOR=red><A NAME="ref_646_7">X</A></FONT>, <FONT COLOR=red><A NAME="ref_646_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_647_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>'<b>Access</b>); ++ <span class="symbol"><A NAME="ref_646_7">X</A></span>, <span class="symbol"><A NAME="ref_646_10">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_647_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>'<b>Access</b>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_647_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_647_7">Res</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_532_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>); +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_533_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_531_14">Scale</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page menu_hook.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__ads.htm#ref_545_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_662_35" HREF="terminal_interface-curses-forms__ads.htm#ref_545_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_663_35" HREF="terminal_interface-curses-forms__ads.htm#ref_546_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_530_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page menu_hook.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_662_35" HREF="terminal_interface-curses-forms__ads.htm#ref_543_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_663_35" HREF="terminal_interface-curses-forms__ads.htm#ref_544_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_665_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_665_32" HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_666_32" HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_665_16">Set_Field_Init</A></span> (<span class="symbol"><A NAME="ref_665_32" HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_666_32" HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Init, "set_field_init"); + +- <FONT COLOR=red><A NAME="ref_669_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_545_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_546_35">Proc</A>); ++ <span class="symbol"><A NAME="ref_669_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_543_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_544_35">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_669_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_669_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_545_14">Set_Field_Init_Hook</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_678_14" HREF="terminal_interface-curses-forms__ads.htm#ref_551_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_678_35" HREF="terminal_interface-curses-forms__ads.htm#ref_551_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_679_35" HREF="terminal_interface-curses-forms__ads.htm#ref_552_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_678_14" HREF="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_678_35" HREF="terminal_interface-curses-forms__ads.htm#ref_549_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_679_35" HREF="terminal_interface-curses-forms__ads.htm#ref_550_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_681_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_681_32" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_682_32" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_681_16">Set_Field_Term</A></span> (<span class="symbol"><A NAME="ref_681_32" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_682_32" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Term, "set_field_term"); + +- <FONT COLOR=red><A NAME="ref_685_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_551_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_552_35">Proc</A>); ++ <span class="symbol"><A NAME="ref_685_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_549_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_550_35">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_685_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_685_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_551_14">Set_Field_Term_Hook</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_694_14" HREF="terminal_interface-curses-forms__ads.htm#ref_557_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_694_34" HREF="terminal_interface-curses-forms__ads.htm#ref_557_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_695_34" HREF="terminal_interface-curses-forms__ads.htm#ref_558_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_694_14" HREF="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_694_34" HREF="terminal_interface-curses-forms__ads.htm#ref_555_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_695_34" HREF="terminal_interface-curses-forms__ads.htm#ref_556_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_697_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_697_31" HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_698_31" HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_697_16">Set_Form_Init</A></span> (<span class="symbol"><A NAME="ref_697_31" HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_698_31" HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Form_Init, "set_form_init"); + +- <FONT COLOR=red><A NAME="ref_701_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_557_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_558_34">Proc</A>); ++ <span class="symbol"><A NAME="ref_701_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_555_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_556_34">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_701_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_701_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_557_14">Set_Form_Init_Hook</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_710_14" HREF="terminal_interface-curses-forms__ads.htm#ref_563_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_710_34" HREF="terminal_interface-curses-forms__ads.htm#ref_563_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_711_34" HREF="terminal_interface-curses-forms__ads.htm#ref_564_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_710_14" HREF="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_710_34" HREF="terminal_interface-curses-forms__ads.htm#ref_561_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_711_34" HREF="terminal_interface-curses-forms__ads.htm#ref_562_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_713_31" HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_714_31" HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_713_16">Set_Form_Term</A></span> (<span class="symbol"><A NAME="ref_713_31" HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_714_31" HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Form_Term, "set_form_term"); + +- <FONT COLOR=red><A NAME="ref_717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_563_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_564_34">Proc</A>); ++ <span class="symbol"><A NAME="ref_717_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_561_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_562_34">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_717_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_563_14">Set_Form_Term_Hook</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_fields.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_730_14" HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_730_24" HREF="terminal_interface-curses-forms__ads.htm#ref_593_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_731_24" HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_fields.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_730_14" HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_730_24" HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_731_24" HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_733_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_733_32" HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_734_32" HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_733_16">Set_Frm_Fields</A></span> (<span class="symbol"><A NAME="ref_733_32" HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_734_32" HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Frm_Fields, "set_form_fields"); + +- <FONT COLOR=red><A NAME="ref_737_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_737_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_593_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>'First)'Address); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>'First)'Address); + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A>); + <b>end</b> <b>if</b>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_752_13" HREF="terminal_interface-curses-forms__ads.htm#ref_605_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_752_21" HREF="terminal_interface-curses-forms__ads.htm#ref_605_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_753_21" HREF="terminal_interface-curses-forms__ads.htm#ref_606_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_752_13" HREF="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</A></span> (<span class="symbol"><A NAME="ref_752_21" HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_753_21" HREF="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> + <b>is</b> + <b>use</b> F_Array; + +- <b>function</b> C_Fields (<FONT COLOR=red><A NAME="ref_757_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Pointer; ++ <b>function</b> C_Fields (<span class="symbol"><A NAME="ref_757_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Pointer; + <b>pragma</b> Import (C, C_Fields, "form_fields"); + +- P : Pointer := C_Fields (<A HREF="terminal_interface-curses-forms__ads.htm#ref_605_21">Frm</A>); ++ P : Pointer := C_Fields (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</A>); + <b>begin</b> +- <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_606_21">Index</A> &gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_605_21">Frm</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</A> &gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</A>) <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> +- P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_606_21">Index</A>) - 1); ++ P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</A>) - 1); + <b>return</b> P.<b>all</b>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_605_13">Fields</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_772_13" HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_772_26" HREF="terminal_interface-curses-forms__ads.htm#ref_611_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_772_13" HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A></span> (<span class="symbol"><A NAME="ref_772_26" HREF="terminal_interface-curses-forms__ads.htm#ref_609_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_774_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_774_23" HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_774_16">Count</A></span> (<span class="symbol"><A NAME="ref_774_23" HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Count, "field_count"); + <b>begin</b> +- <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_611_26">Frm</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-forms__ads.htm#ref_616_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_782_20" HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_783_20" HREF="terminal_interface-curses-forms__ads.htm#ref_617_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_784_20" HREF="terminal_interface-curses-forms__ads.htm#ref_618_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_609_26">Frm</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_782_14" HREF="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</A></span> (<span class="symbol"><A NAME="ref_782_20" HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_783_20" HREF="terminal_interface-curses-forms__ads.htm#ref_615_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_784_20" HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_786_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_786_22" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_786_35" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_786_38" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_786_16">Move</A></span> (<span class="symbol"><A NAME="ref_786_22" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <span class="symbol"><A NAME="ref_786_35" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">L</A></span>, <span class="symbol"><A NAME="ref_786_38" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">C</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Move, "move_field"); + +- <FONT COLOR=red><A NAME="ref_789_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_617_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_618_20">Column</A>)); ++ <span class="symbol"><A NAME="ref_789_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_615_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Column</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_789_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_789_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_616_14">Move</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_new.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_802_13" HREF="terminal_interface-curses-forms__ads.htm#ref_627_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_802_21" HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_new.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_802_13" HREF="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</A></span> (<span class="symbol"><A NAME="ref_802_21" HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="ref_804_25" HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_804_16">NewForm</A></span> (<span class="symbol"><A NAME="ref_804_25" HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">Fields</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; + <b>pragma</b> Import (C, NewForm, "new_form"); + +- <FONT COLOR=red><A NAME="ref_807_7">M</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_807_7">M</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; + <b>begin</b> +- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>'First)'Address); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>'First)'Address); + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_627_13">Create</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_823_14" HREF="terminal_interface-curses-forms__ads.htm#ref_638_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_823_22" HREF="terminal_interface-curses-forms__ads.htm#ref_638_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_823_14" HREF="terminal_interface-curses-forms__ads.htm#ref_636_14">Delete</A></span> (<span class="symbol"><A NAME="ref_823_22" HREF="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_825_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_825_22" HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_825_16">Free</A></span> (<span class="symbol"><A NAME="ref_825_22" HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Free, "free_form"); + +- <FONT COLOR=red><A NAME="ref_828_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_638_22">Frm</A>); ++ <span class="symbol"><A NAME="ref_828_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_828_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_828_7">Res</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_638_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_638_14">Delete</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_opts.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_842_14" HREF="terminal_interface-curses-forms__ads.htm#ref_648_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_842_27" HREF="terminal_interface-curses-forms__ads.htm#ref_648_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_843_27" HREF="terminal_interface-curses-forms__ads.htm#ref_649_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>) ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_636_14">Delete</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_opts.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_842_14" HREF="terminal_interface-curses-forms__ads.htm#ref_646_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_842_27" HREF="terminal_interface-curses-forms__ads.htm#ref_646_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_843_27" HREF="terminal_interface-curses-forms__ads.htm#ref_647_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_845_31" HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_846_31" HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_845_16">Set_Form_Opts</A></span> (<span class="symbol"><A NAME="ref_845_31" HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_846_31" HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Form_Opts, "set_form_opts"); + +- <FONT COLOR=red><A NAME="ref_849_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FrmOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_649_27">Options</A>); +- <FONT COLOR=red><A NAME="ref_850_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_849_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FrmOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_647_27">Options</A>); ++ <span class="symbol"><A NAME="ref_850_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_648_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_849_7">Opt</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_646_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_849_7">Opt</A>); + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_648_14">Set_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses-forms__ads.htm#ref_654_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_860_30" HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_861_30" HREF="terminal_interface-curses-forms__ads.htm#ref_655_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_862_30" HREF="terminal_interface-curses-forms__ads.htm#ref_656_30">On</A></FONT> : Boolean := True) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_646_14">Set_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_860_14" HREF="terminal_interface-curses-forms__ads.htm#ref_652_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_860_30" HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_861_30" HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_862_30" HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_864_30" HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_865_30" HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_864_16">Form_Opts_On</A></span> (<span class="symbol"><A NAME="ref_864_30" HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_865_30" HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Form_Opts_On, "form_opts_on"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_867_16">Form_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_867_31" HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_868_31" HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_867_16">Form_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_867_31" HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_868_31" HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Form_Opts_Off, "form_opts_off"); + +- <FONT COLOR=red><A NAME="ref_871_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_872_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FrmOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_655_30">Options</A>); ++ <span class="symbol"><A NAME="ref_871_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_872_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FrmOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</A>); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_656_30">On</A> <b>then</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">On</A> <b>then</b> ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_654_14">Switch_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_886_14" HREF="terminal_interface-curses-forms__ads.htm#ref_662_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_886_27" HREF="terminal_interface-curses-forms__ads.htm#ref_662_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_887_27" HREF="terminal_interface-curses-forms__ads.htm#ref_663_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_652_14">Switch_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_886_14" HREF="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_886_27" HREF="terminal_interface-curses-forms__ads.htm#ref_660_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_887_27" HREF="terminal_interface-curses-forms__ads.htm#ref_661_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_889_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_889_27" HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_889_16">Form_Opts</A></span> (<span class="symbol"><A NAME="ref_889_27" HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Form_Opts, "form_opts"); + +- <FONT COLOR=red><A NAME="ref_892_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_662_27">Frm</A>); ++ <span class="symbol"><A NAME="ref_892_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_660_27">Frm</A>); + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_663_27">Options</A> := CInt_2_FrmOS (<A HREF="terminal_interface-curses-forms__adb.htm#ref_892_7">Res</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_662_14">Get_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_899_13" HREF="terminal_interface-curses-forms__ads.htm#ref_667_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_899_26" HREF="terminal_interface-curses-forms__ads.htm#ref_667_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A> ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_661_27">Options</A> := CInt_2_FrmOS (<A HREF="terminal_interface-curses-forms__adb.htm#ref_892_7">Res</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_899_13" HREF="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_899_26" HREF="terminal_interface-curses-forms__ads.htm#ref_665_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_901_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_901_7">Fos</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_662_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_667_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>); ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_665_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>); + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_667_13">Get_Options</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_post.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_913_14" HREF="terminal_interface-curses-forms__ads.htm#ref_676_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_913_20" HREF="terminal_interface-curses-forms__ads.htm#ref_676_20">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_914_20" HREF="terminal_interface-curses-forms__ads.htm#ref_677_20">Post</A></FONT> : Boolean := True) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_post.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_913_14" HREF="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</A></span> (<span class="symbol"><A NAME="ref_913_20" HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_914_20" HREF="terminal_interface-curses-forms__ads.htm#ref_675_20">Post</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_916_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_916_24" HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_916_16">M_Post</A></span> (<span class="symbol"><A NAME="ref_916_24" HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, M_Post, "post_form"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_918_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="ref_918_26" HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_918_16">M_Unpost</A></span> (<span class="symbol"><A NAME="ref_918_26" HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, M_Unpost, "unpost_form"); + +- <FONT COLOR=red><A NAME="ref_921_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_921_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_677_20">Post</A> <b>then</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_676_20">Frm</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_675_20">Post</A> <b>then</b> ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_676_20">Frm</A>); ++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_676_14">Post</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_cursor.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_939_14" HREF="terminal_interface-curses-forms__ads.htm#ref_687_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_939_31" HREF="terminal_interface-curses-forms__ads.htm#ref_687_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_cursor.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_939_14" HREF="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_939_31" HREF="terminal_interface-curses-forms__ads.htm#ref_685_31">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_941_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_941_33" HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_941_16">Pos_Form_Cursor</A></span> (<span class="symbol"><A NAME="ref_941_33" HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Pos_Form_Cursor, "pos_form_cursor"); + +- <FONT COLOR=red><A NAME="ref_944_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_687_31">Frm</A>); ++ <span class="symbol"><A NAME="ref_944_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_685_31">Frm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_944_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_944_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_687_14">Position_Cursor</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_data.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_957_13" HREF="terminal_interface-curses-forms__ads.htm#ref_696_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_957_25" HREF="terminal_interface-curses-forms__ads.htm#ref_696_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_data.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_957_13" HREF="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</A></span> (<span class="symbol"><A NAME="ref_957_25" HREF="terminal_interface-curses-forms__ads.htm#ref_694_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_959_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_959_23" HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_959_16">Ahead</A></span> (<span class="symbol"><A NAME="ref_959_23" HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Ahead, "data_ahead"); + +- <FONT COLOR=red><A NAME="ref_962_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_696_25">Frm</A>); ++ <span class="symbol"><A NAME="ref_962_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_694_25">Frm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_962_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_696_13">Data_Ahead</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_973_13" HREF="terminal_interface-curses-forms__ads.htm#ref_701_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_973_26" HREF="terminal_interface-curses-forms__ads.htm#ref_701_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_973_13" HREF="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</A></span> (<span class="symbol"><A NAME="ref_973_26" HREF="terminal_interface-curses-forms__ads.htm#ref_699_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_975_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_975_24" HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_975_16">Behind</A></span> (<span class="symbol"><A NAME="ref_975_24" HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Behind, "data_behind"); + +- <FONT COLOR=red><A NAME="ref_978_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_701_26">Frm</A>); ++ <span class="symbol"><A NAME="ref_978_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_699_26">Frm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_978_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_701_13">Data_Behind</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_driver.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_993_13" HREF="terminal_interface-curses-forms__ads.htm#ref_715_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_993_21" HREF="terminal_interface-curses-forms__ads.htm#ref_715_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_994_21" HREF="terminal_interface-curses-forms__ads.htm#ref_716_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_9">Driver_Result</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_driver.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_993_13" HREF="terminal_interface-curses-forms__ads.htm#ref_713_13">Driver</A></span> (<span class="symbol"><A NAME="ref_993_21" HREF="terminal_interface-curses-forms__ads.htm#ref_713_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_994_21" HREF="terminal_interface-curses-forms__ads.htm#ref_714_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_9">Driver_Result</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_996_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_996_28" HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_996_40" HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_996_16">Frm_Driver</A></span> (<span class="symbol"><A NAME="ref_996_28" HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <span class="symbol"><A NAME="ref_996_40" HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Frm_Driver, "form_driver"); + +- <FONT COLOR=red><A NAME="ref_999_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_715_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_716_21">Key</A>)); ++ <span class="symbol"><A NAME="ref_999_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_713_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_714_21">Key</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> <b>then</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_711_27">Unknown_Request</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Unknown_Request</A>; + <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> <b>then</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_712_27">Invalid_Field</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_710_27">Invalid_Field</A>; + <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> <b>then</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_710_27">Request_Denied</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_708_27">Request_Denied</A>; + <b>else</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A>); +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Form_Ok</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_27">Form_Ok</A>; + <b>end</b> <b>if</b>; + <b>else</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Form_Ok</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_27">Form_Ok</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_715_13">Driver</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_page.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1023_14" HREF="terminal_interface-curses-forms__ads.htm#ref_727_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1023_27" HREF="terminal_interface-curses-forms__ads.htm#ref_727_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_1024_27" HREF="terminal_interface-curses-forms__ads.htm#ref_728_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_713_13">Driver</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_page.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1023_14" HREF="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_1023_27" HREF="terminal_interface-curses-forms__ads.htm#ref_725_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_1024_27" HREF="terminal_interface-curses-forms__ads.htm#ref_726_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1026_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1026_33" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_1026_45" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1026_16">Set_Current_Fld</A></span> (<span class="symbol"><A NAME="ref_1026_33" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <span class="symbol"><A NAME="ref_1026_45" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Current_Fld, "set_current_field"); + +- <FONT COLOR=red><A NAME="ref_1029_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_727_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_728_27">Fld</A>); ++ <span class="symbol"><A NAME="ref_1029_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_725_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_726_27">Fld</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1029_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1029_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_727_14">Set_Current</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1038_13" HREF="terminal_interface-curses-forms__ads.htm#ref_733_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1038_22" HREF="terminal_interface-curses-forms__ads.htm#ref_733_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1038_13" HREF="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</A></span> (<span class="symbol"><A NAME="ref_1038_22" HREF="terminal_interface-curses-forms__ads.htm#ref_731_22">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1040_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1040_29" HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1040_16">Current_Fld</A></span> (<span class="symbol"><A NAME="ref_1040_29" HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; + <b>pragma</b> Import (C, Current_Fld, "current_field"); + +- <FONT COLOR=red><A NAME="ref_1043_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_733_22">Frm</A>); ++ <span class="symbol"><A NAME="ref_1043_7">Fld</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_731_22">Frm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1043_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1043_7">Fld</A>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_733_13">Current</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses-forms__ads.htm#ref_738_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1053_24" HREF="terminal_interface-curses-forms__ads.htm#ref_738_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_1054_24" HREF="terminal_interface-curses-forms__ads.htm#ref_739_24">Page</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>'First) ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1053_14" HREF="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</A></span> (<span class="symbol"><A NAME="ref_1053_24" HREF="terminal_interface-curses-forms__ads.htm#ref_736_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_1054_24" HREF="terminal_interface-curses-forms__ads.htm#ref_737_24">Page</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1056_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1056_30" HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_1056_42" HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Pg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1056_16">Set_Frm_Page</A></span> (<span class="symbol"><A NAME="ref_1056_30" HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <span class="symbol"><A NAME="ref_1056_42" HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Pg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Frm_Page, "set_form_page"); + +- <FONT COLOR=red><A NAME="ref_1059_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_738_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_739_24">Page</A>)); ++ <span class="symbol"><A NAME="ref_1059_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_736_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_737_24">Page</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1059_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1059_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_738_14">Set_Page</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1068_13" HREF="terminal_interface-curses-forms__ads.htm#ref_744_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1068_19" HREF="terminal_interface-curses-forms__ads.htm#ref_744_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1068_13" HREF="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</A></span> (<span class="symbol"><A NAME="ref_1068_19" HREF="terminal_interface-curses-forms__ads.htm#ref_742_19">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1070_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1070_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1070_16">Get_Page</A></span> (<span class="symbol"><A NAME="ref_1070_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Get_Page, "form_page"); + +- <FONT COLOR=red><A NAME="ref_1073_7">P</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_744_19">Frm</A>); ++ <span class="symbol"><A NAME="ref_1073_7">P</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_742_19">Frm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A> &lt; 0 <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A>); ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_744_13">Page</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1082_13" HREF="terminal_interface-curses-forms__ads.htm#ref_749_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_1082_24" HREF="terminal_interface-curses-forms__ads.htm#ref_749_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive ++ <b>function</b> <span class="symbol"><A NAME="ref_1082_13" HREF="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_1082_24" HREF="terminal_interface-curses-forms__ads.htm#ref_747_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1084_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="ref_1084_32" HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1084_16">Get_Fieldindex</A></span> (<span class="symbol"><A NAME="ref_1084_32" HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Get_Fieldindex, "field_index"); + +- <FONT COLOR=red><A NAME="ref_1087_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_749_24">Fld</A>); ++ <span class="symbol"><A NAME="ref_1087_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_747_24">Fld</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1087_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1087_7">Res</A>) + Positive'First); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_749_13">Get_Index</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</A>; + +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_new_page.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1102_14" HREF="terminal_interface-curses-forms__ads.htm#ref_761_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1102_28" HREF="terminal_interface-curses-forms__ads.htm#ref_761_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_1103_28" HREF="terminal_interface-curses-forms__ads.htm#ref_762_28">New_Page</A></FONT> : Boolean := True) ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_new_page.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1102_14" HREF="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</A></span> (<span class="symbol"><A NAME="ref_1102_28" HREF="terminal_interface-curses-forms__ads.htm#ref_759_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_1103_28" HREF="terminal_interface-curses-forms__ads.htm#ref_760_28">New_Page</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1105_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1105_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_1105_39" HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Flg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1105_16">Set_Page</A></span> (<span class="symbol"><A NAME="ref_1105_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <span class="symbol"><A NAME="ref_1105_39" HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Flg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Page, "set_new_page"); + +- <FONT COLOR=red><A NAME="ref_1108_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_761_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_762_28">New_Page</A>)); ++ <span class="symbol"><A NAME="ref_1108_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_759_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_760_28">New_Page</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1108_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1108_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_761_14">Set_New_Page</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1117_13" HREF="terminal_interface-curses-forms__ads.htm#ref_767_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_26" HREF="terminal_interface-curses-forms__ads.htm#ref_767_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</A>; ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1117_13" HREF="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</A></span> (<span class="symbol"><A NAME="ref_1117_26" HREF="terminal_interface-curses-forms__ads.htm#ref_765_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1119_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="ref_1119_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_1119_16">Is_New</A></span> (<span class="symbol"><A NAME="ref_1119_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Is_New, "new_page"); + +- <FONT COLOR=red><A NAME="ref_1122_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_767_26">Fld</A>); ++ <span class="symbol"><A NAME="ref_1122_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_765_26">Fld</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1122_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_767_13">Is_New_Page</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_140_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_1131_20" HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>; +- <FONT COLOR=red><A NAME="ref_1132_20" HREF="terminal_interface-curses-forms__ads.htm#ref_141_20">Free_Fields</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_1131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_138_14">Free</A></span> (<span class="symbol"><A NAME="ref_1131_20" HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>; ++ <span class="symbol"><A NAME="ref_1132_20" HREF="terminal_interface-curses-forms__ads.htm#ref_139_20">Free_Fields</A></span> : Boolean := False) + <b>is</b> + <b>procedure</b> Release <b>is</b> <b>new</b> Ada.Unchecked_Deallocation +- (Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>); ++ (Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_20">Free_Fields</A> <b>then</b> +- <b>for</b> <FONT COLOR=red><A NAME="ref_1138_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>'Last - 1) <b>loop</b> +- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_319_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>)); ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_139_20">Free_Fields</A> <b>then</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_1138_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>'Last - 1) <b>loop</b> ++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b> ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>)); + <b>end</b> <b>if</b>; + <b>end</b> <b>loop</b>; + <b>end</b> <b>if</b>; +- Release (<A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_14">Free</A>; ++ Release (<A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_14">Free</A>; + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1149_13" HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_1149_13" HREF="terminal_interface-curses-forms__ads.htm#ref_103_13">Default_Field_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A> + <b>is</b> + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_420_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_103_13">Default_Field_Options</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1155_13" HREF="terminal_interface-curses-forms__ads.htm#ref_129_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_1155_13" HREF="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A> + <b>is</b> + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_667_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>); +- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_13">Default_Form_Options</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</A>; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms__ads.htm 2011-03-20 00:18:40.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms__ads.htm 2014-09-01 16:33:22.288792010 +0200 +@@ -1,88 +1,99 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Form --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.30 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:31:35 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- form binding.</EM></FONT> +-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT> +-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Form --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.30 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:31:35 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- form binding.</EM></span> ++<span class="comment"><EM>-- This module is generated. Please don't change it manually!</EM></span> ++<span class="comment"><EM>-- Run the generator instead.</EM></span> ++<span class="comment"><EM>-- |</EM></span> + <b>with</b> System; + <b>with</b> Ada.Characters.Latin_1; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_49_35" HREF="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>); + <b>pragma</b> Linker_Options ("-lform"); + <b>pragma</b> Linker_Options ("-lncurses"); + + Space : Character <b>renames</b> Ada.Characters.Latin_1.Space; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Field</A></FONT> <b>is</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Form</A></FONT> <b>is</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_56_9">Field</A></span> <b>is</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_57_9">Form</A></span> <b>is</b> <b>private</b>; + +- <FONT COLOR=red><A NAME="ref_59_4">Null_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_60_4">Null_Form</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_59_4">Null_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_60_4">Null_Form</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Field_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_62_33">None</A></FONT>, +- <FONT COLOR=red><A NAME="ref_63_33">Left</A></FONT>, +- <FONT COLOR=red><A NAME="ref_64_33">Center</A></FONT>, +- <FONT COLOR=red><A NAME="ref_65_33">Right</A></FONT>); ++ <b>type</b> <span class="symbol"><A NAME="ref_62_9">Field_Justification</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_62_33">None</A></span>, ++ <span class="symbol"><A NAME="ref_63_33">Left</A></span>, ++ <span class="symbol"><A NAME="ref_64_33">Center</A></span>, ++ <span class="symbol"><A NAME="ref_65_33">Right</A></span>); + + <b>pragma</b> Warnings (Off); +- <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Field_Option_Set</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_68_9">Field_Option_Set</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_70_10">Visible</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_71_10">Active</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_72_10">Public</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_73_10">Edit</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_74_10">Wrap</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_75_10">Blank</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_76_10">Auto_Skip</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_77_10">Null_Ok</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_78_10">Pass_Ok</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_79_10">Static</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_80_10">Unused</A></FONT> : Boolean; ++ <span class="symbol"><A NAME="ref_70_10">Visible</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_71_10">Active</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_72_10">Public</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_73_10">Edit</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_74_10">Wrap</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_75_10">Blank</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_76_10">Auto_Skip</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_77_10">Null_Ok</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_78_10">Pass_Ok</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_79_10">Static</A></span> : Boolean; + <b>end</b> <b>record</b>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>); + +@@ -98,687 +109,686 @@ + <A HREF="terminal_interface-curses-forms__ads.htm#ref_77_10">Null_Ok</A> <b>at</b> 0 <b>range</b> 7 .. 7; + <A HREF="terminal_interface-curses-forms__ads.htm#ref_78_10">Pass_Ok</A> <b>at</b> 0 <b>range</b> 8 .. 8; + <A HREF="terminal_interface-curses-forms__ads.htm#ref_79_10">Static</A> <b>at</b> 0 <b>range</b> 9 .. 9; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_80_10">Unused</A> <b>at</b> 0 <b>range</b> 10 .. 31; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>'Size <b>use</b> 32; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.Dnl</EM></FONT> ++ <b>pragma</b> Warnings (Off); <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>'Size <b>use</b> 32; ++ <b>pragma</b> Warnings (On); ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.Dnl</EM></span> + + <b>pragma</b> Warnings (On); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_104_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1149_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; +- <FONT COLOR=green><EM>-- The initial defaults for the field options.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A>); ++ <b>function</b> <span class="symbol"><A NAME="ref_103_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1149_13">Default_Field_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; ++ <span class="comment"><EM>-- The initial defaults for the field options.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_103_13">Default_Field_Options</A>); + + <b>pragma</b> Warnings (Off); +- <b>type</b> <FONT COLOR=red><A NAME="ref_109_9">Form_Option_Set</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_108_9">Form_Option_Set</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_111_10">NL_Overload</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_112_10">BS_Overload</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_113_10">Unused</A></FONT> : Boolean; ++ <span class="symbol"><A NAME="ref_110_10">NL_Overload</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_111_10">BS_Overload</A></span> : Boolean; + <b>end</b> <b>record</b>; +- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>); ++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>); + +- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A> <b>use</b> ++ <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A> <b>use</b> + <b>record</b> +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_111_10">NL_Overload</A> <b>at</b> 0 <b>range</b> 0 .. 0; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_112_10">BS_Overload</A> <b>at</b> 0 <b>range</b> 1 .. 1; +- <A HREF="terminal_interface-curses-forms__ads.htm#ref_113_10">Unused</A> <b>at</b> 0 <b>range</b> 2 .. 31; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_110_10">NL_Overload</A> <b>at</b> 0 <b>range</b> 0 .. 0; ++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_111_10">BS_Overload</A> <b>at</b> 0 <b>range</b> 1 .. 1; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>'Size <b>use</b> 32; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.Dnl</EM></FONT> ++ <b>pragma</b> Warnings (Off); <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>'Size <b>use</b> 32; ++ <b>pragma</b> Warnings (On); ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.Dnl</EM></span> + + <b>pragma</b> Warnings (On); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_129_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1155_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>; +- <FONT COLOR=green><EM>-- The initial defaults for the form options.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_129_13">Default_Form_Options</A>); ++ <b>function</b> <span class="symbol"><A NAME="ref_127_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1155_13">Default_Form_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>; ++ <span class="comment"><EM>-- The initial defaults for the form options.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_133_9">Buffer_Number</A></FONT> <b>is</b> <b>new</b> Natural; ++ <b>type</b> <span class="symbol"><A NAME="ref_131_9">Buffer_Number</A></span> <b>is</b> <b>new</b> Natural; + + <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; + <b>pragma</b> Convention (C, Field_Array); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_138_9">Field_Array_Access</A></FONT> <b>is</b> <b>access</b> Field_Array; ++ <b>type</b> <span class="symbol"><A NAME="ref_136_9">Field_Array_Access</A></span> <b>is</b> <b>access</b> Field_Array; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_140_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_140_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_20">FA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>; +- <FONT COLOR=red><A NAME="ref_141_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">Free_Fields</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- Release the memory for an allocated field array</EM></FONT> +- <FONT COLOR=green><EM>-- If Free_Fields is True, call Delete() for all the fields in</EM></FONT> +- <FONT COLOR=green><EM>-- the array.</EM></FONT> +- +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_146_12">Form_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57); +- +- <FONT COLOR=green><EM>-- The prefix F_ stands for "Form Request"</EM></FONT> +- <FONT COLOR=red><A NAME="ref_149_4">F_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1; +- <FONT COLOR=red><A NAME="ref_150_4">F_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2; +- <FONT COLOR=red><A NAME="ref_151_4">F_First_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3; +- <FONT COLOR=red><A NAME="ref_152_4">F_Last_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4; +- +- <FONT COLOR=red><A NAME="ref_154_4">F_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5; +- <FONT COLOR=red><A NAME="ref_155_4">F_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6; +- <FONT COLOR=red><A NAME="ref_156_4">F_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7; +- <FONT COLOR=red><A NAME="ref_157_4">F_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8; +- <FONT COLOR=red><A NAME="ref_158_4">F_Sorted_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9; +- <FONT COLOR=red><A NAME="ref_159_4">F_Sorted_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10; +- <FONT COLOR=red><A NAME="ref_160_4">F_Sorted_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11; +- <FONT COLOR=red><A NAME="ref_161_4">F_Sorted_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12; +- <FONT COLOR=red><A NAME="ref_162_4">F_Left_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13; +- <FONT COLOR=red><A NAME="ref_163_4">F_Right_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14; +- <FONT COLOR=red><A NAME="ref_164_4">F_Up_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15; +- <FONT COLOR=red><A NAME="ref_165_4">F_Down_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16; +- +- <FONT COLOR=red><A NAME="ref_167_4">F_Next_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17; +- <FONT COLOR=red><A NAME="ref_168_4">F_Previous_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18; +- <FONT COLOR=red><A NAME="ref_169_4">F_Next_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19; +- <FONT COLOR=red><A NAME="ref_170_4">F_Previous_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20; +- <FONT COLOR=red><A NAME="ref_171_4">F_Next_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21; +- <FONT COLOR=red><A NAME="ref_172_4">F_Previous_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22; +- <FONT COLOR=red><A NAME="ref_173_4">F_Begin_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23; +- <FONT COLOR=red><A NAME="ref_174_4">F_End_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24; +- <FONT COLOR=red><A NAME="ref_175_4">F_Begin_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25; +- <FONT COLOR=red><A NAME="ref_176_4">F_End_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26; +- <FONT COLOR=red><A NAME="ref_177_4">F_Left_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27; +- <FONT COLOR=red><A NAME="ref_178_4">F_Right_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28; +- <FONT COLOR=red><A NAME="ref_179_4">F_Up_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29; +- <FONT COLOR=red><A NAME="ref_180_4">F_Down_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 30; +- +- <FONT COLOR=red><A NAME="ref_182_4">F_New_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31; +- <FONT COLOR=red><A NAME="ref_183_4">F_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32; +- <FONT COLOR=red><A NAME="ref_184_4">F_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33; +- <FONT COLOR=red><A NAME="ref_185_4">F_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34; +- <FONT COLOR=red><A NAME="ref_186_4">F_Delete_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35; +- <FONT COLOR=red><A NAME="ref_187_4">F_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36; +- <FONT COLOR=red><A NAME="ref_188_4">F_Delete_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37; +- <FONT COLOR=red><A NAME="ref_189_4">F_Clear_EOL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38; +- <FONT COLOR=red><A NAME="ref_190_4">F_Clear_EOF</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39; +- <FONT COLOR=red><A NAME="ref_191_4">F_Clear_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40; +- <FONT COLOR=red><A NAME="ref_192_4">F_Overlay_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41; +- <FONT COLOR=red><A NAME="ref_193_4">F_Insert_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 42; +- +- <FONT COLOR=green><EM>-- Vertical Scrolling</EM></FONT> +- <FONT COLOR=red><A NAME="ref_196_4">F_ScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43; +- <FONT COLOR=red><A NAME="ref_197_4">F_ScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44; +- <FONT COLOR=red><A NAME="ref_198_4">F_ScrollForward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45; +- <FONT COLOR=red><A NAME="ref_199_4">F_ScrollBackward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46; +- <FONT COLOR=red><A NAME="ref_200_4">F_ScrollForward_HalfPage</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47; +- <FONT COLOR=red><A NAME="ref_201_4">F_ScrollBackward_HalfPage</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 48; +- +- <FONT COLOR=green><EM>-- Horizontal Scrolling</EM></FONT> +- <FONT COLOR=red><A NAME="ref_204_4">F_HScrollForward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49; +- <FONT COLOR=red><A NAME="ref_205_4">F_HScrollBackward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50; +- <FONT COLOR=red><A NAME="ref_206_4">F_HScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51; +- <FONT COLOR=red><A NAME="ref_207_4">F_HScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52; +- <FONT COLOR=red><A NAME="ref_208_4">F_HScrollForward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53; +- <FONT COLOR=red><A NAME="ref_209_4">F_HScrollBackward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 54; +- +- <FONT COLOR=red><A NAME="ref_211_4">F_Validate_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55; +- <FONT COLOR=red><A NAME="ref_212_4">F_Next_Choice</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56; +- <FONT COLOR=red><A NAME="ref_213_4">F_Previous_Choice</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57; +- +- <FONT COLOR=green><EM>-- For those who like the old 'C' style request names</EM></FONT> +- REQ_NEXT_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_149_4">F_Next_Page</A>; +- REQ_PREV_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Previous_Page</A>; +- REQ_FIRST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_First_Page</A>; +- REQ_LAST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Last_Page</A>; +- +- REQ_NEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Next_Field</A>; +- REQ_PREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Previous_Field</A>; +- REQ_FIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_First_Field</A>; +- REQ_LAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Last_Field</A>; +- REQ_SNEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_Next_Field</A>; +- REQ_SPREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Sorted_Previous_Field</A>; +- REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Sorted_First_Field</A>; +- REQ_SLAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Sorted_Last_Field</A>; +- REQ_LEFT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_162_4">F_Left_Field</A>; +- REQ_RIGHT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Right_Field</A>; +- REQ_UP_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Up_Field</A>; +- REQ_DOWN_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Down_Field</A>; +- +- REQ_NEXT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Char</A>; +- REQ_PREV_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Char</A>; +- REQ_NEXT_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Next_Line</A>; +- REQ_PREV_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Previous_Line</A>; +- REQ_NEXT_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Next_Word</A>; +- REQ_PREV_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_Previous_Word</A>; +- REQ_BEG_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Begin_Field</A>; +- REQ_END_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_End_Field</A>; +- REQ_BEG_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Begin_Line</A>; +- REQ_END_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_End_Line</A>; +- REQ_LEFT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_177_4">F_Left_Char</A>; +- REQ_RIGHT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_Right_Char</A>; +- REQ_UP_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_Up_Char</A>; +- REQ_DOWN_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Down_Char</A>; +- +- REQ_NEW_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_New_Line</A>; +- REQ_INS_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Insert_Char</A>; +- REQ_INS_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Insert_Line</A>; +- REQ_DEL_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Char</A>; +- REQ_DEL_PREV : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Delete_Previous</A>; +- REQ_DEL_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Delete_Line</A>; +- REQ_DEL_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Delete_Word</A>; +- REQ_CLR_EOL : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Clear_EOL</A>; +- REQ_CLR_EOF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_190_4">F_Clear_EOF</A>; +- REQ_CLR_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_191_4">F_Clear_Field</A>; +- REQ_OVL_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_192_4">F_Overlay_Mode</A>; +- REQ_INS_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_Insert_Mode</A>; +- +- REQ_SCR_FLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_Line</A>; +- REQ_SCR_BLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_Line</A>; +- REQ_SCR_FPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_198_4">F_ScrollForward_Page</A>; +- REQ_SCR_BPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_199_4">F_ScrollBackward_Page</A>; +- REQ_SCR_FHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_200_4">F_ScrollForward_HalfPage</A>; +- REQ_SCR_BHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_ScrollBackward_HalfPage</A>; +- +- REQ_SCR_FCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_Char</A>; +- REQ_SCR_BCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_Char</A>; +- REQ_SCR_HFLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_206_4">F_HScrollForward_Line</A>; +- REQ_SCR_HBLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_HScrollBackward_Line</A>; +- REQ_SCR_HFHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_HScrollForward_HalfLine</A>; +- REQ_SCR_HBHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_HScrollBackward_HalfLine</A>; +- +- REQ_VALIDATION : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_211_4">F_Validate_Field</A>; +- REQ_NEXT_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_212_4">F_Next_Choice</A>; +- REQ_PREV_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_213_4">F_Previous_Choice</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_138_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_14">Free</A></span> (<span class="symbol"><A NAME="ref_138_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_20">FA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>; ++ <span class="symbol"><A NAME="ref_139_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">Free_Fields</A></span> : Boolean := False); ++ <span class="comment"><EM>-- Release the memory for an allocated field array</EM></span> ++ <span class="comment"><EM>-- If Free_Fields is True, call Delete() for all the fields in</EM></span> ++ <span class="comment"><EM>-- the array.</EM></span> ++ ++ <b>subtype</b> <span class="symbol"><A NAME="ref_144_12">Form_Request_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57); ++ ++ <span class="comment"><EM>-- The prefix F_ stands for "Form Request"</EM></span> ++ <span class="symbol"><A NAME="ref_147_4">F_Next_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1; ++ <span class="symbol"><A NAME="ref_148_4">F_Previous_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2; ++ <span class="symbol"><A NAME="ref_149_4">F_First_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3; ++ <span class="symbol"><A NAME="ref_150_4">F_Last_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4; ++ ++ <span class="symbol"><A NAME="ref_152_4">F_Next_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5; ++ <span class="symbol"><A NAME="ref_153_4">F_Previous_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6; ++ <span class="symbol"><A NAME="ref_154_4">F_First_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7; ++ <span class="symbol"><A NAME="ref_155_4">F_Last_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8; ++ <span class="symbol"><A NAME="ref_156_4">F_Sorted_Next_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9; ++ <span class="symbol"><A NAME="ref_157_4">F_Sorted_Previous_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10; ++ <span class="symbol"><A NAME="ref_158_4">F_Sorted_First_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11; ++ <span class="symbol"><A NAME="ref_159_4">F_Sorted_Last_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12; ++ <span class="symbol"><A NAME="ref_160_4">F_Left_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13; ++ <span class="symbol"><A NAME="ref_161_4">F_Right_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14; ++ <span class="symbol"><A NAME="ref_162_4">F_Up_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15; ++ <span class="symbol"><A NAME="ref_163_4">F_Down_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16; ++ ++ <span class="symbol"><A NAME="ref_165_4">F_Next_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17; ++ <span class="symbol"><A NAME="ref_166_4">F_Previous_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18; ++ <span class="symbol"><A NAME="ref_167_4">F_Next_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19; ++ <span class="symbol"><A NAME="ref_168_4">F_Previous_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20; ++ <span class="symbol"><A NAME="ref_169_4">F_Next_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21; ++ <span class="symbol"><A NAME="ref_170_4">F_Previous_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22; ++ <span class="symbol"><A NAME="ref_171_4">F_Begin_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23; ++ <span class="symbol"><A NAME="ref_172_4">F_End_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24; ++ <span class="symbol"><A NAME="ref_173_4">F_Begin_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25; ++ <span class="symbol"><A NAME="ref_174_4">F_End_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26; ++ <span class="symbol"><A NAME="ref_175_4">F_Left_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27; ++ <span class="symbol"><A NAME="ref_176_4">F_Right_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28; ++ <span class="symbol"><A NAME="ref_177_4">F_Up_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29; ++ <span class="symbol"><A NAME="ref_178_4">F_Down_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 30; ++ ++ <span class="symbol"><A NAME="ref_180_4">F_New_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31; ++ <span class="symbol"><A NAME="ref_181_4">F_Insert_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32; ++ <span class="symbol"><A NAME="ref_182_4">F_Insert_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33; ++ <span class="symbol"><A NAME="ref_183_4">F_Delete_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34; ++ <span class="symbol"><A NAME="ref_184_4">F_Delete_Previous</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35; ++ <span class="symbol"><A NAME="ref_185_4">F_Delete_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36; ++ <span class="symbol"><A NAME="ref_186_4">F_Delete_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37; ++ <span class="symbol"><A NAME="ref_187_4">F_Clear_EOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38; ++ <span class="symbol"><A NAME="ref_188_4">F_Clear_EOF</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39; ++ <span class="symbol"><A NAME="ref_189_4">F_Clear_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40; ++ <span class="symbol"><A NAME="ref_190_4">F_Overlay_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41; ++ <span class="symbol"><A NAME="ref_191_4">F_Insert_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 42; ++ ++ <span class="comment"><EM>-- Vertical Scrolling</EM></span> ++ <span class="symbol"><A NAME="ref_194_4">F_ScrollForward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43; ++ <span class="symbol"><A NAME="ref_195_4">F_ScrollBackward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44; ++ <span class="symbol"><A NAME="ref_196_4">F_ScrollForward_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45; ++ <span class="symbol"><A NAME="ref_197_4">F_ScrollBackward_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46; ++ <span class="symbol"><A NAME="ref_198_4">F_ScrollForward_HalfPage</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47; ++ <span class="symbol"><A NAME="ref_199_4">F_ScrollBackward_HalfPage</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 48; ++ ++ <span class="comment"><EM>-- Horizontal Scrolling</EM></span> ++ <span class="symbol"><A NAME="ref_202_4">F_HScrollForward_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49; ++ <span class="symbol"><A NAME="ref_203_4">F_HScrollBackward_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50; ++ <span class="symbol"><A NAME="ref_204_4">F_HScrollForward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51; ++ <span class="symbol"><A NAME="ref_205_4">F_HScrollBackward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52; ++ <span class="symbol"><A NAME="ref_206_4">F_HScrollForward_HalfLine</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53; ++ <span class="symbol"><A NAME="ref_207_4">F_HScrollBackward_HalfLine</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 54; ++ ++ <span class="symbol"><A NAME="ref_209_4">F_Validate_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55; ++ <span class="symbol"><A NAME="ref_210_4">F_Next_Choice</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56; ++ <span class="symbol"><A NAME="ref_211_4">F_Previous_Choice</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57; ++ ++ <span class="comment"><EM>-- For those who like the old 'C' style request names</EM></span> ++ REQ_NEXT_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_Next_Page</A>; ++ REQ_PREV_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_Previous_Page</A>; ++ REQ_FIRST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_149_4">F_First_Page</A>; ++ REQ_LAST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Last_Page</A>; ++ ++ REQ_NEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Next_Field</A>; ++ REQ_PREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Previous_Field</A>; ++ REQ_FIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_First_Field</A>; ++ REQ_LAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Last_Field</A>; ++ REQ_SNEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_Next_Field</A>; ++ REQ_SPREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Previous_Field</A>; ++ REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_First_Field</A>; ++ REQ_SLAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Sorted_Last_Field</A>; ++ REQ_LEFT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Left_Field</A>; ++ REQ_RIGHT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Right_Field</A>; ++ REQ_UP_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_162_4">F_Up_Field</A>; ++ REQ_DOWN_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Down_Field</A>; ++ ++ REQ_NEXT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Char</A>; ++ REQ_PREV_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Char</A>; ++ REQ_NEXT_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Line</A>; ++ REQ_PREV_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Line</A>; ++ REQ_NEXT_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Next_Word</A>; ++ REQ_PREV_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Previous_Word</A>; ++ REQ_BEG_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Field</A>; ++ REQ_END_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Field</A>; ++ REQ_BEG_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Begin_Line</A>; ++ REQ_END_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_End_Line</A>; ++ REQ_LEFT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Left_Char</A>; ++ REQ_RIGHT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Right_Char</A>; ++ REQ_UP_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_177_4">F_Up_Char</A>; ++ REQ_DOWN_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_Down_Char</A>; ++ ++ REQ_NEW_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_New_Line</A>; ++ REQ_INS_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Insert_Char</A>; ++ REQ_INS_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Insert_Line</A>; ++ REQ_DEL_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Char</A>; ++ REQ_DEL_PREV : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Previous</A>; ++ REQ_DEL_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Line</A>; ++ REQ_DEL_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Delete_Word</A>; ++ REQ_CLR_EOL : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_EOL</A>; ++ REQ_CLR_EOF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Clear_EOF</A>; ++ REQ_CLR_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Clear_Field</A>; ++ REQ_OVL_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_190_4">F_Overlay_Mode</A>; ++ REQ_INS_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_191_4">F_Insert_Mode</A>; ++ ++ REQ_SCR_FLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Line</A>; ++ REQ_SCR_BLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Line</A>; ++ REQ_SCR_FPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_Page</A>; ++ REQ_SCR_BPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_Page</A>; ++ REQ_SCR_FHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_198_4">F_ScrollForward_HalfPage</A>; ++ REQ_SCR_BHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_199_4">F_ScrollBackward_HalfPage</A>; ++ ++ REQ_SCR_FCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Char</A>; ++ REQ_SCR_BCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Char</A>; ++ REQ_SCR_HFLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_Line</A>; ++ REQ_SCR_HBLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_Line</A>; ++ REQ_SCR_HFHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_206_4">F_HScrollForward_HalfLine</A>; ++ REQ_SCR_HBHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_HScrollBackward_HalfLine</A>; ++ ++ REQ_VALIDATION : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Validate_Field</A>; ++ REQ_NEXT_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_210_4">F_Next_Choice</A>; ++ REQ_PREV_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_211_4">F_Previous_Choice</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_280_14" HREF="terminal_interface-curses-forms__adb.htm#ref_81_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_280_28" HREF="terminal_interface-curses-forms__adb.htm#ref_81_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>; +- <FONT COLOR=red><A NAME="ref_281_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Name</A></FONT> : <b>out</b> String); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_278_14" HREF="terminal_interface-curses-forms__adb.htm#ref_81_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_278_28" HREF="terminal_interface-curses-forms__adb.htm#ref_81_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>; ++ <span class="symbol"><A NAME="ref_279_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Name</A></span> : <b>out</b> String); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_283_14" HREF="terminal_interface-curses-forms__adb.htm#ref_90_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_283_28" HREF="terminal_interface-curses-forms__adb.htm#ref_90_27">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_281_14" HREF="terminal_interface-curses-forms__adb.htm#ref_90_13">Request_Name</A></span> (<span class="symbol"><A NAME="ref_281_28" HREF="terminal_interface-curses-forms__adb.htm#ref_90_27">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>) <b>return</b> String; ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Request_Name); + +- <FONT COLOR=green><EM>------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT> +- <FONT COLOR=green><EM>------------------</EM></FONT> +- <FONT COLOR=red><A NAME="ref_290_4">Form_Exception</A></FONT> : <b>exception</b>; +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_297_13" HREF="terminal_interface-curses-forms__adb.htm#ref_108_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_108_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_299_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_300_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_301_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Off_Screen</A></FONT> : Natural := 0; +- <FONT COLOR=red><A NAME="ref_302_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) ++ <span class="comment"><EM>------------------</EM></span> ++ <span class="comment"><EM>-- Exceptions --</EM></span> ++ <span class="comment"><EM>------------------</EM></span> ++ <span class="symbol"><A NAME="ref_288_4">Form_Exception</A></span> : <b>exception</b>; ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_295_13" HREF="terminal_interface-curses-forms__adb.htm#ref_108_13">Create</A></span> (<span class="symbol"><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_108_21">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_299_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Off_Screen</A></span> : Natural := 0; ++ <span class="symbol"><A NAME="ref_300_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) + <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded Create is defined later. Pragma Inline appears there.</EM></FONT> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></span> ++ <span class="comment"><EM>-- An overloaded Create is defined later. Pragma Inline appears there.</EM></span> + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_308_24">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_309_24">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_310_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_311_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_312_24">Off_Screen</A></FONT> : Natural := 0; +- <FONT COLOR=red><A NAME="ref_313_24">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) +- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_297_13">Create</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>function</b> New_Field (<span class="symbol"><A NAME="ref_306_24">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_307_24">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_308_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_309_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_310_24">Off_Screen</A></span> : Natural := 0; ++ <span class="symbol"><A NAME="ref_311_24">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) ++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></span> + <b>pragma</b> Inline (New_Field); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_319_14" HREF="terminal_interface-curses-forms__adb.htm#ref_131_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_319_22" HREF="terminal_interface-curses-forms__adb.htm#ref_131_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Reset Fld to Null_Field</EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_325_13" HREF="terminal_interface-curses-forms__adb.htm#ref_147_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_325_24" HREF="terminal_interface-curses-forms__adb.htm#ref_147_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_326_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_327_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_317_14" HREF="terminal_interface-curses-forms__adb.htm#ref_131_14">Delete</A></span> (<span class="symbol"><A NAME="ref_317_22" HREF="terminal_interface-curses-forms__adb.htm#ref_131_22">Fld</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></span> ++ <span class="comment"><EM>-- Reset Fld to Null_Field</EM></span> ++ <span class="comment"><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_323_13" HREF="terminal_interface-curses-forms__adb.htm#ref_147_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_147_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_324_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_325_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></span> + <b>pragma</b> Inline (Duplicate); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_332_13" HREF="terminal_interface-curses-forms__adb.htm#ref_168_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_332_19" HREF="terminal_interface-curses-forms__adb.htm#ref_168_19">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_333_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_334_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_332_13">Link</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_343_14" HREF="terminal_interface-curses-forms__adb.htm#ref_193_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_343_33" HREF="terminal_interface-curses-forms__adb.htm#ref_193_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_344_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Just</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_343_14">Set_Justification</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_349_13" HREF="terminal_interface-curses-forms__adb.htm#ref_211_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_349_32" HREF="terminal_interface-curses-forms__adb.htm#ref_211_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_349_13">Get_Justification</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_358_14" HREF="terminal_interface-curses-forms__adb.htm#ref_225_14">Set_Buffer</A></FONT> +- (<FONT COLOR=red><A NAME="ref_359_7" HREF="terminal_interface-curses-forms__adb.htm#ref_226_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_360_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First; +- <FONT COLOR=red><A NAME="ref_361_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Str</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Not inlined</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_366_14" HREF="terminal_interface-curses-forms__adb.htm#ref_250_14">Get_Buffer</A></FONT> +- (<FONT COLOR=red><A NAME="ref_367_7" HREF="terminal_interface-curses-forms__adb.htm#ref_251_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_368_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First; +- <FONT COLOR=red><A NAME="ref_369_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Str</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_372_13" HREF="terminal_interface-curses-forms__adb.htm#ref_262_13">Get_Buffer</A></FONT> +- (<FONT COLOR=red><A NAME="ref_373_7" HREF="terminal_interface-curses-forms__adb.htm#ref_263_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_374_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same but as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_330_13" HREF="terminal_interface-curses-forms__adb.htm#ref_168_13">Link</A></span> (<span class="symbol"><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_168_19">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_331_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_332_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_341_14" HREF="terminal_interface-curses-forms__adb.htm#ref_193_14">Set_Justification</A></span> (<span class="symbol"><A NAME="ref_341_33" HREF="terminal_interface-curses-forms__adb.htm#ref_193_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_342_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Just</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_347_13" HREF="terminal_interface-curses-forms__adb.htm#ref_211_13">Get_Justification</A></span> (<span class="symbol"><A NAME="ref_347_32" HREF="terminal_interface-curses-forms__adb.htm#ref_211_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_356_14" HREF="terminal_interface-curses-forms__adb.htm#ref_225_14">Set_Buffer</A></span> ++ (<span class="symbol"><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_226_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_358_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First; ++ <span class="symbol"><A NAME="ref_359_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Str</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></span> ++ <span class="comment"><EM>-- Not inlined</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_364_14" HREF="terminal_interface-curses-forms__adb.htm#ref_250_14">Get_Buffer</A></span> ++ (<span class="symbol"><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_251_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_366_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First; ++ <span class="symbol"><A NAME="ref_367_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Str</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_370_13" HREF="terminal_interface-curses-forms__adb.htm#ref_262_13">Get_Buffer</A></span> ++ (<span class="symbol"><A NAME="ref_371_7" HREF="terminal_interface-curses-forms__adb.htm#ref_263_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_372_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></span> ++ <span class="comment"><EM>-- Same but as function</EM></span> + <b>pragma</b> Inline (Get_Buffer); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_380_14" HREF="terminal_interface-curses-forms__adb.htm#ref_275_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_380_26" HREF="terminal_interface-curses-forms__adb.htm#ref_275_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_381_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Status</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_380_14">Set_Status</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_386_13" HREF="terminal_interface-curses-forms__adb.htm#ref_291_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_386_22" HREF="terminal_interface-curses-forms__adb.htm#ref_291_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_386_13">Changed</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_391_14" HREF="terminal_interface-curses-forms__adb.htm#ref_307_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_391_32" HREF="terminal_interface-curses-forms__adb.htm#ref_307_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_392_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Max</A></FONT> : Natural := 0); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_391_14">Set_Maximum_Size</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_401_14" HREF="terminal_interface-curses-forms__adb.htm#ref_327_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_401_27" HREF="terminal_interface-curses-forms__adb.htm#ref_327_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_402_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_407_14" HREF="terminal_interface-curses-forms__adb.htm#ref_345_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_407_30" HREF="terminal_interface-curses-forms__adb.htm#ref_345_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_408_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_409_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">On</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: field_opts_off()</EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_415_14" HREF="terminal_interface-curses-forms__adb.htm#ref_371_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_415_27" HREF="terminal_interface-curses-forms__adb.htm#ref_371_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_416_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_378_14" HREF="terminal_interface-curses-forms__adb.htm#ref_275_14">Set_Status</A></span> (<span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses-forms__adb.htm#ref_275_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_379_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Status</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__adb.htm#ref_291_13">Changed</A></span> (<span class="symbol"><A NAME="ref_384_22" HREF="terminal_interface-curses-forms__adb.htm#ref_291_22">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_389_14" HREF="terminal_interface-curses-forms__adb.htm#ref_307_14">Set_Maximum_Size</A></span> (<span class="symbol"><A NAME="ref_389_32" HREF="terminal_interface-curses-forms__adb.htm#ref_307_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_390_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Max</A></span> : Natural := 0); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__adb.htm#ref_327_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_399_27" HREF="terminal_interface-curses-forms__adb.htm#ref_327_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_400_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></span> ++ <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_405_14" HREF="terminal_interface-curses-forms__adb.htm#ref_345_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_345_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_406_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_407_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">On</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></span> ++ <span class="comment"><EM>-- AKA: field_opts_off()</EM></span> ++ <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_413_14" HREF="terminal_interface-curses-forms__adb.htm#ref_371_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_413_27" HREF="terminal_interface-curses-forms__adb.htm#ref_371_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_414_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></span> + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_420_13" HREF="terminal_interface-curses-forms__adb.htm#ref_384_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_420_26" HREF="terminal_interface-curses-forms__adb.htm#ref_384_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>) ++ <span class="comment"><EM>-- #1A NAME="AFU_16"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_418_13" HREF="terminal_interface-curses-forms__adb.htm#ref_384_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_418_26" HREF="terminal_interface-curses-forms__adb.htm#ref_384_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>) + <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></span> ++ <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span> + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__adb.htm#ref_399_14">Set_Foreground</A></FONT> +- (<FONT COLOR=red><A NAME="ref_431_7" HREF="terminal_interface-curses-forms__adb.htm#ref_400_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_432_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_433_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_430_14">Set_Foreground</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_438_14" HREF="terminal_interface-curses-forms__adb.htm#ref_421_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_438_26" HREF="terminal_interface-curses-forms__adb.htm#ref_421_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_439_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__adb.htm#ref_430_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_443_26" HREF="terminal_interface-curses-forms__adb.htm#ref_430_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_444_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_445_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_17"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_428_14" HREF="terminal_interface-curses-forms__adb.htm#ref_399_14">Set_Foreground</A></span> ++ (<span class="symbol"><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_400_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_430_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_431_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_18"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_436_14" HREF="terminal_interface-curses-forms__adb.htm#ref_421_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_436_26" HREF="terminal_interface-curses-forms__adb.htm#ref_421_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_437_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_19"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_441_14" HREF="terminal_interface-curses-forms__adb.htm#ref_430_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_430_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_442_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_443_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></span> + <b>pragma</b> Inline (Foreground); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_450_14" HREF="terminal_interface-curses-forms__adb.htm#ref_443_14">Set_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_451_7" HREF="terminal_interface-curses-forms__adb.htm#ref_444_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_452_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_453_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_20"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_448_14" HREF="terminal_interface-curses-forms__adb.htm#ref_443_14">Set_Background</A></span> ++ (<span class="symbol"><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_444_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_450_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_451_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></span> + <b>pragma</b> Inline (Set_Background); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_458_14" HREF="terminal_interface-curses-forms__adb.htm#ref_465_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_458_26" HREF="terminal_interface-curses-forms__adb.htm#ref_465_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_459_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_463_14" HREF="terminal_interface-curses-forms__adb.htm#ref_474_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_463_26" HREF="terminal_interface-curses-forms__adb.htm#ref_474_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_464_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_21"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_456_14" HREF="terminal_interface-curses-forms__adb.htm#ref_465_14">Background</A></span> (<span class="symbol"><A NAME="ref_456_26" HREF="terminal_interface-curses-forms__adb.htm#ref_465_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_457_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_22"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_461_14" HREF="terminal_interface-curses-forms__adb.htm#ref_474_14">Background</A></span> (<span class="symbol"><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_474_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_462_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_463_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></span> + <b>pragma</b> Inline (Background); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_470_14" HREF="terminal_interface-curses-forms__adb.htm#ref_487_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_470_33" HREF="terminal_interface-curses-forms__adb.htm#ref_487_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_471_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Pad</A></FONT> : Character := Space); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_470_14">Set_Pad_Character</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_476_14" HREF="terminal_interface-curses-forms__adb.htm#ref_504_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_476_29" HREF="terminal_interface-curses-forms__adb.htm#ref_504_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_477_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Pad</A></FONT> : <b>out</b> Character); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_476_14">Pad_Character</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_486_14" HREF="terminal_interface-curses-forms__adb.htm#ref_519_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_519_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_489_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_490_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_491_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">Off_Screen</A></FONT> : <b>out</b> Natural; +- <FONT COLOR=red><A NAME="ref_492_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_486_14">Info</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses-forms__adb.htm#ref_553_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_497_28" HREF="terminal_interface-curses-forms__adb.htm#ref_553_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_498_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_499_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_500_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Max</A></FONT> : <b>out</b> Natural); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_497_14">Dynamic_Info</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_509_14" HREF="terminal_interface-curses-forms__adb.htm#ref_582_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_509_26" HREF="terminal_interface-curses-forms__adb.htm#ref_582_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_510_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_509_14">Set_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_515_13" HREF="terminal_interface-curses-forms__adb.htm#ref_598_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_515_25" HREF="terminal_interface-curses-forms__adb.htm#ref_598_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_515_13">Get_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_520_14" HREF="terminal_interface-curses-forms__adb.htm#ref_610_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_520_30" HREF="terminal_interface-curses-forms__adb.htm#ref_610_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_521_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_520_14">Set_Sub_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_526_13" HREF="terminal_interface-curses-forms__adb.htm#ref_626_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_526_29" HREF="terminal_interface-curses-forms__adb.htm#ref_626_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_526_13">Get_Sub_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_531_14" HREF="terminal_interface-curses-forms__adb.htm#ref_638_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_531_21" HREF="terminal_interface-curses-forms__adb.htm#ref_638_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_532_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_533_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_531_14">Scale</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_541_9">Form_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_541_49">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>); +- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_545_14" HREF="terminal_interface-curses-forms__adb.htm#ref_662_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_545_35" HREF="terminal_interface-curses-forms__adb.htm#ref_662_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_546_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_545_14">Set_Field_Init_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_551_14" HREF="terminal_interface-curses-forms__adb.htm#ref_678_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_551_35" HREF="terminal_interface-curses-forms__adb.htm#ref_678_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_552_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_551_14">Set_Field_Term_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_557_14" HREF="terminal_interface-curses-forms__adb.htm#ref_694_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_557_34" HREF="terminal_interface-curses-forms__adb.htm#ref_694_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_558_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_557_14">Set_Form_Init_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_563_14" HREF="terminal_interface-curses-forms__adb.htm#ref_710_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_563_34" HREF="terminal_interface-curses-forms__adb.htm#ref_710_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_564_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_563_14">Set_Form_Term_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_569_13">Get_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_569_34" HREF="terminal_interface-curses-forms__ads.htm#ref_569_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_23"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_468_14" HREF="terminal_interface-curses-forms__adb.htm#ref_487_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_468_33" HREF="terminal_interface-curses-forms__adb.htm#ref_487_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_469_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Pad</A></span> : Character := Space); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_24"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__adb.htm#ref_504_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_474_29" HREF="terminal_interface-curses-forms__adb.htm#ref_504_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_475_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Pad</A></span> : <b>out</b> Character); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_25"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_484_14" HREF="terminal_interface-curses-forms__adb.htm#ref_519_14">Info</A></span> (<span class="symbol"><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_519_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">First_Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_489_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">Off_Screen</A></span> : <b>out</b> Natural; ++ <span class="symbol"><A NAME="ref_490_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Additional_Buffers</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_26"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_495_14" HREF="terminal_interface-curses-forms__adb.htm#ref_553_14">Dynamic_Info</A></span> (<span class="symbol"><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_553_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_497_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_498_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Max</A></span> : <b>out</b> Natural); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_27"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_507_14" HREF="terminal_interface-curses-forms__adb.htm#ref_582_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_507_26" HREF="terminal_interface-curses-forms__adb.htm#ref_582_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_508_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_28"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_513_13" HREF="terminal_interface-curses-forms__adb.htm#ref_598_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_513_25" HREF="terminal_interface-curses-forms__adb.htm#ref_598_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_29"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_518_14" HREF="terminal_interface-curses-forms__adb.htm#ref_610_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_518_30" HREF="terminal_interface-curses-forms__adb.htm#ref_610_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_519_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_30"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_524_13" HREF="terminal_interface-curses-forms__adb.htm#ref_626_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_524_29" HREF="terminal_interface-curses-forms__adb.htm#ref_626_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_31"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_529_14" HREF="terminal_interface-curses-forms__adb.htm#ref_638_14">Scale</A></span> (<span class="symbol"><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_638_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_530_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_531_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_539_9">Form_Hook_Function</A></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><A NAME="ref_539_49">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>); ++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_32"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_543_14" HREF="terminal_interface-curses-forms__adb.htm#ref_662_14">Set_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_543_35" HREF="terminal_interface-curses-forms__adb.htm#ref_662_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_544_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_33"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_549_14" HREF="terminal_interface-curses-forms__adb.htm#ref_678_14">Set_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_549_35" HREF="terminal_interface-curses-forms__adb.htm#ref_678_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_550_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_34"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_555_14" HREF="terminal_interface-curses-forms__adb.htm#ref_694_14">Set_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_555_34" HREF="terminal_interface-curses-forms__adb.htm#ref_694_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_556_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_35"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_561_14" HREF="terminal_interface-curses-forms__adb.htm#ref_710_14">Set_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_561_34" HREF="terminal_interface-curses-forms__adb.htm#ref_710_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_562_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_36"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_567_13">Get_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_567_34" HREF="terminal_interface-curses-forms__ads.htm#ref_567_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></span> + <b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_574_13">Get_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_574_34" HREF="terminal_interface-curses-forms__ads.htm#ref_574_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_37"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_572_13">Get_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_572_34" HREF="terminal_interface-curses-forms__ads.htm#ref_572_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></span> + <b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_579_13">Get_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_579_33" HREF="terminal_interface-curses-forms__ads.htm#ref_579_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_38"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_577_13">Get_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_577_33" HREF="terminal_interface-curses-forms__ads.htm#ref_577_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></span> + <b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_584_13">Get_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_584_33" HREF="terminal_interface-curses-forms__ads.htm#ref_584_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_39"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_582_13">Get_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_582_33" HREF="terminal_interface-curses-forms__ads.htm#ref_582_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></span> + <b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term"); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_593_14" HREF="terminal_interface-curses-forms__adb.htm#ref_730_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_593_24" HREF="terminal_interface-curses-forms__adb.htm#ref_730_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_594_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Flds</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_599_14">Set_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_599_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_600_26">Flds</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT> +- <FONT COLOR=green><EM>-- pragma Inline (Set_Fields);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_605_13" HREF="terminal_interface-curses-forms__adb.htm#ref_752_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_605_21" HREF="terminal_interface-curses-forms__adb.htm#ref_752_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_606_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_605_13">Fields</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_611_13" HREF="terminal_interface-curses-forms__adb.htm#ref_772_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_611_26" HREF="terminal_interface-curses-forms__adb.htm#ref_772_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_616_14" HREF="terminal_interface-curses-forms__adb.htm#ref_782_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_616_20" HREF="terminal_interface-curses-forms__adb.htm#ref_782_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_617_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_618_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_616_14">Move</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_627_13" HREF="terminal_interface-curses-forms__adb.htm#ref_802_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_627_21" HREF="terminal_interface-curses-forms__adb.htm#ref_802_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_40"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_591_14" HREF="terminal_interface-curses-forms__adb.htm#ref_730_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_591_24" HREF="terminal_interface-curses-forms__adb.htm#ref_730_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_592_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_41"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_597_14">Set_Fields</A></span> (<span class="symbol"><A NAME="ref_597_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_598_26">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></span> ++ <span class="comment"><EM>-- pragma Inline (Set_Fields);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_42"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_603_13" HREF="terminal_interface-curses-forms__adb.htm#ref_752_13">Fields</A></span> (<span class="symbol"><A NAME="ref_603_21" HREF="terminal_interface-curses-forms__adb.htm#ref_752_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_604_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_43"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_609_13" HREF="terminal_interface-curses-forms__adb.htm#ref_772_13">Field_Count</A></span> (<span class="symbol"><A NAME="ref_609_26" HREF="terminal_interface-curses-forms__adb.htm#ref_772_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_44"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_614_14" HREF="terminal_interface-curses-forms__adb.htm#ref_782_14">Move</A></span> (<span class="symbol"><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_782_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_615_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_616_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_45"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_625_13" HREF="terminal_interface-curses-forms__adb.htm#ref_802_13">Create</A></span> (<span class="symbol"><A NAME="ref_625_21" HREF="terminal_interface-curses-forms__adb.htm#ref_802_21">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></span> + <b>pragma</b> Inline (Create); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT> +- <b>function</b> New_Form (<FONT COLOR=red><A NAME="ref_632_23">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> +- <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_627_13">Create</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT> +- <FONT COLOR=green><EM>-- pragma Inline (New_Form);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__adb.htm#ref_823_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_638_22" HREF="terminal_interface-curses-forms__adb.htm#ref_823_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Reset Frm to Null_Form</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_46"#2|</EM></span> ++ <b>function</b> New_Form (<span class="symbol"><A NAME="ref_630_23">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> ++ <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></span> ++ <span class="comment"><EM>-- pragma Inline (New_Form);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_47"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_636_14" HREF="terminal_interface-curses-forms__adb.htm#ref_823_14">Delete</A></span> (<span class="symbol"><A NAME="ref_636_22" HREF="terminal_interface-curses-forms__adb.htm#ref_823_22">Frm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></span> ++ <span class="comment"><EM>-- Reset Frm to Null_Form</EM></span> + <b>pragma</b> Inline (Delete); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_648_14" HREF="terminal_interface-curses-forms__adb.htm#ref_842_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_648_27" HREF="terminal_interface-curses-forms__adb.htm#ref_842_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_649_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_48"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_646_14" HREF="terminal_interface-curses-forms__adb.htm#ref_842_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_646_27" HREF="terminal_interface-curses-forms__adb.htm#ref_842_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_647_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></span> + <b>pragma</b> Inline (Set_Options); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_654_14" HREF="terminal_interface-curses-forms__adb.htm#ref_860_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_654_30" HREF="terminal_interface-curses-forms__adb.htm#ref_860_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_655_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_656_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">On</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: form_opts_off()</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_49"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_652_14" HREF="terminal_interface-curses-forms__adb.htm#ref_860_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_860_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_653_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_654_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">On</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></span> ++ <span class="comment"><EM>-- AKA: form_opts_off()</EM></span> + <b>pragma</b> Inline (Switch_Options); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__adb.htm#ref_886_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_662_27" HREF="terminal_interface-curses-forms__adb.htm#ref_886_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_663_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_667_13" HREF="terminal_interface-curses-forms__adb.htm#ref_899_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_667_26" HREF="terminal_interface-curses-forms__adb.htm#ref_899_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_50"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_660_14" HREF="terminal_interface-curses-forms__adb.htm#ref_886_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_660_27" HREF="terminal_interface-curses-forms__adb.htm#ref_886_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_661_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_51"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_665_13" HREF="terminal_interface-curses-forms__adb.htm#ref_899_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_665_26" HREF="terminal_interface-curses-forms__adb.htm#ref_899_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></span> + <b>pragma</b> Inline (Get_Options); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_676_14" HREF="terminal_interface-curses-forms__adb.htm#ref_913_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_676_20" HREF="terminal_interface-curses-forms__adb.htm#ref_913_20">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_677_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Post</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: unpost_form()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_676_14">Post</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_687_14" HREF="terminal_interface-curses-forms__adb.htm#ref_939_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_687_31" HREF="terminal_interface-curses-forms__adb.htm#ref_939_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_687_14">Position_Cursor</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_696_13" HREF="terminal_interface-curses-forms__adb.htm#ref_957_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_696_25" HREF="terminal_interface-curses-forms__adb.htm#ref_957_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_696_13">Data_Ahead</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_701_13" HREF="terminal_interface-curses-forms__adb.htm#ref_973_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_701_26" HREF="terminal_interface-curses-forms__adb.htm#ref_973_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_701_13">Data_Behind</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_709_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_709_27">Form_Ok</A></FONT>, +- <FONT COLOR=red><A NAME="ref_710_27">Request_Denied</A></FONT>, +- <FONT COLOR=red><A NAME="ref_711_27">Unknown_Request</A></FONT>, +- <FONT COLOR=red><A NAME="ref_712_27">Invalid_Field</A></FONT>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_715_13" HREF="terminal_interface-curses-forms__adb.htm#ref_993_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_715_21" HREF="terminal_interface-curses-forms__adb.htm#ref_993_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_716_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_9">Driver_Result</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Driver not inlined</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_724_9">Page_Number</A></FONT> <b>is</b> <b>new</b> Natural; +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_727_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_727_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_728_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_727_14">Set_Current</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_733_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_733_22" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_733_13">Current</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_738_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_738_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_739_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Page</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_738_14">Set_Page</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_744_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_744_19" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_744_13">Page</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_749_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_749_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of fields</EM></FONT> +- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT> +- <FONT COLOR=green><EM>-- level call.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_749_13">Get_Index</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_761_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_761_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_762_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">New_Page</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_761_14">Set_New_Page</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_63"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_767_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_767_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_767_13">Is_New_Page</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: form_request_name, form_request_by_name</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_52"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_674_14" HREF="terminal_interface-curses-forms__adb.htm#ref_913_14">Post</A></span> (<span class="symbol"><A NAME="ref_674_20" HREF="terminal_interface-curses-forms__adb.htm#ref_913_20">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_675_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Post</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></span> ++ <span class="comment"><EM>-- AKA: unpost_form()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_53"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_685_14" HREF="terminal_interface-curses-forms__adb.htm#ref_939_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_685_31" HREF="terminal_interface-curses-forms__adb.htm#ref_939_31">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_54"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_694_13" HREF="terminal_interface-curses-forms__adb.htm#ref_957_13">Data_Ahead</A></span> (<span class="symbol"><A NAME="ref_694_25" HREF="terminal_interface-curses-forms__adb.htm#ref_957_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_55"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_699_13" HREF="terminal_interface-curses-forms__adb.htm#ref_973_13">Data_Behind</A></span> (<span class="symbol"><A NAME="ref_699_26" HREF="terminal_interface-curses-forms__adb.htm#ref_973_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_707_9">Driver_Result</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_707_27">Form_Ok</A></span>, ++ <span class="symbol"><A NAME="ref_708_27">Request_Denied</A></span>, ++ <span class="symbol"><A NAME="ref_709_27">Unknown_Request</A></span>, ++ <span class="symbol"><A NAME="ref_710_27">Invalid_Field</A></span>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_56"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_713_13" HREF="terminal_interface-curses-forms__adb.htm#ref_993_13">Driver</A></span> (<span class="symbol"><A NAME="ref_713_21" HREF="terminal_interface-curses-forms__adb.htm#ref_993_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_714_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_9">Driver_Result</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></span> ++ <span class="comment"><EM>-- Driver not inlined</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_722_9">Page_Number</A></span> <b>is</b> <b>new</b> Natural; ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_57"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_725_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_725_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_726_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_58"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_731_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_13">Current</A></span> (<span class="symbol"><A NAME="ref_731_22" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_22">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_59"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_736_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_14">Set_Page</A></span> (<span class="symbol"><A NAME="ref_736_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_737_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Page</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_60"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_742_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_13">Page</A></span> (<span class="symbol"><A NAME="ref_742_19" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_19">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_61"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_747_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_747_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></span> ++ <span class="comment"><EM>-- Please note that in this binding we start the numbering of fields</EM></span> ++ <span class="comment"><EM>-- with 1. So this is number is one more than you get from the low</EM></span> ++ <span class="comment"><EM>-- level call.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_62"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_759_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_14">Set_New_Page</A></span> (<span class="symbol"><A NAME="ref_759_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_760_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">New_Page</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_63"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_765_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_13">Is_New_Page</A></span> (<span class="symbol"><A NAME="ref_765_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not Implemented: form_request_name, form_request_by_name</EM></span> + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>private</b> + <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; + <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm 2014-09-01 16:33:22.280791996 +0200 +@@ -1,81 +1,93 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.25 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:22:27 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.25 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 23:22:27 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + <b>with</b> Ada.Unchecked_Deallocation; + <b>with</b> System.Address_To_Access_Conversions; + +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +-<FONT COLOR=green><EM>-- | man page form_fieldtype.3x</EM></FONT> +-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_51_46" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A></FONT> <b>is</b> ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |=====================================================================</EM></span> ++<span class="comment"><EM>-- | man page form_fieldtype.3x</EM></span> ++<span class="comment"><EM>-- |=====================================================================</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<span class="symbol"><A NAME="ref_51_46" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A></span> <b>is</b> + + <b>use</b> <b>type</b> System.Address; + + <b>package</b> Argument_Conversions <b>is</b> + <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_58_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_58_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_58_13">Get_Fieldtype</A></span> (<span class="symbol"><A NAME="ref_58_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>pragma</b> Import (C, Get_Fieldtype, "field_type"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_61_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_61_22" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> System.Address; ++ <b>function</b> <span class="symbol"><A NAME="ref_61_13">Get_Arg</A></span> (<span class="symbol"><A NAME="ref_61_22" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> System.Address; + <b>pragma</b> Import (C, Get_Arg, "field_arg"); +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | man page form_field_validation.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_70_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | man page form_field_validation.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A></span> (<span class="symbol"><A NAME="ref_70_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_72_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>); +- <FONT COLOR=red><A NAME="ref_73_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>; ++ <span class="symbol"><A NAME="ref_72_7">Low_Level</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>); ++ <span class="symbol"><A NAME="ref_73_7">Arg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> + <b>return</b> <b>null</b>; +@@ -87,32 +99,32 @@ + <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> + (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>))); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A> = <b>null</b> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>; + <b>end</b> <b>if</b>; + <b>else</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_95_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_95_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address ++ <b>function</b> <span class="symbol"><A NAME="ref_95_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A></span> (<span class="symbol"><A NAME="ref_95_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A></span> : System.Address) <b>return</b> System.Address + <b>is</b> + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_101_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_101_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A></FONT> : System.Address) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_101_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A></span> (<span class="symbol"><A NAME="ref_101_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A></span> : System.Address) + <b>is</b> + <b>procedure</b> Free_Type <b>is</b> <b>new</b> Ada.Unchecked_Deallocation + (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>); + <b>procedure</b> Freeargs <b>is</b> <b>new</b> Ada.Unchecked_Deallocation + (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>); + +- <FONT COLOR=red><A NAME="ref_108_7">To_Be_Free</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> ++ <span class="symbol"><A NAME="ref_108_7">To_Be_Free</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> + := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A>)); +- <FONT COLOR=red><A NAME="ref_110_7">Low_Level</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_110_7">Low_Level</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A> /= <b>null</b> <b>then</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> /= System.Null_Address <b>then</b> +@@ -128,23 +140,23 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_126_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_126_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_127_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class; +- <FONT COLOR=red><A NAME="ref_128_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_126_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A></span> (<span class="symbol"><A NAME="ref_126_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_127_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class; ++ <span class="symbol"><A NAME="ref_128_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_130_7">Usr_Arg</A></FONT> : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>); +- <FONT COLOR=red><A NAME="ref_131_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>); +- <FONT COLOR=red><A NAME="ref_132_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>; +- <FONT COLOR=red><A NAME="ref_133_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_134_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_134_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>; +- <FONT COLOR=red><A NAME="ref_135_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Cf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A>; +- <FONT COLOR=red><A NAME="ref_136_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_130_7">Usr_Arg</A></span> : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>); ++ <span class="symbol"><A NAME="ref_131_7">Low_Level</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>); ++ <span class="symbol"><A NAME="ref_132_7">Arg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>; ++ <span class="symbol"><A NAME="ref_133_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_134_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_134_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>; ++ <span class="symbol"><A NAME="ref_135_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Cf</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A>; ++ <span class="symbol"><A NAME="ref_136_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_user"); + + <b>begin</b> + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> + <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> =&gt; System.Null_Address, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> =&gt; <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A>), +@@ -164,10 +176,10 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_162_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_162_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_163_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_162_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A></span> (<span class="symbol"><A NAME="ref_162_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_163_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_165_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> ++ <span class="symbol"><A NAME="ref_165_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> + := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A>)); + <b>begin</b> + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> +@@ -179,10 +191,10 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_177_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_178_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A></span> (<span class="symbol"><A NAME="ref_177_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_32">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_178_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_180_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> ++ <span class="symbol"><A NAME="ref_180_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> + := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A>)); + <b>begin</b> + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> +@@ -194,10 +206,10 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_192_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_192_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_192_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A></span> (<span class="symbol"><A NAME="ref_192_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_195_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> ++ <span class="symbol"><A NAME="ref_195_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> + := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A>)); + <b>begin</b> + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> +@@ -209,10 +221,10 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_207_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_207_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_208_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_207_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A></span> (<span class="symbol"><A NAME="ref_207_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_208_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_210_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := ++ <span class="symbol"><A NAME="ref_210_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A>)); + <b>begin</b> + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> +@@ -224,18 +236,18 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>; + +- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_224_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> ++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_224_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_226_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_227_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_226_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_227_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> + <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> + <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_226_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A>, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>, +@@ -251,18 +263,18 @@ + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>; + +- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_251_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> ++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_251_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_253_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_254_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_253_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_254_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> + <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> + <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A>, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>, +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm 2014-09-01 16:33:22.281791998 +0200 +@@ -1,243 +1,255 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.16 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.17 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_43_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_51_46">Field_Types</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<span class="symbol"><A NAME="ref_43_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_51_46">Field_Types</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>); +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_46_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_52_9">Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>; +- <FONT COLOR=green><EM>-- Abstract base type for all field types. A concrete field type</EM></FONT> +- <FONT COLOR=green><EM>-- is an extension that adds some data elements describing formats or</EM></FONT> +- <FONT COLOR=green><EM>-- boundary values for the type and validation routines.</EM></FONT> +- <FONT COLOR=green><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></FONT> +- <FONT COLOR=green><EM>-- already defined by the low-level C library.</EM></FONT> +- <FONT COLOR=green><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></FONT> +- <FONT COLOR=green><EM>-- child packages of this package. You may use one of them as example</EM></FONT> +- <FONT COLOR=green><EM>-- how to create you own child packages for low-level field types that</EM></FONT> +- <FONT COLOR=green><EM>-- you may have already written in C.</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_63_9">Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class; +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_66_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>) <b>is</b> <b>abstract</b>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></FONT> +- <FONT COLOR=green><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></FONT> +- <FONT COLOR=green><EM>-- have to pass a single Field_Type parameter.</EM></FONT> +- +- <FONT COLOR=green><EM>-- ---------------------------------------------------------------------</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_79_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_23">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: field_arg()</EM></FONT> +- <FONT COLOR=green><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></FONT> +- <FONT COLOR=green><EM>-- that is not defined as extension of the abstract tagged type above,</EM></FONT> +- <FONT COLOR=green><EM>-- you will raise a Form_Exception.</EM></FONT> +- <FONT COLOR=green><EM>-- This is not inlined</EM></FONT> +- +- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT> +- <FONT COLOR=green><EM>-- | Most of this is used by the implementations of the child packages.</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_52_9">Field_Type</A></span> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>; ++ <span class="comment"><EM>-- Abstract base type for all field types. A concrete field type</EM></span> ++ <span class="comment"><EM>-- is an extension that adds some data elements describing formats or</EM></span> ++ <span class="comment"><EM>-- boundary values for the type and validation routines.</EM></span> ++ <span class="comment"><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></span> ++ <span class="comment"><EM>-- already defined by the low-level C library.</EM></span> ++ <span class="comment"><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></span> ++ <span class="comment"><EM>-- child packages of this package. You may use one of them as example</EM></span> ++ <span class="comment"><EM>-- how to create you own child packages for low-level field types that</EM></span> ++ <span class="comment"><EM>-- you may have already written in C.</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_63_9">Field_Type_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class; ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_66_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld_Type</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>) <b>is</b> <b>abstract</b>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></span> ++ <span class="comment"><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></span> ++ <span class="comment"><EM>-- have to pass a single Field_Type parameter.</EM></span> ++ ++ <span class="comment"><EM>-- ---------------------------------------------------------------------</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_13">Get_Type</A></span> (<span class="symbol"><A NAME="ref_79_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_23">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></span> ++ <span class="comment"><EM>-- AKA: field_arg()</EM></span> ++ <span class="comment"><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></span> ++ <span class="comment"><EM>-- that is not defined as extension of the abstract tagged type above,</EM></span> ++ <span class="comment"><EM>-- you will raise a Form_Exception.</EM></span> ++ <span class="comment"><EM>-- This is not inlined</EM></span> ++ ++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- | Private Part.</EM></span> ++ <span class="comment"><EM>-- | Most of this is used by the implementations of the child packages.</EM></span> ++ <span class="comment"><EM>-- |</EM></span> + <b>private</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_92_9">Makearg_Function</A></FONT> <b>is</b> <b>access</b> +- <b>function</b> (<FONT COLOR=red><A NAME="ref_93_16">Args</A></FONT> : System.Address) <b>return</b> System.Address; ++ <b>type</b> <span class="symbol"><A NAME="ref_92_9">Makearg_Function</A></span> <b>is</b> <b>access</b> ++ <b>function</b> (<span class="symbol"><A NAME="ref_93_16">Args</A></span> : System.Address) <b>return</b> System.Address; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_96_9">Copyarg_Function</A></FONT> <b>is</b> <b>access</b> +- <b>function</b> (<FONT COLOR=red><A NAME="ref_97_16">Usr</A></FONT> : System.Address) <b>return</b> System.Address; ++ <b>type</b> <span class="symbol"><A NAME="ref_96_9">Copyarg_Function</A></span> <b>is</b> <b>access</b> ++ <b>function</b> (<span class="symbol"><A NAME="ref_97_16">Usr</A></span> : System.Address) <b>return</b> System.Address; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_100_9">Freearg_Function</A></FONT> <b>is</b> <b>access</b> +- <b>procedure</b> (<FONT COLOR=red><A NAME="ref_101_17">Usr</A></FONT> : System.Address); ++ <b>type</b> <span class="symbol"><A NAME="ref_100_9">Freearg_Function</A></span> <b>is</b> <b>access</b> ++ <b>procedure</b> (<span class="symbol"><A NAME="ref_101_17">Usr</A></span> : System.Address); + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_104_9">Field_Check_Function</A></FONT> <b>is</b> <b>access</b> +- <b>function</b> (<FONT COLOR=red><A NAME="ref_105_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_105_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_104_9">Field_Check_Function</A></span> <b>is</b> <b>access</b> ++ <b>function</b> (<span class="symbol"><A NAME="ref_105_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <span class="symbol"><A NAME="ref_105_29">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_108_9">Char_Check_Function</A></FONT> <b>is</b> <b>access</b> +- <b>function</b> (<FONT COLOR=red><A NAME="ref_109_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_109_28">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_108_9">Char_Check_Function</A></span> <b>is</b> <b>access</b> ++ <b>function</b> (<span class="symbol"><A NAME="ref_109_16">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; <span class="symbol"><A NAME="ref_109_28">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_112_9">Choice_Function</A></FONT> <b>is</b> <b>access</b> +- <b>function</b> (<FONT COLOR=red><A NAME="ref_113_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_113_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_112_9">Choice_Function</A></span> <b>is</b> <b>access</b> ++ <b>function</b> (<span class="symbol"><A NAME="ref_113_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <span class="symbol"><A NAME="ref_113_29">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>); + +- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_119_9">Low_Level_Field_Type</A></FONT> <b>is</b> ++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_119_9">Low_Level_Field_Type</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_121_10">Status</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_short; +- <FONT COLOR=red><A NAME="ref_122_10">Ref_Count</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long; +- <FONT COLOR=red><A NAME="ref_123_10">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_123_16">Right</A></FONT> : System.Address; +- <FONT COLOR=red><A NAME="ref_124_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>; +- <FONT COLOR=red><A NAME="ref_125_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>; +- <FONT COLOR=red><A NAME="ref_126_10">Freearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>; +- <FONT COLOR=red><A NAME="ref_127_10">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>; +- <FONT COLOR=red><A NAME="ref_128_10">Ccheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>; +- <FONT COLOR=red><A NAME="ref_129_10">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_129_16">Prev</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>; ++ <span class="symbol"><A NAME="ref_121_10">Status</A></span> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_short; ++ <span class="symbol"><A NAME="ref_122_10">Ref_Count</A></span> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.long; ++ <span class="symbol"><A NAME="ref_123_10">Left</A></span>, <span class="symbol"><A NAME="ref_123_16">Right</A></span> : System.Address; ++ <span class="symbol"><A NAME="ref_124_10">Makearg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>; ++ <span class="symbol"><A NAME="ref_125_10">Copyarg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>; ++ <span class="symbol"><A NAME="ref_126_10">Freearg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>; ++ <span class="symbol"><A NAME="ref_127_10">Fcheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>; ++ <span class="symbol"><A NAME="ref_128_10">Ccheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>; ++ <span class="symbol"><A NAME="ref_129_10">Next</A></span>, <span class="symbol"><A NAME="ref_129_16">Prev</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>; + <b>end</b> <b>record</b>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>); +- <b>type</b> <FONT COLOR=red><A NAME="ref_132_9">C_Field_Type</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_132_9">C_Field_Type</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>; + +- <FONT COLOR=red><A NAME="ref_134_4">Null_Field_Type</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; ++ <span class="symbol"><A NAME="ref_134_4">Null_Field_Type</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; + +- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- | This four low-level fieldtypes are the ones associated with</EM></FONT> +- <FONT COLOR=green><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT> +- <FONT COLOR=green><EM>-- | will result in a Form_Exception is function Get_Type.</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=red><A NAME="ref_141_4">M_Generic_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; +- <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; +- <FONT COLOR=red><A NAME="ref_143_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; +- <FONT COLOR=red><A NAME="ref_144_4">M_Choice_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; +- +- <FONT COLOR=green><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></FONT> +- <FONT COLOR=green><EM>-- in this package.</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_251_13">C_Choice_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_151_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class; +- <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_128_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>); +- <FONT COLOR=green><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></FONT> +- <FONT COLOR=green><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></FONT> +- <FONT COLOR=green><EM>-- conformant Field_Type object.</EM></FONT> +- <FONT COLOR=green><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></FONT> +- <FONT COLOR=green><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></FONT> +- <FONT COLOR=green><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT> +- <FONT COLOR=green><EM>-- Any other value will raise a Form_Exception.</EM></FONT> ++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- | This four low-level fieldtypes are the ones associated with</EM></span> ++ <span class="comment"><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></span> ++ <span class="comment"><EM>-- | will result in a Form_Exception is function Get_Type.</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="symbol"><A NAME="ref_141_4">M_Generic_Type</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; ++ <span class="symbol"><A NAME="ref_142_4">M_Generic_Choice</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; ++ <span class="symbol"><A NAME="ref_143_4">M_Builtin_Router</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; ++ <span class="symbol"><A NAME="ref_144_4">M_Choice_Router</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>; ++ ++ <span class="comment"><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></span> ++ <span class="comment"><EM>-- in this package.</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_148_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_13">C_Builtin_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_251_13">C_Choice_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_151_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_14">Wrap_Builtin</A></span> (<span class="symbol"><A NAME="ref_151_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_28">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class; ++ <span class="symbol"><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_128_28">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>); ++ <span class="comment"><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></span> ++ <span class="comment"><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></span> ++ <span class="comment"><EM>-- conformant Field_Type object.</EM></span> ++ <span class="comment"><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></span> ++ <span class="comment"><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></span> ++ <span class="comment"><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></span> ++ <span class="comment"><EM>-- Any other value will raise a Form_Exception.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_162_13">Make_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Args</A></FONT> : System.Address) <b>return</b> System.Address; ++ <b>function</b> <span class="symbol"><A NAME="ref_162_13">Make_Arg</A></span> (<span class="symbol"><A NAME="ref_162_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Args</A></span> : System.Address) <b>return</b> System.Address; + <b>pragma</b> Import (C, Make_Arg, "void_star_make_arg"); +- <FONT COLOR=green><EM>-- This is the Makearg_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT> ++ <span class="comment"><EM>-- This is the Makearg_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced by this binding.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_167_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_167_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address; ++ <b>function</b> <span class="symbol"><A NAME="ref_167_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_13">Copy_Arg</A></span> (<span class="symbol"><A NAME="ref_167_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_23">Usr</A></span> : System.Address) <b>return</b> System.Address; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>); +- <FONT COLOR=green><EM>-- This is the Copyarg_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT> ++ <span class="comment"><EM>-- This is the Copyarg_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced by this binding.</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_172_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_172_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_24">Usr</A></FONT> : System.Address); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_172_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_14">Free_Arg</A></span> (<span class="symbol"><A NAME="ref_172_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_24">Usr</A></span> : System.Address); + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>); +- <FONT COLOR=green><EM>-- This is the Freearg_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT> ++ <span class="comment"><EM>-- This is the Freearg_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced by this binding.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_162_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_177_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_162_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_162_13">Field_Check_Router</A></span> (<span class="symbol"><A NAME="ref_177_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_162_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>); +- <FONT COLOR=green><EM>-- This is the Field_Check_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT> +- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT> +- <FONT COLOR=green><EM>-- function.</EM></FONT> ++ <span class="comment"><EM>-- This is the Field_Check_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span> ++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level validation</EM></span> ++ <span class="comment"><EM>-- function.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_185_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_177_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_185_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_177_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_185_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_177_13">Char_Check_Router</A></span> (<span class="symbol"><A NAME="ref_185_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_177_32">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_32">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>); +- <FONT COLOR=green><EM>-- This is the Char_Check_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT> +- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT> +- <FONT COLOR=green><EM>-- function.</EM></FONT> ++ <span class="comment"><EM>-- This is the Char_Check_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span> ++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level validation</EM></span> ++ <span class="comment"><EM>-- function.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_193_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_192_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_192_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_193_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_192_13">Next_Router</A></span> (<span class="symbol"><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_192_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>); +- <FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT> +- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></FONT> +- <FONT COLOR=green><EM>-- function.</EM></FONT> ++ <span class="comment"><EM>-- This is the Choice_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span> ++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></span> ++ <span class="comment"><EM>-- function.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_201_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_207_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_201_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_207_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_201_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_207_13">Prev_Router</A></span> (<span class="symbol"><A NAME="ref_201_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_207_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>); +- <FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT> +- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level prev_choice</EM></FONT> +- <FONT COLOR=green><EM>-- function.</EM></FONT> +- +- <FONT COLOR=green><EM>-- This is the Argument structure maintained by all low-level field types</EM></FONT> +- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_211_9">Argument</A></FONT> <b>is</b> <b>record</b> +- <FONT COLOR=red><A NAME="ref_212_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>; <FONT COLOR=green><EM>-- the Field_Type creating this record</EM></FONT> +- <FONT COLOR=red><A NAME="ref_213_7">Usr</A></FONT> : System.Address; <FONT COLOR=green><EM>-- original arg for builtin low-level types</EM></FONT> +- <FONT COLOR=red><A NAME="ref_214_7">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; <FONT COLOR=green><EM>-- the original low-level type</EM></FONT> ++ <span class="comment"><EM>-- This is the Choice_Function for the internal low-level types</EM></span> ++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span> ++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level prev_choice</EM></span> ++ <span class="comment"><EM>-- function.</EM></span> ++ ++ <span class="comment"><EM>-- This is the Argument structure maintained by all low-level field types</EM></span> ++ <span class="comment"><EM>-- introduced by this binding.</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_211_9">Argument</A></span> <b>is</b> <b>record</b> ++ <span class="symbol"><A NAME="ref_212_7">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>; <span class="comment"><EM>-- the Field_Type creating this record</EM></span> ++ <span class="symbol"><A NAME="ref_213_7">Usr</A></span> : System.Address; <span class="comment"><EM>-- original arg for builtin low-level types</EM></span> ++ <span class="symbol"><A NAME="ref_214_7">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; <span class="comment"><EM>-- the original low-level type</EM></span> + <b>end</b> <b>record</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_216_9">Argument_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_216_9">Argument_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>; + +- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_222_13">New_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_222_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>; +- <FONT COLOR=red><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Ccheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>) ++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_222_13">New_Fieldtype</A></span> (<span class="symbol"><A NAME="ref_222_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>; ++ <span class="symbol"><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Ccheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_227_13">Set_Fieldtype_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_227_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; +- <FONT COLOR=red><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>; +- <FONT COLOR=red><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>; +- <FONT COLOR=red><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Fre</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>) ++ <b>function</b> <span class="symbol"><A NAME="ref_227_13">Set_Fieldtype_Arg</A></span> (<span class="symbol"><A NAME="ref_227_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>; ++ <span class="symbol"><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>; ++ <span class="symbol"><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Fre</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_234_13">Set_Fieldtype_Choice</A></FONT> (<FONT COLOR=red><A NAME="ref_234_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; +- <FONT COLOR=red><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Prev</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_234_13">Set_Fieldtype_Choice</A></span> (<span class="symbol"><A NAME="ref_234_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Next</A></span>, <span class="symbol"><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Prev</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice"); + +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm 2014-09-01 16:33:22.273791985 +0200 +@@ -1,61 +1,73 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 00:45:37 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_alpha"); + +- <FONT COLOR=red><A NAME="ref_53_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_53_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_53_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_46_9">Minimum_Field_Width</A>)); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_53_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm 2014-09-01 16:33:22.273791985 +0200 +@@ -1,58 +1,70 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_44_58">Alpha</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_44_58">Alpha</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Alpha_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">Alpha_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> + <b>with</b> <b>record</b> +- <FONT COLOR=red><A NAME="ref_46_9">Minimum_Field_Width</A></FONT> : Natural := 0; ++ <span class="symbol"><A NAME="ref_46_9">Minimum_Field_Width</A></span> : Natural := 0; + <b>end</b> <b>record</b>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm 2014-09-01 16:33:22.273791985 +0200 +@@ -1,61 +1,73 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 00:45:37 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_alnum"); + +- <FONT COLOR=red><A NAME="ref_53_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_53_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_53_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_47_9">Minimum_Field_Width</A>)); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_53_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm 2014-09-01 16:33:22.274791986 +0200 +@@ -1,59 +1,71 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_44_58">AlphaNumeric</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_44_58">AlphaNumeric</A></span> <b>is</b> + <b>pragma</b> Preelaborate + (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_45_9">AlphaNumeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> ++ <b>type</b> <span class="symbol"><A NAME="ref_45_9">AlphaNumeric_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> + <b>with</b> <b>record</b> +- <FONT COLOR=red><A NAME="ref_47_9">Minimum_Field_Width</A></FONT> : Natural := 0; ++ <span class="symbol"><A NAME="ref_47_9">Minimum_Field_Width</A></span> : Natural := 0; + <b>end</b> <b>record</b>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm 2014-09-01 16:33:22.274791986 +0200 +@@ -1,68 +1,80 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:36:20 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2004,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 23:36:20 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<FONT COLOR=red><A NAME="ref_44_70" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<span class="symbol"><A NAME="ref_44_70" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A></span> <b>is</b> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_46_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_46_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>; +- <FONT COLOR=red><A NAME="ref_47_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A></FONT> : Boolean := False; +- <FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A></FONT> : Boolean := False) ++ <b>function</b> <span class="symbol"><A NAME="ref_46_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A></span> (<span class="symbol"><A NAME="ref_46_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>; ++ <span class="symbol"><A NAME="ref_47_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A></span> : Boolean := False; ++ <span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A></span> : Boolean := False) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_51_7">I</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'First) + 1); +- <FONT COLOR=red><A NAME="ref_52_7">J</A></FONT> : Positive := 1; ++ <span class="symbol"><A NAME="ref_51_7">I</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'First) + 1); ++ <span class="symbol"><A NAME="ref_52_7">J</A></span> : Positive := 1; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A>; + <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A>; + +- <b>for</b> <FONT COLOR=red><A NAME="ref_57_11">E</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'<b>Range</b> <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_57_11">E</A></span> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'<b>Range</b> <b>loop</b> + <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_57_11">E</A>)); +- <FONT COLOR=green><EM>-- The Image attribute defaults to upper case, so we have to handle</EM></FONT> +- <FONT COLOR=green><EM>-- only the other ones...</EM></FONT> ++ <span class="comment"><EM>-- The Image attribute defaults to upper case, so we have to handle</EM></span> ++ <span class="comment"><EM>-- only the other ones...</EM></span> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_34">Upper_Case</A> <b>then</b> + <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A> <b>then</b> +@@ -76,11 +88,11 @@ + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>, True); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_74_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_74_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_75_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_74_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A></span> (<span class="symbol"><A NAME="ref_74_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_75_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A> + <b>is</b> + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#ref_372_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A>)); ++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A>)); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A>; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm 2014-09-01 16:33:22.274791986 +0200 +@@ -1,65 +1,77 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.10 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">T</A></FONT> <b>is</b> (&lt;&gt;); ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">T</A></span> <b>is</b> (&lt;&gt;); + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<FONT COLOR=red><A NAME="ref_44_65" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_44_70">Ada</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<span class="symbol"><A NAME="ref_44_65" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_44_70">Ada</A></span> <b>is</b> + <b>pragma</b> Preelaborate + (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>; +- <FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Case_Sensitive</A></FONT> : Boolean := False; +- <FONT COLOR=red><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Must_Be_Unique</A></FONT> : Boolean := False) ++ <b>function</b> <span class="symbol"><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_13">Create</A></span> (<span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_21">Set</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>; ++ <span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Case_Sensitive</A></span> : Boolean := False; ++ <span class="symbol"><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Must_Be_Unique</A></span> : Boolean := False) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_53_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_54_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>; +- <FONT COLOR=green><EM>-- Translate the content of the fields buffer - indicated by the</EM></FONT> +- <FONT COLOR=green><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></FONT> +- <FONT COLOR=green><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_13">Value</A></span> (<span class="symbol"><A NAME="ref_53_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_54_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Buf</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>; ++ <span class="comment"><EM>-- Translate the content of the fields buffer - indicated by the</EM></span> ++ <span class="comment"><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></span> ++ <span class="comment"><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm 2014-09-01 16:33:22.275791988 +0200 +@@ -1,72 +1,84 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.10 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Unchecked_Deallocation; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A></span> <b>is</b> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>; +- <FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A></FONT> : Boolean := False) ++ <b>function</b> <span class="symbol"><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A></span> (<span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>; ++ <span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A></span> : Boolean := False) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> + <b>is</b> + <b>procedure</b> Release_String <b>is</b> + <b>new</b> Ada.Unchecked_Deallocation (String, + <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>); +- <FONT COLOR=red><A NAME="ref_55_7">E</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>; +- <FONT COLOR=red><A NAME="ref_56_7">L</A></FONT> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>); +- <FONT COLOR=red><A NAME="ref_57_7">S</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>; ++ <span class="symbol"><A NAME="ref_55_7">E</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>; ++ <span class="symbol"><A NAME="ref_56_7">L</A></span> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>); ++ <span class="symbol"><A NAME="ref_57_7">S</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A>; + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A>; + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A>); +- <b>for</b> <FONT COLOR=red><A NAME="ref_62_11">I</A></FONT> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A> - 1) <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_62_11">I</A></span> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A> - 1) <b>loop</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>) = <b>null</b> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>).<b>all</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A> <b>then</b> +@@ -78,10 +90,10 @@ + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_76_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A></FONT> (<FONT COLOR=red><A NAME="ref_76_23" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A></span> (<span class="symbol"><A NAME="ref_76_23" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_78_7">I</A></FONT> : size_t := 0; +- <FONT COLOR=red><A NAME="ref_79_7">P</A></FONT> : chars_ptr; ++ <span class="symbol"><A NAME="ref_78_7">I</A></span> : size_t := 0; ++ <span class="symbol"><A NAME="ref_79_7">P</A></span> : chars_ptr; + <b>begin</b> + <b>loop</b> + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A>); +@@ -93,19 +105,19 @@ + <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> := <b>null</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_91_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_91_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_92_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_91_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_91_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_92_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_94_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_94_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_95_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg1</A></FONT> : chars_ptr_array; +- <FONT COLOR=red><A NAME="ref_96_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_97_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_94_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_94_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_95_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg1</A></span> : chars_ptr_array; ++ <span class="symbol"><A NAME="ref_96_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg2</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_97_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg3</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_enum"); + +- <FONT COLOR=red><A NAME="ref_100_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_100_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> = <b>null</b> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>end</b> <b>if</b>; + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_100_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b>, + <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_96_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A>)), +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm 2011-02-26 00:43:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm 2014-09-01 16:33:22.275791988 +0200 +@@ -1,103 +1,115 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_46_58">Enumeration</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_46_58">Enumeration</A></span> <b>is</b> + <b>pragma</b> Preelaborate + (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_47_9">String_Access</A></FONT> <b>is</b> <b>access</b> String; ++ <b>type</b> <span class="symbol"><A NAME="ref_47_9">String_Access</A></span> <b>is</b> <b>access</b> String; + +- <FONT COLOR=green><EM>-- Type_Set is used by the child package Ada</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_50_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_50_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_50_46">Mixed_Case</A></FONT>); ++ <span class="comment"><EM>-- Type_Set is used by the child package Ada</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_50_9">Type_Set</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_50_22">Lower_Case</A></span>, <span class="symbol"><A NAME="ref_50_34">Upper_Case</A></span>, <span class="symbol"><A NAME="ref_50_46">Mixed_Case</A></span>); + + <b>type</b> Enum_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) + <b>of</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_55_27" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">C</A></FONT> : Positive) <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_55_9">Enumeration_Info</A></span> (<span class="symbol"><A NAME="ref_55_27" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">C</A></span> : Positive) <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_57_10">Names</A></FONT> : Enum_Array (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>); +- <FONT COLOR=red><A NAME="ref_58_10">Case_Sensitive</A></FONT> : Boolean := False; +- <FONT COLOR=red><A NAME="ref_59_10">Match_Must_Be_Unique</A></FONT> : Boolean := False; ++ <span class="symbol"><A NAME="ref_57_10">Names</A></span> : Enum_Array (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>); ++ <span class="symbol"><A NAME="ref_58_10">Case_Sensitive</A></span> : Boolean := False; ++ <span class="symbol"><A NAME="ref_59_10">Match_Must_Be_Unique</A></span> : Boolean := False; + <b>end</b> <b>record</b>; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Enumeration_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_62_9">Enumeration_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>private</b>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_64_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>; +- <FONT COLOR=red><A NAME="ref_65_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Auto_Release_Names</A></FONT> : Boolean := False) ++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_13">Create</A></span> (<span class="symbol"><A NAME="ref_64_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_21">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>; ++ <span class="symbol"><A NAME="ref_65_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Auto_Release_Names</A></span> : Boolean := False) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>; +- <FONT COLOR=green><EM>-- Make an fieldtype from the info. Enumerations are special, because</EM></FONT> +- <FONT COLOR=green><EM>-- they normally don't copy the enum values into a private store, so</EM></FONT> +- <FONT COLOR=green><EM>-- we have to care for the lifetime of the info we provide.</EM></FONT> +- <FONT COLOR=green><EM>-- The Auto_Release_Names flag may be used to automatically releases</EM></FONT> +- <FONT COLOR=green><EM>-- the strings in the Names array of the Enumeration_Info.</EM></FONT> ++ <span class="comment"><EM>-- Make an fieldtype from the info. Enumerations are special, because</EM></span> ++ <span class="comment"><EM>-- they normally don't copy the enum values into a private store, so</EM></span> ++ <span class="comment"><EM>-- we have to care for the lifetime of the info we provide.</EM></span> ++ <span class="comment"><EM>-- The Auto_Release_Names flag may be used to automatically releases</EM></span> ++ <span class="comment"><EM>-- the strings in the Names array of the Enumeration_Info.</EM></span> + +- <b>function</b> Make_Enumeration_Type (<FONT COLOR=red><A NAME="ref_73_36">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>; +- <FONT COLOR=red><A NAME="ref_74_36">Auto_Release_Names</A></FONT> : Boolean := False) ++ <b>function</b> Make_Enumeration_Type (<span class="symbol"><A NAME="ref_73_36">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>; ++ <span class="symbol"><A NAME="ref_74_36">Auto_Release_Names</A></span> : Boolean := False) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_14">Release</A></FONT> (<FONT COLOR=red><A NAME="ref_77_23" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>); +- <FONT COLOR=green><EM>-- But we may want to release the field to release the memory allocated</EM></FONT> +- <FONT COLOR=green><EM>-- by it internally. After that the Enumeration field is no longer usable.</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_14">Release</A></span> (<span class="symbol"><A NAME="ref_77_23" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_23">Enum</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>); ++ <span class="comment"><EM>-- But we may want to release the field to release the memory allocated</EM></span> ++ <span class="comment"><EM>-- by it internally. After that the Enumeration field is no longer usable.</EM></span> + +- <FONT COLOR=green><EM>-- The next type defintions are all ncurses extensions. They are typically</EM></FONT> +- <FONT COLOR=green><EM>-- not available in other curses implementations.</EM></FONT> ++ <span class="comment"><EM>-- The next type defintions are all ncurses extensions. They are typically</EM></span> ++ <span class="comment"><EM>-- not available in other curses implementations.</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_84_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_84_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_85_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_84_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_84_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_85_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>private</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr_array; ++ <b>type</b> <span class="symbol"><A NAME="ref_89_9">CPA_Access</A></span> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr_array; + + <b>type</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_93_10">Case_Sensitive</A></FONT> : Boolean := False; +- <FONT COLOR=red><A NAME="ref_94_10">Match_Must_Be_Unique</A></FONT> : Boolean := False; +- <FONT COLOR=red><A NAME="ref_95_10">Arr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_89_9">CPA_Access</A> := <b>null</b>; ++ <span class="symbol"><A NAME="ref_93_10">Case_Sensitive</A></span> : Boolean := False; ++ <span class="symbol"><A NAME="ref_94_10">Match_Must_Be_Unique</A></span> : Boolean := False; ++ <span class="symbol"><A NAME="ref_95_10">Arr</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_89_9">CPA_Access</A> := <b>null</b>; + <b>end</b> <b>record</b>; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm 2014-09-01 16:33:22.276791990 +0200 +@@ -1,63 +1,75 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 00:45:37 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>; +- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg3</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg2</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>; ++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg3</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_integer"); + +- <FONT COLOR=red><A NAME="ref_55_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_55_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_55_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_46_10">Precision</A>), + <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_47_10">Lower_Limit</A>), +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm 2014-09-01 16:33:22.276791990 +0200 +@@ -1,60 +1,72 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_44_58">IntField</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_44_58">IntField</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Integer_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">Integer_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_46_10">Precision</A></FONT> : Natural; +- <FONT COLOR=red><A NAME="ref_47_10">Lower_Limit</A></FONT> : Integer; +- <FONT COLOR=red><A NAME="ref_48_10">Upper_Limit</A></FONT> : Integer; ++ <span class="symbol"><A NAME="ref_46_10">Precision</A></span> : Natural; ++ <span class="symbol"><A NAME="ref_47_10">Lower_Limit</A></span> : Integer; ++ <span class="symbol"><A NAME="ref_48_10">Upper_Limit</A></span> : Integer; + <b>end</b> <b>record</b>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm 2014-09-01 16:33:22.276791990 +0200 +@@ -1,61 +1,73 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 00:45:37 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_ipv4"); + +- <FONT COLOR=red><A NAME="ref_53_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_53_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_53_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">Set_Fld_Type</A>; + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_53_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm 2014-09-01 16:33:22.277791991 +0200 +@@ -1,56 +1,68 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_44_58">IPV4_Address</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_44_58">IPV4_Address</A></span> <b>is</b> + <b>pragma</b> Preelaborate + (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_45_9">Internet_V4_Address_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_45_9">Internet_V4_Address_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm 2014-09-01 16:33:22.277791991 +0200 +@@ -1,66 +1,78 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 00:45:37 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>) + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_50_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.double; ++ <b>type</b> <span class="symbol"><A NAME="ref_50_12">Double</A></span> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.double; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_52_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>; +- <FONT COLOR=red><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_52_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg2</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>; ++ <span class="symbol"><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg3</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_numeric"); + +- <FONT COLOR=red><A NAME="ref_58_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_58_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_58_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_46_10">Precision</A>), + <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_54_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_47_10">Lower_Limit</A>), +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm 2014-09-01 16:33:22.277791991 +0200 +@@ -1,60 +1,72 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_45_58">Numeric</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_45_58">Numeric</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Numeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">Numeric_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_46_10">Precision</A></FONT> : Natural; +- <FONT COLOR=red><A NAME="ref_47_10">Lower_Limit</A></FONT> : Float; +- <FONT COLOR=red><A NAME="ref_48_10">Upper_Limit</A></FONT> : Float; ++ <span class="symbol"><A NAME="ref_46_10">Precision</A></span> : Natural; ++ <span class="symbol"><A NAME="ref_47_10">Lower_Limit</A></span> : Float; ++ <span class="symbol"><A NAME="ref_48_10">Upper_Limit</A></span> : Float; + <b>end</b> <b>record</b>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm 2011-03-20 00:18:39.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm 2014-09-01 16:33:22.278791993 +0200 +@@ -1,65 +1,77 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.10 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>) + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char; ++ <b>type</b> <span class="symbol"><A NAME="ref_49_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_52_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">Set_Ftyp</A></span> (<span class="symbol"><A NAME="ref_51_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_52_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Ftyp, "set_field_type_regexp"); + +- <FONT COLOR=red><A NAME="ref_55_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>'Length); +- <FONT COLOR=red><A NAME="ref_56_7">Len</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_57_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_55_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>'Length); ++ <span class="symbol"><A NAME="ref_56_7">Len</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_57_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_55_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_56_7">Len</A>); + <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_57_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_52_26">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_55_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_55_7">Txt</A>'First)'<b>Access</b>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm 2014-09-01 16:33:22.278791993 +0200 +@@ -1,60 +1,72 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_44_58">RegExp</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_44_58">RegExp</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">String_Access</A></FONT> <b>is</b> <b>access</b> String; ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">String_Access</A></span> <b>is</b> <b>access</b> String; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Regular_Expression_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_46_9">Regular_Expression_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_48_10">Regular_Expression</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_44_9">String_Access</A>; ++ <span class="symbol"><A NAME="ref_48_10">Regular_Expression</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_44_9">String_Access</A>; + <b>end</b> <b>record</b>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>); + <b>pragma</b> Inline (Set_Field_Type); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm 2014-09-01 16:33:22.279791995 +0200 +@@ -1,72 +1,84 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.21 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/23 00:44:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.21 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/23 00:44:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> System.Address_To_Access_Conversions; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_50_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_61_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_61_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class) ++ <b>function</b> <span class="symbol"><A NAME="ref_50_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_61_16">Allocate_Arg</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_61_30">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_53_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A>; +- <FONT COLOR=red><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A>; +- <FONT COLOR=red><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_53_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A>; ++ <span class="symbol"><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A>; ++ <span class="symbol"><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_user"); + +- <FONT COLOR=red><A NAME="ref_59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_59_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_61_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_61_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class) ++ <b>function</b> <span class="symbol"><A NAME="ref_61_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A></span> (<span class="symbol"><A NAME="ref_61_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class) + <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_64_10">Ptr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A> ++ <span class="symbol"><A NAME="ref_64_10">Ptr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A> + := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">T</A>); + <b>begin</b> + <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> =&gt; System.Null_Address, +@@ -84,42 +96,42 @@ + <b>package</b> Argument_Conversions <b>is</b> + <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_82_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_83_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_82_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A></span> (<span class="symbol"><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_83_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_85_7">Result</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_86_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> := ++ <span class="symbol"><A NAME="ref_85_7">Result</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_86_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> := + <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> + (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>); + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_86_7">Udf</A>.<b>all</b>); +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_7">Result</A>)); ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_7">Result</A>)); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_94_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_95_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_94_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A></span> (<span class="symbol"><A NAME="ref_94_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_95_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_97_7">Result</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_98_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> := ++ <span class="symbol"><A NAME="ref_97_7">Result</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_98_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> := + <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> + (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>); + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_98_7">Udf</A>.<b>all</b>); +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_7">Result</A>)); ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_7">Result</A>)); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>; + +- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_108_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> ++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_108_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_110_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_111_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_110_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_111_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> + <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> + <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_110_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A>, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>, +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm 2014-09-01 16:33:22.280791996 +0200 +@@ -1,101 +1,113 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 12:27:21 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 12:27:21 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_45_58">User</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_45_58">User</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>); +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_46_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_48_9">User_Defined_Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>; +- <FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT> +- <FONT COLOR=green><EM>-- Ada95. You should your own type derive from this one and implement</EM></FONT> +- <FONT COLOR=green><EM>-- the Field_Check and Character_Check functions for your own type.</EM></FONT> ++ <b>type</b> <span class="symbol"><A NAME="ref_48_9">User_Defined_Field_Type</A></span> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>; ++ <span class="comment"><EM>-- This is the root of the mechanism we use to create field types in</EM></span> ++ <span class="comment"><EM>-- Ada95. You should your own type derive from this one and implement</EM></span> ++ <span class="comment"><EM>-- the Field_Check and Character_Check functions for your own type.</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">User_Defined_Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_53_9">User_Defined_Field_Type_Access</A></span> <b>is</b> <b>access</b> <b>all</b> + <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_56_13">Field_Check</A></FONT> +- (<FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_56_13">Field_Check</A></span> ++ (<span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean + <b>is</b> <b>abstract</b>; +- <FONT COLOR=green><EM>-- If True is returned, the field is considered valid, otherwise it is</EM></FONT> +- <FONT COLOR=green><EM>-- invalid.</EM></FONT> ++ <span class="comment"><EM>-- If True is returned, the field is considered valid, otherwise it is</EM></span> ++ <span class="comment"><EM>-- invalid.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13">Character_Check</A></FONT> +- (<FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Ch</A></FONT> : Character; +- <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_63_13">Character_Check</A></span> ++ (<span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Ch</A></span> : Character; ++ <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean + <b>is</b> <b>abstract</b>; +- <FONT COLOR=green><EM>-- If True is returned, the character is considered as valid for the</EM></FONT> +- <FONT COLOR=green><EM>-- field, otherwise as invalid.</EM></FONT> ++ <span class="comment"><EM>-- If True is returned, the character is considered as valid for the</EM></span> ++ <span class="comment"><EM>-- field, otherwise as invalid.</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_70_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>); +- <FONT COLOR=green><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></FONT> +- <FONT COLOR=green><EM>-- No need to reimplement it for your derived type.</EM></FONT> +- +- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT> +- <FONT COLOR=green><EM>-- | Used by the Choice child package.</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_70_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_70_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>); ++ <span class="comment"><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></span> ++ <span class="comment"><EM>-- No need to reimplement it for your derived type.</EM></span> ++ ++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- | Private Part.</EM></span> ++ <span class="comment"><EM>-- | Used by the Choice child package.</EM></span> + <b>private</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_108_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_108_13">C_Generic_Type</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_81_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_83_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13">Generic_Field_Check</A></span> (<span class="symbol"><A NAME="ref_81_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_34">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_83_34">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>); +- <FONT COLOR=green><EM>-- This is the generic Field_Check_Function for the low-level fieldtype</EM></FONT> +- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT> +- <FONT COLOR=green><EM>-- the call to the Field_Check implementation for the type.</EM></FONT> ++ <span class="comment"><EM>-- This is the generic Field_Check_Function for the low-level fieldtype</EM></span> ++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span> ++ <span class="comment"><EM>-- the call to the Field_Check implementation for the type.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_88_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_88_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_89_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_95_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_88_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_13">Generic_Char_Check</A></span> (<span class="symbol"><A NAME="ref_88_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_33">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_89_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_95_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>); +- <FONT COLOR=green><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></FONT> +- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT> +- <FONT COLOR=green><EM>-- the call to the Character_Check implementation for the type.</EM></FONT> ++ <span class="comment"><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></span> ++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span> ++ <span class="comment"><EM>-- the call to the Character_Check implementation for the type.</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm 2014-09-01 16:33:22.278791993 +0200 +@@ -1,93 +1,105 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.17 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 10:53:37 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.17 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 10:53:37 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> System.Address_To_Access_Conversions; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<FONT COLOR=red><A NAME="ref_45_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<span class="symbol"><A NAME="ref_45_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A></span> <b>is</b> + + <b>package</b> Argument_Conversions <b>is</b> + <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_50_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_51_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A></span> (<span class="symbol"><A NAME="ref_50_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_51_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_53_7">Result</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_54_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> := ++ <span class="symbol"><A NAME="ref_53_7">Result</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_54_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> := + <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> + (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A>)).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>); + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_7">Udf</A>.<b>all</b>); +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_7">Result</A>)); ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_7">Result</A>)); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_62_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_63_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A></span> (<span class="symbol"><A NAME="ref_62_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_63_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_65_7">Result</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_66_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> := ++ <span class="symbol"><A NAME="ref_65_7">Result</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_66_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> := + <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> + (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A>)).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>); + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_7">Udf</A>.<b>all</b>); +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_7">Result</A>)); ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_7">Result</A>)); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A>; + +- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_76_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_78_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> ++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_76_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_78_13">C_Generic_Choice</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_78_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_79_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <span class="symbol"><A NAME="ref_78_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_79_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> + <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>; + <b>else</b> + <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>, + <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>, +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm 2014-09-01 16:33:22.279791995 +0200 +@@ -1,100 +1,112 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 12:27:47 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 12:27:47 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_45_63">Choice</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_45_63">Choice</A></span> <b>is</b> + <b>pragma</b> Preelaborate + (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>); + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_48_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">User_Defined_Field_Type_With_Choice</A></FONT> <b>is</b> <b>abstract</b> <b>new</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_50_9">User_Defined_Field_Type_With_Choice</A></span> <b>is</b> <b>abstract</b> <b>new</b> + <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>; +- <FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT> +- <FONT COLOR=green><EM>-- Ada95 that allow the prev/next mechanism. You should your own type</EM></FONT> +- <FONT COLOR=green><EM>-- derive from this one and implement the Field_Check, Character_Check</EM></FONT> +- <FONT COLOR=green><EM>-- Next and Previous functions for your own type.</EM></FONT> ++ <span class="comment"><EM>-- This is the root of the mechanism we use to create field types in</EM></span> ++ <span class="comment"><EM>-- Ada95 that allow the prev/next mechanism. You should your own type</EM></span> ++ <span class="comment"><EM>-- derive from this one and implement the Field_Check, Character_Check</EM></span> ++ <span class="comment"><EM>-- Next and Previous functions for your own type.</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">User_Defined_Field_Type_With_Choice_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_57_9">User_Defined_Field_Type_With_Choice_Access</A></span> <b>is</b> <b>access</b> <b>all</b> + <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>'Class; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_60_13">Next</A></FONT> +- (<FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_60_13">Next</A></span> ++ (<span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean + <b>is</b> <b>abstract</b>; +- <FONT COLOR=green><EM>-- If True is returned, the function successfully generated a next</EM></FONT> +- <FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT> ++ <span class="comment"><EM>-- If True is returned, the function successfully generated a next</EM></span> ++ <span class="comment"><EM>-- value into the fields buffer.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_67_13">Previous</A></FONT> +- (<FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_67_13">Previous</A></span> ++ (<span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean + <b>is</b> <b>abstract</b>; +- <FONT COLOR=green><EM>-- If True is returned, the function successfully generated a previous</EM></FONT> +- <FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT> ++ <span class="comment"><EM>-- If True is returned, the function successfully generated a previous</EM></span> ++ <span class="comment"><EM>-- value into the fields buffer.</EM></span> + +- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> ++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span> ++ <span class="comment"><EM>-- | Private Part.</EM></span> ++ <span class="comment"><EM>-- |</EM></span> + <b>private</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_78_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_76_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_78_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_76_13">C_Generic_Choice</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_80_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_81_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13">Generic_Next</A></span> (<span class="symbol"><A NAME="ref_80_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_81_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A>); +- <FONT COLOR=green><EM>-- This is the generic next Choice_Function for the low-level fieldtype</EM></FONT> +- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT> +- <FONT COLOR=green><EM>-- the call to the Next implementation for the type.</EM></FONT> ++ <span class="comment"><EM>-- This is the generic next Choice_Function for the low-level fieldtype</EM></span> ++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span> ++ <span class="comment"><EM>-- the call to the Next implementation for the type.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_87_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_87_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_88_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_87_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_13">Generic_Prev</A></span> (<span class="symbol"><A NAME="ref_87_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_88_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A>); +- <FONT COLOR=green><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></FONT> +- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT> +- <FONT COLOR=green><EM>-- the call to the Previous implementation for the type.</EM></FONT> ++ <span class="comment"><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></span> ++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span> ++ <span class="comment"><EM>-- the call to the Previous implementation for the type.</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm 2011-02-26 00:43:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm 2014-09-01 16:33:22.281791998 +0200 +@@ -1,87 +1,99 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +-<FONT COLOR=green><EM>-- | man page form_field_userptr.3x</EM></FONT> +-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A></FONT> <b>is</b> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |=====================================================================</EM></span> ++<span class="comment"><EM>-- | man page form_field_userptr.3x</EM></span> ++<span class="comment"><EM>-- |=====================================================================</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<span class="symbol"><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A></span> <b>is</b> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_57_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_57_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_58_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_57_16">Set_Field_Userptr</A></span> (<span class="symbol"><A NAME="ref_57_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_58_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Usr</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Field_Userptr, "set_field_userptr"); + +- <FONT COLOR=red><A NAME="ref_61_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A>); ++ <span class="symbol"><A NAME="ref_61_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A>); + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_70_28" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_70_28" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_72_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_72_31" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_72_16">Field_Userptr</A></span> (<span class="symbol"><A NAME="ref_72_31" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>; + <b>pragma</b> Import (C, Field_Userptr, "field_userptr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A>); + <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_78_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_78_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_78_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_78_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm 2014-09-01 16:33:22.282792000 +0200 +@@ -1,74 +1,86 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.16 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.16 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_43_9">User</A>; +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_48_46">Field_User_Data</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_43_9">User</A>; ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_48_46">Field_User_Data</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; +- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT> +- <FONT COLOR=green><EM>-- Sama as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; ++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></span> ++ <span class="comment"><EM>-- Sama as function</EM></span> + <b>pragma</b> Inline (Get_User_Data); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm 2011-02-26 00:43:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm 2014-09-01 16:33:22.282792000 +0200 +@@ -1,88 +1,100 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> +-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +-<FONT COLOR=green><EM>-- | man page form__userptr.3x</EM></FONT> +-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- |</EM></span> ++<span class="comment"><EM>-- |=====================================================================</EM></span> ++<span class="comment"><EM>-- | man page form__userptr.3x</EM></span> ++<span class="comment"><EM>-- |=====================================================================</EM></span> ++<span class="comment"><EM>-- |</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<span class="symbol"><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A></span> <b>is</b> + +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_56_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_56_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_58_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_58_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_59_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_58_16">Set_Form_Userptr</A></span> (<span class="symbol"><A NAME="ref_58_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_59_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Form_Userptr, "set_form_userptr"); + +- <FONT COLOR=red><A NAME="ref_62_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A>); ++ <span class="symbol"><A NAME="ref_62_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A>); + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>; +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_71_28" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_71_28" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_73_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_73_30" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_73_16">Form_Userptr</A></span> (<span class="symbol"><A NAME="ref_73_30" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>; + <b>pragma</b> Import (C, Form_Userptr, "form_userptr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A>); + <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_79_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_80_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_79_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_80_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm 2014-09-01 16:33:22.282792000 +0200 +@@ -1,74 +1,86 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_43_9">User</A>; +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_48_46">Form_User_Data</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_43_9">User</A>; ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_48_46">Form_User_Data</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; +- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; ++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_28">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Get_User_Data); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-menus__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus__adb.htm 2011-03-26 22:54:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus__adb.htm 2014-09-01 16:33:22.292792016 +0200 +@@ -1,66 +1,78 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-menus.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-menus.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.28 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:38:12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.28 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 23:38:12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Unchecked_Deallocation; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers; + + <b>with</b> Ada.Unchecked_Conversion; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_51_40" HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_51_40" HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A></span> <b>is</b> + + <b>type</b> C_Item_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; + <b>package</b> I_Array <b>is</b> <b>new</b> +- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); ++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); + + <b>use</b> <b>type</b> System.Bit_Order; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_58_12">chars_ptr</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr; + + <b>function</b> MOS_2_CInt <b>is</b> <b>new</b> + Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>, +@@ -71,656 +83,656 @@ + <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>); + + <b>function</b> IOS_2_CInt <b>is</b> <b>new</b> +- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>, ++ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>, + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>); + + <b>function</b> CInt_2_IOS <b>is</b> <b>new</b> + Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>, +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>); + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-menus__ads.htm#ref_106_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_77_28" HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>; +- <FONT COLOR=red><A NAME="ref_78_28" HREF="terminal_interface-curses-menus__ads.htm#ref_107_28">Name</A></FONT> : <b>out</b> String) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-menus__ads.htm#ref_106_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_77_28" HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>; ++ <span class="symbol"><A NAME="ref_78_28" HREF="terminal_interface-curses-menus__ads.htm#ref_107_28">Name</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_80_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_80_30" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_80_16">Request_Name</A></span> (<span class="symbol"><A NAME="ref_80_30" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Request_Name, "menu_request_name"); + <b>begin</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#ref_107_28">Name</A>); + <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_106_14">Request_Name</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_86_13" HREF="terminal_interface-curses-menus__ads.htm#ref_109_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_86_27" HREF="terminal_interface-curses-menus__ads.htm#ref_109_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_86_13" HREF="terminal_interface-curses-menus__ads.htm#ref_109_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_86_27" HREF="terminal_interface-curses-menus__ads.htm#ref_109_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_88_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_88_30" HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_88_16">Request_Name</A></span> (<span class="symbol"><A NAME="ref_88_30" HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Request_Name, "menu_request_name"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_109_28">Key</A>))); + <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_109_14">Request_Name</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-menus__ads.htm#ref_195_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_94_21" HREF="terminal_interface-curses-menus__ads.htm#ref_195_21">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_95_21" HREF="terminal_interface-curses-menus__ads.htm#ref_196_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_94_13" HREF="terminal_interface-curses-menus__ads.htm#ref_193_13">Create</A></span> (<span class="symbol"><A NAME="ref_94_21" HREF="terminal_interface-curses-menus__ads.htm#ref_193_21">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_95_21" HREF="terminal_interface-curses-menus__ads.htm#ref_194_21">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_97_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char; +- <b>function</b> <FONT COLOR=red><A NAME="ref_98_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="ref_98_25" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Name</A></FONT>, <FONT COLOR=red><A NAME="ref_98_31" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_97_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_97_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char; ++ <b>function</b> <span class="symbol"><A NAME="ref_98_16">Newitem</A></span> (<span class="symbol"><A NAME="ref_98_25" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Name</A></span>, <span class="symbol"><A NAME="ref_98_31" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Desc</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_97_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; + <b>pragma</b> Import (C, Newitem, "new_item"); + +- <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_195_21">Name</A>'Length); +- <b>type</b> <FONT COLOR=red><A NAME="ref_102_12">Name_String_Ptr</A></FONT> <b>is</b> <b>access</b> Name_String; ++ <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_193_21">Name</A>'Length); ++ <b>type</b> <span class="symbol"><A NAME="ref_102_12">Name_String_Ptr</A></span> <b>is</b> <b>access</b> Name_String; + <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A>); + +- <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_196_21">Description</A>'Length); +- <b>type</b> <FONT COLOR=red><A NAME="ref_106_12">Desc_String_Ptr</A></FONT> <b>is</b> <b>access</b> Desc_String; ++ <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_194_21">Description</A>'Length); ++ <b>type</b> <span class="symbol"><A NAME="ref_106_12">Desc_String_Ptr</A></span> <b>is</b> <b>access</b> Desc_String; + <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A>); + +- <FONT COLOR=red><A NAME="ref_109_7">Name_Str</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A> := <b>new</b> Name_String; +- <FONT COLOR=red><A NAME="ref_110_7">Desc_Str</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A> := <b>new</b> Desc_String; +- <FONT COLOR=red><A NAME="ref_111_7">Name_Len</A></FONT>, <FONT COLOR=red><A NAME="ref_111_17">Desc_Len</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_112_7">Result</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_109_7">Name_Str</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A> := <b>new</b> Name_String; ++ <span class="symbol"><A NAME="ref_110_7">Desc_Str</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A> := <b>new</b> Desc_String; ++ <span class="symbol"><A NAME="ref_111_7">Name_Len</A></span>, <span class="symbol"><A NAME="ref_111_17">Desc_Len</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_112_7">Result</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_195_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_7">Name_Len</A>); +- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_196_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_17">Desc_Len</A>); ++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_193_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_7">Name_Len</A>); ++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_194_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_17">Desc_Len</A>); + <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>, + <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_391_4">Eti_System_Error</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_4">Eti_System_Error</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_195_13">Create</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_193_13">Create</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_124_14" HREF="terminal_interface-curses-menus__ads.htm#ref_207_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_124_22" HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_124_14" HREF="terminal_interface-curses-menus__ads.htm#ref_205_14">Delete</A></span> (<span class="symbol"><A NAME="ref_124_22" HREF="terminal_interface-curses-menus__ads.htm#ref_205_22">Itm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_126_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_126_26" HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_126_16">Descname</A></span> (<span class="symbol"><A NAME="ref_126_26" HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Descname, "item_description"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_128_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_128_26" HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_128_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_128_26" HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Itemname, "item_name"); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_131_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="ref_131_26" HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_131_16">Freeitem</A></span> (<span class="symbol"><A NAME="ref_131_26" HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Freeitem, "free_item"); + +- <FONT COLOR=red><A NAME="ref_134_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; +- <FONT COLOR=red><A NAME="ref_135_7">Ptr</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <span class="symbol"><A NAME="ref_134_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_135_7">Ptr</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_205_22">Itm</A>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b> +- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>); ++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_205_22">Itm</A>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b> +- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>); ++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_205_22">Itm</A>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_207_14">Delete</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_152_14" HREF="terminal_interface-curses-menus__ads.htm#ref_216_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_152_25" HREF="terminal_interface-curses-menus__ads.htm#ref_216_25">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_153_25" HREF="terminal_interface-curses-menus__ads.htm#ref_217_25">Value</A></FONT> : Boolean := True) ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_205_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_205_14">Delete</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_152_14" HREF="terminal_interface-curses-menus__ads.htm#ref_214_14">Set_Value</A></span> (<span class="symbol"><A NAME="ref_152_25" HREF="terminal_interface-curses-menus__ads.htm#ref_214_25">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_153_25" HREF="terminal_interface-curses-menus__ads.htm#ref_215_25">Value</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_155_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_155_30" HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_156_30" HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Val</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_155_16">Set_Item_Val</A></span> (<span class="symbol"><A NAME="ref_155_30" HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_156_30" HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Val</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Item_Val, "set_item_value"); + +- <FONT COLOR=red><A NAME="ref_159_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_216_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_217_25">Value</A>)); ++ <span class="symbol"><A NAME="ref_159_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_214_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_215_25">Value</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_159_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_159_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_216_14">Set_Value</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_214_14">Set_Value</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_166_13" HREF="terminal_interface-curses-menus__ads.htm#ref_222_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_166_20" HREF="terminal_interface-curses-menus__ads.htm#ref_222_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_166_13" HREF="terminal_interface-curses-menus__ads.htm#ref_220_13">Value</A></span> (<span class="symbol"><A NAME="ref_166_20" HREF="terminal_interface-curses-menus__ads.htm#ref_220_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_168_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_168_26" HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_168_16">Item_Val</A></span> (<span class="symbol"><A NAME="ref_168_26" HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Item_Val, "item_value"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_222_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_220_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_222_13">Value</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_220_13">Value</A>; + +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_179_13" HREF="terminal_interface-curses-menus__ads.htm#ref_231_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_179_22" HREF="terminal_interface-curses-menus__ads.htm#ref_231_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_179_13" HREF="terminal_interface-curses-menus__ads.htm#ref_229_13">Visible</A></span> (<span class="symbol"><A NAME="ref_179_22" HREF="terminal_interface-curses-menus__ads.htm#ref_229_22">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_181_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="ref_181_26" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_181_16">Item_Vis</A></span> (<span class="symbol"><A NAME="ref_181_26" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Item_Vis, "item_visible"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_231_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_229_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_231_13">Visible</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_191_14" HREF="terminal_interface-curses-menus__ads.htm#ref_240_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_191_27" HREF="terminal_interface-curses-menus__ads.htm#ref_240_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_192_27" HREF="terminal_interface-curses-menus__ads.htm#ref_241_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_229_13">Visible</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_191_14" HREF="terminal_interface-curses-menus__ads.htm#ref_238_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_191_27" HREF="terminal_interface-curses-menus__ads.htm#ref_238_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_192_27" HREF="terminal_interface-curses-menus__ads.htm#ref_239_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_194_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_194_31" HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_195_31" HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_194_16">Set_Item_Opts</A></span> (<span class="symbol"><A NAME="ref_194_31" HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_195_31" HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Item_Opts, "set_item_opts"); + +- <FONT COLOR=red><A NAME="ref_198_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := IOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_27">Options</A>); +- <FONT COLOR=red><A NAME="ref_199_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_198_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := IOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_239_27">Options</A>); ++ <span class="symbol"><A NAME="ref_199_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_240_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_198_7">Opt</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_238_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_198_7">Opt</A>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_240_14">Set_Options</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_238_14">Set_Options</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__ads.htm#ref_246_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_207_30" HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_208_30" HREF="terminal_interface-curses-menus__ads.htm#ref_247_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_209_30" HREF="terminal_interface-curses-menus__ads.htm#ref_248_30">On</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__ads.htm#ref_244_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_207_30" HREF="terminal_interface-curses-menus__ads.htm#ref_244_30">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_208_30" HREF="terminal_interface-curses-menus__ads.htm#ref_245_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_209_30" HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_211_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_211_30" HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_212_30" HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_211_16">Item_Opts_On</A></span> (<span class="symbol"><A NAME="ref_211_30" HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_212_30" HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Item_Opts_On, "item_opts_on"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_214_16">Item_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_214_31" HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_215_31" HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_214_16">Item_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_214_31" HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_215_31" HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Item_Opts_Off, "item_opts_off"); + +- <FONT COLOR=red><A NAME="ref_218_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := IOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_247_30">Options</A>); +- <FONT COLOR=red><A NAME="ref_219_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_218_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := IOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_245_30">Options</A>); ++ <span class="symbol"><A NAME="ref_219_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_248_30">On</A> <b>then</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">On</A> <b>then</b> ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_244_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_244_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_246_14">Switch_Options</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_244_14">Switch_Options</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_255_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_255_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_256_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_253_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_253_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_254_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_234_27" HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_234_16">Item_Opts</A></span> (<span class="symbol"><A NAME="ref_234_27" HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Item_Opts, "item_opts"); + +- <FONT COLOR=red><A NAME="ref_237_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_255_27">Itm</A>); ++ <span class="symbol"><A NAME="ref_237_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_253_27">Itm</A>); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_256_27">Options</A> := CInt_2_IOS (<A HREF="terminal_interface-curses-menus__adb.htm#ref_237_7">Res</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_14">Get_Options</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_254_27">Options</A> := CInt_2_IOS (<A HREF="terminal_interface-curses-menus__adb.htm#ref_237_7">Res</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_253_14">Get_Options</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_242_13" HREF="terminal_interface-curses-menus__ads.htm#ref_260_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__ads.htm#ref_260_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_242_13" HREF="terminal_interface-curses-menus__ads.htm#ref_258_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__ads.htm#ref_258_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_244_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_244_7">Ios</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_260_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_253_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_258_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>); + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_260_13">Get_Options</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-menus__ads.htm#ref_269_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_250_20" HREF="terminal_interface-curses-menus__ads.htm#ref_269_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_251_20" HREF="terminal_interface-curses-menus__ads.htm#ref_270_20">Name</A></FONT> : <b>out</b> String) ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_258_13">Get_Options</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_250_14" HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A></span> (<span class="symbol"><A NAME="ref_250_20" HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_251_20" HREF="terminal_interface-curses-menus__ads.htm#ref_268_20">Name</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_253_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_253_26" HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_253_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_253_26" HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Itemname, "item_name"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_269_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_270_20">Name</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_269_14">Name</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_268_20">Name</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_272_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_259_19" HREF="terminal_interface-curses-menus__ads.htm#ref_272_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_270_14">Name</A></span> (<span class="symbol"><A NAME="ref_259_19" HREF="terminal_interface-curses-menus__ads.htm#ref_270_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_261_26" HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_261_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_261_26" HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Itemname, "item_name"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_272_20">Itm</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_272_14">Name</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_270_20">Itm</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_270_14">Name</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__ads.htm#ref_278_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_267_27" HREF="terminal_interface-curses-menus__ads.htm#ref_278_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_268_27" HREF="terminal_interface-curses-menus__ads.htm#ref_279_27">Description</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__ads.htm#ref_276_14">Description</A></span> (<span class="symbol"><A NAME="ref_267_27" HREF="terminal_interface-curses-menus__ads.htm#ref_276_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_268_27" HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Description</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_270_26" HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_270_16">Descname</A></span> (<span class="symbol"><A NAME="ref_270_26" HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Descname, "item_description"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_278_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_279_27">Description</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_278_14">Description</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_276_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Description</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_276_14">Description</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_276_13" HREF="terminal_interface-curses-menus__ads.htm#ref_282_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-menus__ads.htm#ref_282_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_276_13" HREF="terminal_interface-curses-menus__ads.htm#ref_280_14">Description</A></span> (<span class="symbol"><A NAME="ref_276_26" HREF="terminal_interface-curses-menus__ads.htm#ref_280_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_278_26" HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_278_16">Descname</A></span> (<span class="symbol"><A NAME="ref_278_26" HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Descname, "item_description"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_282_27">Itm</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_282_14">Description</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_284_14" HREF="terminal_interface-curses-menus__ads.htm#ref_292_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_284_27" HREF="terminal_interface-curses-menus__ads.htm#ref_292_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_285_27" HREF="terminal_interface-curses-menus__ads.htm#ref_293_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_280_27">Itm</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_280_14">Description</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_284_14" HREF="terminal_interface-curses-menus__ads.htm#ref_290_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_284_27" HREF="terminal_interface-curses-menus__ads.htm#ref_290_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_285_27" HREF="terminal_interface-curses-menus__ads.htm#ref_291_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_287_31" HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_288_31" HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_287_16">Set_Curr_Item</A></span> (<span class="symbol"><A NAME="ref_287_31" HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_288_31" HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Curr_Item, "set_current_item"); + +- <FONT COLOR=red><A NAME="ref_291_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_292_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_293_27">Itm</A>); ++ <span class="symbol"><A NAME="ref_291_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_290_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_291_27">Itm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_291_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_291_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_292_14">Set_Current</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_290_14">Set_Current</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__ads.htm#ref_298_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__ads.htm#ref_298_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__ads.htm#ref_296_13">Current</A></span> (<span class="symbol"><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__ads.htm#ref_296_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_300_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_300_16">Curr_Item</A></span> (<span class="symbol"><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; + <b>pragma</b> Import (C, Curr_Item, "current_item"); + +- <FONT COLOR=red><A NAME="ref_303_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_22">Men</A>); ++ <span class="symbol"><A NAME="ref_303_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_296_22">Men</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_303_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_303_7">Res</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_298_13">Current</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_296_13">Current</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_311_14" HREF="terminal_interface-curses-menus__ads.htm#ref_303_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_311_27" HREF="terminal_interface-curses-menus__ads.htm#ref_303_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_312_27" HREF="terminal_interface-curses-menus__ads.htm#ref_304_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_311_14" HREF="terminal_interface-curses-menus__ads.htm#ref_301_14">Set_Top_Row</A></span> (<span class="symbol"><A NAME="ref_311_27" HREF="terminal_interface-curses-menus__ads.htm#ref_301_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_312_27" HREF="terminal_interface-curses-menus__ads.htm#ref_302_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_314_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_314_28" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_315_28" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_314_16">Set_Toprow</A></span> (<span class="symbol"><A NAME="ref_314_28" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_315_28" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Toprow, "set_top_row"); + +- <FONT COLOR=red><A NAME="ref_318_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_303_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_304_27">Line</A>)); ++ <span class="symbol"><A NAME="ref_318_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_301_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_302_27">Line</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_318_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_318_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_303_14">Set_Top_Row</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_301_14">Set_Top_Row</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_325_13" HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_325_22" HREF="terminal_interface-curses-menus__ads.htm#ref_309_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_325_13" HREF="terminal_interface-curses-menus__ads.htm#ref_307_13">Top_Row</A></span> (<span class="symbol"><A NAME="ref_325_22" HREF="terminal_interface-curses-menus__ads.htm#ref_307_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_327_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_327_24" HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_327_16">Toprow</A></span> (<span class="symbol"><A NAME="ref_327_24" HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Toprow, "top_row"); + +- <FONT COLOR=red><A NAME="ref_330_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_22">Men</A>); ++ <span class="symbol"><A NAME="ref_330_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_307_22">Men</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_330_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_330_7">Res</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Top_Row</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_307_13">Top_Row</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_338_13" HREF="terminal_interface-curses-menus__ads.htm#ref_314_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_338_24" HREF="terminal_interface-curses-menus__ads.htm#ref_314_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive ++ <b>function</b> <span class="symbol"><A NAME="ref_338_13" HREF="terminal_interface-curses-menus__ads.htm#ref_312_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_338_24" HREF="terminal_interface-curses-menus__ads.htm#ref_312_24">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_340_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="ref_340_31" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_340_16">Get_Itemindex</A></span> (<span class="symbol"><A NAME="ref_340_31" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Get_Itemindex, "item_index"); + +- <FONT COLOR=red><A NAME="ref_343_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_314_24">Itm</A>); ++ <span class="symbol"><A NAME="ref_343_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_312_24">Itm</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_343_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_343_7">Res</A>) + Positive'First); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_314_13">Get_Index</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__ads.htm#ref_326_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_351_20" HREF="terminal_interface-curses-menus__ads.htm#ref_326_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_352_20" HREF="terminal_interface-curses-menus__ads.htm#ref_327_20">Post</A></FONT> : Boolean := True) ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_312_13">Get_Index</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__ads.htm#ref_324_14">Post</A></span> (<span class="symbol"><A NAME="ref_351_20" HREF="terminal_interface-curses-menus__ads.htm#ref_324_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_352_20" HREF="terminal_interface-curses-menus__ads.htm#ref_325_20">Post</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_354_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_354_24" HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_354_16">M_Post</A></span> (<span class="symbol"><A NAME="ref_354_24" HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, M_Post, "post_menu"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_356_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="ref_356_26" HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_356_16">M_Unpost</A></span> (<span class="symbol"><A NAME="ref_356_26" HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, M_Unpost, "unpost_menu"); + +- <FONT COLOR=red><A NAME="ref_359_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_359_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_327_20">Post</A> <b>then</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_326_20">Men</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_325_20">Post</A> <b>then</b> ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_324_20">Men</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_326_20">Men</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_324_20">Men</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_326_14">Post</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-menus__ads.htm#ref_337_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-menus__ads.htm#ref_337_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-menus__ads.htm#ref_338_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_324_14">Post</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_371_14" HREF="terminal_interface-curses-menus__ads.htm#ref_335_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_371_27" HREF="terminal_interface-curses-menus__ads.htm#ref_335_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_372_27" HREF="terminal_interface-curses-menus__ads.htm#ref_336_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_31" HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_375_31" HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_374_16">Set_Menu_Opts</A></span> (<span class="symbol"><A NAME="ref_374_31" HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_375_31" HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Opts, "set_menu_opts"); + +- <FONT COLOR=red><A NAME="ref_378_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := MOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_27">Options</A>); +- <FONT COLOR=red><A NAME="ref_379_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_378_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := MOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_336_27">Options</A>); ++ <span class="symbol"><A NAME="ref_379_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_337_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_378_7">Opt</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_335_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_378_7">Opt</A>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_337_14">Set_Options</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_335_14">Set_Options</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__ads.htm#ref_343_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_387_30" HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_388_30" HREF="terminal_interface-curses-menus__ads.htm#ref_344_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_389_30" HREF="terminal_interface-curses-menus__ads.htm#ref_345_30">On</A></FONT> : Boolean := True) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__ads.htm#ref_341_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_387_30" HREF="terminal_interface-curses-menus__ads.htm#ref_341_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_388_30" HREF="terminal_interface-curses-menus__ads.htm#ref_342_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_389_30" HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">On</A></span> : Boolean := True) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_391_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_391_30" HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_392_30" HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_391_16">Menu_Opts_On</A></span> (<span class="symbol"><A NAME="ref_391_30" HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_392_30" HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Menu_Opts_On, "menu_opts_on"); +- <b>function</b> <FONT COLOR=red><A NAME="ref_394_16">Menu_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_394_31" HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_395_31" HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_394_16">Menu_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_394_31" HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_395_31" HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Opt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Menu_Opts_Off, "menu_opts_off"); + +- <FONT COLOR=red><A NAME="ref_398_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := MOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_344_30">Options</A>); +- <FONT COLOR=red><A NAME="ref_399_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_398_7">Opt</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := MOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_342_30">Options</A>); ++ <span class="symbol"><A NAME="ref_399_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_345_30">On</A> <b>then</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">On</A> <b>then</b> ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_341_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_341_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_343_14">Switch_Options</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_341_14">Switch_Options</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__ads.htm#ref_351_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_411_27" HREF="terminal_interface-curses-menus__ads.htm#ref_351_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-menus__ads.htm#ref_352_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__ads.htm#ref_349_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_411_27" HREF="terminal_interface-curses-menus__ads.htm#ref_349_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_412_27" HREF="terminal_interface-curses-menus__ads.htm#ref_350_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_414_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_414_27" HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_414_16">Menu_Opts</A></span> (<span class="symbol"><A NAME="ref_414_27" HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Menu_Opts, "menu_opts"); + +- <FONT COLOR=red><A NAME="ref_417_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_351_27">Men</A>); ++ <span class="symbol"><A NAME="ref_417_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_349_27">Men</A>); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_352_27">Options</A> := CInt_2_MOS (<A HREF="terminal_interface-curses-menus__adb.htm#ref_417_7">Res</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_14">Get_Options</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_350_27">Options</A> := CInt_2_MOS (<A HREF="terminal_interface-curses-menus__adb.htm#ref_417_7">Res</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_349_14">Get_Options</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_422_13" HREF="terminal_interface-curses-menus__ads.htm#ref_356_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-menus__ads.htm#ref_356_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_422_13" HREF="terminal_interface-curses-menus__ads.htm#ref_354_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_422_26" HREF="terminal_interface-curses-menus__ads.htm#ref_354_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_424_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_424_7">Mos</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_356_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_349_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_354_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>); + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_356_13">Get_Options</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-menus__ads.htm#ref_365_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__ads.htm#ref_365_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__ads.htm#ref_366_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_354_13">Get_Options</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_430_14" HREF="terminal_interface-curses-menus__ads.htm#ref_363_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__ads.htm#ref_363_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__ads.htm#ref_364_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_433_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_433_30" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_434_30" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_433_16">Set_Menu_Win</A></span> (<span class="symbol"><A NAME="ref_433_30" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_434_30" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Win, "set_menu_win"); + +- <FONT COLOR=red><A NAME="ref_437_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_365_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_366_26">Win</A>); ++ <span class="symbol"><A NAME="ref_437_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_363_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_364_26">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_437_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_437_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_365_14">Set_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_363_14">Set_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_444_13" HREF="terminal_interface-curses-menus__ads.htm#ref_371_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_444_25" HREF="terminal_interface-curses-menus__ads.htm#ref_371_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_444_13" HREF="terminal_interface-curses-menus__ads.htm#ref_369_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_444_25" HREF="terminal_interface-curses-menus__ads.htm#ref_369_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_446_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_446_26" HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_446_16">Menu_Win</A></span> (<span class="symbol"><A NAME="ref_446_26" HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Menu_Win, "menu_win"); + +- <FONT COLOR=red><A NAME="ref_449_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_25">Men</A>); ++ <span class="symbol"><A NAME="ref_449_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_369_25">Men</A>); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_371_13">Get_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_369_13">Get_Window</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_454_14" HREF="terminal_interface-curses-menus__ads.htm#ref_376_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_454_30" HREF="terminal_interface-curses-menus__ads.htm#ref_376_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_455_30" HREF="terminal_interface-curses-menus__ads.htm#ref_377_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_454_14" HREF="terminal_interface-curses-menus__ads.htm#ref_374_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_454_30" HREF="terminal_interface-curses-menus__ads.htm#ref_374_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_455_30" HREF="terminal_interface-curses-menus__ads.htm#ref_375_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_457_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_457_30" HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_458_30" HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_457_16">Set_Menu_Sub</A></span> (<span class="symbol"><A NAME="ref_457_30" HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_458_30" HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Sub, "set_menu_sub"); + +- <FONT COLOR=red><A NAME="ref_461_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_376_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_377_30">Win</A>); ++ <span class="symbol"><A NAME="ref_461_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_374_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_375_30">Win</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_461_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_461_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_376_14">Set_Sub_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_374_14">Set_Sub_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_468_13" HREF="terminal_interface-curses-menus__ads.htm#ref_382_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_468_29" HREF="terminal_interface-curses-menus__ads.htm#ref_382_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_468_13" HREF="terminal_interface-curses-menus__ads.htm#ref_380_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_468_29" HREF="terminal_interface-curses-menus__ads.htm#ref_380_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_470_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_470_26" HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_470_16">Menu_Sub</A></span> (<span class="symbol"><A NAME="ref_470_26" HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Menu_Sub, "menu_sub"); + +- <FONT COLOR=red><A NAME="ref_473_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_29">Men</A>); ++ <span class="symbol"><A NAME="ref_473_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_380_29">Men</A>); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_473_7">W</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_382_13">Get_Sub_Window</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_380_13">Get_Sub_Window</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses-menus__ads.htm#ref_387_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_478_21" HREF="terminal_interface-curses-menus__ads.htm#ref_387_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_479_21" HREF="terminal_interface-curses-menus__ads.htm#ref_388_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_480_21" HREF="terminal_interface-curses-menus__ads.htm#ref_389_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_482_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_483_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_483_25" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_484_25" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_484_29" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Xp</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_482_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_478_14" HREF="terminal_interface-curses-menus__ads.htm#ref_385_14">Scale</A></span> (<span class="symbol"><A NAME="ref_478_21" HREF="terminal_interface-curses-menus__ads.htm#ref_385_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_479_21" HREF="terminal_interface-curses-menus__ads.htm#ref_386_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_480_21" HREF="terminal_interface-curses-menus__ads.htm#ref_387_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_482_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_483_16">M_Scale</A></span> (<span class="symbol"><A NAME="ref_483_25" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_484_25" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Yp</A></span>, <span class="symbol"><A NAME="ref_484_29" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Xp</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_482_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, M_Scale, "scale_menu"); + +- <FONT COLOR=red><A NAME="ref_487_7">X</A></FONT>, <FONT COLOR=red><A NAME="ref_487_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_488_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_387_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>'<b>Access</b>); ++ <span class="symbol"><A NAME="ref_487_7">X</A></span>, <span class="symbol"><A NAME="ref_487_10">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_488_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_385_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>'<b>Access</b>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_488_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_488_7">Res</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_388_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>); +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_389_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_387_14">Scale</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses-menus__ads.htm#ref_398_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_497_31" HREF="terminal_interface-curses-menus__ads.htm#ref_398_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_386_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_387_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_385_14">Scale</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_497_14" HREF="terminal_interface-curses-menus__ads.htm#ref_396_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_497_31" HREF="terminal_interface-curses-menus__ads.htm#ref_396_31">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_499_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_499_33" HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_499_16">Pos_Menu_Cursor</A></span> (<span class="symbol"><A NAME="ref_499_33" HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Pos_Menu_Cursor, "pos_menu_cursor"); + +- <FONT COLOR=red><A NAME="ref_502_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_398_31">Men</A>); ++ <span class="symbol"><A NAME="ref_502_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_396_31">Men</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_502_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_502_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_398_14">Position_Cursor</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_396_14">Position_Cursor</A>; + +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_510_24" HREF="terminal_interface-curses-menus__ads.htm#ref_407_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_511_24" HREF="terminal_interface-curses-menus__ads.htm#ref_408_24">Mark</A></FONT> : String) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_513_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char; +- <b>function</b> <FONT COLOR=red><A NAME="ref_514_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_514_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_515_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_513_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_405_14">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_510_24" HREF="terminal_interface-curses-menus__ads.htm#ref_405_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_511_24" HREF="terminal_interface-curses-menus__ads.htm#ref_406_24">Mark</A></span> : String) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_513_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char; ++ <b>function</b> <span class="symbol"><A NAME="ref_514_16">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_514_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_515_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Mark</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_513_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Mark, "set_menu_mark"); + +- <FONT COLOR=red><A NAME="ref_518_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_408_24">Mark</A>'Length); +- <FONT COLOR=red><A NAME="ref_519_7">Len</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_520_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_518_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_406_24">Mark</A>'Length); ++ <span class="symbol"><A NAME="ref_519_7">Len</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_520_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_408_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_519_7">Len</A>); +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_407_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>'First)'<b>Access</b>); ++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_406_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_519_7">Len</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_405_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>'First)'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Set_Mark</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_405_14">Set_Mark</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_529_14" HREF="terminal_interface-curses-menus__ads.htm#ref_413_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_529_20" HREF="terminal_interface-curses-menus__ads.htm#ref_413_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_530_20" HREF="terminal_interface-curses-menus__ads.htm#ref_414_20">Mark</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_529_14" HREF="terminal_interface-curses-menus__ads.htm#ref_411_14">Mark</A></span> (<span class="symbol"><A NAME="ref_529_20" HREF="terminal_interface-curses-menus__ads.htm#ref_411_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_530_20" HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Mark</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_532_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_532_31" HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_532_16">Get_Menu_Mark</A></span> (<span class="symbol"><A NAME="ref_532_31" HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Get_Menu_Mark, "menu_mark"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_413_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_414_20">Mark</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_413_14">Mark</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_411_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Mark</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_411_14">Mark</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_538_13" HREF="terminal_interface-curses-menus__ads.htm#ref_417_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_538_19" HREF="terminal_interface-curses-menus__ads.htm#ref_417_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String ++ <b>function</b> <span class="symbol"><A NAME="ref_538_13" HREF="terminal_interface-curses-menus__ads.htm#ref_415_14">Mark</A></span> (<span class="symbol"><A NAME="ref_538_19" HREF="terminal_interface-curses-menus__ads.htm#ref_415_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_540_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_540_31" HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_540_16">Get_Menu_Mark</A></span> (<span class="symbol"><A NAME="ref_540_31" HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Get_Menu_Mark, "menu_mark"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_417_20">Men</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_417_14">Mark</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_415_20">Men</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_415_14">Mark</A>; + +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_547_14" HREF="terminal_interface-curses-menus__ads.htm#ref_427_14">Set_Foreground</A></FONT> +- (<FONT COLOR=red><A NAME="ref_548_7" HREF="terminal_interface-curses-menus__ads.htm#ref_428_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_549_7" HREF="terminal_interface-curses-menus__ads.htm#ref_429_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_550_7" HREF="terminal_interface-curses-menus__ads.htm#ref_430_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_547_14" HREF="terminal_interface-curses-menus__ads.htm#ref_425_14">Set_Foreground</A></span> ++ (<span class="symbol"><A NAME="ref_548_7" HREF="terminal_interface-curses-menus__ads.htm#ref_426_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_549_7" HREF="terminal_interface-curses-menus__ads.htm#ref_427_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_550_7" HREF="terminal_interface-curses-menus__ads.htm#ref_428_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_552_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_552_31" HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_553_31" HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_552_16">Set_Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_552_31" HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_553_31" HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Fore, "set_menu_fore"); + +- <FONT COLOR=red><A NAME="ref_556_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_430_7">Color</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_429_7">Fore</A>); +- <FONT COLOR=red><A NAME="ref_559_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_428_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_556_7">Ch</A>)); ++ <span class="symbol"><A NAME="ref_556_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_428_7">Color</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_427_7">Fore</A>); ++ <span class="symbol"><A NAME="ref_559_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_426_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_556_7">Ch</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_427_14">Set_Foreground</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_425_14">Set_Foreground</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_566_14" HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_566_26" HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_567_26" HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_566_14" HREF="terminal_interface-curses-menus__ads.htm#ref_433_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_566_26" HREF="terminal_interface-curses-menus__ads.htm#ref_433_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_567_26" HREF="terminal_interface-curses-menus__ads.htm#ref_434_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_569_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27" HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_569_16">Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_569_27" HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Menu_Fore, "menu_fore"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_434_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_433_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_433_14">Foreground</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__ads.htm#ref_440_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_575_26" HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_576_26" HREF="terminal_interface-curses-menus__ads.htm#ref_441_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_577_26" HREF="terminal_interface-curses-menus__ads.htm#ref_442_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__ads.htm#ref_438_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_575_26" HREF="terminal_interface-curses-menus__ads.htm#ref_438_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_576_26" HREF="terminal_interface-curses-menus__ads.htm#ref_439_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_577_26" HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_579_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_579_27" HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_579_16">Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_579_27" HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Menu_Fore, "menu_fore"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_441_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_442_26">Color</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_440_14">Foreground</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses-menus__ads.htm#ref_447_14">Set_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_587_7" HREF="terminal_interface-curses-menus__ads.htm#ref_448_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_588_7" HREF="terminal_interface-curses-menus__ads.htm#ref_449_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_589_7" HREF="terminal_interface-curses-menus__ads.htm#ref_450_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_439_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_438_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Color</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_438_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_438_14">Foreground</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_586_14" HREF="terminal_interface-curses-menus__ads.htm#ref_445_14">Set_Background</A></span> ++ (<span class="symbol"><A NAME="ref_587_7" HREF="terminal_interface-curses-menus__ads.htm#ref_446_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_588_7" HREF="terminal_interface-curses-menus__ads.htm#ref_447_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_589_7" HREF="terminal_interface-curses-menus__ads.htm#ref_448_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_591_31" HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_592_31" HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_591_16">Set_Menu_Back</A></span> (<span class="symbol"><A NAME="ref_591_31" HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_592_31" HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Back, "set_menu_back"); + +- <FONT COLOR=red><A NAME="ref_595_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_450_7">Color</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_449_7">Back</A>); +- <FONT COLOR=red><A NAME="ref_598_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_448_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_595_7">Ch</A>)); ++ <span class="symbol"><A NAME="ref_595_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_448_7">Color</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_447_7">Back</A>); ++ <span class="symbol"><A NAME="ref_598_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_446_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_595_7">Ch</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_598_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_598_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_447_14">Set_Background</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_445_14">Set_Background</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_605_14" HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_605_26" HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_606_26" HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_605_14" HREF="terminal_interface-curses-menus__ads.htm#ref_453_14">Background</A></span> (<span class="symbol"><A NAME="ref_605_26" HREF="terminal_interface-curses-menus__ads.htm#ref_453_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_606_26" HREF="terminal_interface-curses-menus__ads.htm#ref_454_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_608_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_608_27" HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_608_16">Menu_Back</A></span> (<span class="symbol"><A NAME="ref_608_27" HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Menu_Back, "menu_back"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_454_26">Back</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_453_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_453_14">Background</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_614_14" HREF="terminal_interface-curses-menus__ads.htm#ref_460_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses-menus__ads.htm#ref_461_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_616_26" HREF="terminal_interface-curses-menus__ads.htm#ref_462_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_614_14" HREF="terminal_interface-curses-menus__ads.htm#ref_458_14">Background</A></span> (<span class="symbol"><A NAME="ref_614_26" HREF="terminal_interface-curses-menus__ads.htm#ref_458_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_615_26" HREF="terminal_interface-curses-menus__ads.htm#ref_459_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_616_26" HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_618_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_618_27" HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_618_16">Menu_Back</A></span> (<span class="symbol"><A NAME="ref_618_27" HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Menu_Back, "menu_back"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_461_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_462_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_460_14">Background</A>; +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_625_14" HREF="terminal_interface-curses-menus__ads.htm#ref_467_14">Set_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_625_24" HREF="terminal_interface-curses-menus__ads.htm#ref_468_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_626_24" HREF="terminal_interface-curses-menus__ads.htm#ref_469_7">Grey</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_627_24" HREF="terminal_interface-curses-menus__ads.htm#ref_470_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_459_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_458_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_458_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_458_14">Background</A>; ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_625_14" HREF="terminal_interface-curses-menus__ads.htm#ref_465_14">Set_Grey</A></span> (<span class="symbol"><A NAME="ref_625_24" HREF="terminal_interface-curses-menus__ads.htm#ref_466_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_626_24" HREF="terminal_interface-curses-menus__ads.htm#ref_467_7">Grey</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_627_24" HREF="terminal_interface-curses-menus__ads.htm#ref_468_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_629_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_629_31" HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_630_31" HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_629_16">Set_Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_629_31" HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_630_31" HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Attr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Grey, "set_menu_grey"); + +- <FONT COLOR=red><A NAME="ref_633_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, +- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_470_7">Color</A>, +- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_469_7">Grey</A>); ++ <span class="symbol"><A NAME="ref_633_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Ch</A> =&gt; Character'First, ++ <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_468_7">Color</A>, ++ <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_467_7">Grey</A>); + +- <FONT COLOR=red><A NAME="ref_637_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_468_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_633_7">Ch</A>)); ++ <span class="symbol"><A NAME="ref_637_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_466_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_633_7">Ch</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_637_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_637_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_467_14">Set_Grey</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_465_14">Set_Grey</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_644_14" HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_644_20" HREF="terminal_interface-curses-menus__ads.htm#ref_475_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_645_20" HREF="terminal_interface-curses-menus__ads.htm#ref_476_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_644_14" HREF="terminal_interface-curses-menus__ads.htm#ref_473_14">Grey</A></span> (<span class="symbol"><A NAME="ref_644_20" HREF="terminal_interface-curses-menus__ads.htm#ref_473_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_645_20" HREF="terminal_interface-curses-menus__ads.htm#ref_474_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_647_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_647_27" HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_647_16">Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_647_27" HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Menu_Grey, "menu_grey"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_476_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_475_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_474_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_473_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_473_14">Grey</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_653_14" HREF="terminal_interface-curses-menus__ads.htm#ref_480_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_653_20" HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_654_20" HREF="terminal_interface-curses-menus__ads.htm#ref_482_7">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_655_20" HREF="terminal_interface-curses-menus__ads.htm#ref_483_7">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_653_14" HREF="terminal_interface-curses-menus__ads.htm#ref_478_14">Grey</A></span> (<span class="symbol"><A NAME="ref_653_20" HREF="terminal_interface-curses-menus__ads.htm#ref_479_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_654_20" HREF="terminal_interface-curses-menus__ads.htm#ref_480_7">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_655_20" HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_657_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_657_27" HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_657_16">Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_657_27" HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>; + <b>pragma</b> Import (C, Menu_Grey, "menu_grey"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_482_7">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_483_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_480_14">Grey</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_480_7">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_479_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Attr</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_479_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Color</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_478_14">Grey</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_664_14" HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_664_33" HREF="terminal_interface-curses-menus__ads.htm#ref_488_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_665_33" HREF="terminal_interface-curses-menus__ads.htm#ref_489_33">Pad</A></FONT> : Character := Space) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_664_14" HREF="terminal_interface-curses-menus__ads.htm#ref_486_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_664_33" HREF="terminal_interface-curses-menus__ads.htm#ref_486_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_665_33" HREF="terminal_interface-curses-menus__ads.htm#ref_487_33">Pad</A></span> : Character := Space) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_667_30" HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_668_30" HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_667_16">Set_Menu_Pad</A></span> (<span class="symbol"><A NAME="ref_667_30" HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_668_30" HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Pad, "set_menu_pad"); + +- <FONT COLOR=red><A NAME="ref_671_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_488_33">Men</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_489_33">Pad</A>))); ++ <span class="symbol"><A NAME="ref_671_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_486_33">Men</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_487_33">Pad</A>))); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_671_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_671_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Set_Pad_Character</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_486_14">Set_Pad_Character</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_679_14" HREF="terminal_interface-curses-menus__ads.htm#ref_494_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_679_29" HREF="terminal_interface-curses-menus__ads.htm#ref_494_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_680_29" HREF="terminal_interface-curses-menus__ads.htm#ref_495_29">Pad</A></FONT> : <b>out</b> Character) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_679_14" HREF="terminal_interface-curses-menus__ads.htm#ref_492_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_679_29" HREF="terminal_interface-curses-menus__ads.htm#ref_492_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_680_29" HREF="terminal_interface-curses-menus__ads.htm#ref_493_29">Pad</A></span> : <b>out</b> Character) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_682_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_682_26" HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_682_16">Menu_Pad</A></span> (<span class="symbol"><A NAME="ref_682_26" HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Menu_Pad, "menu_pad"); + <b>begin</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_495_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_494_29">Men</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_494_14">Pad_Character</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_688_14" HREF="terminal_interface-curses-menus__ads.htm#ref_504_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_688_27" HREF="terminal_interface-curses-menus__ads.htm#ref_504_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_689_27" HREF="terminal_interface-curses-menus__ads.htm#ref_505_27">Descr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0; +- <FONT COLOR=red><A NAME="ref_690_27" HREF="terminal_interface-curses-menus__ads.htm#ref_506_27">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0; +- <FONT COLOR=red><A NAME="ref_691_27" HREF="terminal_interface-curses-menus__ads.htm#ref_507_27">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0) ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_493_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_492_29">Men</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_492_14">Pad_Character</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_688_14" HREF="terminal_interface-curses-menus__ads.htm#ref_502_14">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_688_27" HREF="terminal_interface-curses-menus__ads.htm#ref_502_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_689_27" HREF="terminal_interface-curses-menus__ads.htm#ref_503_27">Descr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0; ++ <span class="symbol"><A NAME="ref_690_27" HREF="terminal_interface-curses-menus__ads.htm#ref_504_27">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0; ++ <span class="symbol"><A NAME="ref_691_27" HREF="terminal_interface-curses-menus__ads.htm#ref_505_27">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_693_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_693_29" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_694_29" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">D</A></FONT>, <FONT COLOR=red><A NAME="ref_694_32" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_694_35" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_693_16">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_693_29" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_694_29" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">D</A></span>, <span class="symbol"><A NAME="ref_694_32" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">R</A></span>, <span class="symbol"><A NAME="ref_694_35" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">C</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Spacing, "set_menu_spacing"); + +- <FONT COLOR=red><A NAME="ref_697_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_504_27">Men</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_505_27">Descr</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_506_27">Row</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_507_27">Col</A>)); ++ <span class="symbol"><A NAME="ref_697_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_502_27">Men</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_503_27">Descr</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_504_27">Row</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_505_27">Col</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_697_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_697_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_504_14">Set_Spacing</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_502_14">Set_Spacing</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_707_14" HREF="terminal_interface-curses-menus__ads.htm#ref_512_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_707_23" HREF="terminal_interface-curses-menus__ads.htm#ref_512_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_708_23" HREF="terminal_interface-curses-menus__ads.htm#ref_513_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_709_23" HREF="terminal_interface-curses-menus__ads.htm#ref_514_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_710_23" HREF="terminal_interface-curses-menus__ads.htm#ref_515_23">Col</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_712_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Get_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_713_29" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_714_29" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">D</A></FONT>, <FONT COLOR=red><A NAME="ref_714_32" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_714_35" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_712_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_707_14" HREF="terminal_interface-curses-menus__ads.htm#ref_510_14">Spacing</A></span> (<span class="symbol"><A NAME="ref_707_23" HREF="terminal_interface-curses-menus__ads.htm#ref_510_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_708_23" HREF="terminal_interface-curses-menus__ads.htm#ref_511_23">Descr</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_709_23" HREF="terminal_interface-curses-menus__ads.htm#ref_512_23">Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_710_23" HREF="terminal_interface-curses-menus__ads.htm#ref_513_23">Col</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_712_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_713_16">Get_Spacing</A></span> (<span class="symbol"><A NAME="ref_713_29" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_714_29" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">D</A></span>, <span class="symbol"><A NAME="ref_714_32" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">R</A></span>, <span class="symbol"><A NAME="ref_714_35" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">C</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_712_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Get_Spacing, "menu_spacing"); + +- <FONT COLOR=red><A NAME="ref_717_7">D</A></FONT>, <FONT COLOR=red><A NAME="ref_717_10">R</A></FONT>, <FONT COLOR=red><A NAME="ref_717_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_718_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_512_23">Men</A>, ++ <span class="symbol"><A NAME="ref_717_7">D</A></span>, <span class="symbol"><A NAME="ref_717_10">R</A></span>, <span class="symbol"><A NAME="ref_717_13">C</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_718_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_510_23">Men</A>, + <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>'<b>Access</b>, + <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>'<b>Access</b>); +@@ -728,26 +740,26 @@ + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_718_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_718_7">Res</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_513_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>); +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_514_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>); +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_515_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>); +- <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_512_14">Spacing</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_732_13" HREF="terminal_interface-curses-menus__ads.htm#ref_524_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses-menus__ads.htm#ref_524_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses-menus__ads.htm#ref_525_26">Text</A></FONT> : String) <b>return</b> Boolean +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_735_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char; +- <b>function</b> <FONT COLOR=red><A NAME="ref_736_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_736_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_737_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_735_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_511_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_512_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_513_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>); ++ <b>end</b> <b>if</b>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_510_14">Spacing</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_732_13" HREF="terminal_interface-curses-menus__ads.htm#ref_522_13">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_732_26" HREF="terminal_interface-curses-menus__ads.htm#ref_522_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_733_26" HREF="terminal_interface-curses-menus__ads.htm#ref_523_26">Text</A></span> : String) <b>return</b> Boolean ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_735_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char; ++ <b>function</b> <span class="symbol"><A NAME="ref_736_16">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_736_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_737_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Pattern</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_735_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Pattern, "set_menu_pattern"); + +- <FONT COLOR=red><A NAME="ref_740_7">S</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_525_26">Text</A>'Length); +- <FONT COLOR=red><A NAME="ref_741_7">L</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_742_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_740_7">S</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_523_26">Text</A>'Length); ++ <span class="symbol"><A NAME="ref_741_7">L</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_742_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_525_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_741_7">L</A>); +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_524_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>'First)'<b>Access</b>); ++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_523_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_741_7">L</A>); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_522_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>'First)'<b>Access</b>); + <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> <b>is</b> + <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>return</b> False; + <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> =&gt; <b>return</b> True; +@@ -755,274 +767,274 @@ + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A>); + <b>return</b> False; + <b>end</b> <b>case</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_524_13">Set_Pattern</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_522_13">Set_Pattern</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_755_14" HREF="terminal_interface-curses-menus__ads.htm#ref_531_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_755_23" HREF="terminal_interface-curses-menus__ads.htm#ref_531_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_756_23" HREF="terminal_interface-curses-menus__ads.htm#ref_532_23">Text</A></FONT> : <b>out</b> String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_755_14" HREF="terminal_interface-curses-menus__ads.htm#ref_529_14">Pattern</A></span> (<span class="symbol"><A NAME="ref_755_23" HREF="terminal_interface-curses-menus__ads.htm#ref_529_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_756_23" HREF="terminal_interface-curses-menus__ads.htm#ref_530_23">Text</A></span> : <b>out</b> String) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_758_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_758_29" HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_758_16">Get_Pattern</A></span> (<span class="symbol"><A NAME="ref_758_29" HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>; + <b>pragma</b> Import (C, Get_Pattern, "menu_pattern"); + <b>begin</b> +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_531_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_532_23">Text</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_531_14">Pattern</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_764_14" HREF="terminal_interface-curses-menus__ads.htm#ref_541_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_764_26" HREF="terminal_interface-curses-menus__ads.htm#ref_541_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_765_26" HREF="terminal_interface-curses-menus__ads.htm#ref_542_26">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_766_26" HREF="terminal_interface-curses-menus__ads.htm#ref_543_26">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_768_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_768_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_769_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_770_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_529_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_530_23">Text</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_529_14">Pattern</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_764_14" HREF="terminal_interface-curses-menus__ads.htm#ref_539_14">Set_Format</A></span> (<span class="symbol"><A NAME="ref_764_26" HREF="terminal_interface-curses-menus__ads.htm#ref_539_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_765_26" HREF="terminal_interface-curses-menus__ads.htm#ref_540_26">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_766_26" HREF="terminal_interface-curses-menus__ads.htm#ref_541_26">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_768_16">Set_Menu_Fmt</A></span> (<span class="symbol"><A NAME="ref_768_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_769_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_770_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Fmt, "set_menu_format"); + +- <FONT COLOR=red><A NAME="ref_773_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_541_26">Men</A>, +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_542_26">Lines</A>), +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_543_26">Columns</A>)); ++ <span class="symbol"><A NAME="ref_773_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_539_26">Men</A>, ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_540_26">Lines</A>), ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_541_26">Columns</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_773_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_773_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_541_14">Set_Format</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_539_14">Set_Format</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-menus__ads.htm#ref_555_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_782_22" HREF="terminal_interface-curses-menus__ads.htm#ref_555_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_783_22" HREF="terminal_interface-curses-menus__ads.htm#ref_556_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_784_22" HREF="terminal_interface-curses-menus__ads.htm#ref_557_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) +- <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_786_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_787_16">Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_787_26" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_788_26" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_788_29" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_786_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_782_14" HREF="terminal_interface-curses-menus__ads.htm#ref_553_14">Format</A></span> (<span class="symbol"><A NAME="ref_782_22" HREF="terminal_interface-curses-menus__ads.htm#ref_553_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_783_22" HREF="terminal_interface-curses-menus__ads.htm#ref_554_22">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_784_22" HREF="terminal_interface-curses-menus__ads.htm#ref_555_22">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) ++ <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_786_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_787_16">Menu_Fmt</A></span> (<span class="symbol"><A NAME="ref_787_26" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_788_26" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Y</A></span>, <span class="symbol"><A NAME="ref_788_29" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">X</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_786_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Menu_Fmt, "menu_format"); + +- <FONT COLOR=red><A NAME="ref_791_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_791_10">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_792_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_555_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>'<b>Access</b>); ++ <span class="symbol"><A NAME="ref_791_7">L</A></span>, <span class="symbol"><A NAME="ref_791_10">C</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_792_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_553_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>'<b>Access</b>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_792_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_792_7">Res</A>); + <b>else</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_556_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>); +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_557_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_554_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>); ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_555_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_555_14">Format</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_802_34" HREF="terminal_interface-curses-menus__ads.htm#ref_569_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_803_34" HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_553_14">Format</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_802_14" HREF="terminal_interface-curses-menus__ads.htm#ref_567_14">Set_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_802_34" HREF="terminal_interface-curses-menus__ads.htm#ref_567_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_803_34" HREF="terminal_interface-curses-menus__ads.htm#ref_568_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_805_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_805_31" HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_806_31" HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_805_16">Set_Item_Init</A></span> (<span class="symbol"><A NAME="ref_805_31" HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_806_31" HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Item_Init, "set_item_init"); + +- <FONT COLOR=red><A NAME="ref_809_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_569_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Proc</A>); ++ <span class="symbol"><A NAME="ref_809_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_567_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_568_34">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_809_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_809_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Init_Hook</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_567_14">Set_Item_Init_Hook</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_816_14" HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_816_34" HREF="terminal_interface-curses-menus__ads.htm#ref_575_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_817_34" HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_816_14" HREF="terminal_interface-curses-menus__ads.htm#ref_573_14">Set_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_816_34" HREF="terminal_interface-curses-menus__ads.htm#ref_573_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_817_34" HREF="terminal_interface-curses-menus__ads.htm#ref_574_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_819_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_819_31" HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_820_31" HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_819_16">Set_Item_Term</A></span> (<span class="symbol"><A NAME="ref_819_31" HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_820_31" HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Item_Term, "set_item_term"); + +- <FONT COLOR=red><A NAME="ref_823_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_575_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Proc</A>); ++ <span class="symbol"><A NAME="ref_823_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_573_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_574_34">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_823_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_823_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Item_Term_Hook</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_573_14">Set_Item_Term_Hook</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_830_14" HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_830_34" HREF="terminal_interface-curses-menus__ads.htm#ref_581_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_831_34" HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_830_14" HREF="terminal_interface-curses-menus__ads.htm#ref_579_14">Set_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_830_34" HREF="terminal_interface-curses-menus__ads.htm#ref_579_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_831_34" HREF="terminal_interface-curses-menus__ads.htm#ref_580_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_833_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_833_31" HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_834_31" HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_833_16">Set_Menu_Init</A></span> (<span class="symbol"><A NAME="ref_833_31" HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_834_31" HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Init, "set_menu_init"); + +- <FONT COLOR=red><A NAME="ref_837_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_581_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Proc</A>); ++ <span class="symbol"><A NAME="ref_837_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_579_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_580_34">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_837_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_837_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Init_Hook</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_579_14">Set_Menu_Init_Hook</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_844_14" HREF="terminal_interface-curses-menus__ads.htm#ref_587_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_844_34" HREF="terminal_interface-curses-menus__ads.htm#ref_587_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_845_34" HREF="terminal_interface-curses-menus__ads.htm#ref_588_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_844_14" HREF="terminal_interface-curses-menus__ads.htm#ref_585_14">Set_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_844_34" HREF="terminal_interface-curses-menus__ads.htm#ref_585_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_845_34" HREF="terminal_interface-curses-menus__ads.htm#ref_586_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_847_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_847_31" HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_848_31" HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_847_16">Set_Menu_Term</A></span> (<span class="symbol"><A NAME="ref_847_31" HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_848_31" HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Term, "set_menu_term"); + +- <FONT COLOR=red><A NAME="ref_851_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_587_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_588_34">Proc</A>); ++ <span class="symbol"><A NAME="ref_851_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_585_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_586_34">Proc</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_851_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_851_7">Res</A>); + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_587_14">Set_Menu_Term_Hook</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_585_14">Set_Menu_Term_Hook</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_858_13" HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_858_33" HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_858_13" HREF="terminal_interface-curses-menus__ads.htm#ref_591_13">Get_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_858_33" HREF="terminal_interface-curses-menus__ads.htm#ref_591_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_860_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_860_27" HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_860_16">Item_Init</A></span> (<span class="symbol"><A NAME="ref_860_27" HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; + <b>pragma</b> Import (C, Item_Init, "item_init"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Init_Hook</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_591_33">Men</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_591_13">Get_Item_Init_Hook</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_866_13" HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_866_33" HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_866_13" HREF="terminal_interface-curses-menus__ads.htm#ref_596_13">Get_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_866_33" HREF="terminal_interface-curses-menus__ads.htm#ref_596_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_868_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_868_27" HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_868_16">Item_Term</A></span> (<span class="symbol"><A NAME="ref_868_27" HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; + <b>pragma</b> Import (C, Item_Term, "item_term"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Item_Term_Hook</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_596_33">Men</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_596_13">Get_Item_Term_Hook</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_874_13" HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_874_33" HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_874_13" HREF="terminal_interface-curses-menus__ads.htm#ref_601_13">Get_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_874_33" HREF="terminal_interface-curses-menus__ads.htm#ref_601_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_876_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_876_27" HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_876_16">Menu_Init</A></span> (<span class="symbol"><A NAME="ref_876_27" HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; + <b>pragma</b> Import (C, Menu_Init, "menu_init"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Init_Hook</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_601_33">Men</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_601_13">Get_Menu_Init_Hook</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_882_13" HREF="terminal_interface-curses-menus__ads.htm#ref_608_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_882_33" HREF="terminal_interface-curses-menus__ads.htm#ref_608_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_882_13" HREF="terminal_interface-curses-menus__ads.htm#ref_606_13">Get_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_882_33" HREF="terminal_interface-curses-menus__ads.htm#ref_606_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_884_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_884_27" HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_884_16">Menu_Term</A></span> (<span class="symbol"><A NAME="ref_884_27" HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; + <b>pragma</b> Import (C, Menu_Term, "menu_term"); + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_608_33">Men</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_608_13">Get_Menu_Term_Hook</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_890_24" HREF="terminal_interface-curses-menus__ads.htm#ref_617_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_891_24" HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) ++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_606_33">Men</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_606_13">Get_Menu_Term_Hook</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_890_14" HREF="terminal_interface-curses-menus__ads.htm#ref_615_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_890_24" HREF="terminal_interface-curses-menus__ads.htm#ref_615_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_891_24" HREF="terminal_interface-curses-menus__ads.htm#ref_616_24">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_893_27" HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_894_27" HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_893_16">Set_Items</A></span> (<span class="symbol"><A NAME="ref_893_27" HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_894_27" HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Items, "set_menu_items"); + +- <FONT COLOR=red><A NAME="ref_897_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; ++ <span class="symbol"><A NAME="ref_897_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>; + <b>begin</b> +- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> ++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_616_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_616_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_616_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_616_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_617_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>.<b>all</b>'Address); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_615_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_616_24">Items</A>.<b>all</b>'Address); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A>); + <b>end</b> <b>if</b>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_615_14">Redefine</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_910_13" HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_910_25" HREF="terminal_interface-curses-menus__ads.htm#ref_633_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural ++ <b>function</b> <span class="symbol"><A NAME="ref_910_13" HREF="terminal_interface-curses-menus__ads.htm#ref_631_13">Item_Count</A></span> (<span class="symbol"><A NAME="ref_910_25" HREF="terminal_interface-curses-menus__ads.htm#ref_631_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_912_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_912_23" HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_912_16">Count</A></span> (<span class="symbol"><A NAME="ref_912_23" HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Count, "item_count"); + <b>begin</b> +- <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_633_25">Men</A>)); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A>; ++ <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_631_25">Men</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_631_13">Item_Count</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_918_13" HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_918_20" HREF="terminal_interface-curses-menus__ads.htm#ref_627_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_919_20" HREF="terminal_interface-curses-menus__ads.htm#ref_628_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_918_13" HREF="terminal_interface-curses-menus__ads.htm#ref_625_13">Items</A></span> (<span class="symbol"><A NAME="ref_918_20" HREF="terminal_interface-curses-menus__ads.htm#ref_625_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_919_20" HREF="terminal_interface-curses-menus__ads.htm#ref_626_20">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> + <b>is</b> + <b>use</b> I_Array; + +- <b>function</b> C_Mitems (<FONT COLOR=red><A NAME="ref_923_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Pointer; ++ <b>function</b> C_Mitems (<span class="symbol"><A NAME="ref_923_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Pointer; + <b>pragma</b> Import (C, C_Mitems, "menu_items"); + +- P : Pointer := C_Mitems (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_20">Men</A>); ++ P : Pointer := C_Mitems (<A HREF="terminal_interface-curses-menus__ads.htm#ref_625_20">Men</A>); + <b>begin</b> +- <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_20">Index</A> &gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_20">Men</A>) <b>then</b> ++ <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_626_20">Index</A> &gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_631_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_625_20">Men</A>) <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>else</b> +- P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_628_20">Index</A>) - 1); ++ P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_626_20">Index</A>) - 1); + <b>return</b> P.<b>all</b>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Items</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_625_13">Items</A>; + +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_937_13" HREF="terminal_interface-curses-menus__ads.htm#ref_642_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_937_21" HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_937_13" HREF="terminal_interface-curses-menus__ads.htm#ref_640_13">Create</A></span> (<span class="symbol"><A NAME="ref_937_21" HREF="terminal_interface-curses-menus__ads.htm#ref_640_21">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_939_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="ref_939_25" HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_939_16">Newmenu</A></span> (<span class="symbol"><A NAME="ref_939_25" HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; + <b>pragma</b> Import (C, Newmenu, "new_menu"); + +- <FONT COLOR=red><A NAME="ref_942_7">M</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_942_7">M</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; + <b>begin</b> +- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> ++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_640_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_640_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_640_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_640_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>else</b> +- <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>.<b>all</b>'Address); ++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_640_21">Items</A>.<b>all</b>'Address); + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A>; + <b>end</b> <b>if</b>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_642_13">Create</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_640_13">Create</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_956_14" HREF="terminal_interface-curses-menus__ads.htm#ref_649_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_956_22" HREF="terminal_interface-curses-menus__ads.htm#ref_649_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_956_14" HREF="terminal_interface-curses-menus__ads.htm#ref_647_14">Delete</A></span> (<span class="symbol"><A NAME="ref_956_22" HREF="terminal_interface-curses-menus__ads.htm#ref_647_22">Men</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_958_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_958_22" HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_958_16">Free</A></span> (<span class="symbol"><A NAME="ref_958_22" HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Free, "free_menu"); + +- <FONT COLOR=red><A NAME="ref_961_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_649_22">Men</A>); ++ <span class="symbol"><A NAME="ref_961_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_647_22">Men</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_961_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_961_7">Res</A>); + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_649_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_649_14">Delete</A>; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_647_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_647_14">Delete</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_970_13" HREF="terminal_interface-curses-menus__ads.htm#ref_664_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_970_21" HREF="terminal_interface-curses-menus__ads.htm#ref_664_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_971_21" HREF="terminal_interface-curses-menus__ads.htm#ref_665_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_9">Driver_Result</A> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_970_13" HREF="terminal_interface-curses-menus__ads.htm#ref_662_13">Driver</A></span> (<span class="symbol"><A NAME="ref_970_21" HREF="terminal_interface-curses-menus__ads.htm#ref_662_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_971_21" HREF="terminal_interface-curses-menus__ads.htm#ref_663_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_656_9">Driver_Result</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_973_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_973_24" HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_974_24" HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_973_16">Driver</A></span> (<span class="symbol"><A NAME="ref_973_24" HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_974_24" HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Driver, "menu_driver"); + +- <FONT COLOR=red><A NAME="ref_977_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_664_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_665_21">Key</A>)); ++ <span class="symbol"><A NAME="ref_977_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_662_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_663_21">Key</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A> <b>is</b> +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_660_27">Unknown_Request</A>; +- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_661_27">No_Match</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_27">Unknown_Request</A>; ++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_659_27">No_Match</A>; + <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> | +- <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_659_27">Request_Denied</A>; ++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_657_27">Request_Denied</A>; + <b>when</b> <b>others</b> =&gt; + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A>); + <b>end</b> <b>case</b>; + <b>end</b> <b>if</b>; +- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_27">Menu_Ok</A>; +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_664_13">Driver</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_656_27">Menu_Ok</A>; ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_662_13">Driver</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_14" HREF="terminal_interface-curses-menus__ads.htm#ref_184_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_992_20" HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>; +- <FONT COLOR=red><A NAME="ref_993_20" HREF="terminal_interface-curses-menus__ads.htm#ref_185_20">Free_Items</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_992_14" HREF="terminal_interface-curses-menus__ads.htm#ref_182_14">Free</A></span> (<span class="symbol"><A NAME="ref_992_20" HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>; ++ <span class="symbol"><A NAME="ref_993_20" HREF="terminal_interface-curses-menus__ads.htm#ref_183_20">Free_Items</A></span> : Boolean := False) + <b>is</b> + <b>procedure</b> Release <b>is</b> <b>new</b> Ada.Unchecked_Deallocation +- (Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>); ++ (Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_185_20">Free_Items</A> <b>then</b> +- <b>for</b> <FONT COLOR=red><A NAME="ref_999_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>'Last - 1) <b>loop</b> +- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_207_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>)); ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_183_20">Free_Items</A> <b>then</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_999_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A>'Last - 1) <b>loop</b> ++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b> ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_205_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>)); + <b>end</b> <b>if</b>; + <b>end</b> <b>loop</b>; + <b>end</b> <b>if</b>; +- Release (<A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_14">Free</A>; ++ Release (<A HREF="terminal_interface-curses-menus__ads.htm#ref_182_20">IA</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_14">Free</A>; + +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_1009_13" HREF="terminal_interface-curses-menus__ads.htm#ref_148_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_1009_13" HREF="terminal_interface-curses-menus__ads.htm#ref_147_13">Default_Menu_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> + <b>is</b> + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_356_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_148_13">Default_Menu_Options</A>; ++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_354_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_147_13">Default_Menu_Options</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_1015_13" HREF="terminal_interface-curses-menus__ads.htm#ref_172_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_1015_13" HREF="terminal_interface-curses-menus__ads.htm#ref_170_13">Default_Item_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A> + <b>is</b> + <b>begin</b> +- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_260_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); +- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_172_13">Default_Item_Options</A>; +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> ++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_258_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_170_13">Default_Item_Options</A>; ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-menus__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus__ads.htm 2011-03-20 00:18:40.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus__ads.htm 2014-09-01 16:33:22.293792018 +0200 +@@ -1,95 +1,107 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-menus.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-menus.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menu --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.28 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 18:35:22 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- menu binding.</EM></FONT> +-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT> +-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Menu --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.28 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 18:35:22 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- menu binding.</EM></span> ++<span class="comment"><EM>-- This module is generated. Please don't change it manually!</EM></span> ++<span class="comment"><EM>-- Run the generator instead.</EM></span> ++<span class="comment"><EM>-- |</EM></span> + <b>with</b> System; + <b>with</b> Ada.Characters.Latin_1; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-menus__adb.htm#ref_51_40">Menus</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_49_35" HREF="terminal_interface-curses-menus__adb.htm#ref_51_40">Menus</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>); + <b>pragma</b> Linker_Options ("-lmenu"); + <b>pragma</b> Linker_Options ("-lncurses"); + + Space : Character <b>renames</b> Ada.Characters.Latin_1.Space; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Item</A></FONT> <b>is</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Menu</A></FONT> <b>is</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_56_9">Item</A></span> <b>is</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_57_9">Menu</A></span> <b>is</b> <b>private</b>; + +- <FONT COLOR=green><EM>---------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Interface constants --</EM></FONT> +- <FONT COLOR=green><EM>---------------------------</EM></FONT> +- <FONT COLOR=red><A NAME="ref_62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_63_4">Null_Menu</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="comment"><EM>---------------------------</EM></span> ++ <span class="comment"><EM>-- Interface constants --</EM></span> ++ <span class="comment"><EM>---------------------------</EM></span> ++ <span class="symbol"><A NAME="ref_62_4">Null_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_63_4">Null_Menu</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Menu_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> ++ <b>subtype</b> <span class="symbol"><A NAME="ref_65_12">Menu_Request_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> + <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17); + +- <FONT COLOR=green><EM>-- The prefix M_ stands for "Menu Request"</EM></FONT> +- <FONT COLOR=red><A NAME="ref_69_4">M_Left_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1; +- <FONT COLOR=red><A NAME="ref_70_4">M_Right_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2; +- <FONT COLOR=red><A NAME="ref_71_4">M_Up_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3; +- <FONT COLOR=red><A NAME="ref_72_4">M_Down_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4; +- <FONT COLOR=red><A NAME="ref_73_4">M_ScrollUp_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5; +- <FONT COLOR=red><A NAME="ref_74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6; +- <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7; +- <FONT COLOR=red><A NAME="ref_76_4">M_ScrollUp_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8; +- <FONT COLOR=red><A NAME="ref_77_4">M_First_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9; +- <FONT COLOR=red><A NAME="ref_78_4">M_Last_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10; +- <FONT COLOR=red><A NAME="ref_79_4">M_Next_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11; +- <FONT COLOR=red><A NAME="ref_80_4">M_Previous_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12; +- <FONT COLOR=red><A NAME="ref_81_4">M_Toggle_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13; +- <FONT COLOR=red><A NAME="ref_82_4">M_Clear_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14; +- <FONT COLOR=red><A NAME="ref_83_4">M_Back_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15; +- <FONT COLOR=red><A NAME="ref_84_4">M_Next_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16; +- <FONT COLOR=red><A NAME="ref_85_4">M_Previous_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17; ++ <span class="comment"><EM>-- The prefix M_ stands for "Menu Request"</EM></span> ++ <span class="symbol"><A NAME="ref_69_4">M_Left_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1; ++ <span class="symbol"><A NAME="ref_70_4">M_Right_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2; ++ <span class="symbol"><A NAME="ref_71_4">M_Up_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3; ++ <span class="symbol"><A NAME="ref_72_4">M_Down_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4; ++ <span class="symbol"><A NAME="ref_73_4">M_ScrollUp_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5; ++ <span class="symbol"><A NAME="ref_74_4">M_ScrollDown_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6; ++ <span class="symbol"><A NAME="ref_75_4">M_ScrollDown_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7; ++ <span class="symbol"><A NAME="ref_76_4">M_ScrollUp_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8; ++ <span class="symbol"><A NAME="ref_77_4">M_First_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9; ++ <span class="symbol"><A NAME="ref_78_4">M_Last_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10; ++ <span class="symbol"><A NAME="ref_79_4">M_Next_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11; ++ <span class="symbol"><A NAME="ref_80_4">M_Previous_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12; ++ <span class="symbol"><A NAME="ref_81_4">M_Toggle_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13; ++ <span class="symbol"><A NAME="ref_82_4">M_Clear_Pattern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14; ++ <span class="symbol"><A NAME="ref_83_4">M_Back_Pattern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15; ++ <span class="symbol"><A NAME="ref_84_4">M_Next_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16; ++ <span class="symbol"><A NAME="ref_85_4">M_Previous_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17; + +- <FONT COLOR=green><EM>-- For those who like the old 'C' names for the request codes</EM></FONT> ++ <span class="comment"><EM>-- For those who like the old 'C' names for the request codes</EM></span> + REQ_LEFT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_Left_Item</A>; + REQ_RIGHT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Right_Item</A>; + REQ_UP_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Up_Item</A>; +@@ -108,30 +120,29 @@ + REQ_NEXT_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Next_Match</A>; + REQ_PREV_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_85_4">M_Previous_Match</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__adb.htm#ref_77_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_77_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>; +- <FONT COLOR=red><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Name</A></FONT> : <b>out</b> String); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__adb.htm#ref_77_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_77_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>; ++ <span class="symbol"><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Name</A></span> : <b>out</b> String); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-menus__adb.htm#ref_86_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_109_28" HREF="terminal_interface-curses-menus__adb.htm#ref_86_27">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_109_14" HREF="terminal_interface-curses-menus__adb.htm#ref_86_13">Request_Name</A></span> (<span class="symbol"><A NAME="ref_109_28" HREF="terminal_interface-curses-menus__adb.htm#ref_86_27">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String; ++ <span class="comment"><EM>-- Same as function</EM></span> + +- <FONT COLOR=green><EM>------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT> +- <FONT COLOR=green><EM>------------------</EM></FONT> +- +- <FONT COLOR=red><A NAME="ref_116_4">Menu_Exception</A></FONT> : <b>exception</b>; +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Menu options</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> ++ <span class="comment"><EM>------------------</EM></span> ++ <span class="comment"><EM>-- Exceptions --</EM></span> ++ <span class="comment"><EM>------------------</EM></span> ++ ++ <span class="symbol"><A NAME="ref_116_4">Menu_Exception</A></span> : <b>exception</b>; ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Menu options</EM></span> ++ <span class="comment"><EM>--</EM></span> + <b>pragma</b> Warnings (Off); +- <b>type</b> <FONT COLOR=red><A NAME="ref_121_9">Menu_Option_Set</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_121_9">Menu_Option_Set</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_123_10">One_Valued</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_124_10">Show_Descriptions</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_125_10">Row_Major_Order</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_126_10">Ignore_Case</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_127_10">Show_Matches</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_128_10">Non_Cyclic</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_129_10">Unused</A></FONT> : Boolean; ++ <span class="symbol"><A NAME="ref_123_10">One_Valued</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_124_10">Show_Descriptions</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_125_10">Row_Major_Order</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_126_10">Ignore_Case</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_127_10">Show_Matches</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_128_10">Non_Cyclic</A></span> : Boolean; + <b>end</b> <b>record</b>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>); + +@@ -143,537 +154,536 @@ + <A HREF="terminal_interface-curses-menus__ads.htm#ref_126_10">Ignore_Case</A> <b>at</b> 0 <b>range</b> 3 .. 3; + <A HREF="terminal_interface-curses-menus__ads.htm#ref_127_10">Show_Matches</A> <b>at</b> 0 <b>range</b> 4 .. 4; + <A HREF="terminal_interface-curses-menus__ads.htm#ref_128_10">Non_Cyclic</A> <b>at</b> 0 <b>range</b> 5 .. 5; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_129_10">Unused</A> <b>at</b> 0 <b>range</b> 6 .. 31; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>'Size <b>use</b> 32; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.</EM></FONT> ++ <b>pragma</b> Warnings (Off); <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>'Size <b>use</b> 32; ++ <b>pragma</b> Warnings (On); ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.</EM></span> + <b>pragma</b> Warnings (On); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1009_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; +- <FONT COLOR=green><EM>-- Initial default options for a menu.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_148_13">Default_Menu_Options</A>); +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Item options</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_147_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1009_13">Default_Menu_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; ++ <span class="comment"><EM>-- Initial default options for a menu.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_147_13">Default_Menu_Options</A>); ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Item options</EM></span> ++ <span class="comment"><EM>--</EM></span> + <b>pragma</b> Warnings (Off); +- <b>type</b> <FONT COLOR=red><A NAME="ref_155_9">Item_Option_Set</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_154_9">Item_Option_Set</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_157_10">Selectable</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_158_10">Unused</A></FONT> : Boolean; ++ <span class="symbol"><A NAME="ref_156_10">Selectable</A></span> : Boolean; + <b>end</b> <b>record</b>; +- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>); ++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>); + +- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A> <b>use</b> ++ <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A> <b>use</b> + <b>record</b> +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_157_10">Selectable</A> <b>at</b> 0 <b>range</b> 0 .. 0; +- <A HREF="terminal_interface-curses-menus__ads.htm#ref_158_10">Unused</A> <b>at</b> 0 <b>range</b> 1 .. 31; ++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_156_10">Selectable</A> <b>at</b> 0 <b>range</b> 0 .. 0; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>'Size <b>use</b> 32; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.</EM></FONT> ++ <b>pragma</b> Warnings (Off); <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>'Size <b>use</b> 32; ++ <b>pragma</b> Warnings (On); ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.</EM></span> + <b>pragma</b> Warnings (On); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_172_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1015_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>; +- <FONT COLOR=green><EM>-- Initial default options for an item.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_172_13">Default_Item_Options</A>); +- +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Item Array</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_170_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1015_13">Default_Item_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>; ++ <span class="comment"><EM>-- Initial default options for an item.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_170_13">Default_Item_Options</A>); ++ ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Item Array</EM></span> ++ <span class="comment"><EM>--</EM></span> + <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; + <b>pragma</b> Convention (C, Item_Array); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_182_9">Item_Array_Access</A></FONT> <b>is</b> <b>access</b> Item_Array; ++ <b>type</b> <span class="symbol"><A NAME="ref_180_9">Item_Array_Access</A></span> <b>is</b> <b>access</b> Item_Array; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_184_14" HREF="terminal_interface-curses-menus__adb.htm#ref_992_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_184_20" HREF="terminal_interface-curses-menus__adb.htm#ref_992_20">IA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>; +- <FONT COLOR=red><A NAME="ref_185_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">Free_Items</A></FONT> : Boolean := False); +- <FONT COLOR=green><EM>-- Release the memory for an allocated item array</EM></FONT> +- <FONT COLOR=green><EM>-- If Free_Items is True, call Delete() for all the items in</EM></FONT> +- <FONT COLOR=green><EM>-- the array.</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_195_13" HREF="terminal_interface-curses-menus__adb.htm#ref_94_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_195_21" HREF="terminal_interface-curses-menus__adb.htm#ref_94_21">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_196_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Not inlined.</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_201_23">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_202_23">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> +- <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_195_13">Create</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__adb.htm#ref_124_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_207_22" HREF="terminal_interface-curses-menus__adb.htm#ref_124_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Resets Itm to Null_Item</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_216_14" HREF="terminal_interface-curses-menus__adb.htm#ref_152_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_216_25" HREF="terminal_interface-curses-menus__adb.htm#ref_152_25">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_217_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Value</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_216_14">Set_Value</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_222_13" HREF="terminal_interface-curses-menus__adb.htm#ref_166_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_222_20" HREF="terminal_interface-curses-menus__adb.htm#ref_166_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_222_13">Value</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_231_13" HREF="terminal_interface-curses-menus__adb.htm#ref_179_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_231_22" HREF="terminal_interface-curses-menus__adb.htm#ref_179_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_231_13">Visible</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_240_14" HREF="terminal_interface-curses-menus__adb.htm#ref_191_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_240_27" HREF="terminal_interface-curses-menus__adb.htm#ref_191_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_241_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded Set_Options is defined later. Pragma Inline appears there</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_246_14" HREF="terminal_interface-curses-menus__adb.htm#ref_207_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_246_30" HREF="terminal_interface-curses-menus__adb.htm#ref_207_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_247_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_248_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">On</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: item_opts_off()</EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded Switch_Options is defined later.</EM></FONT> +- <FONT COLOR=green><EM>-- Pragma Inline appears there</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_255_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_255_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_256_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_260_13" HREF="terminal_interface-curses-menus__adb.htm#ref_242_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_260_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT> +- <FONT COLOR=green><EM>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_269_14" HREF="terminal_interface-curses-menus__adb.htm#ref_250_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_269_20" HREF="terminal_interface-curses-menus__adb.htm#ref_250_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_270_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Name</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_272_14" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_272_20" HREF="terminal_interface-curses-menus__adb.htm#ref_259_19">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_182_14" HREF="terminal_interface-curses-menus__adb.htm#ref_992_14">Free</A></span> (<span class="symbol"><A NAME="ref_182_20" HREF="terminal_interface-curses-menus__adb.htm#ref_992_20">IA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>; ++ <span class="symbol"><A NAME="ref_183_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">Free_Items</A></span> : Boolean := False); ++ <span class="comment"><EM>-- Release the memory for an allocated item array</EM></span> ++ <span class="comment"><EM>-- If Free_Items is True, call Delete() for all the items in</EM></span> ++ <span class="comment"><EM>-- the array.</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_193_13" HREF="terminal_interface-curses-menus__adb.htm#ref_94_13">Create</A></span> (<span class="symbol"><A NAME="ref_193_21" HREF="terminal_interface-curses-menus__adb.htm#ref_94_21">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_194_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></span> ++ <span class="comment"><EM>-- Not inlined.</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>function</b> New_Item (<span class="symbol"><A NAME="ref_199_23">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_200_23">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> ++ <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_193_13">Create</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_205_14" HREF="terminal_interface-curses-menus__adb.htm#ref_124_14">Delete</A></span> (<span class="symbol"><A NAME="ref_205_22" HREF="terminal_interface-curses-menus__adb.htm#ref_124_22">Itm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></span> ++ <span class="comment"><EM>-- Resets Itm to Null_Item</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_214_14" HREF="terminal_interface-curses-menus__adb.htm#ref_152_14">Set_Value</A></span> (<span class="symbol"><A NAME="ref_214_25" HREF="terminal_interface-curses-menus__adb.htm#ref_152_25">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_215_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Value</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_214_14">Set_Value</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_220_13" HREF="terminal_interface-curses-menus__adb.htm#ref_166_13">Value</A></span> (<span class="symbol"><A NAME="ref_220_20" HREF="terminal_interface-curses-menus__adb.htm#ref_166_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_220_13">Value</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_229_13" HREF="terminal_interface-curses-menus__adb.htm#ref_179_13">Visible</A></span> (<span class="symbol"><A NAME="ref_229_22" HREF="terminal_interface-curses-menus__adb.htm#ref_179_22">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_229_13">Visible</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_238_14" HREF="terminal_interface-curses-menus__adb.htm#ref_191_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_238_27" HREF="terminal_interface-curses-menus__adb.htm#ref_191_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_239_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></span> ++ <span class="comment"><EM>-- An overloaded Set_Options is defined later. Pragma Inline appears there</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_244_14" HREF="terminal_interface-curses-menus__adb.htm#ref_207_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_244_30" HREF="terminal_interface-curses-menus__adb.htm#ref_207_30">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_245_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_246_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">On</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></span> ++ <span class="comment"><EM>-- AKA: item_opts_off()</EM></span> ++ <span class="comment"><EM>-- An overloaded Switch_Options is defined later.</EM></span> ++ <span class="comment"><EM>-- Pragma Inline appears there</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_253_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_253_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_254_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_258_13" HREF="terminal_interface-curses-menus__adb.htm#ref_242_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_258_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_9">Item_Option_Set</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></span> ++ <span class="comment"><EM>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__adb.htm#ref_250_14">Name</A></span> (<span class="symbol"><A NAME="ref_267_20" HREF="terminal_interface-curses-menus__adb.htm#ref_250_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_268_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Name</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_270_14" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Name</A></span> (<span class="symbol"><A NAME="ref_270_20" HREF="terminal_interface-curses-menus__adb.htm#ref_259_19">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></span> ++ <span class="comment"><EM>-- Implemented as function</EM></span> + <b>pragma</b> Inline (Name); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_278_14" HREF="terminal_interface-curses-menus__adb.htm#ref_267_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_278_27" HREF="terminal_interface-curses-menus__adb.htm#ref_267_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_279_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Description</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_282_14" HREF="terminal_interface-curses-menus__adb.htm#ref_276_13">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_282_27" HREF="terminal_interface-curses-menus__adb.htm#ref_276_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT> +- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_276_14" HREF="terminal_interface-curses-menus__adb.htm#ref_267_14">Description</A></span> (<span class="symbol"><A NAME="ref_276_27" HREF="terminal_interface-curses-menus__adb.htm#ref_267_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_277_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Description</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_280_14" HREF="terminal_interface-curses-menus__adb.htm#ref_276_13">Description</A></span> (<span class="symbol"><A NAME="ref_280_27" HREF="terminal_interface-curses-menus__adb.htm#ref_276_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></span> ++ <span class="comment"><EM>-- Implemented as function</EM></span> + <b>pragma</b> Inline (Description); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_292_14" HREF="terminal_interface-curses-menus__adb.htm#ref_284_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_292_27" HREF="terminal_interface-curses-menus__adb.htm#ref_284_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_293_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_292_14">Set_Current</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__adb.htm#ref_298_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__adb.htm#ref_298_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_13">Current</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_303_14" HREF="terminal_interface-curses-menus__adb.htm#ref_311_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_303_27" HREF="terminal_interface-curses-menus__adb.htm#ref_311_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_304_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_303_14">Set_Top_Row</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_309_13" HREF="terminal_interface-curses-menus__adb.htm#ref_325_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_309_22" HREF="terminal_interface-curses-menus__adb.htm#ref_325_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Top_Row</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_314_13" HREF="terminal_interface-curses-menus__adb.htm#ref_338_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_314_24" HREF="terminal_interface-curses-menus__adb.htm#ref_338_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of items</EM></FONT> +- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT> +- <FONT COLOR=green><EM>-- level call.</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_314_13">Get_Index</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_326_14" HREF="terminal_interface-curses-menus__adb.htm#ref_351_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_326_20" HREF="terminal_interface-curses-menus__adb.htm#ref_351_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_327_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Post</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: unpost_menu()</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_326_14">Post</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_337_14" HREF="terminal_interface-curses-menus__adb.htm#ref_371_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_337_27" HREF="terminal_interface-curses-menus__adb.htm#ref_371_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_338_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_290_14" HREF="terminal_interface-curses-menus__adb.htm#ref_284_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_290_27" HREF="terminal_interface-curses-menus__adb.htm#ref_284_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_291_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_290_14">Set_Current</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_296_13" HREF="terminal_interface-curses-menus__adb.htm#ref_298_13">Current</A></span> (<span class="symbol"><A NAME="ref_296_22" HREF="terminal_interface-curses-menus__adb.htm#ref_298_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_296_13">Current</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_301_14" HREF="terminal_interface-curses-menus__adb.htm#ref_311_14">Set_Top_Row</A></span> (<span class="symbol"><A NAME="ref_301_27" HREF="terminal_interface-curses-menus__adb.htm#ref_311_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_302_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_301_14">Set_Top_Row</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_16"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_307_13" HREF="terminal_interface-curses-menus__adb.htm#ref_325_13">Top_Row</A></span> (<span class="symbol"><A NAME="ref_307_22" HREF="terminal_interface-curses-menus__adb.htm#ref_325_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_307_13">Top_Row</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_17"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_312_13" HREF="terminal_interface-curses-menus__adb.htm#ref_338_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_312_24" HREF="terminal_interface-curses-menus__adb.htm#ref_338_24">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></span> ++ <span class="comment"><EM>-- Please note that in this binding we start the numbering of items</EM></span> ++ <span class="comment"><EM>-- with 1. So this is number is one more than you get from the low</EM></span> ++ <span class="comment"><EM>-- level call.</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_312_13">Get_Index</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_18"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_324_14" HREF="terminal_interface-curses-menus__adb.htm#ref_351_14">Post</A></span> (<span class="symbol"><A NAME="ref_324_20" HREF="terminal_interface-curses-menus__adb.htm#ref_351_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_325_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Post</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></span> ++ <span class="comment"><EM>-- AKA: unpost_menu()</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_324_14">Post</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_19"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_335_14" HREF="terminal_interface-curses-menus__adb.htm#ref_371_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_335_27" HREF="terminal_interface-curses-menus__adb.htm#ref_371_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_336_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></span> + <b>pragma</b> Inline (Set_Options); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_343_14" HREF="terminal_interface-curses-menus__adb.htm#ref_387_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_343_30" HREF="terminal_interface-curses-menus__adb.htm#ref_387_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_344_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; +- <FONT COLOR=red><A NAME="ref_345_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">On</A></FONT> : Boolean := True); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></FONT> +- <FONT COLOR=green><EM>-- AKA: menu_opts_off()</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_20"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_341_14" HREF="terminal_interface-curses-menus__adb.htm#ref_387_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_387_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_342_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; ++ <span class="symbol"><A NAME="ref_343_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">On</A></span> : Boolean := True); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></span> ++ <span class="comment"><EM>-- AKA: menu_opts_off()</EM></span> + <b>pragma</b> Inline (Switch_Options); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__adb.htm#ref_411_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_351_27" HREF="terminal_interface-curses-menus__adb.htm#ref_411_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_352_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_356_13" HREF="terminal_interface-curses-menus__adb.htm#ref_422_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_356_26" HREF="terminal_interface-curses-menus__adb.htm#ref_422_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_21"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_349_14" HREF="terminal_interface-curses-menus__adb.htm#ref_411_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_349_27" HREF="terminal_interface-curses-menus__adb.htm#ref_411_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_350_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_22"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_354_13" HREF="terminal_interface-curses-menus__adb.htm#ref_422_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_354_26" HREF="terminal_interface-curses-menus__adb.htm#ref_422_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></span> + <b>pragma</b> Inline (Get_Options); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_365_14" HREF="terminal_interface-curses-menus__adb.htm#ref_430_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_365_26" HREF="terminal_interface-curses-menus__adb.htm#ref_430_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_366_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_365_14">Set_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_371_13" HREF="terminal_interface-curses-menus__adb.htm#ref_444_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_371_25" HREF="terminal_interface-curses-menus__adb.htm#ref_444_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_13">Get_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_376_14" HREF="terminal_interface-curses-menus__adb.htm#ref_454_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_376_30" HREF="terminal_interface-curses-menus__adb.htm#ref_454_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_377_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_376_14">Set_Sub_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_382_13" HREF="terminal_interface-curses-menus__adb.htm#ref_468_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_382_29" HREF="terminal_interface-curses-menus__adb.htm#ref_468_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_13">Get_Sub_Window</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__adb.htm#ref_478_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_387_21" HREF="terminal_interface-curses-menus__adb.htm#ref_478_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_388_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_389_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_387_14">Scale</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_398_14" HREF="terminal_interface-curses-menus__adb.htm#ref_497_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_398_31" HREF="terminal_interface-curses-menus__adb.htm#ref_497_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_398_14">Position_Cursor</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_407_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_407_24" HREF="terminal_interface-curses-menus__adb.htm#ref_510_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_408_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Mark</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Set_Mark</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses-menus__adb.htm#ref_529_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_413_20" HREF="terminal_interface-curses-menus__adb.htm#ref_529_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_414_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Mark</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_417_14" HREF="terminal_interface-curses-menus__adb.htm#ref_538_13">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_417_20" HREF="terminal_interface-curses-menus__adb.htm#ref_538_19">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_23"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_363_14" HREF="terminal_interface-curses-menus__adb.htm#ref_430_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_363_26" HREF="terminal_interface-curses-menus__adb.htm#ref_430_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_364_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_363_14">Set_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_24"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_369_13" HREF="terminal_interface-curses-menus__adb.htm#ref_444_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_369_25" HREF="terminal_interface-curses-menus__adb.htm#ref_444_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_369_13">Get_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_25"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_374_14" HREF="terminal_interface-curses-menus__adb.htm#ref_454_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_374_30" HREF="terminal_interface-curses-menus__adb.htm#ref_454_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_375_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_374_14">Set_Sub_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_26"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_380_13" HREF="terminal_interface-curses-menus__adb.htm#ref_468_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_380_29" HREF="terminal_interface-curses-menus__adb.htm#ref_468_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_380_13">Get_Sub_Window</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_27"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_385_14" HREF="terminal_interface-curses-menus__adb.htm#ref_478_14">Scale</A></span> (<span class="symbol"><A NAME="ref_385_21" HREF="terminal_interface-curses-menus__adb.htm#ref_478_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_386_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_387_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_385_14">Scale</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_28"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_396_14" HREF="terminal_interface-curses-menus__adb.htm#ref_497_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_396_31" HREF="terminal_interface-curses-menus__adb.htm#ref_497_31">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_396_14">Position_Cursor</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_29"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_405_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_405_24" HREF="terminal_interface-curses-menus__adb.htm#ref_510_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_406_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Mark</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_405_14">Set_Mark</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_30"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__adb.htm#ref_529_14">Mark</A></span> (<span class="symbol"><A NAME="ref_411_20" HREF="terminal_interface-curses-menus__adb.htm#ref_529_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_412_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Mark</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_415_14" HREF="terminal_interface-curses-menus__adb.htm#ref_538_13">Mark</A></span> (<span class="symbol"><A NAME="ref_415_20" HREF="terminal_interface-curses-menus__adb.htm#ref_538_19">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></span> ++ <span class="comment"><EM>-- Implemented as function</EM></span> + <b>pragma</b> Inline (Mark); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_427_14" HREF="terminal_interface-curses-menus__adb.htm#ref_547_14">Set_Foreground</A></FONT> +- (<FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_430_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_427_14">Set_Foreground</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_435_14" HREF="terminal_interface-curses-menus__adb.htm#ref_566_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-menus__adb.htm#ref_566_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_440_14" HREF="terminal_interface-curses-menus__adb.htm#ref_575_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-menus__adb.htm#ref_575_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_442_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_31"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_425_14" HREF="terminal_interface-curses-menus__adb.htm#ref_547_14">Set_Foreground</A></span> ++ (<span class="symbol"><A NAME="ref_426_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_427_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_428_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_425_14">Set_Foreground</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_32"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_433_14" HREF="terminal_interface-curses-menus__adb.htm#ref_566_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_433_26" HREF="terminal_interface-curses-menus__adb.htm#ref_566_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_434_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_33"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_438_14" HREF="terminal_interface-curses-menus__adb.htm#ref_575_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_438_26" HREF="terminal_interface-curses-menus__adb.htm#ref_575_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_439_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_440_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></span> + <b>pragma</b> Inline (Foreground); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_447_14" HREF="terminal_interface-curses-menus__adb.htm#ref_586_14">Set_Background</A></FONT> +- (<FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-menus__adb.htm#ref_587_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_450_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_34"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_445_14" HREF="terminal_interface-curses-menus__adb.htm#ref_586_14">Set_Background</A></span> ++ (<span class="symbol"><A NAME="ref_446_7" HREF="terminal_interface-curses-menus__adb.htm#ref_587_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_447_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_448_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></span> + <b>pragma</b> Inline (Set_Background); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_455_14" HREF="terminal_interface-curses-menus__adb.htm#ref_605_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-menus__adb.htm#ref_605_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT> +- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_460_14" HREF="terminal_interface-curses-menus__adb.htm#ref_614_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-menus__adb.htm#ref_614_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_462_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_35"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_453_14" HREF="terminal_interface-curses-menus__adb.htm#ref_605_14">Background</A></span> (<span class="symbol"><A NAME="ref_453_26" HREF="terminal_interface-curses-menus__adb.htm#ref_605_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_454_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></span> ++ <span class="comment"><EM>-- #1A NAME="AFU_36"#2|</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_458_14" HREF="terminal_interface-curses-menus__adb.htm#ref_614_14">Background</A></span> (<span class="symbol"><A NAME="ref_458_26" HREF="terminal_interface-curses-menus__adb.htm#ref_614_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_459_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_460_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></span> + <b>pragma</b> Inline (Background); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_467_14" HREF="terminal_interface-curses-menus__adb.htm#ref_625_14">Set_Grey</A></FONT> +- (<FONT COLOR=red><A NAME="ref_468_7" HREF="terminal_interface-curses-menus__adb.htm#ref_625_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_469_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Grey</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>; +- <FONT COLOR=red><A NAME="ref_470_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_467_14">Set_Grey</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_475_14" HREF="terminal_interface-curses-menus__adb.htm#ref_644_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_475_20" HREF="terminal_interface-curses-menus__adb.htm#ref_644_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_476_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_480_14" HREF="terminal_interface-curses-menus__adb.htm#ref_653_14">Grey</A></FONT> +- (<FONT COLOR=red><A NAME="ref_481_7" HREF="terminal_interface-curses-menus__adb.htm#ref_653_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_482_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; +- <FONT COLOR=red><A NAME="ref_483_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_37"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_465_14" HREF="terminal_interface-curses-menus__adb.htm#ref_625_14">Set_Grey</A></span> ++ (<span class="symbol"><A NAME="ref_466_7" HREF="terminal_interface-curses-menus__adb.htm#ref_625_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_467_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Grey</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_351_4">Normal_Video</A>; ++ <span class="symbol"><A NAME="ref_468_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_465_14">Set_Grey</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_38"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_473_14" HREF="terminal_interface-curses-menus__adb.htm#ref_644_14">Grey</A></span> (<span class="symbol"><A NAME="ref_473_20" HREF="terminal_interface-curses-menus__adb.htm#ref_644_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_474_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_39"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_478_14" HREF="terminal_interface-curses-menus__adb.htm#ref_653_14">Grey</A></span> ++ (<span class="symbol"><A NAME="ref_479_7" HREF="terminal_interface-curses-menus__adb.htm#ref_653_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_480_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>; ++ <span class="symbol"><A NAME="ref_481_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></span> + <b>pragma</b> Inline (Grey); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_488_14" HREF="terminal_interface-curses-menus__adb.htm#ref_664_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_488_33" HREF="terminal_interface-curses-menus__adb.htm#ref_664_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_489_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Pad</A></FONT> : Character := Space); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Set_Pad_Character</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_494_14" HREF="terminal_interface-curses-menus__adb.htm#ref_679_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_494_29" HREF="terminal_interface-curses-menus__adb.htm#ref_679_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_495_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Pad</A></FONT> : <b>out</b> Character); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_494_14">Pad_Character</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_504_14" HREF="terminal_interface-curses-menus__adb.htm#ref_688_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_504_27" HREF="terminal_interface-curses-menus__adb.htm#ref_688_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_505_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Descr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0; +- <FONT COLOR=red><A NAME="ref_506_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0; +- <FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_504_14">Set_Spacing</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_512_14" HREF="terminal_interface-curses-menus__adb.htm#ref_707_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_512_23" HREF="terminal_interface-curses-menus__adb.htm#ref_707_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_513_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_514_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_515_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Col</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_512_14">Spacing</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_524_13" HREF="terminal_interface-curses-menus__adb.htm#ref_732_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_524_26" HREF="terminal_interface-curses-menus__adb.htm#ref_732_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_525_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Text</A></FONT> : String) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_524_13">Set_Pattern</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_531_14" HREF="terminal_interface-curses-menus__adb.htm#ref_755_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_531_23" HREF="terminal_interface-curses-menus__adb.htm#ref_755_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_532_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Text</A></FONT> : <b>out</b> String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_531_14">Pattern</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_541_14" HREF="terminal_interface-curses-menus__adb.htm#ref_764_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_541_26" HREF="terminal_interface-curses-menus__adb.htm#ref_764_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_542_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_543_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); +- <FONT COLOR=green><EM>-- Not implemented: 0 argument for Lines or Columns;</EM></FONT> +- <FONT COLOR=green><EM>-- instead use Format to get the current sizes</EM></FONT> +- <FONT COLOR=green><EM>-- The default format is 16 rows, 1 column. Calling</EM></FONT> +- <FONT COLOR=green><EM>-- set_menu_format with a null menu pointer will change this</EM></FONT> +- <FONT COLOR=green><EM>-- default. A zero row or column argument to set_menu_format</EM></FONT> +- <FONT COLOR=green><EM>-- is interpreted as a request not to change the current</EM></FONT> +- <FONT COLOR=green><EM>-- value.</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_541_14">Set_Format</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_555_14" HREF="terminal_interface-curses-menus__adb.htm#ref_782_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_555_22" HREF="terminal_interface-curses-menus__adb.htm#ref_782_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_556_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_557_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_555_14">Format</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_565_9">Menu_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_565_49">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>); +- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_569_14" HREF="terminal_interface-curses-menus__adb.htm#ref_802_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_569_34" HREF="terminal_interface-curses-menus__adb.htm#ref_802_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_570_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Init_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__adb.htm#ref_816_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_575_34" HREF="terminal_interface-curses-menus__adb.htm#ref_816_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_576_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Item_Term_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_581_14" HREF="terminal_interface-curses-menus__adb.htm#ref_830_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_581_34" HREF="terminal_interface-curses-menus__adb.htm#ref_830_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_582_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Init_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_587_14" HREF="terminal_interface-curses-menus__adb.htm#ref_844_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_587_34" HREF="terminal_interface-curses-menus__adb.htm#ref_844_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_588_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_587_14">Set_Menu_Term_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_593_13" HREF="terminal_interface-curses-menus__adb.htm#ref_858_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_593_33" HREF="terminal_interface-curses-menus__adb.htm#ref_858_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Init_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses-menus__adb.htm#ref_866_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_598_33" HREF="terminal_interface-curses-menus__adb.htm#ref_866_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Item_Term_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_603_13" HREF="terminal_interface-curses-menus__adb.htm#ref_874_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_603_33" HREF="terminal_interface-curses-menus__adb.htm#ref_874_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Init_Hook</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_608_13" HREF="terminal_interface-curses-menus__adb.htm#ref_882_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_608_33" HREF="terminal_interface-curses-menus__adb.htm#ref_882_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_608_13">Get_Menu_Term_Hook</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_617_14" HREF="terminal_interface-curses-menus__adb.htm#ref_890_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_617_24" HREF="terminal_interface-curses-menus__adb.htm#ref_890_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_618_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A>); +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_622_14">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_622_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_623_25">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A>; +- <FONT COLOR=green><EM>-- pragma Inline (Set_Items);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_627_13" HREF="terminal_interface-curses-menus__adb.htm#ref_918_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_627_20" HREF="terminal_interface-curses-menus__adb.htm#ref_918_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_628_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Items</A>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_633_13" HREF="terminal_interface-curses-menus__adb.htm#ref_910_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_633_25" HREF="terminal_interface-curses-menus__adb.htm#ref_910_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></FONT> +- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A>); +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_642_13" HREF="terminal_interface-curses-menus__adb.htm#ref_937_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_642_21" HREF="terminal_interface-curses-menus__adb.htm#ref_937_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Not inlined</EM></FONT> +- +- <b>function</b> New_Menu (<FONT COLOR=red><A NAME="ref_646_23">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_642_13">Create</A>; +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_649_14" HREF="terminal_interface-curses-menus__adb.htm#ref_956_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_649_22" HREF="terminal_interface-curses-menus__adb.htm#ref_956_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Reset Men to Null_Menu</EM></FONT> +- <FONT COLOR=green><EM>-- Not inlined</EM></FONT> +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_658_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_658_27">Menu_Ok</A></FONT>, +- <FONT COLOR=red><A NAME="ref_659_27">Request_Denied</A></FONT>, +- <FONT COLOR=red><A NAME="ref_660_27">Unknown_Request</A></FONT>, +- <FONT COLOR=red><A NAME="ref_661_27">No_Match</A></FONT>); +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_664_13" HREF="terminal_interface-curses-menus__adb.htm#ref_970_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_664_21" HREF="terminal_interface-curses-menus__adb.htm#ref_970_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_665_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_9">Driver_Result</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></FONT> +- <FONT COLOR=green><EM>-- Driver is not inlined</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></FONT> +-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_40"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_486_14" HREF="terminal_interface-curses-menus__adb.htm#ref_664_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_486_33" HREF="terminal_interface-curses-menus__adb.htm#ref_664_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_487_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Pad</A></span> : Character := Space); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_486_14">Set_Pad_Character</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_41"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_492_14" HREF="terminal_interface-curses-menus__adb.htm#ref_679_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_492_29" HREF="terminal_interface-curses-menus__adb.htm#ref_679_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_493_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Pad</A></span> : <b>out</b> Character); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_492_14">Pad_Character</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_42"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_502_14" HREF="terminal_interface-curses-menus__adb.htm#ref_688_14">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_688_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Descr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0; ++ <span class="symbol"><A NAME="ref_504_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0; ++ <span class="symbol"><A NAME="ref_505_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_502_14">Set_Spacing</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_43"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__adb.htm#ref_707_14">Spacing</A></span> (<span class="symbol"><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_707_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_511_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Descr</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_512_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_513_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Col</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_510_14">Spacing</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_44"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_522_13" HREF="terminal_interface-curses-menus__adb.htm#ref_732_13">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_522_26" HREF="terminal_interface-curses-menus__adb.htm#ref_732_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_523_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Text</A></span> : String) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></span> ++ <span class="comment"><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_522_13">Set_Pattern</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_45"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_529_14" HREF="terminal_interface-curses-menus__adb.htm#ref_755_14">Pattern</A></span> (<span class="symbol"><A NAME="ref_529_23" HREF="terminal_interface-curses-menus__adb.htm#ref_755_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_530_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Text</A></span> : <b>out</b> String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_529_14">Pattern</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_46"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_539_14" HREF="terminal_interface-curses-menus__adb.htm#ref_764_14">Set_Format</A></span> (<span class="symbol"><A NAME="ref_539_26" HREF="terminal_interface-curses-menus__adb.htm#ref_764_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_540_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_541_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); ++ <span class="comment"><EM>-- Not implemented: 0 argument for Lines or Columns;</EM></span> ++ <span class="comment"><EM>-- instead use Format to get the current sizes</EM></span> ++ <span class="comment"><EM>-- The default format is 16 rows, 1 column. Calling</EM></span> ++ <span class="comment"><EM>-- set_menu_format with a null menu pointer will change this</EM></span> ++ <span class="comment"><EM>-- default. A zero row or column argument to set_menu_format</EM></span> ++ <span class="comment"><EM>-- is interpreted as a request not to change the current</EM></span> ++ <span class="comment"><EM>-- value.</EM></span> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_539_14">Set_Format</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_47"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_553_14" HREF="terminal_interface-curses-menus__adb.htm#ref_782_14">Format</A></span> (<span class="symbol"><A NAME="ref_553_22" HREF="terminal_interface-curses-menus__adb.htm#ref_782_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_554_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_555_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_553_14">Format</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_563_9">Menu_Hook_Function</A></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><A NAME="ref_563_49">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>); ++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_48"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_567_14" HREF="terminal_interface-curses-menus__adb.htm#ref_802_14">Set_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_567_34" HREF="terminal_interface-curses-menus__adb.htm#ref_802_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_568_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_567_14">Set_Item_Init_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_49"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_573_14" HREF="terminal_interface-curses-menus__adb.htm#ref_816_14">Set_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_573_34" HREF="terminal_interface-curses-menus__adb.htm#ref_816_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_574_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_573_14">Set_Item_Term_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_50"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_579_14" HREF="terminal_interface-curses-menus__adb.htm#ref_830_14">Set_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_579_34" HREF="terminal_interface-curses-menus__adb.htm#ref_830_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_580_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_579_14">Set_Menu_Init_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_51"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_585_14" HREF="terminal_interface-curses-menus__adb.htm#ref_844_14">Set_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_585_34" HREF="terminal_interface-curses-menus__adb.htm#ref_844_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_586_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_585_14">Set_Menu_Term_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_52"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_591_13" HREF="terminal_interface-curses-menus__adb.htm#ref_858_13">Get_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_591_33" HREF="terminal_interface-curses-menus__adb.htm#ref_858_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_591_13">Get_Item_Init_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_53"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_596_13" HREF="terminal_interface-curses-menus__adb.htm#ref_866_13">Get_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_596_33" HREF="terminal_interface-curses-menus__adb.htm#ref_866_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_596_13">Get_Item_Term_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_54"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_601_13" HREF="terminal_interface-curses-menus__adb.htm#ref_874_13">Get_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_601_33" HREF="terminal_interface-curses-menus__adb.htm#ref_874_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_601_13">Get_Menu_Init_Hook</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_55"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_606_13" HREF="terminal_interface-curses-menus__adb.htm#ref_882_13">Get_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_606_33" HREF="terminal_interface-curses-menus__adb.htm#ref_882_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_9">Menu_Hook_Function</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_606_13">Get_Menu_Term_Hook</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_56"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_615_14" HREF="terminal_interface-curses-menus__adb.htm#ref_890_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_615_24" HREF="terminal_interface-curses-menus__adb.htm#ref_890_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_616_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_615_14">Redefine</A>); ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_620_14">Set_Items</A></span> (<span class="symbol"><A NAME="ref_620_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_621_25">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_615_14">Redefine</A>; ++ <span class="comment"><EM>-- pragma Inline (Set_Items);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_57"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_625_13" HREF="terminal_interface-curses-menus__adb.htm#ref_918_13">Items</A></span> (<span class="symbol"><A NAME="ref_625_20" HREF="terminal_interface-curses-menus__adb.htm#ref_918_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_626_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_625_13">Items</A>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_58"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_631_13" HREF="terminal_interface-curses-menus__adb.htm#ref_910_13">Item_Count</A></span> (<span class="symbol"><A NAME="ref_631_25" HREF="terminal_interface-curses-menus__adb.htm#ref_910_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></span> ++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_631_13">Item_Count</A>); ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_59"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_640_13" HREF="terminal_interface-curses-menus__adb.htm#ref_937_13">Create</A></span> (<span class="symbol"><A NAME="ref_640_21" HREF="terminal_interface-curses-menus__adb.htm#ref_937_21">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></span> ++ <span class="comment"><EM>-- Not inlined</EM></span> ++ ++ <b>function</b> New_Menu (<span class="symbol"><A NAME="ref_644_23">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_640_13">Create</A>; ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_60"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_647_14" HREF="terminal_interface-curses-menus__adb.htm#ref_956_14">Delete</A></span> (<span class="symbol"><A NAME="ref_647_22" HREF="terminal_interface-curses-menus__adb.htm#ref_956_22">Men</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></span> ++ <span class="comment"><EM>-- Reset Men to Null_Menu</EM></span> ++ <span class="comment"><EM>-- Not inlined</EM></span> ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_656_9">Driver_Result</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_656_27">Menu_Ok</A></span>, ++ <span class="symbol"><A NAME="ref_657_27">Request_Denied</A></span>, ++ <span class="symbol"><A NAME="ref_658_27">Unknown_Request</A></span>, ++ <span class="symbol"><A NAME="ref_659_27">No_Match</A></span>); ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_61"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_662_13" HREF="terminal_interface-curses-menus__adb.htm#ref_970_13">Driver</A></span> (<span class="symbol"><A NAME="ref_662_21" HREF="terminal_interface-curses-menus__adb.htm#ref_970_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_663_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_656_9">Driver_Result</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></span> ++ <span class="comment"><EM>-- Driver is not inlined</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_62"#2|</EM></span> ++ <span class="comment"><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></span> ++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span> + <b>private</b> + <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; + <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm 2011-02-26 00:43:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm 2014-09-01 16:33:22.288792010 +0200 +@@ -1,79 +1,91 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<span class="symbol"><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A></span> <b>is</b> + +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_52_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">Set_Item_Userptr</A></span> (<span class="symbol"><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_52_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Addr</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Item_Userptr, "set_item_userptr"); + +- <FONT COLOR=red><A NAME="ref_55_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A>); ++ <span class="symbol"><A NAME="ref_55_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A>); + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_62_28" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_62_28" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_64_30" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_64_16">Item_Userptr</A></span> (<span class="symbol"><A NAME="ref_64_30" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>; + <b>pragma</b> Import (C, Item_Userptr, "item_userptr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A>); + <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_70_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_71_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Itm</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm 2014-09-01 16:33:22.288792010 +0200 +@@ -1,79 +1,91 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.17 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:31:35 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.17 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:31:35 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User</A>; +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User</A>; ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<span class="symbol"><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>); + +- <FONT COLOR=green><EM>-- The binding uses the same user pointer for menu items</EM></FONT> +- <FONT COLOR=green><EM>-- as the low level C implementation. So you can safely</EM></FONT> +- <FONT COLOR=green><EM>-- read or write the user pointer also with the C routines</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_58_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></FONT> ++ <span class="comment"><EM>-- The binding uses the same user pointer for menu items</EM></span> ++ <span class="comment"><EM>-- as the low level C implementation. So you can safely</EM></span> ++ <span class="comment"><EM>-- read or write the user pointer also with the C routines</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_58_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_64_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; +- <FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_28">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>; ++ <span class="symbol"><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_69_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_69_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_28">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Get_User_Data); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm 2011-02-26 00:43:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm 2014-09-01 16:33:22.289792011 +0200 +@@ -1,78 +1,90 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_43_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<span class="symbol"><A NAME="ref_43_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A></span> <b>is</b> + +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_50_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Menu_Userptr</A></span> (<span class="symbol"><A NAME="ref_50_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Menu_Userptr, "set_menu_userptr"); + +- <FONT COLOR=red><A NAME="ref_54_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A>); ++ <span class="symbol"><A NAME="ref_54_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b> + <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A>); + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_61_13" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_61_28" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_61_13" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_61_28" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_63_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_63_30" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_63_16">Menu_Userptr</A></span> (<span class="symbol"><A NAME="ref_63_30" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>; + <b>pragma</b> Import (C, Menu_Userptr, "menu_userptr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A>); + <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_69_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_69_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm 2014-09-01 16:33:22.289792011 +0200 +@@ -1,74 +1,86 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_43_9">User</A>; +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_43_46">Menu_User_Data</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_43_9">User</A>; ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_43_46">Menu_User_Data</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; +- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_28">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>; ++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_28">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Get_User_Data); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-mouse__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-mouse__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-mouse__adb.htm 2011-03-20 00:18:40.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-mouse__adb.htm 2014-09-01 16:33:22.294792020 +0200 +@@ -1,93 +1,105 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-mouse.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.24 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Mouse --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.24 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_46_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_46_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A></span> <b>is</b> + + <b>use</b> <b>type</b> System.Bit_Order; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_94_13">Has_Mouse</A></FONT> <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_94_13">Has_Mouse</A></span> <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_52_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_52_16">Mouse_Avail</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mouse_Avail, "has_mouse"); + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_52_16">Mouse_Avail</A> /= 0 <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_52_16">Mouse_Avail</A> /= 0 <b>then</b> + <b>return</b> True; + <b>else</b> + <b>return</b> False; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_13">Has_Mouse</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A></span> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A> + <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_64_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; ++ <b>type</b> <span class="symbol"><A NAME="ref_64_12">Event_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_66_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_66_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_64_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_66_16">Getmouse</A></span> (<span class="symbol"><A NAME="ref_66_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Ev</A></span> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_64_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Getmouse, "getmouse"); + +- <FONT COLOR=red><A NAME="ref_69_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; ++ <span class="symbol"><A NAME="ref_69_7">Event</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_7">Event</A>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_77_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_78_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>; +- <FONT COLOR=red><A NAME="ref_79_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A></span> (<span class="symbol"><A NAME="ref_77_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_78_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>; ++ <span class="symbol"><A NAME="ref_79_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_81_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A>); +- <FONT COLOR=red><A NAME="ref_82_7">State_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A>); ++ <span class="symbol"><A NAME="ref_81_7">Button_Nr</A></span> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A>); ++ <span class="symbol"><A NAME="ref_82_7">State_Nr</A></span> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_26">Pressed</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_12">Real_Buttons</A> <b>then</b> + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_81_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#ref_82_7">State_Nr</A>); +@@ -97,52 +109,52 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_95_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_106_14">Register_Reportable_Events</A></FONT> (<FONT COLOR=red><A NAME="ref_95_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_107_7">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_96_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_108_7">State</A></FONT> : Button_States; +- <FONT COLOR=red><A NAME="ref_97_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_109_7">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_95_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_106_14">Register_Reportable_Events</A></span> (<span class="symbol"><A NAME="ref_95_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_107_7">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_96_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_108_7">State</A></span> : Button_States; ++ <span class="symbol"><A NAME="ref_97_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_109_7">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) + <b>is</b> + <b>begin</b> +- <b>for</b> <FONT COLOR=red><A NAME="ref_100_11">S</A></FONT> <b>in</b> Button_States'<b>Range</b> <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_100_11">S</A></span> <b>in</b> Button_States'<b>Range</b> <b>loop</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_108_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_100_11">S</A>) <b>then</b> + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_107_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_100_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_109_7">Mask</A>); + <b>end</b> <b>if</b>; + <b>end</b> <b>loop</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_106_14">Register_Reportable_Events</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_107_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_107_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_119_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A>) ++ <b>function</b> <span class="symbol"><A NAME="ref_107_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A></span> (<span class="symbol"><A NAME="ref_107_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_119_26">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A>) + <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_110_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="ref_110_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- <FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_110_16">MMask</A></span> (<span class="symbol"><A NAME="ref_110_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">M</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_111_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">O</A></span> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; + <b>pragma</b> Import (C, MMask, "mousemask"); +- <FONT COLOR=red><A NAME="ref_113_7">R</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- <FONT COLOR=red><A NAME="ref_114_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_113_7">R</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_114_7">Old</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_119_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_114_7">Old</A>'<b>Access</b>); + <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A> <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_871_14">Beep</A>; + <b>end</b> <b>if</b>; + <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_114_7">Old</A>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_123_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_123_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_124_25">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_123_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A></span> (<span class="symbol"><A NAME="ref_123_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_124_25">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A>) + <b>is</b> + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_124_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A> <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>; ++ <A HREF="terminal_interface-curses__ads.htm#ref_871_14">Beep</A>; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_131_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_131_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- <FONT COLOR=red><A NAME="ref_132_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_133_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_137_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>); +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_135_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- <FONT COLOR=red><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_137_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) <b>is</b> +- <FONT COLOR=red><A NAME="ref_138_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_131_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_14">Dispatch_Event</A></span> (<span class="symbol"><A NAME="ref_131_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_132_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_133_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_137_30">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>); ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_135_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A></span> (<span class="symbol"><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_137_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) <b>is</b> ++ <span class="symbol"><A NAME="ref_138_7">L</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; + <b>begin</b> +- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>; <FONT COLOR=green><EM>-- preset to non real button;</EM></FONT> ++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>; <span class="comment"><EM>-- preset to non real button;</EM></span> + <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_217_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b> + <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Left</A>; + <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_218_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b> +@@ -154,7 +166,7 @@ + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_12">Real_Buttons</A> <b>then</b> + <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A>)); +- <b>for</b> <FONT COLOR=red><A NAME="ref_152_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>'<b>Range</b> <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_152_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>'<b>Range</b> <b>loop</b> + <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A>) /= 0 <b>then</b> + <A HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_152_14">I</A>; + <b>exit</b>; +@@ -173,47 +185,47 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_171_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_171_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; +- <FONT COLOR=red><A NAME="ref_172_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_173_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_135_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_136_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_171_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A></span> (<span class="symbol"><A NAME="ref_171_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; ++ <span class="symbol"><A NAME="ref_172_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">Y</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_173_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_135_25">X</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_136_25">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_177_7">Mask</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A>; ++ <span class="symbol"><A NAME="ref_177_7">Mask</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_135_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A>); + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A>); + <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_177_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_136_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">State</A>); + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_184_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_184_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_145_27">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_184_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A></span> (<span class="symbol"><A NAME="ref_184_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_145_27">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_186_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_186_28" HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_186_16">Ungetmouse</A></span> (<span class="symbol"><A NAME="ref_186_28" HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ev</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Ungetmouse, "ungetmouse"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_145_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_194_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_194_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_150_33">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_195_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_194_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A></span> (<span class="symbol"><A NAME="ref_194_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_150_33">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_195_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_197_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="ref_197_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_197_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_197_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_197_16">Wenclose</A></span> (<span class="symbol"><A NAME="ref_197_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_197_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Y</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <span class="symbol"><A NAME="ref_197_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">X</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, Wenclose, "wenclose"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_150_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A>)) +- = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b> ++ = <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Curses_Bool_False</A> <b>then</b> + <b>return</b> False; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_209_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_157_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_209_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_157_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural ++ <b>function</b> <span class="symbol"><A NAME="ref_209_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_157_13">Mouse_Interval</A></span> (<span class="symbol"><A NAME="ref_209_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_157_29">Msec</A></span> : Natural := 200) <b>return</b> Natural + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_211_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="ref_211_31" HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Msec</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_211_16">Mouseinterval</A></span> (<span class="symbol"><A NAME="ref_211_31" HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Msec</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Mouseinterval, "mouseinterval"); + <b>begin</b> + <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_157_29">Msec</A>))); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-mouse__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-mouse__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-mouse__ads.htm 2011-03-20 00:18:40.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-mouse__ads.htm 2014-09-01 16:33:22.294792020 +0200 +@@ -1,178 +1,190 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-mouse.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.29 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/19 12:35:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- mouse binding.</EM></FONT> +-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT> +-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT> +-<FONT COLOR=green><EM>-- |</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Mouse --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.29 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/19 12:35:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- mouse binding.</EM></span> ++<span class="comment"><EM>-- This module is generated. Please don't change it manually!</EM></span> ++<span class="comment"><EM>-- Run the generator instead.</EM></span> ++<span class="comment"><EM>-- |</EM></span> + <b>with</b> System; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_46_40">Mouse</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_48_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_46_40">Mouse</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</EM></FONT> +- <FONT COLOR=green><EM>-- in the parent package.</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented:</EM></FONT> +- <FONT COLOR=green><EM>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></FONT> +- <FONT COLOR=green><EM>-- or Start_Mouse)</EM></FONT> +- <b>type</b> <FONT COLOR=red><A NAME="ref_60_9">Event_Mask</A></FONT> <b>is</b> <b>private</b>; +- <FONT COLOR=red><A NAME="ref_61_4">No_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- <FONT COLOR=red><A NAME="ref_62_4">All_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_64_9">Mouse_Button</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_64_26">Left</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT> +- <FONT COLOR=red><A NAME="ref_65_26">Middle</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT> +- <FONT COLOR=red><A NAME="ref_66_26">Right</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT> +- <FONT COLOR=red><A NAME="ref_67_26">Button4</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT> +- <FONT COLOR=red><A NAME="ref_68_26">Control</A></FONT>, <FONT COLOR=green><EM>-- Control Key</EM></FONT> +- <FONT COLOR=red><A NAME="ref_69_26">Shift</A></FONT>, <FONT COLOR=green><EM>-- Shift Key</EM></FONT> +- <FONT COLOR=red><A NAME="ref_70_26">Alt</A></FONT>); <FONT COLOR=green><EM>-- ALT Key</EM></FONT> +- +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_72_12">Real_Buttons</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Button4</A>; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_73_12">Modifier_Keys</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>; +- +- <b>type</b> <FONT COLOR=red><A NAME="ref_75_9">Button_State</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_75_26">Released</A></FONT>, +- <FONT COLOR=red><A NAME="ref_76_26">Pressed</A></FONT>, +- <FONT COLOR=red><A NAME="ref_77_26">Clicked</A></FONT>, +- <FONT COLOR=red><A NAME="ref_78_26">Double_Clicked</A></FONT>, +- <FONT COLOR=red><A NAME="ref_79_26">Triple_Clicked</A></FONT>); ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</EM></span> ++ <span class="comment"><EM>-- in the parent package.</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <span class="comment"><EM>-- Not implemented:</EM></span> ++ <span class="comment"><EM>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></span> ++ <span class="comment"><EM>-- or Start_Mouse)</EM></span> ++ <b>type</b> <span class="symbol"><A NAME="ref_60_9">Event_Mask</A></span> <b>is</b> <b>private</b>; ++ <span class="symbol"><A NAME="ref_61_4">No_Events</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_62_4">All_Events</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_64_9">Mouse_Button</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_64_26">Left</A></span>, <span class="comment"><EM>-- aka: Button 1</EM></span> ++ <span class="symbol"><A NAME="ref_65_26">Middle</A></span>, <span class="comment"><EM>-- aka: Button 2</EM></span> ++ <span class="symbol"><A NAME="ref_66_26">Right</A></span>, <span class="comment"><EM>-- aka: Button 3</EM></span> ++ <span class="symbol"><A NAME="ref_67_26">Button4</A></span>, <span class="comment"><EM>-- aka: Button 4</EM></span> ++ <span class="symbol"><A NAME="ref_68_26">Control</A></span>, <span class="comment"><EM>-- Control Key</EM></span> ++ <span class="symbol"><A NAME="ref_69_26">Shift</A></span>, <span class="comment"><EM>-- Shift Key</EM></span> ++ <span class="symbol"><A NAME="ref_70_26">Alt</A></span>); <span class="comment"><EM>-- ALT Key</EM></span> ++ ++ <b>subtype</b> <span class="symbol"><A NAME="ref_72_12">Real_Buttons</A></span> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Button4</A>; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_73_12">Modifier_Keys</A></span> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>; ++ ++ <b>type</b> <span class="symbol"><A NAME="ref_75_9">Button_State</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_75_26">Released</A></span>, ++ <span class="symbol"><A NAME="ref_76_26">Pressed</A></span>, ++ <span class="symbol"><A NAME="ref_77_26">Clicked</A></span>, ++ <span class="symbol"><A NAME="ref_78_26">Double_Clicked</A></span>, ++ <span class="symbol"><A NAME="ref_79_26">Triple_Clicked</A></span>); + + <b>type</b> Button_States <b>is</b> <b>array</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) <b>of</b> Boolean; + <b>pragma</b> Pack (Button_States); + +- <FONT COLOR=red><A NAME="ref_84_4">All_Clicks</A></FONT> : <b>constant</b> Button_States := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_77_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_26">Triple_Clicked</A> =&gt; True, ++ <span class="symbol"><A NAME="ref_84_4">All_Clicks</A></span> : <b>constant</b> Button_States := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_77_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_26">Triple_Clicked</A> =&gt; True, + <b>others</b> =&gt; False); +- <FONT COLOR=red><A NAME="ref_86_4">All_States</A></FONT> : <b>constant</b> Button_States := (<b>others</b> =&gt; True); ++ <span class="symbol"><A NAME="ref_86_4">All_States</A></span> : <b>constant</b> Button_States := (<b>others</b> =&gt; True); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_88_9">Mouse_Event</A></FONT> <b>is</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_88_9">Mouse_Event</A></span> <b>is</b> <b>private</b>; + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_50_13">Has_Mouse</A></FONT> <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- Return true if a mouse device is supported, false otherwise.</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_97_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_14">Register_Reportable_Event</A></FONT> +- (<FONT COLOR=red><A NAME="ref_98_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_41">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_99_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_78_41">State</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>; +- <FONT COLOR=red><A NAME="ref_100_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_79_41">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>); +- <FONT COLOR=green><EM>-- Stores the event described by the button and the state in the mask.</EM></FONT> +- <FONT COLOR=green><EM>-- Before you call this the first time, you should initialize the mask</EM></FONT> +- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_94_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_50_13">Has_Mouse</A></span> <b>return</b> Boolean; ++ <span class="comment"><EM>-- Return true if a mouse device is supported, false otherwise.</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_97_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_14">Register_Reportable_Event</A></span> ++ (<span class="symbol"><A NAME="ref_98_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_41">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_99_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_78_41">State</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>; ++ <span class="symbol"><A NAME="ref_100_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_79_41">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>); ++ <span class="comment"><EM>-- Stores the event described by the button and the state in the mask.</EM></span> ++ <span class="comment"><EM>-- Before you call this the first time, you should initialize the mask</EM></span> ++ <span class="comment"><EM>-- with the Empty_Mask constant</EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_14">Register_Reportable_Events</A></FONT> +- (<FONT COLOR=red><A NAME="ref_107_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_42">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_108_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_96_42">State</A></FONT> : Button_States; +- <FONT COLOR=red><A NAME="ref_109_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_97_42">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>); +- <FONT COLOR=green><EM>-- Register all events described by the Button and the State bitmap.</EM></FONT> +- <FONT COLOR=green><EM>-- Before you call this the first time, you should initialize the mask</EM></FONT> +- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <FONT COLOR=green><EM>-- There is one difference to mousmask(): we return the value of the</EM></FONT> +- <FONT COLOR=green><EM>-- old mask, that means the event mask value before this call.</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: The library version</EM></FONT> +- <FONT COLOR=green><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_119_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_119_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_106_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_14">Register_Reportable_Events</A></span> ++ (<span class="symbol"><A NAME="ref_107_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_42">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_108_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_96_42">State</A></span> : Button_States; ++ <span class="symbol"><A NAME="ref_109_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_97_42">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>); ++ <span class="comment"><EM>-- Register all events described by the Button and the State bitmap.</EM></span> ++ <span class="comment"><EM>-- Before you call this the first time, you should initialize the mask</EM></span> ++ <span class="comment"><EM>-- with the Empty_Mask constant</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <span class="comment"><EM>-- There is one difference to mousmask(): we return the value of the</EM></span> ++ <span class="comment"><EM>-- old mask, that means the event mask value before this call.</EM></span> ++ <span class="comment"><EM>-- Not Implemented: The library version</EM></span> ++ <span class="comment"><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_119_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_13">Start_Mouse</A></span> (<span class="symbol"><A NAME="ref_119_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_26">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A>) + <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT> ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_124_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_124_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_25">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A>); +- <FONT COLOR=green><EM>-- Terminates the mouse, restores the specified event mask</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_124_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_14">End_Mouse</A></span> (<span class="symbol"><A NAME="ref_124_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_25">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A>); ++ <span class="comment"><EM>-- Terminates the mouse, restores the specified event mask</EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_129_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_62_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_129_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_62_13">Get_Mouse</A></span> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_133_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_133_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_25">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; +- <FONT COLOR=red><A NAME="ref_134_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_172_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_135_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_173_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_136_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; +- <FONT COLOR=red><A NAME="ref_137_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>); +- <FONT COLOR=green><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT> +- <FONT COLOR=green><EM>-- may not be identical to window coordinates.</EM></FONT> +- <FONT COLOR=green><EM>-- Not Implemented: Get_Event only reports one event, the C library</EM></FONT> +- <FONT COLOR=green><EM>-- version supports multiple events, e.g. {click-1, click-3}</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_133_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_14">Get_Event</A></span> (<span class="symbol"><A NAME="ref_133_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_25">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>; ++ <span class="symbol"><A NAME="ref_134_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_172_25">Y</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_135_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_173_25">X</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_136_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>; ++ <span class="symbol"><A NAME="ref_137_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>); ++ <span class="comment"><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></span> ++ <span class="comment"><EM>-- may not be identical to window coordinates.</EM></span> ++ <span class="comment"><EM>-- Not Implemented: Get_Event only reports one event, the C library</EM></span> ++ <span class="comment"><EM>-- version supports multiple events, e.g. {click-1, click-3}</EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_145_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_145_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_27">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_145_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_14">Unget_Mouse</A></span> (<span class="symbol"><A NAME="ref_145_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_27">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_150_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_150_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_33">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; +- <FONT COLOR=red><A NAME="ref_151_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_195_33">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></FONT> +- <FONT COLOR=green><EM>-- But : use event instead of screen coordinates.</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_150_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_13">Enclosed_In_Window</A></span> (<span class="symbol"><A NAME="ref_150_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_33">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; ++ <span class="symbol"><A NAME="ref_151_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_195_33">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></span> ++ <span class="comment"><EM>-- But : use event instead of screen coordinates.</EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_157_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_157_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_157_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_13">Mouse_Interval</A></span> (<span class="symbol"><A NAME="ref_157_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_29">Msec</A></span> : Natural := 200) <b>return</b> Natural; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_157_13">Mouse_Interval</A>); + + <b>private</b> +- <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long; ++ <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_long; + + <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_166_10">Id</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) .. +- Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last); +- <FONT COLOR=red><A NAME="ref_168_10">X</A></FONT>, <FONT COLOR=red><A NAME="ref_168_13">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_168_16">Z</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) .. +- Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'Last); +- <FONT COLOR=red><A NAME="ref_170_10">Bstate</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; ++ <span class="symbol"><A NAME="ref_166_10">Id</A></span> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'First) .. ++ Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last); ++ <span class="symbol"><A NAME="ref_168_10">X</A></span>, <span class="symbol"><A NAME="ref_168_13">Y</A></span>, <span class="symbol"><A NAME="ref_168_16">Z</A></span> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int'First) .. ++ Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int'Last); ++ <span class="symbol"><A NAME="ref_170_10">Bstate</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>; + <b>end</b> <b>record</b>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>); + +@@ -182,47 +194,47 @@ + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A> <b>at</b> 0 <b>range</b> 32 .. 63; + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A> <b>at</b> 0 <b>range</b> 64 .. 95; + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_16">Z</A> <b>at</b> 0 <b>range</b> 96 .. 127; +- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A> <b>at</b> 0 <b>range</b> 128 .. 159; ++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A> <b>at</b> 0 <b>range</b> 128 .. 191; + <b>end</b> <b>record</b>; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.</EM></FONT> ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.</EM></span> + +- <FONT COLOR=red><A NAME="ref_185_4">Generation_Bit_Order</A></FONT> : <b>constant</b> System.Bit_Order := System.Low_Order_First; +- <FONT COLOR=green><EM>-- This constant may be different on your system.</EM></FONT> ++ <span class="symbol"><A NAME="ref_185_4">Generation_Bit_Order</A></span> : <b>constant</b> System.Bit_Order := System.Low_Order_First; ++ <span class="comment"><EM>-- This constant may be different on your system.</EM></span> + +- <FONT COLOR=red><A NAME="ref_188_4">BUTTON1_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000001#; +- <FONT COLOR=red><A NAME="ref_189_4">BUTTON1_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000002#; +- <FONT COLOR=red><A NAME="ref_190_4">BUTTON1_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000004#; +- <FONT COLOR=red><A NAME="ref_191_4">BUTTON1_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000010#; +- <FONT COLOR=red><A NAME="ref_192_4">BUTTON1_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000020#; +- <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000040#; +- <FONT COLOR=red><A NAME="ref_194_4">BUTTON2_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000100#; +- <FONT COLOR=red><A NAME="ref_195_4">BUTTON2_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000200#; +- <FONT COLOR=red><A NAME="ref_196_4">BUTTON2_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000400#; +- <FONT COLOR=red><A NAME="ref_197_4">BUTTON2_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000001000#; +- <FONT COLOR=red><A NAME="ref_198_4">BUTTON2_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000002000#; +- <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000004000#; +- <FONT COLOR=red><A NAME="ref_200_4">BUTTON3_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000010000#; +- <FONT COLOR=red><A NAME="ref_201_4">BUTTON3_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000020000#; +- <FONT COLOR=red><A NAME="ref_202_4">BUTTON3_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000040000#; +- <FONT COLOR=red><A NAME="ref_203_4">BUTTON3_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000100000#; +- <FONT COLOR=red><A NAME="ref_204_4">BUTTON3_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000200000#; +- <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000400000#; +- <FONT COLOR=red><A NAME="ref_206_4">BUTTON4_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00001000000#; +- <FONT COLOR=red><A NAME="ref_207_4">BUTTON4_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00002000000#; +- <FONT COLOR=red><A NAME="ref_208_4">BUTTON4_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00004000000#; +- <FONT COLOR=red><A NAME="ref_209_4">BUTTON4_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00010000000#; +- <FONT COLOR=red><A NAME="ref_210_4">BUTTON4_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00020000000#; +- <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00040000000#; +- <FONT COLOR=red><A NAME="ref_212_4">BUTTON_CTRL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00100000000#; +- <FONT COLOR=red><A NAME="ref_213_4">BUTTON_SHIFT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00200000000#; +- <FONT COLOR=red><A NAME="ref_214_4">BUTTON_ALT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00400000000#; +- <FONT COLOR=red><A NAME="ref_215_4">REPORT_MOUSE_POSITION</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#01000000000#; +- <FONT COLOR=red><A NAME="ref_216_4">ALL_MOUSE_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00777777777#; +- <FONT COLOR=red><A NAME="ref_217_4">BUTTON1_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000077#; +- <FONT COLOR=red><A NAME="ref_218_4">BUTTON2_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000007700#; +- <FONT COLOR=red><A NAME="ref_219_4">BUTTON3_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000770000#; +- <FONT COLOR=red><A NAME="ref_220_4">BUTTON4_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00077000000#; ++ <span class="symbol"><A NAME="ref_188_4">BUTTON1_RELEASED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000001#; ++ <span class="symbol"><A NAME="ref_189_4">BUTTON1_PRESSED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000002#; ++ <span class="symbol"><A NAME="ref_190_4">BUTTON1_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000004#; ++ <span class="symbol"><A NAME="ref_191_4">BUTTON1_DOUBLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000010#; ++ <span class="symbol"><A NAME="ref_192_4">BUTTON1_TRIPLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000020#; ++ <span class="symbol"><A NAME="ref_193_4">BUTTON1_RESERVED_EVENT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000040#; ++ <span class="symbol"><A NAME="ref_194_4">BUTTON2_RELEASED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000100#; ++ <span class="symbol"><A NAME="ref_195_4">BUTTON2_PRESSED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000200#; ++ <span class="symbol"><A NAME="ref_196_4">BUTTON2_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000400#; ++ <span class="symbol"><A NAME="ref_197_4">BUTTON2_DOUBLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000001000#; ++ <span class="symbol"><A NAME="ref_198_4">BUTTON2_TRIPLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000002000#; ++ <span class="symbol"><A NAME="ref_199_4">BUTTON2_RESERVED_EVENT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000004000#; ++ <span class="symbol"><A NAME="ref_200_4">BUTTON3_RELEASED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000010000#; ++ <span class="symbol"><A NAME="ref_201_4">BUTTON3_PRESSED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000020000#; ++ <span class="symbol"><A NAME="ref_202_4">BUTTON3_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000040000#; ++ <span class="symbol"><A NAME="ref_203_4">BUTTON3_DOUBLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000100000#; ++ <span class="symbol"><A NAME="ref_204_4">BUTTON3_TRIPLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000200000#; ++ <span class="symbol"><A NAME="ref_205_4">BUTTON3_RESERVED_EVENT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000400000#; ++ <span class="symbol"><A NAME="ref_206_4">BUTTON4_RELEASED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00001000000#; ++ <span class="symbol"><A NAME="ref_207_4">BUTTON4_PRESSED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00002000000#; ++ <span class="symbol"><A NAME="ref_208_4">BUTTON4_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00004000000#; ++ <span class="symbol"><A NAME="ref_209_4">BUTTON4_DOUBLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00010000000#; ++ <span class="symbol"><A NAME="ref_210_4">BUTTON4_TRIPLE_CLICKED</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00020000000#; ++ <span class="symbol"><A NAME="ref_211_4">BUTTON4_RESERVED_EVENT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00040000000#; ++ <span class="symbol"><A NAME="ref_212_4">BUTTON_CTRL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00100000000#; ++ <span class="symbol"><A NAME="ref_213_4">BUTTON_SHIFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00200000000#; ++ <span class="symbol"><A NAME="ref_214_4">BUTTON_ALT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00400000000#; ++ <span class="symbol"><A NAME="ref_215_4">REPORT_MOUSE_POSITION</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#01000000000#; ++ <span class="symbol"><A NAME="ref_216_4">ALL_MOUSE_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00777777777#; ++ <span class="symbol"><A NAME="ref_217_4">BUTTON1_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000077#; ++ <span class="symbol"><A NAME="ref_218_4">BUTTON2_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000007700#; ++ <span class="symbol"><A NAME="ref_219_4">BUTTON3_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000770000#; ++ <span class="symbol"><A NAME="ref_220_4">BUTTON4_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00077000000#; + + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 0; + <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_216_4">ALL_MOUSE_EVENTS</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-panels__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels__adb.htm 2011-02-26 00:43:50.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels__adb.htm 2014-09-01 16:33:22.296792023 +0200 +@@ -1,62 +1,74 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-panels.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-panels.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_45_40" HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A></span> <b>is</b> + +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A></span> (<span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">Newpanel</A></span> (<span class="symbol"><A NAME="ref_51_26" HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; + <b>pragma</b> Import (C, Newpanel, "new_panel"); + +- <FONT COLOR=red><A NAME="ref_54_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_54_7">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; + <b>begin</b> + <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A>); + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> <b>then</b> +@@ -65,9 +77,9 @@ + <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_63_22" HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_63_14" HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_63_22" HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_65_16">Bottompanel</A></span> (<span class="symbol"><A NAME="ref_65_29" HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Bottompanel, "bottom_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -75,9 +87,9 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_73_19" HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_73_14" HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A></span> (<span class="symbol"><A NAME="ref_73_19" HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_75_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="ref_75_26" HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_75_16">Toppanel</A></span> (<span class="symbol"><A NAME="ref_75_26" HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Toppanel, "top_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -85,9 +97,9 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_83_20" HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_83_14" HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A></span> (<span class="symbol"><A NAME="ref_83_20" HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_85_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_85_27" HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_85_16">Showpanel</A></span> (<span class="symbol"><A NAME="ref_85_27" HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Showpanel, "show_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -95,9 +107,9 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_93_20" HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_93_14" HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A></span> (<span class="symbol"><A NAME="ref_93_20" HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_95_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="ref_95_27" HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_95_16">Hidepanel</A></span> (<span class="symbol"><A NAME="ref_95_27" HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Hidepanel, "hide_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -105,12 +117,12 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_103_13" HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_103_25" HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_103_13" HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_103_25" HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_105_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_105_27" HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_105_16">Panel_Win</A></span> (<span class="symbol"><A NAME="ref_105_27" HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, Panel_Win, "panel_window"); + +- <FONT COLOR=red><A NAME="ref_108_7">Win</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A>); ++ <span class="symbol"><A NAME="ref_108_7">Win</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A>); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>; +@@ -118,11 +130,11 @@ + <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_116_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A></span> (<span class="symbol"><A NAME="ref_116_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_119_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="ref_119_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_120_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_119_16">Replace_Pan</A></span> (<span class="symbol"><A NAME="ref_119_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_120_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Replace_Pan, "replace_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -130,13 +142,13 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_128_14" HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) +- <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_132_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_132_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_133_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_134_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_128_14" HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A></span> (<span class="symbol"><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) ++ <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_132_16">Move</A></span> (<span class="symbol"><A NAME="ref_132_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_133_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_134_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Move, "move_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -144,9 +156,9 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_142_13" HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_142_24" HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_142_13" HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_142_24" HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_144_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_144_30" HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_144_16">Panel_Hidden</A></span> (<span class="symbol"><A NAME="ref_144_30" HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Panel_Hidden, "panel_hidden"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b> +@@ -156,9 +168,9 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_154_14" HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_154_22" HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_154_14" HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A></span> (<span class="symbol"><A NAME="ref_154_22" HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_156_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="ref_156_27" HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_156_16">Del_Panel</A></span> (<span class="symbol"><A NAME="ref_156_27" HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Del_Panel, "del_panel"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-panels__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels__ads.htm 2010-05-29 23:56:06.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels__ads.htm 2014-09-01 16:33:22.296792023 +0200 +@@ -1,148 +1,160 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-panels.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-panels.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.20 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.20 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> System; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-panels__adb.htm#ref_45_40">Panels</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-panels__adb.htm#ref_45_40">Panels</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>); + <b>pragma</b> Linker_Options ("-lpanel"); + <b>pragma</b> Linker_Options ("-lncurses"); + +- <b>type</b> <FONT COLOR=red><A NAME="ref_49_9">Panel</A></FONT> <b>is</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_49_9">Panel</A></span> <b>is</b> <b>private</b>; + +- <FONT COLOR=green><EM>---------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Interface constants --</EM></FONT> +- <FONT COLOR=green><EM>---------------------------</EM></FONT> +- <FONT COLOR=red><A NAME="ref_54_4">Null_Panel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- +- <FONT COLOR=green><EM>-------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT> +- <FONT COLOR=green><EM>-------------------</EM></FONT> +- +- <FONT COLOR=red><A NAME="ref_60_4">Panel_Exception</A></FONT> : <b>exception</b>; +- +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-panels__adb.htm#ref_49_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_67_21" HREF="terminal_interface-curses-panels__adb.htm#ref_49_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT> ++ <span class="comment"><EM>---------------------------</EM></span> ++ <span class="comment"><EM>-- Interface constants --</EM></span> ++ <span class="comment"><EM>---------------------------</EM></span> ++ <span class="symbol"><A NAME="ref_54_4">Null_Panel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ ++ <span class="comment"><EM>-------------------</EM></span> ++ <span class="comment"><EM>-- Exceptions --</EM></span> ++ <span class="comment"><EM>-------------------</EM></span> ++ ++ <span class="symbol"><A NAME="ref_60_4">Panel_Exception</A></span> : <b>exception</b>; ++ ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_67_13" HREF="terminal_interface-curses-panels__adb.htm#ref_49_13">Create</A></span> (<span class="symbol"><A NAME="ref_67_21" HREF="terminal_interface-curses-panels__adb.htm#ref_49_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></span> + <b>pragma</b> Inline (Create); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>function</b> New_Panel (<FONT COLOR=red><A NAME="ref_72_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT> +- <FONT COLOR=green><EM>-- pragma Inline (New_Panel);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-panels__adb.htm#ref_63_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_77_22" HREF="terminal_interface-curses-panels__adb.htm#ref_63_22">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>function</b> New_Panel (<span class="symbol"><A NAME="ref_72_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></span> ++ <span class="comment"><EM>-- pragma Inline (New_Panel);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-panels__adb.htm#ref_63_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_77_22" HREF="terminal_interface-curses-panels__adb.htm#ref_63_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_82_14" HREF="terminal_interface-curses-panels__adb.htm#ref_73_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_82_19" HREF="terminal_interface-curses-panels__adb.htm#ref_73_19">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_82_14" HREF="terminal_interface-curses-panels__adb.htm#ref_73_14">Top</A></span> (<span class="symbol"><A NAME="ref_82_19" HREF="terminal_interface-curses-panels__adb.htm#ref_73_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-panels__adb.htm#ref_83_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_87_20" HREF="terminal_interface-curses-panels__adb.htm#ref_83_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_87_14" HREF="terminal_interface-curses-panels__adb.htm#ref_83_14">Show</A></span> (<span class="symbol"><A NAME="ref_87_20" HREF="terminal_interface-curses-panels__adb.htm#ref_83_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14">Update_Panels</A></FONT>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_92_14">Update_Panels</A></span>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></span> + <b>pragma</b> Import (C, Update_Panels, "update_panels"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_97_14" HREF="terminal_interface-curses-panels__adb.htm#ref_93_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_97_20" HREF="terminal_interface-curses-panels__adb.htm#ref_93_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_97_14" HREF="terminal_interface-curses-panels__adb.htm#ref_93_14">Hide</A></span> (<span class="symbol"><A NAME="ref_97_20" HREF="terminal_interface-curses-panels__adb.htm#ref_93_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-panels__adb.htm#ref_103_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_102_25" HREF="terminal_interface-curses-panels__adb.htm#ref_103_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-panels__adb.htm#ref_103_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_102_25" HREF="terminal_interface-curses-panels__adb.htm#ref_103_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT> +- <b>function</b> Panel_Window (<FONT COLOR=red><A NAME="ref_107_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>; +- <FONT COLOR=green><EM>-- pragma Inline (Panel_Window);</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses-panels__adb.htm#ref_116_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_116_23">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span> ++ <b>function</b> Panel_Window (<span class="symbol"><A NAME="ref_107_27">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>; ++ <span class="comment"><EM>-- pragma Inline (Panel_Window);</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_111_14" HREF="terminal_interface-curses-panels__adb.htm#ref_116_14">Replace</A></span> (<span class="symbol"><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_116_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__adb.htm#ref_128_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_128_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__adb.htm#ref_128_14">Move</A></span> (<span class="symbol"><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_128_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_124_13" HREF="terminal_interface-curses-panels__adb.htm#ref_142_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_124_24" HREF="terminal_interface-curses-panels__adb.htm#ref_142_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_124_13" HREF="terminal_interface-curses-panels__adb.htm#ref_142_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_124_24" HREF="terminal_interface-curses-panels__adb.htm#ref_142_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_129_13">Above</A></FONT> (<FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_129_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_129_13">Above</A></span> (<span class="symbol"><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_129_13">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></span> + <b>pragma</b> Import (C, Above, "panel_above"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_134_13">Below</A></FONT> (<FONT COLOR=red><A NAME="ref_134_20" HREF="terminal_interface-curses-panels__ads.htm#ref_134_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_134_13">Below</A></span> (<span class="symbol"><A NAME="ref_134_20" HREF="terminal_interface-curses-panels__ads.htm#ref_134_13">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></span> + <b>pragma</b> Import (C, Below, "panel_below"); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_139_14" HREF="terminal_interface-curses-panels__adb.htm#ref_154_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_139_22" HREF="terminal_interface-curses-panels__adb.htm#ref_154_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_139_14" HREF="terminal_interface-curses-panels__adb.htm#ref_154_14">Delete</A></span> (<span class="symbol"><A NAME="ref_139_22" HREF="terminal_interface-curses-panels__adb.htm#ref_154_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></span> + <b>pragma</b> Inline (Delete); + + <b>private</b> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm 2011-02-26 00:43:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm 2014-09-01 16:33:22.295792021 +0200 +@@ -1,63 +1,75 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-panels-user_data.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>; + <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_47_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<span class="symbol"><A NAME="ref_47_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A></span> <b>is</b> + +- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_51_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_51_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_54_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_55_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Addr</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_54_16">Set_Panel_Userptr</A></span> (<span class="symbol"><A NAME="ref_54_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_55_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Addr</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, Set_Panel_Userptr, "set_panel_userptr"); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +@@ -65,16 +77,16 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_63_28" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_63_28" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A> + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_65_31" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_65_16">Panel_Userptr</A></span> (<span class="symbol"><A NAME="ref_65_31" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>; + <b>pragma</b> Import (C, Panel_Userptr, "panel_userptr"); + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A>); + <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_71_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_72_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_71_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_71_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_72_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm 2010-01-09 21:31:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm 2014-09-01 16:33:22.295792021 +0200 +@@ -1,74 +1,86 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-panels-user_data.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>; +- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_43_9">User</A>; +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_45_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_47_47">User_Data</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></span> <b>is</b> <b>limited</b> <b>private</b>; ++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_43_9">User</A>; ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<span class="symbol"><A NAME="ref_45_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_47_47">User_Data</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Data</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Data</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></span> + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>); + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; +- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT> +- +- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_28">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>; +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT> +- <FONT COLOR=green><EM>-- Same as function</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>; ++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></span> ++ ++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_28">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>; ++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></span> ++ <span class="comment"><EM>-- Same as function</EM></span> + <b>pragma</b> Inline (Get_User_Data); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-putwin__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-putwin__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-putwin__adb.htm 2011-03-20 00:18:41.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-putwin__adb.htm 2014-09-01 16:33:22.296792023 +0200 +@@ -1,79 +1,91 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-putwin.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-putwin.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.PutWin --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.PutWin --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> + + <b>with</b> Ada.Streams.Stream_IO.C_Streams; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C_Streams; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_45_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams; +- <b>package</b> <FONT COLOR=red><A NAME="ref_48_12">ACS</A></FONT> <b>renames</b> Ada.Streams.Stream_IO.C_Streams; ++ <b>package</b> <span class="symbol"><A NAME="ref_47_12">ICS</A></span> <b>renames</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C_Streams; ++ <b>package</b> <span class="symbol"><A NAME="ref_48_12">ACS</A></span> <b>renames</b> Ada.Streams.Stream_IO.C_Streams; + <b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_52_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_53_16">putwin</A></FONT> (<FONT COLOR=red><A NAME="ref_53_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_53_38" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A></span> (<span class="symbol"><A NAME="ref_51_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_52_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A></span> : Ada.Streams.Stream_IO.File_Type) <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_53_16">putwin</A></span> (<span class="symbol"><A NAME="ref_53_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_53_38" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">f</A></span> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, putwin, "putwin"); + +- <FONT COLOR=red><A NAME="ref_56_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A>)); ++ <span class="symbol"><A NAME="ref_56_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_56_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_63_25" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) ++ <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_63_25" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A></span> : Ada.Streams.Stream_IO.File_Type) + <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">getwin</A></FONT> (<FONT COLOR=red><A NAME="ref_65_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_65_16">getwin</A></span> (<span class="symbol"><A NAME="ref_65_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">f</A></span> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <b>pragma</b> Import (C, getwin, "getwin"); + +- <FONT COLOR=red><A NAME="ref_68_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A>)); ++ <span class="symbol"><A NAME="ref_68_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A>)); + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> + <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A>; + <b>end</b> <b>if</b>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-putwin__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-putwin__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-putwin__ads.htm 2006-09-23 22:31:32.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-putwin__ads.htm 2014-09-01 16:33:22.297792024 +0200 +@@ -1,56 +1,68 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-putwin.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-putwin.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.PutWin --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.PutWin --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> + + <b>with</b> Ada.Streams.Stream_IO; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_43_35" HREF="terminal_interface-curses-putwin__adb.htm#ref_45_40">PutWin</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_43_35" HREF="terminal_interface-curses-putwin__adb.htm#ref_45_40">PutWin</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_45_14" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_14">Put_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_45_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_46_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_45_14" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_14">Put_Window</A></span> (<span class="symbol"><A NAME="ref_45_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_46_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_26">File</A></span> : Ada.Streams.Stream_IO.File_Type); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_48_25" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_48_13" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_48_25" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_25">File</A></span> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-termcap__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-termcap__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-termcap__adb.htm 2011-03-20 00:18:41.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-termcap__adb.htm 2014-09-01 16:33:22.297792024 +0200 +@@ -1,82 +1,94 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-termcap.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-termcap.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Termcap --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Termcap --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_47_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_47_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A></span> <b>is</b> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="ref_49_24" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A></FONT> : String) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A></span> (<span class="symbol"><A NAME="ref_49_24" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A></span> : String) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="ref_51_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="ref_51_44" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">val</A></FONT> : char_array) ++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">tgetent</A></span> (<span class="symbol"><A NAME="ref_51_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">name</A></span> : char_array; <span class="symbol"><A NAME="ref_51_44" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">val</A></span> : char_array) + <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, tgetent, "tgetent"); +- <FONT COLOR=red><A NAME="ref_54_7">NameTxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_55_7">Length</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_56_7">ignored</A></FONT> : <b>constant</b> char_array (0 .. 0) := (0 =&gt; nul); +- <FONT COLOR=red><A NAME="ref_57_7">result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_54_7">NameTxt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_55_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_56_7">ignored</A></span> : <b>constant</b> char_array (0 .. 0) := (0 =&gt; nul); ++ <span class="symbol"><A NAME="ref_57_7">result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_54_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_55_7">Length</A>); + <A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_56_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#ref_54_7">NameTxt</A>); + <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A> = -1 <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> + <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A>); + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_23" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A></FONT> : String) <b>return</b> Boolean ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_69_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_69_23" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A></span> : String) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_71_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_71_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_71_16">tgetflag</A></span> (<span class="symbol"><A NAME="ref_71_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, tgetflag, "tgetflag"); +- <FONT COLOR=red><A NAME="ref_73_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_74_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_73_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_74_7">Length</A></span> : size_t; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_73_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_74_7">Length</A>); + <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_73_7">Txt</A>) = 0 <b>then</b> +@@ -86,15 +98,15 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_85_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_85_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_86_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A></FONT> : <b>out</b> Integer; +- <FONT COLOR=red><A NAME="ref_87_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A></FONT> : <b>out</b> Boolean) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_85_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A></span> (<span class="symbol"><A NAME="ref_85_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_86_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A></span> : <b>out</b> Integer; ++ <span class="symbol"><A NAME="ref_87_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A></span> : <b>out</b> Boolean) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_89_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="ref_89_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_89_16">tgetnum</A></span> (<span class="symbol"><A NAME="ref_89_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, tgetnum, "tgetnum"); +- <FONT COLOR=red><A NAME="ref_91_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_92_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_91_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_92_7">Length</A></span> : size_t; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_91_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_92_7">Length</A>); + <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_91_7">Txt</A>)); +@@ -105,19 +117,19 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_104_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_104_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_105_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_106_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A></FONT> : <b>out</b> Boolean) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_104_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_104_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_105_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_106_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A></span> : <b>out</b> Boolean) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">id</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_109_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">buf</A></FONT> : char_array) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_108_16">tgetstr</A></span> (<span class="symbol"><A NAME="ref_108_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">id</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_109_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">buf</A></span> : char_array) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, tgetstr, "tgetstr"); +- <FONT COLOR=red><A NAME="ref_111_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_112_7">Length</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_113_7">Txt2</A></FONT> : chars_ptr; +- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT> +- <FONT COLOR=red><A NAME="ref_115_7">Return_Buffer</A></FONT> : <b>constant</b> t := (<b>others</b> =&gt; nul); ++ <span class="symbol"><A NAME="ref_111_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_112_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_113_7">Txt2</A></span> : chars_ptr; ++ <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><EM>-- does it need to be 1024?</EM></span> ++ <span class="symbol"><A NAME="ref_115_7">Return_Buffer</A></span> : <b>constant</b> t := (<b>others</b> =&gt; nul); + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_111_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_112_7">Length</A>); + <A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_111_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_115_7">Return_Buffer</A>)); +@@ -129,16 +141,16 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_127_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_127_25" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A></FONT> : String) <b>return</b> Boolean ++ <b>function</b> <span class="symbol"><A NAME="ref_127_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A></span> (<span class="symbol"><A NAME="ref_127_25" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A></span> : String) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_129_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_129_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">Id</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_130_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">buf</A></FONT> : char_array) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_129_16">tgetstr</A></span> (<span class="symbol"><A NAME="ref_129_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">Id</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">buf</A></span> : char_array) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, tgetstr, "tgetstr"); +- <FONT COLOR=red><A NAME="ref_132_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_133_7">Length</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_134_7">Txt2</A></FONT> : chars_ptr; +- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT> +- <FONT COLOR=red><A NAME="ref_136_7">Phony_Txt</A></FONT> : <b>constant</b> t := (<b>others</b> =&gt; nul); ++ <span class="symbol"><A NAME="ref_132_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_133_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_134_7">Txt2</A></span> : chars_ptr; ++ <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><EM>-- does it need to be 1024?</EM></span> ++ <span class="symbol"><A NAME="ref_136_7">Phony_Txt</A></span> : <b>constant</b> t := (<b>others</b> =&gt; nul); + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_132_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_133_7">Length</A>); + <A HREF="terminal_interface-curses-termcap__adb.htm#ref_134_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_132_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_136_7">Phony_Txt</A>)); +@@ -149,16 +161,16 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="ref_148_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_149_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_150_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Termcap_String <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">tgoto</A></FONT> (<FONT COLOR=red><A NAME="ref_151_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">cap</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_152_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_153_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_148_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A></span> (<span class="symbol"><A NAME="ref_148_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A></span> : String; ++ <span class="symbol"><A NAME="ref_149_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_150_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Termcap_String <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_151_16">tgoto</A></span> (<span class="symbol"><A NAME="ref_151_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">cap</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_152_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_153_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, tgoto); +- <FONT COLOR=red><A NAME="ref_155_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>'Length); +- <FONT COLOR=red><A NAME="ref_156_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_155_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>'Length); ++ <span class="symbol"><A NAME="ref_156_7">Length</A></span> : size_t; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_155_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_156_7">Length</A>); + <b>return</b> Termcap_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-termcap__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-termcap__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-termcap__ads.htm 2008-10-11 23:36:31.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-termcap__ads.htm 2014-09-01 16:33:22.297792024 +0200 +@@ -1,86 +1,98 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-termcap.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-termcap.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Termcap --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Termcap --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-termcap__adb.htm#ref_47_40">Termcap</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_42_35" HREF="terminal_interface-curses-termcap__adb.htm#ref_47_40">Termcap</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page curs_termcap.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented: tputs (see curs_terminfo)</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page curs_termcap.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not implemented: tputs (see curs_terminfo)</EM></span> + + <b>type</b> Termcap_String <b>is</b> <b>new</b> String; + +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="ref_53_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_20">Cap</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_54_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_55_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_150_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Termcap_String; +- <FONT COLOR=green><EM>-- AKA: tgoto()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_59_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="ref_59_24" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_24">Name</A></FONT> : String) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: tgetent()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_63_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_23">Name</A></FONT> : String) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: tgetflag()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_67_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_14">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_67_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_26">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_68_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_26">Value</A></FONT> : <b>out</b> Integer; +- <FONT COLOR=red><A NAME="ref_69_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_87_26">Result</A></FONT> : <b>out</b> Boolean); +- <FONT COLOR=green><EM>-- AKA: tgetnum()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_73_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_26">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_74_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_26">Value</A></FONT> : <b>out</b> String; +- <FONT COLOR=red><A NAME="ref_75_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_106_26">Result</A></FONT> : <b>out</b> Boolean); +- <b>function</b> <FONT COLOR=red><A NAME="ref_76_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_76_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_25">Name</A></FONT> : String) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- Returns True if the string is found.</EM></FONT> +- <FONT COLOR=green><EM>-- AKA: tgetstr()</EM></FONT> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_53_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_13">TGoto</A></span> (<span class="symbol"><A NAME="ref_53_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_20">Cap</A></span> : String; ++ <span class="symbol"><A NAME="ref_54_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_20">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_55_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_150_20">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Termcap_String; ++ <span class="comment"><EM>-- AKA: tgoto()</EM></span> ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_59_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_13">Get_Entry</A></span> (<span class="symbol"><A NAME="ref_59_24" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_24">Name</A></span> : String) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: tgetent()</EM></span> ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_63_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_23">Name</A></span> : String) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: tgetflag()</EM></span> ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_14">Get_Number</A></span> (<span class="symbol"><A NAME="ref_67_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_26">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_68_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_26">Value</A></span> : <b>out</b> Integer; ++ <span class="symbol"><A NAME="ref_69_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_87_26">Result</A></span> : <b>out</b> Boolean); ++ <span class="comment"><EM>-- AKA: tgetnum()</EM></span> ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_73_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_73_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_26">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_74_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_26">Value</A></span> : <b>out</b> String; ++ <span class="symbol"><A NAME="ref_75_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_106_26">Result</A></span> : <b>out</b> Boolean); ++ <b>function</b> <span class="symbol"><A NAME="ref_76_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_13">Get_String</A></span> (<span class="symbol"><A NAME="ref_76_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_25">Name</A></span> : String) <b>return</b> Boolean; ++ <span class="comment"><EM>-- Returns True if the string is found.</EM></span> ++ <span class="comment"><EM>-- AKA: tgetstr()</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-terminfo__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-terminfo__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-terminfo__adb.htm 2011-03-20 00:18:41.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-terminfo__adb.htm 2014-09-01 16:33:22.298792026 +0200 +@@ -1,62 +1,74 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-terminfo.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-terminfo.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Terminfo --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.6 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Terminfo --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.6 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; + <b>with</b> Ada.Unchecked_Conversion; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_48_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A></span> <b>is</b> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_34">P</A></FONT> : chars_ptr) <b>return</b> Boolean; ++ <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_13">Is_MinusOne_Pointer</A></span> (<span class="symbol"><A NAME="ref_50_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_34">P</A></span> : chars_ptr) <b>return</b> Boolean; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_52_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="ref_52_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A></FONT> : chars_ptr) <b>return</b> Boolean <b>is</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_53_12">Weird_Address</A></FONT> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; +- <FONT COLOR=red><A NAME="ref_54_7">Invalid_Pointer</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A> := -1; ++ <b>function</b> <span class="symbol"><A NAME="ref_52_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A></span> (<span class="symbol"><A NAME="ref_52_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A></span> : chars_ptr) <b>return</b> Boolean <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_53_12">Weird_Address</A></span> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address; ++ <span class="symbol"><A NAME="ref_54_7">Invalid_Pointer</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A> := -1; + <b>function</b> To_Weird <b>is</b> <b>new</b> Ada.Unchecked_Conversion + (Source =&gt; chars_ptr, Target =&gt; <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A>); + <b>begin</b> +@@ -68,89 +80,89 @@ + <b>end</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A>; + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A>); + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></FONT> : String) <b>return</b> Boolean ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></span> : String) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_69_16">tigetflag</A></span> (<span class="symbol"><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A>; + <b>pragma</b> Import (C, tigetflag); +- <FONT COLOR=red><A NAME="ref_71_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_72_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_71_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_72_7">Length</A></span> : size_t; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Length</A>); +- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1925_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b> + <b>return</b> True; + <b>else</b> + <b>return</b> False; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_83_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_84_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A></FONT> : <b>out</b> Terminfo_String; +- <FONT COLOR=red><A NAME="ref_85_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A></FONT> : <b>out</b> Boolean) ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_83_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_83_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_84_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A></span> : <b>out</b> Terminfo_String; ++ <span class="symbol"><A NAME="ref_85_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A></span> : <b>out</b> Boolean) + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_87_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_87_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">id</A></FONT> : char_array) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_87_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_87_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">id</A></span> : char_array) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, tigetstr, "tigetstr"); +- <FONT COLOR=red><A NAME="ref_89_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_90_7">Length</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_91_7">Txt2</A></FONT> : chars_ptr; ++ <span class="symbol"><A NAME="ref_89_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_90_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_91_7">Txt2</A></span> : chars_ptr; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_89_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Length</A>); + <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_89_7">Txt</A>); + <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A> = Null_Ptr <b>then</b> + <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := False; + <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> + <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A> := Terminfo_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>)); + <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := True; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_106_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A></FONT> : String) <b>return</b> Boolean ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_106_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A></span> (<span class="symbol"><A NAME="ref_106_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A></span> : String) <b>return</b> Boolean + <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">id</A></FONT> : char_array) <b>return</b> chars_ptr; ++ <b>function</b> <span class="symbol"><A NAME="ref_108_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_108_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">id</A></span> : char_array) <b>return</b> chars_ptr; + <b>pragma</b> Import (C, tigetstr, "tigetstr"); +- <FONT COLOR=red><A NAME="ref_110_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_111_7">Length</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_112_7">Txt2</A></FONT> : chars_ptr; ++ <span class="symbol"><A NAME="ref_110_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_111_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_112_7">Txt2</A></span> : chars_ptr; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_110_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Length</A>); + <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_110_7">Txt</A>); + <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A> = Null_Ptr <b>then</b> + <b>return</b> False; + <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A>) <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>else</b> + <b>return</b> True; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_126_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_126_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A></FONT> : String) <b>return</b> Integer <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_127_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_127_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_126_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A></span> (<span class="symbol"><A NAME="ref_126_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A></span> : String) <b>return</b> Integer <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_127_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_127_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">s</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, tigetstr); +- <FONT COLOR=red><A NAME="ref_129_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>'Length); +- <FONT COLOR=red><A NAME="ref_130_7">Length</A></FONT> : size_t; ++ <span class="symbol"><A NAME="ref_129_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>'Length); ++ <span class="symbol"><A NAME="ref_130_7">Length</A></span> : size_t; + <b>begin</b> + To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_129_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Length</A>); + <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_129_7">Txt</A>)); + <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A>; + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_137_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A></FONT> (<FONT COLOR=red><A NAME="ref_137_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A></FONT> : Terminfo_String; +- <FONT COLOR=red><A NAME="ref_138_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A></FONT> : Natural := 1; +- <FONT COLOR=red><A NAME="ref_139_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>) <b>is</b> +- <b>function</b> <FONT COLOR=red><A NAME="ref_140_16">tputs</A></FONT> (<FONT COLOR=red><A NAME="ref_140_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">str</A></FONT> : char_array; +- <FONT COLOR=red><A NAME="ref_141_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">affcnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <FONT COLOR=red><A NAME="ref_142_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_143_16">putp</A></FONT> (<FONT COLOR=red><A NAME="ref_143_22" HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_137_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A></span> (<span class="symbol"><A NAME="ref_137_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A></span> : Terminfo_String; ++ <span class="symbol"><A NAME="ref_138_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A></span> : Natural := 1; ++ <span class="symbol"><A NAME="ref_139_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>) <b>is</b> ++ <b>function</b> <span class="symbol"><A NAME="ref_140_16">tputs</A></span> (<span class="symbol"><A NAME="ref_140_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">str</A></span> : char_array; ++ <span class="symbol"><A NAME="ref_141_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">affcnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_142_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_143_16">putp</A></span> (<span class="symbol"><A NAME="ref_143_22" HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">str</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>pragma</b> Import (C, tputs); + <b>pragma</b> Import (C, putp); +- <FONT COLOR=red><A NAME="ref_146_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>'Length); +- <FONT COLOR=red><A NAME="ref_147_7">Length</A></FONT> : size_t; +- <FONT COLOR=red><A NAME="ref_148_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; ++ <span class="symbol"><A NAME="ref_146_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>'Length); ++ <span class="symbol"><A NAME="ref_147_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_148_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; + <b>begin</b> + To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Length</A>); + <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A> = <b>null</b> <b>then</b> +@@ -159,7 +171,7 @@ + <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A>); + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> +- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>; ++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_384_4">Curses_Exception</A>; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A>; + +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-terminfo__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-terminfo__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-terminfo__ads.htm 2011-02-26 00:43:50.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-terminfo__ads.htm 2014-09-01 16:33:22.298792026 +0200 +@@ -1,87 +1,99 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-terminfo.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-terminfo.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Terminfo --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Terminfo --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_48_40">Terminfo</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_48_40">Terminfo</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>); + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page curs_terminfo.3x</EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- Not implemented: setupterm, setterm, set_curterm, del_curterm,</EM></FONT> +- <FONT COLOR=green><EM>-- restartterm, tparm, putp, vidputs, vidattr,</EM></FONT> +- <FONT COLOR=green><EM>-- mvcur</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page curs_terminfo.3x</EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- Not implemented: setupterm, setterm, set_curterm, del_curterm,</EM></span> ++ <span class="comment"><EM>-- restartterm, tparm, putp, vidputs, vidattr,</EM></span> ++ <span class="comment"><EM>-- mvcur</EM></span> + + <b>type</b> Terminfo_String <b>is</b> <b>new</b> String; + +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_57_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_26">Name</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_58_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Value</A></FONT> : <b>out</b> Terminfo_String; +- <FONT COLOR=red><A NAME="ref_59_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Result</A></FONT> : <b>out</b> Boolean); +- <b>function</b> <FONT COLOR=red><A NAME="ref_60_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="ref_60_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_25">Name</A></FONT> : String) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: tigetstr()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_64_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_23">Name</A></FONT> : String) <b>return</b> Boolean; +- <FONT COLOR=green><EM>-- AKA: tigetflag()</EM></FONT> +- +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>function</b> <FONT COLOR=red><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_68_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_25">Name</A></FONT> : String) <b>return</b> Integer; +- <FONT COLOR=green><EM>-- AKA: tigetnum()</EM></FONT> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_57_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_26">Name</A></span> : String; ++ <span class="symbol"><A NAME="ref_58_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Value</A></span> : <b>out</b> Terminfo_String; ++ <span class="symbol"><A NAME="ref_59_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Result</A></span> : <b>out</b> Boolean); ++ <b>function</b> <span class="symbol"><A NAME="ref_60_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_13">Has_String</A></span> (<span class="symbol"><A NAME="ref_60_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_25">Name</A></span> : String) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: tigetstr()</EM></span> ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_64_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_23">Name</A></span> : String) <b>return</b> Boolean; ++ <span class="comment"><EM>-- AKA: tigetflag()</EM></span> ++ ++ <span class="comment"><EM>-- |</EM></span> ++ <b>function</b> <span class="symbol"><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_13">Get_Number</A></span> (<span class="symbol"><A NAME="ref_68_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_25">Name</A></span> : String) <b>return</b> Integer; ++ <span class="comment"><EM>-- AKA: tigetnum()</EM></span> + +- <b>type</b> <FONT COLOR=red><A NAME="ref_71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="ref_71_38">c</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int) +- <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int; ++ <b>type</b> <span class="symbol"><A NAME="ref_71_9">putctype</A></span> <b>is</b> <b>access</b> <b>function</b> (<span class="symbol"><A NAME="ref_71_38">c</A></span> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int) ++ <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>); + +- <FONT COLOR=green><EM>-- |</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_76_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_14">Put_String</A></FONT> (<FONT COLOR=red><A NAME="ref_76_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_26">Str</A></FONT> : Terminfo_String; +- <FONT COLOR=red><A NAME="ref_77_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_26">affcnt</A></FONT> : Natural := 1; +- <FONT COLOR=red><A NAME="ref_78_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_139_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>); +- <FONT COLOR=green><EM>-- AKA: tputs()</EM></FONT> ++ <span class="comment"><EM>-- |</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_14">Put_String</A></span> (<span class="symbol"><A NAME="ref_76_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_26">Str</A></span> : Terminfo_String; ++ <span class="symbol"><A NAME="ref_77_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_26">affcnt</A></span> : Natural := 1; ++ <span class="symbol"><A NAME="ref_78_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_139_26">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>); ++ <span class="comment"><EM>-- AKA: tputs()</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io__adb.htm 2011-03-26 22:54:30.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io__adb.htm 2014-09-01 16:33:22.304792036 +0200 +@@ -1,181 +1,193 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.20 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:38:49 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.20 @</EM></span> ++<span class="comment"><EM>-- @Date: 2011/03/22 23:38:49 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_42_40" HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_44_4">Default_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>; ++ <span class="symbol"><A NAME="ref_44_4">Default_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_46_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_46_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A>; + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_52_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_52_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> + <b>is</b> + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b> +- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>; ++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_477_13">Standard_Window</A>; + <b>else</b> + <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A>; + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>; + <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></span> (<span class="symbol"><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1047_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></span> + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A>; + +- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT> +- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT> +- +- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT> +- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT> +- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT> +- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT> +- +- <b>function</b> <FONT COLOR=red><A NAME="ref_84_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_84_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> +- <b>is</b> +- <FONT COLOR=red><A NAME="ref_86_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_87_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>); +- <FONT COLOR=green><EM>-- if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></FONT> +- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT> +- <FONT COLOR=green><EM>-- end if;</EM></FONT> ++ <span class="comment"><EM>--------------------------------------------</EM></span> ++ <span class="comment"><EM>-- Specification of line and page lengths --</EM></span> ++ <span class="comment"><EM>--------------------------------------------</EM></span> ++ ++ <span class="comment"><EM>-- There are no set routines in this package. I assume, that you allocate</EM></span> ++ <span class="comment"><EM>-- the window with an appropriate size.</EM></span> ++ <span class="comment"><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></span> ++ <span class="comment"><EM>-- i.e. it returns the conventional 0 as page length.</EM></span> ++ ++ <b>function</b> <span class="symbol"><A NAME="ref_84_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A></span> (<span class="symbol"><A NAME="ref_84_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> ++ <b>is</b> ++ <span class="symbol"><A NAME="ref_86_7">N_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_87_7">N_Cols</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <b>begin</b> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>); ++ <span class="comment"><EM>-- if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></span> ++ <span class="comment"><EM>-- raise Layout_Error;</EM></span> ++ <span class="comment"><EM>-- end if;</EM></span> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_96_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> + <b>is</b> + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_102_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A></span> (<span class="symbol"><A NAME="ref_102_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_104_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_105_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_104_7">N_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_105_7">N_Cols</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; + <b>begin</b> +- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b> ++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1023_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b> + <b>return</b> 0; + <b>else</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>); +- <FONT COLOR=green><EM>-- if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></FONT> +- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT> +- <FONT COLOR=green><EM>-- end if;</EM></FONT> ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>); ++ <span class="comment"><EM>-- if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></span> ++ <span class="comment"><EM>-- raise Layout_Error;</EM></span> ++ <span class="comment"><EM>-- end if;</EM></span> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>); + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_118_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_118_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> + <b>is</b> + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A>; + +- <FONT COLOR=green><EM>------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT> +- <FONT COLOR=green><EM>------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_127_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_127_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_127_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1) ++ <span class="comment"><EM>------------------------------------</EM></span> ++ <span class="comment"><EM>-- Column, Line, and Page Control --</EM></span> ++ <span class="comment"><EM>------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_127_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_127_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_127_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_129_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>); ++ <span class="symbol"><A NAME="ref_129_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>); + <b>begin</b> + <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A>'Valid <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; + +- <b>for</b> <FONT COLOR=red><A NAME="ref_135_11">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A> <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_135_11">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A> <b>loop</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> <b>then</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>); + <b>else</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF); ++ <A HREF="terminal_interface-curses__ads.htm#ref_529_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF); + <b>end</b> <b>if</b>; + <b>end</b> <b>loop</b>; + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_144_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_144_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_144_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></span> (<span class="symbol"><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) + <b>is</b> + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></span> + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_162_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_162_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_162_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_162_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_162_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_164_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_165_7">X1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_166_7">X2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_167_7">N</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_164_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_165_7">X1</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_166_7">X2</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_167_7">N</A></span> : Natural; + <b>begin</b> + <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A>'Valid <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; + +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>); + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> - 1; + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>); + <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b> +@@ -184,7 +196,7 @@ + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b> + <b>declare</b> +- <FONT COLOR=red><A NAME="ref_182_13">Filler</A></FONT> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A>) - 1)) ++ <span class="symbol"><A NAME="ref_182_13">Filler</A></span> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A>) - 1)) + := (<b>others</b> =&gt; ' '); + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_182_13">Filler</A>); +@@ -192,24 +204,24 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_190_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_190_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_190_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_196_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_196_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_196_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_196_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_196_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_196_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_198_7">Y1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_199_7">Y2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_200_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_201_7">N</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_198_7">Y1</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_199_7">Y2</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_200_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_201_7">N</A></span> : Natural; + <b>begin</b> + <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A>'Valid <b>then</b> + <b>raise</b> Constraint_Error; + <b>end</b> <b>if</b>; + +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>); + <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>); + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> - 1; + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>); +@@ -222,119 +234,119 @@ + <b>end</b> <b>if</b>; + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_220_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_220_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_220_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_220_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_226_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_226_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_226_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A></span> (<span class="symbol"><A NAME="ref_226_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_228_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_229_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_230_7">N</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_228_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_229_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_230_7">N</A></span> : Natural; + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">X</A>); + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A> + 1; +- <FONT COLOR=green><EM>-- if N &gt; Natural (Count'Last) then</EM></FONT> +- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT> +- <FONT COLOR=green><EM>-- end if;</EM></FONT> ++ <span class="comment"><EM>-- if N &gt; Natural (Count'Last) then</EM></span> ++ <span class="comment"><EM>-- raise Layout_Error;</EM></span> ++ <span class="comment"><EM>-- end if;</EM></span> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_240_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_240_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> + <b>is</b> + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_246_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_246_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_246_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A></span> (<span class="symbol"><A NAME="ref_246_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> + <b>is</b> +- <FONT COLOR=red><A NAME="ref_248_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_249_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_250_7">N</A></FONT> : Natural; ++ <span class="symbol"><A NAME="ref_248_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_249_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_250_7">N</A></span> : Natural; + <b>begin</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">X</A>); + <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A> + 1; +- <FONT COLOR=green><EM>-- if N &gt; Natural (Count'Last) then</EM></FONT> +- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT> +- <FONT COLOR=green><EM>-- end if;</EM></FONT> ++ <span class="comment"><EM>-- if N &gt; Natural (Count'Last) then</EM></span> ++ <span class="comment"><EM>-- raise Layout_Error;</EM></span> ++ <span class="comment"><EM>-- end if;</EM></span> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_260_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> ++ <b>function</b> <span class="symbol"><A NAME="ref_260_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> + <b>is</b> + <b>begin</b> + <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A>; + +- <FONT COLOR=green><EM>-----------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Characters Output --</EM></FONT> +- <FONT COLOR=green><EM>-----------------------</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_270_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_270_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_270_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A></FONT> : Character) +- <b>is</b> +- <FONT COLOR=red><A NAME="ref_272_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>); +- <FONT COLOR=red><A NAME="ref_273_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_274_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_275_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_276_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="comment"><EM>-----------------------</EM></span> ++ <span class="comment"><EM>-- Characters Output --</EM></span> ++ <span class="comment"><EM>-----------------------</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_270_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A></span> (<span class="symbol"><A NAME="ref_270_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_270_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A></span> : Character) ++ <b>is</b> ++ <span class="symbol"><A NAME="ref_272_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>); ++ <span class="symbol"><A NAME="ref_273_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_274_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_275_7">L</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_276_7">C</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">P_Size</A> &gt; 0 <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">X</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">C</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">C</A>); + <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">C</A> <b>then</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>); + <b>end</b> <b>if</b>; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_529_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_288_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_288_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></FONT> : Character) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_288_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></span> (<span class="symbol"><A NAME="ref_288_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></span> : Character) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A>; + +- <FONT COLOR=green><EM>--------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Strings-Output --</EM></FONT> +- <FONT COLOR=green><EM>--------------------</EM></FONT> +- +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_298_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_298_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_298_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A></FONT> : String) +- <b>is</b> +- <FONT COLOR=red><A NAME="ref_300_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>); +- <FONT COLOR=red><A NAME="ref_301_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_302_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; +- <FONT COLOR=red><A NAME="ref_303_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_304_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="comment"><EM>--------------------</EM></span> ++ <span class="comment"><EM>-- Strings-Output --</EM></span> ++ <span class="comment"><EM>--------------------</EM></span> ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_298_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A></span> (<span class="symbol"><A NAME="ref_298_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_298_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A></span> : String) ++ <b>is</b> ++ <span class="symbol"><A NAME="ref_300_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>); ++ <span class="symbol"><A NAME="ref_301_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_302_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_303_7">L</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_304_7">C</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">P_Size</A> &gt; 0 <b>then</b> +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">X</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">C</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">C</A>); + <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">C</A> <b>then</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>); + <b>end</b> <b>if</b>; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_654_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_316_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_316_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></FONT> : String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_316_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></span> (<span class="symbol"><A NAME="ref_316_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></span> : String) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_322_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_323_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_324_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A></FONT> : String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_322_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A></span> ++ (<span class="symbol"><A NAME="ref_323_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_324_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A></span> : String) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A>); + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A>, 1); + <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_331_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_332_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A></FONT> : String) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_331_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A></span> ++ (<span class="symbol"><A NAME="ref_332_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A></span> : String) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io__ads.htm 2011-03-26 22:54:30.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io__ads.htm 2014-09-01 16:33:22.304792036 +0200 +@@ -1,142 +1,154 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> Ada.IO_Exceptions; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-text_io__adb.htm#ref_42_40">Text_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-text_io__adb.htm#ref_42_40">Text_IO</A></span> <b>is</b> + + <b>use</b> <b>type</b> Ada.Text_IO.Count; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_47_12">Count</A></FONT> <b>is</b> Ada.Text_IO.Count; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">Positive_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>'Last; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_47_12">Count</A></span> <b>is</b> Ada.Text_IO.Count; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_48_12">Positive_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>'Last; + +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_50_12">Field</A></FONT> <b>is</b> Ada.Text_IO.Field; +- <b>subtype</b> <FONT COLOR=red><A NAME="ref_51_12">Number_Base</A></FONT> <b>is</b> Integer <b>range</b> 2 .. 16; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_50_12">Field</A></span> <b>is</b> Ada.Text_IO.Field; ++ <b>subtype</b> <span class="symbol"><A NAME="ref_51_12">Number_Base</A></span> <b>is</b> Integer <b>range</b> 2 .. 16; + +- <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_53_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_53_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_53_46">Mixed_Case</A></FONT>); ++ <b>type</b> <span class="symbol"><A NAME="ref_53_9">Type_Set</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_53_22">Lower_Case</A></span>, <span class="symbol"><A NAME="ref_53_34">Upper_Case</A></span>, <span class="symbol"><A NAME="ref_53_46">Mixed_Case</A></span>); + +- <FONT COLOR=green><EM>-- For most of the routines you will see a version without a Window</EM></FONT> +- <FONT COLOR=green><EM>-- type parameter. They will operate on a default window, which can</EM></FONT> +- <FONT COLOR=green><EM>-- be set by the user. It is initially equal to Standard_Window.</EM></FONT> ++ <span class="comment"><EM>-- For most of the routines you will see a version without a Window</EM></span> ++ <span class="comment"><EM>-- type parameter. They will operate on a default window, which can</EM></span> ++ <span class="comment"><EM>-- be set by the user. It is initially equal to Standard_Window.</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_59_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <FONT COLOR=green><EM>-- Set Win as the default window</EM></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_59_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <span class="comment"><EM>-- Set Win as the default window</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_52_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=green><EM>-- Get the current default window</EM></FONT> ++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_52_13">Get_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="comment"><EM>-- Get the current default window</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_65_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_65_21" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_69_14">Flush</A></FONT>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_65_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_14">Flush</A></span> (<span class="symbol"><A NAME="ref_65_21" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_69_14">Flush</A></span>; + +- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT> +- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT> ++ <span class="comment"><EM>--------------------------------------------</EM></span> ++ <span class="comment"><EM>-- Specification of line and page lengths --</EM></span> ++ <span class="comment"><EM>--------------------------------------------</EM></span> + +- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT> +- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT> +- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT> +- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT> ++ <span class="comment"><EM>-- There are no set routines in this package. I assume, that you allocate</EM></span> ++ <span class="comment"><EM>-- the window with an appropriate size.</EM></span> ++ <span class="comment"><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></span> ++ <span class="comment"><EM>-- i.e. it returns the conventional 0 as page length.</EM></span> + +- <b>function</b> <FONT COLOR=red><A NAME="ref_77_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_77_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_78_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_96_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_77_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_13">Line_Length</A></span> (<span class="symbol"><A NAME="ref_77_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_78_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_96_13">Line_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_80_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_118_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_13">Page_Length</A></span> (<span class="symbol"><A NAME="ref_80_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_81_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_118_13">Page_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>; + +- <FONT COLOR=green><EM>------------------------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT> +- <FONT COLOR=green><EM>------------------------------------</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_86_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_86_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_86_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_38">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_87_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_24">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1); ++ <span class="comment"><EM>------------------------------------</EM></span> ++ <span class="comment"><EM>-- Column, Line, and Page Control --</EM></span> ++ <span class="comment"><EM>------------------------------------</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_86_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_86_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_86_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_38">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_87_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_87_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_24">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_89_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_89_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_156_14">New_Page</A></FONT>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_89_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_14">New_Page</A></span> (<span class="symbol"><A NAME="ref_89_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_90_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_156_14">New_Page</A></span>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_92_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_92_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_23">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_92_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_92_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_92_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_93_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_93_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_23">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_95_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_95_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_95_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_24">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_95_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_95_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_95_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_96_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_24">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>); + +- <b>function</b> <FONT COLOR=red><A NAME="ref_98_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_98_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_18">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_99_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_240_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_98_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_13">Col</A></span> (<span class="symbol"><A NAME="ref_98_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_18">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_99_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_240_13">Col</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; + +- <b>function</b> <FONT COLOR=red><A NAME="ref_101_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_101_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; +- <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_260_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_101_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_13">Line</A></span> (<span class="symbol"><A NAME="ref_101_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; ++ <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_260_13">Line</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>; + +- <FONT COLOR=green><EM>-----------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Characters-Output --</EM></FONT> +- <FONT COLOR=green><EM>-----------------------</EM></FONT> ++ <span class="comment"><EM>-----------------------</EM></span> ++ <span class="comment"><EM>-- Characters-Output --</EM></span> ++ <span class="comment"><EM>-----------------------</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_108_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_108_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_108_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_34">Item</A></FONT> : Character); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_19">Item</A></FONT> : Character); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_108_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_14">Put</A></span> (<span class="symbol"><A NAME="ref_108_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_108_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_34">Item</A></span> : Character); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_14">Put</A></span> (<span class="symbol"><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_19">Item</A></span> : Character); + +- <FONT COLOR=green><EM>--------------------</EM></FONT> +- <FONT COLOR=green><EM>-- Strings-Output --</EM></FONT> +- <FONT COLOR=green><EM>--------------------</EM></FONT> ++ <span class="comment"><EM>--------------------</EM></span> ++ <span class="comment"><EM>-- Strings-Output --</EM></span> ++ <span class="comment"><EM>--------------------</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_115_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_115_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_115_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_34">Item</A></FONT> : String); +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_19">Item</A></FONT> : String); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_115_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_14">Put</A></span> (<span class="symbol"><A NAME="ref_115_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="symbol"><A NAME="ref_115_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_34">Item</A></span> : String); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_14">Put</A></span> (<span class="symbol"><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_19">Item</A></span> : String); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_118_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_322_14">Put_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_119_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_323_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_120_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_324_7">Item</A></FONT> : String); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_118_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_322_14">Put_Line</A></span> ++ (<span class="symbol"><A NAME="ref_119_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_323_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_120_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_324_7">Item</A></span> : String); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_122_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_331_14">Put_Line</A></FONT> +- (<FONT COLOR=red><A NAME="ref_123_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_332_7">Item</A></FONT> : String); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_122_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_331_14">Put_Line</A></span> ++ (<span class="symbol"><A NAME="ref_123_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_332_7">Item</A></span> : String); + +- <FONT COLOR=green><EM>-- Exceptions</EM></FONT> ++ <span class="comment"><EM>-- Exceptions</EM></span> + +- <FONT COLOR=red><A NAME="ref_127_4">Status_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error; +- <FONT COLOR=red><A NAME="ref_128_4">Mode_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error; +- <FONT COLOR=red><A NAME="ref_129_4">Name_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error; +- <FONT COLOR=red><A NAME="ref_130_4">Use_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error; +- <FONT COLOR=red><A NAME="ref_131_4">Device_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error; +- <FONT COLOR=red><A NAME="ref_132_4">End_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error; +- <FONT COLOR=red><A NAME="ref_133_4">Data_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error; +- <FONT COLOR=red><A NAME="ref_134_4">Layout_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error; ++ <span class="symbol"><A NAME="ref_127_4">Status_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error; ++ <span class="symbol"><A NAME="ref_128_4">Mode_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error; ++ <span class="symbol"><A NAME="ref_129_4">Name_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error; ++ <span class="symbol"><A NAME="ref_130_4">Use_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error; ++ <span class="symbol"><A NAME="ref_131_4">Device_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error; ++ <span class="symbol"><A NAME="ref_132_4">End_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error; ++ <span class="symbol"><A NAME="ref_133_4">Data_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error; ++ <span class="symbol"><A NAME="ref_134_4">Layout_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm 2011-03-20 00:18:41.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm 2014-09-01 16:33:22.299792028 +0200 +@@ -1,69 +1,81 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-aux.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_42_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A></FONT> <b>is</b> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_42_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A></FONT> +- (<FONT COLOR=red><A NAME="ref_45_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A></FONT> : String; +- <FONT COLOR=red><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; +- <FONT COLOR=red><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A></FONT> : Boolean := True; +- <FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A></FONT> : Boolean := False) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_44_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A></span> ++ (<span class="symbol"><A NAME="ref_45_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A></span> : String; ++ <span class="symbol"><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; ++ <span class="symbol"><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A></span> : Boolean := True; ++ <span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A></span> : Boolean := False) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_51_7">L</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; +- <FONT COLOR=red><A NAME="ref_52_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; +- <FONT COLOR=red><A NAME="ref_53_7">W</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A>; +- <FONT COLOR=red><A NAME="ref_54_7">LC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; +- <FONT COLOR=red><A NAME="ref_55_7">CC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; +- <FONT COLOR=red><A NAME="ref_56_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; +- <FONT COLOR=red><A NAME="ref_57_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; ++ <span class="symbol"><A NAME="ref_51_7">L</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; ++ <span class="symbol"><A NAME="ref_52_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; ++ <span class="symbol"><A NAME="ref_53_7">W</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A>; ++ <span class="symbol"><A NAME="ref_54_7">LC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>; ++ <span class="symbol"><A NAME="ref_55_7">CC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>; ++ <span class="symbol"><A NAME="ref_56_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>; ++ <span class="symbol"><A NAME="ref_57_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_59_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_59_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_17">Output</A></span> (<span class="symbol"><A NAME="ref_59_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_25">From</A></span>, <span class="symbol"><A NAME="ref_59_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_31">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_61_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_61_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A></span> (<span class="symbol"><A NAME="ref_61_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_25">From</A></span>, <span class="symbol"><A NAME="ref_61_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_31">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>) + <b>is</b> + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &gt; 0 <b>then</b> +@@ -71,12 +83,12 @@ + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>; + <b>end</b> <b>if</b>; + <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> <b>then</b> +- <FONT COLOR=green><EM>-- LRM A10.6 (7) says this</EM></FONT> ++ <span class="comment"><EM>-- LRM A10.6 (7) says this</EM></span> + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>; + <b>end</b> <b>if</b>; + + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A>); +- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>); + <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A> <b>then</b> + <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_134_4">Layout_Error</A>; +@@ -86,20 +98,20 @@ + <b>else</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A> <b>then</b> + <b>declare</b> +- <FONT COLOR=red><A NAME="ref_84_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) ++ <span class="symbol"><A NAME="ref_84_22">Filler</A></span> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) + := (<b>others</b> =&gt; ' '); + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_84_22">Filler</A>); + <b>end</b>; + <b>end</b> <b>if</b>; +- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>); ++ <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>); + <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>); + <b>end</b> <b>if</b>; + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_31">To</A>)); + <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A> <b>then</b> + <b>declare</b> +- <FONT COLOR=red><A NAME="ref_97_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) ++ <span class="symbol"><A NAME="ref_97_22">Filler</A></span> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) + := (<b>others</b> =&gt; ' '); + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_97_22">Filler</A>); +@@ -113,15 +125,15 @@ + <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>); + <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A> <b>then</b> + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := 1; +- <b>for</b> <FONT COLOR=red><A NAME="ref_111_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_111_14">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b> + <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A>) = ' '; + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> + 1; + <b>end</b> <b>loop</b>; + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> - 1; + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>); +- <b>else</b> <FONT COLOR=green><EM>-- input buffer is not left justified</EM></FONT> ++ <b>else</b> <span class="comment"><EM>-- input buffer is not left justified</EM></span> + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length; +- <b>for</b> <FONT COLOR=red><A NAME="ref_119_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b> ++ <b>for</b> <span class="symbol"><A NAME="ref_119_14">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b> + <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A>) = ' '; + <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> - 1; + <b>end</b> <b>loop</b>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm 2014-09-01 16:33:22.299792028 +0200 +@@ -1,61 +1,73 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-aux.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT> +-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_42_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_42_48">Aux</A></FONT> <b>is</b> +- <FONT COLOR=green><EM>-- pragma Preelaborate (Aux);</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span> ++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_42_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_42_48">Aux</A></span> <b>is</b> ++ <span class="comment"><EM>-- pragma Preelaborate (Aux);</EM></span> + +- <FONT COLOR=green><EM>-- This routine is called from the Text_IO output routines for numeric</EM></FONT> +- <FONT COLOR=green><EM>-- and enumeration types.</EM></FONT> +- <FONT COLOR=green><EM>--</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_44_14">Put_Buf</A></FONT> +- (<FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=green><EM>-- The output window</EM></FONT> +- <FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Buf</A></FONT> : String; <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT> +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; <FONT COLOR=green><EM>-- The width of the output field</EM></FONT> +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Signal</A></FONT> : Boolean := True; <FONT COLOR=green><EM>-- If true, we raise Layout_Error</EM></FONT> +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_49_7">Ljust</A></FONT> : Boolean := False); <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT> ++ <span class="comment"><EM>-- This routine is called from the Text_IO output routines for numeric</EM></span> ++ <span class="comment"><EM>-- and enumeration types.</EM></span> ++ <span class="comment"><EM>--</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_44_14">Put_Buf</A></span> ++ (<span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <span class="comment"><EM>-- The output window</EM></span> ++ <span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Buf</A></span> : String; <span class="comment"><EM>-- The buffer containing the text</EM></span> ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; <span class="comment"><EM>-- The width of the output field</EM></span> ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Signal</A></span> : Boolean := True; <span class="comment"><EM>-- If true, we raise Layout_Error</EM></span> ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_49_7">Ljust</A></span> : Boolean := False); <span class="comment"><EM>-- The Buf is left justified</EM></span> + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm 2014-09-01 16:33:22.299792028 +0200 +@@ -1,61 +1,73 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_43_48" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_43_48" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A></span> <b>is</b> + + <b>package</b> FIO <b>is</b> <b>new</b> + <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A> (Complex_Types.Real'Base); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + Item : Complex; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>) ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, '('); +@@ -65,11 +77,11 @@ + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, ')'); + <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A></span> + (Item : Complex; +- <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>) ++ <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, Item, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm 2014-09-01 16:33:22.299792028 +0200 +@@ -1,73 +1,85 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Numerics.Generic_Complex_Types; + + <b>generic</b> + <b>with</b> <b>package</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_Types</A> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (&lt;&gt;); + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_46_43" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_43_48">Complex_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_46_43" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_43_48">Complex_IO</A></span> <b>is</b> + + <b>use</b> Complex_Types; + +- <FONT COLOR=red><A NAME="ref_50_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2; +- <FONT COLOR=red><A NAME="ref_51_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := Real'<b>Digits</b> - 1; +- <FONT COLOR=red><A NAME="ref_52_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3; ++ <span class="symbol"><A NAME="ref_50_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2; ++ <span class="symbol"><A NAME="ref_51_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := Real'<b>Digits</b> - 1; ++ <span class="symbol"><A NAME="ref_52_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_48_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_48_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; + <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Item</A> : Complex; +- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_51_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>); ++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_51_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_63_14">Put</A></FONT> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_63_14">Put</A></span> + (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Item</A> : Complex; +- <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_65_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>); ++ <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_65_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm 2014-09-01 16:33:22.300792030 +0200 +@@ -1,65 +1,77 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; ++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + <b>package</b> DIO <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); +- <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>; ++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); ++ <span class="symbol"><A NAME="ref_57_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A> &gt; 0 <b>then</b> + <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A>; +@@ -68,11 +80,11 @@ + <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A>, False); + <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm 2014-09-01 16:33:22.300792030 +0200 +@@ -1,69 +1,81 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;; ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_44_48">Decimal_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_44_48">Decimal_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Fore; +- <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Aft; +- <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0; ++ <span class="symbol"><A NAME="ref_46_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Fore; ++ <span class="symbol"><A NAME="ref_47_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Aft; ++ <span class="symbol"><A NAME="ref_48_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_66_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_66_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm 2014-09-01 16:33:22.300792030 +0200 +@@ -1,65 +1,77 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; ++ <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + <b>package</b> EIO <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); +- <FONT COLOR=red><A NAME="ref_57_7">Tset</A></FONT> : Ada.Text_IO.Type_Set; ++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); ++ <span class="symbol"><A NAME="ref_57_7">Tset</A></span> : Ada.Text_IO.Type_Set; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A> <b>then</b> + <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A>)); +@@ -73,10 +85,10 @@ + <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A>, True, True); + <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_71_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_72_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; +- <FONT COLOR=red><A NAME="ref_73_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_74_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_71_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_72_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; ++ <span class="symbol"><A NAME="ref_73_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_74_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm 2014-09-01 16:33:22.301792031 +0200 +@@ -1,66 +1,78 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enum</A></FONT> <b>is</b> (&lt;&gt;); ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enum</A></span> <b>is</b> (&lt;&gt;); + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_45_48">Enumeration_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_45_48">Enumeration_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0; +- <FONT COLOR=red><A NAME="ref_47_4">Default_Setting</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A>; ++ <span class="symbol"><A NAME="ref_46_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0; ++ <span class="symbol"><A NAME="ref_47_4">Default_Setting</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_50_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_50_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_71_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; +- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_71_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>; ++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm 2014-09-01 16:33:22.301792031 +0200 +@@ -1,65 +1,77 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; ++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + <b>package</b> FIXIO <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); +- <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>; ++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); ++ <span class="symbol"><A NAME="ref_57_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A> &gt; 0 <b>then</b> + <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A>; +@@ -68,11 +80,11 @@ + <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A>, False); + <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A>; +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm 2014-09-01 16:33:22.301792031 +0200 +@@ -1,69 +1,81 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt;; ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>delta</b> &lt;&gt;; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_44_48">Fixed_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_44_48">Fixed_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Fore; +- <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Aft; +- <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0; ++ <span class="symbol"><A NAME="ref_46_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Fore; ++ <span class="symbol"><A NAME="ref_47_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Aft; ++ <span class="symbol"><A NAME="ref_48_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_66_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_66_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm 2014-09-01 16:33:22.302792033 +0200 +@@ -1,65 +1,77 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; ++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + <b>package</b> FIO <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); +- <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>; ++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); ++ <span class="symbol"><A NAME="ref_57_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>; + <b>begin</b> + <b>if</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A> &gt; 0 <b>then</b> + <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A>; +@@ -68,11 +80,11 @@ + <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A>, False); + <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm 2014-09-01 16:33:22.302792033 +0200 +@@ -1,69 +1,81 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>digits</b> &lt;&gt;; ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>digits</b> &lt;&gt;; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_44_48">Float_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_44_48">Float_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2; +- <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>'<b>Digits</b> - 1; +- <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3; ++ <span class="symbol"><A NAME="ref_46_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2; ++ <span class="symbol"><A NAME="ref_47_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>'<b>Digits</b> - 1; ++ <span class="symbol"><A NAME="ref_48_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_66_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; +- <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; +- <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_66_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>; ++ <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>; ++ <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm 2014-09-01 16:33:22.302792033 +0200 +@@ -1,72 +1,84 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; ++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + <b>package</b> IIO <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); ++ <span class="symbol"><A NAME="ref_55_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); + <b>begin</b> + IIO.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A>); + <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm 2014-09-01 16:33:22.302792033 +0200 +@@ -1,66 +1,78 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>range</b> &lt;&gt;; ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>range</b> &lt;&gt;; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_44_48">Integer_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_44_48">Integer_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>'Width; +- <FONT COLOR=red><A NAME="ref_47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10; ++ <span class="symbol"><A NAME="ref_46_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>'Width; ++ <span class="symbol"><A NAME="ref_47_4">Default_Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_61_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_61_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm 2014-09-01 16:33:22.303792034 +0200 +@@ -1,72 +1,84 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>with</b> Ada.Text_IO; + <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A></span> <b>is</b> + +- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; ++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>; + <b>package</b> MIO <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>) + <b>is</b> +- <FONT COLOR=red><A NAME="ref_55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); ++ <span class="symbol"><A NAME="ref_55_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last); + <b>begin</b> + MIO.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A>); + <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A>); + <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A>; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>) ++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>) + <b>is</b> + <b>begin</b> + <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A>); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm 2010-01-09 21:31:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm 2014-09-01 16:33:22.303792034 +0200 +@@ -1,66 +1,78 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + <b>generic</b> +- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>mod</b> &lt;&gt;; ++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>mod</b> &lt;&gt;; + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_44_48">Modular_IO</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_44_48">Modular_IO</A></span> <b>is</b> + +- <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>'Width; +- <FONT COLOR=red><A NAME="ref_47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10; ++ <span class="symbol"><A NAME="ref_46_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>'Width; ++ <span class="symbol"><A NAME="ref_47_4">Default_Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10; + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_49_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; +- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_49_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; ++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>); + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_61_14">Put</A></FONT> +- (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; +- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; +- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_61_14">Put</A></span> ++ (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>; ++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>; ++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>); + + <b>private</b> + <b>pragma</b> Inline (Put); +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-trace__adb.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-trace__adb.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-trace__adb.htm 2011-03-20 00:18:42.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-trace__adb.htm 2014-09-01 16:33:22.305792038 +0200 +@@ -1,62 +1,95 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-trace.adb</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-trace.adb</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Trace --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000-2004,2009 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.7 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Trace --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- B O D Y --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000-2004,2009 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.7 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; ++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; ++<b>with</b> Ada.Unchecked_Conversion; + +-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></FONT> <b>is</b> ++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_45_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></span> <b>is</b> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_44_24" HREF="terminal_interface-curses-trace__ads.htm#ref_106_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b> +- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-trace__ads.htm#ref_106_24">x</A>); ++ <b>type</b> <span class="symbol"><A NAME="ref_47_9">C_TraceType</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_59_12">C_UInt</A>; ++ ++ <b>function</b> TraceAda_To_TraceC <b>is</b> <b>new</b> ++ Ada.Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>, ++ Target =&gt; <A HREF="terminal_interface-curses-trace__adb.htm#ref_47_9">C_TraceType</A>); ++ ++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-trace__ads.htm#ref_105_14">Trace_On</A></span> (<span class="symbol"><A NAME="ref_53_24" HREF="terminal_interface-curses-trace__ads.htm#ref_105_24">x</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_54_17">traceC</A></span> (<span class="symbol"><A NAME="ref_54_25" HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">y</A></span> : <A HREF="terminal_interface-curses-trace__adb.htm#ref_47_9">C_TraceType</A>); ++ <b>pragma</b> Import (C, traceC, "trace"); + <b>begin</b> +- <b>null</b>; +- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_On</A>; ++ <A HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">traceC</A> (TraceAda_To_TraceC (<A HREF="terminal_interface-curses-trace__ads.htm#ref_105_24">x</A>)); ++ <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_105_14">Trace_On</A>; ++ ++ <span class="comment"><EM>-- 75. (12) A C function that takes a variable number of arguments can</EM></span> ++ <span class="comment"><EM>-- correspond to several Ada subprograms, taking various specific</EM></span> ++ <span class="comment"><EM>-- numbers and types of parameters.</EM></span> + +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-trace__ads.htm#ref_110_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_50_25" HREF="terminal_interface-curses-trace__ads.htm#ref_110_25">str</A></FONT> : String) <b>is</b> +- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-trace__ads.htm#ref_110_25">str</A>); ++ <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-trace__ads.htm#ref_109_14">Trace_Put</A></span> (<span class="symbol"><A NAME="ref_64_25" HREF="terminal_interface-curses-trace__ads.htm#ref_109_25">str</A></span> : String) <b>is</b> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_65_17">tracef</A></span> (<span class="symbol"><A NAME="ref_65_25" HREF="terminal_interface-curses-trace__adb.htm#ref_65_17">format</A></span> : char_array; <span class="symbol"><A NAME="ref_65_46" HREF="terminal_interface-curses-trace__adb.htm#ref_65_17">s</A></span> : char_array); ++ <b>pragma</b> Import (C, tracef, "_traces"); ++ <span class="symbol"><A NAME="ref_67_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-trace__ads.htm#ref_109_25">str</A>'Length); ++ <span class="symbol"><A NAME="ref_68_7">Length</A></span> : size_t; ++ <span class="symbol"><A NAME="ref_69_7">formatstr</A></span> : <b>constant</b> String := "%s" &amp; ASCII.NUL; ++ <span class="symbol"><A NAME="ref_70_7">formattxt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-trace__adb.htm#ref_69_7">formatstr</A>'Length); + <b>begin</b> +- <b>null</b>; +- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_110_14">Trace_Put</A>; ++ To_C (<A HREF="terminal_interface-curses-trace__adb.htm#ref_69_7">formatstr</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_70_7">formattxt</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_68_7">Length</A>); ++ To_C (<A HREF="terminal_interface-curses-trace__ads.htm#ref_109_25">str</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_67_7">Txt</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_68_7">Length</A>); ++ <A HREF="terminal_interface-curses-trace__adb.htm#ref_65_17">tracef</A> (<A HREF="terminal_interface-curses-trace__adb.htm#ref_70_7">formattxt</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_67_7">Txt</A>); ++ <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_109_14">Trace_Put</A>; + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/ada/terminal_interface-curses-trace__ads.htm ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-trace__ads.htm +--- ncurses-5.9/doc/html/ada/terminal_interface-curses-trace__ads.htm 2011-03-20 00:18:42.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ada/terminal_interface-curses-trace__ads.htm 2014-09-01 16:33:22.305792038 +0200 +@@ -1,69 +1,80 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<HTML><HEAD><TITLE>terminal_interface-curses-trace.ads</TITLE></HEAD> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<HTML> ++<HEAD> ++<TITLE>terminal_interface-curses-trace.ads</TITLE> ++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ++<style type="text/css"> ++*.comment { ++ color: green; ++} ++*.symbol { ++ color: red; ++} ++</style> ++</HEAD> + <BODY> +-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR> ++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR> + <PRE> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Trace --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- S P E C --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT> +-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT> +-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT> +-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT> +-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT> +-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT> +-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT> +-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT> +-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT> +-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT> +-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT> +-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT> +-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT> +-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT> +-<FONT COLOR=green><EM>-- --</EM></FONT> +-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT> +-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT> +-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT> +-<FONT COLOR=green><EM>-- authorization. --</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> +-<FONT COLOR=green><EM>-- Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</EM></FONT> +-<FONT COLOR=green><EM>-- Version Control:</EM></FONT> +-<FONT COLOR=green><EM>-- @Revision: 1.1 @</EM></FONT> +-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT> +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Terminal_Interface.Curses.Trace --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- S P E C --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span> ++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span> ++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span> ++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span> ++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span> ++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span> ++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span> ++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span> ++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span> ++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span> ++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span> ++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span> ++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span> ++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span> ++<span class="comment"><EM>-- --</EM></span> ++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span> ++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span> ++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span> ++<span class="comment"><EM>-- authorization. --</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> ++<span class="comment"><EM>-- Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</EM></span> ++<span class="comment"><EM>-- Version Control:</EM></span> ++<span class="comment"><EM>-- @Revision: 1.1 @</EM></span> ++<span class="comment"><EM>-- Binding Version 01.00</EM></span> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_42_40">Trace</A></FONT> <b>is</b> ++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<span class="symbol"><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_45_40">Trace</A></span> <b>is</b> + <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>); + + <b>pragma</b> Warnings (Off); +- <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Trace_Attribute_Set</A></FONT> <b>is</b> ++ <b>type</b> <span class="symbol"><A NAME="ref_46_9">Trace_Attribute_Set</A></span> <b>is</b> + <b>record</b> +- <FONT COLOR=red><A NAME="ref_48_10">Times</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_49_10">Tputs</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_50_10">Update</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_51_10">Cursor_Move</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_52_10">Character_Output</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_53_10">Calls</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_54_10">Virtual_Puts</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_55_10">Input_Events</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_56_10">TTY_State</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_57_10">Internal_Calls</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_58_10">Character_Calls</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_59_10">Termcap_TermInfo</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_60_10">Attributes_And_Colors</A></FONT> : Boolean; +- <FONT COLOR=red><A NAME="ref_61_10">Unused</A></FONT> : Boolean; ++ <span class="symbol"><A NAME="ref_48_10">Times</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_49_10">Tputs</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_50_10">Update</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_51_10">Cursor_Move</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_52_10">Character_Output</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_53_10">Calls</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_54_10">Virtual_Puts</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_55_10">Input_Events</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_56_10">TTY_State</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_57_10">Internal_Calls</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_58_10">Character_Calls</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_59_10">Termcap_TermInfo</A></span> : Boolean; ++ <span class="symbol"><A NAME="ref_60_10">Attributes_And_Colors</A></span> : Boolean; + <b>end</b> <b>record</b>; + <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>); + +@@ -82,41 +93,41 @@ + <A HREF="terminal_interface-curses-trace__ads.htm#ref_58_10">Character_Calls</A> <b>at</b> 0 <b>range</b> 10 .. 10; + <A HREF="terminal_interface-curses-trace__ads.htm#ref_59_10">Termcap_TermInfo</A> <b>at</b> 0 <b>range</b> 11 .. 11; + <A HREF="terminal_interface-curses-trace__ads.htm#ref_60_10">Attributes_And_Colors</A> <b>at</b> 0 <b>range</b> 12 .. 12; +- <A HREF="terminal_interface-curses-trace__ads.htm#ref_61_10">Unused</A> <b>at</b> 0 <b>range</b> 13 .. 31; + <b>end</b> <b>record</b>; +- <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>'Size <b>use</b> 32; +- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT> +- <FONT COLOR=green><EM>-- different on your system.</EM></FONT> ++ <b>pragma</b> Warnings (Off); <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>'Size <b>use</b> 32; ++ <b>pragma</b> Warnings (On); ++ <span class="comment"><EM>-- Please note: this rep. clause is generated and may be</EM></span> ++ <span class="comment"><EM>-- different on your system.</EM></span> + + <b>pragma</b> Warnings (On); + +- <FONT COLOR=red><A NAME="ref_88_4">Trace_Disable</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False); ++ <span class="symbol"><A NAME="ref_87_4">Trace_Disable</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False); + +- <FONT COLOR=red><A NAME="ref_90_4">Trace_Ordinary</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := ++ <span class="symbol"><A NAME="ref_89_4">Trace_Ordinary</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := + (<A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A> =&gt; True, + <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A> =&gt; True, + <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A> =&gt; True, + <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A> =&gt; True, + <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> =&gt; True, + <b>others</b> =&gt; False); +- <FONT COLOR=red><A NAME="ref_97_4">Trace_Maximum</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True); ++ <span class="symbol"><A NAME="ref_96_4">Trace_Maximum</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True); + +-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT> ++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span> + +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> +- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT> +- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> ++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></span> ++ <span class="comment"><EM>-- |=====================================================================</EM></span> + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-trace__adb.htm#ref_44_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_106_24" HREF="terminal_interface-curses-trace__adb.htm#ref_44_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>); +- <FONT COLOR=green><EM>-- The debugging library has trace.</EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_105_14" HREF="terminal_interface-curses-trace__adb.htm#ref_53_14">Trace_On</A></span> (<span class="symbol"><A NAME="ref_105_24" HREF="terminal_interface-curses-trace__adb.htm#ref_53_24">x</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>); ++ <span class="comment"><EM>-- The debugging library has trace.</EM></span> + +- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT> +- <b>procedure</b> <FONT COLOR=red><A NAME="ref_110_14" HREF="terminal_interface-curses-trace__adb.htm#ref_50_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_110_25" HREF="terminal_interface-curses-trace__adb.htm#ref_50_25">str</A></FONT> : String); +- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></FONT> ++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span> ++ <b>procedure</b> <span class="symbol"><A NAME="ref_109_14" HREF="terminal_interface-curses-trace__adb.htm#ref_64_14">Trace_Put</A></span> (<span class="symbol"><A NAME="ref_109_25" HREF="terminal_interface-curses-trace__adb.htm#ref_64_25">str</A></span> : String); ++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></span> + +- <FONT COLOR=red><A NAME="ref_113_4">Current_Trace_Setting</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>; +- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_113_4">Current_Trace_Setting</A>, "_nc_tracing"); ++ <span class="symbol"><A NAME="ref_112_4">Current_Trace_Setting</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>; ++ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_112_4">Current_Trace_Setting</A>, "_nc_tracing"); + + <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>; + </PRE></BODY></HTML> +diff -Naur ncurses-5.9/doc/html/Ada95.html ncurses-5.9.patch/doc/html/Ada95.html +--- ncurses-5.9/doc/html/Ada95.html 2010-12-04 17:42:54.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/Ada95.html 2014-09-01 16:33:22.259791961 +0200 +@@ -1,8 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + <!-- +- $Id: Ada95.html,v 1.8 2010/12/04 16:42:54 tom Exp $ ++ $Id: Ada95.html,v 1.14 2013/05/18 21:34:34 tom Exp $ + **************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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,156 +28,316 @@ + * authorization. * + **************************************************************************** + --> +-<HTML> +-<HEAD> +-<TITLE>Ada95 Binding for ncurses</Title> +-<link rev=made href="mailto:bug-ncurses@gnu.org"> +-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +-</HEAD> +-<BODY> +-<H1>Ada95 Binding for ncurses</H1> +-by J&uuml;rgen Pfeifer. +- +-<HR SIZE=3 NOSHADE> +-<H2>General Remarks</H2> +-<UL> +-<LI>This document describes Version 01.00 of the binding.</LI> +-<LI>The functionality is modeled to be compatible with the ncurses +-package, a clone of the SVr4 curses model.<BR> +-I did the development on an Intel box running the latest stable release of +-<A HREF="http://www.linux.org">Linux</A>, ncurses and the most recent released +-<A HREF="http://www.gnat.com">GNU Ada Translator</A> +-gnat versions. For any older versions of ncurses and gnat +-it is not guaranteed to work.</LI> +-<LI>You must have the m4 macroprocessor to build this package. +-If you don't have this program, you can get the FSF version +-<A HREF="ftp://ftp.gnu.org/pub/gnu/">here</A>.</LI> +-<LI>Ada programs are supposed to be readable. One of my +-favorite methods to make code readable is to use expressive +-names for the identifiers. You can find a list of a mapping +-of the cryptic curses names to the Ada names in this <A HREF="ada/table.html">table</A>.</LI> +-<LI>This is not a typical one-to-one interface mapping. It is +-close to one-to-one on the functional level. Each (n)curses function +-has it's counterpart with a more or less similar formal parameter list +-in the binding. It is not one-to-one with respect to the datatypes. +-I tried to make records out of the flat chtype and similar structures, +-so you don't have to do bit operations to mark an attributed character +-as bold. Just make the boolean member <STRONG>bold</STRONG> of the record +-true. The binding also hides the structures like WINDOW, PANEL, MENU, FORM +-etc. ! It's a pure functional API.</LI> +-<LI>I try to do as much error checking as possible and feasible +-in the binding. I will raise an Ada exception when something +-went wrong in the low-level curses. This has the effect that - at least +-first time in my life - (n)curses programs have now a very rigid error +-checking, but - thanks to Ada - you don't have to code the orgiastic +-error checking style of C.</LI> +-<LI>Support for wide characters is currently not in the binding, as it +-is not really in ncurses at this point in time.</LI> +-</UL> +- +-<H2>Limitations</H2> +-<UL> +-<LI>I provide no SCREEN datatype and functions to set a new screen. +-If you need this (mostly for debugging I guess), write a small +-C routine doing all this and import it into your Ada program.</LI> +-<LI>I provide no functions to switch on/off curses tracing options. +-Same suggestion as above.</LI> +-<LI>Although Ada95 is an OO Language, this binding doesn't provide +-an OO abstraction of the (n)curses functionality. As mentioned above +-it's a thin binding for the (n)curses functions. But without any +-doubt it would be nice to build on top of this an OO abstraction +-of (n)curses functionality.<BR> +-The only exception is the method how fieldtypes are represented in +-this Binding. We provide an abstract tagged type Field_Type from +-which the various fieldtypes are derived.</LI> +-<LI>I currently do not support the link_fieldtype functionality of the +-forms subsystem.</LI> +-<LI>The *_IO packages are currently output only.</LI> +-</UL> +- +-<H2>Hierarchy of packages</H2> +-<UL> +-<LI><A HREF="ada/terminal_interface__ads.htm">Terminal_Interface</A> +- <UL><LI><A HREF="ada/terminal_interface-curses__ads.htm">Curses</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-mouse__ads.htm">Mouse</A> +- <LI><A HREF="ada/terminal_interface-curses-panels__ads.htm">Panels</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-panels-user_data__ads.htm">User_Data</A> +- </UL> +- <LI><A HREF="ada/terminal_interface-curses-menus__ads.htm">Menus</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-menus-menu_user_data__ads.htm">Menu_User_Data</A> +- <LI><A HREF="ada/terminal_interface-curses-menus-item_user_data__ads.htm">Item_User_Data</A> +- </UL> +- <LI><A HREF="ada/terminal_interface-curses-forms__ads.htm">Forms</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-forms-form_user_data__ads.htm">Form_User_Data</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_user_data__ads.htm">Field_User_Data</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types__ads.htm">Field_Types</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-alpha__ads.htm">Alpha</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">AlphaNumeric</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-intfield__ads.htm">IntField</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-numeric__ads.htm">Numeric</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-regexp__ads.htm">RegExp</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">IPV4_Address</A> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm">Enumeration</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">Ada</A> +- </UL> +- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-user__ads.htm">User</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm">Choice</A> +- </UL> +- </UL> +- </UL> +- <LI><A HREF="ada/terminal_interface-curses-text_io__ads.htm">Text_IO</A> +- <UL><LI><A HREF="ada/terminal_interface-curses-text_io-integer_io__ads.htm">Integer_IO</A> +- <LI><A HREF="ada/terminal_interface-curses-text_io-float_io__ads.htm">Float_IO</A> +- <LI><A HREF="ada/terminal_interface-curses-text_io-fixed_io__ads.htm">Fixed_IO</A> +- <LI><A HREF="ada/terminal_interface-curses-text_io-decimal_io__ads.htm">Decimal_IO</A> +- <LI><A HREF="ada/terminal_interface-curses-text_io-modular_io__ads.htm">Modular_IO</A> +- <LI><A HREF="ada/terminal_interface-curses-text_io-enumeration_io__ads.htm">Enumeration_IO</A> +- <LI><A HREF="ada/terminal_interface-curses-text_io-complex_io__ads.htm">Complex_IO</A> +- </UL> +- </UL> +- </UL> +-</UL> +-If you want to navigate through the html pages of the package specs, click <A HREF="ada/index.htm">here</A>. +-<H2>Implementation Details</H2> +-<H4>Behind the abstraction</H4> +-All the new types like <STRONG>Window</STRONG>, <STRONG>Panel</STRONG>, +-<STRONG>Menu</STRONG>, <STRONG>Form</STRONG> etc. are just +-opaque representations of the pointers to the corresponding +-low level (n)curses structures like +-<STRONG>WINDOW *</STRONG>, <STRONG>PANEL *</STRONG>, +-<STRONG>MENU *</STRONG> or <STRONG>FORM *</STRONG>. +-So you can safely pass them to C routines that expect a pointer +-to one of those structures. +-<H4>Extended ripoffline() usage</H4> +-The official documentation of (n)curses says, that the line parameter +-determines only whether or not exactly <STRONG>one</STRONG> line is +-stolen from the top or bottom of the screen. So essentially only the +-sign of the parameter is evaluated. ncurses has internally implemented +-it in a way, that uses the line parameter also to control the amount of +-lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG> +-routine of the binding. +-<H4><A NAME="userpointer">How user defined field types work</A></H4> +-TBD +-<H4>Enumeration fields handling</H4> +-The (n)curses documentation says, that the String arrays to be passed to +-an TYPE_ENUM fieldtype must not be automatic variables. This is not true +-in this binding, because it is internally arranged to safely copy these +-values. +-<H4><A NAME="compiler">Using other Ada compilers</A></H4> +-This should basically not be a problem. +-<H4>Port to other curses implementations</H4> +-Basically it should not be too hard to make all this run on a regular SVr4 +-implementation of curses. The problems are probably these:<BR> +-<UL> +-<LI>ncurses has some additional features which are presented in this binding. You +-have two choices to deal with this: +-<UL> +-<LI>Emulate the feature in this binding</LI> +-<LI>Raise an exception for non implemented features</LI> +-</UL> +-Most likely you will follow a mixed approach. Some features are easy to simulate, +-others will be hard if not impossible.</LI> +-</UL> +-I'm quite sure I forgot something. +-</BODY> +-</HTML> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++ ++<html> ++<head> ++ <meta name="generator" content= ++ "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org"> ++ ++ <title>Ada95 Binding for ncurses</title> ++ <link rev="made" href="mailto:bug-ncurses@gnu.org"> ++ <meta http-equiv="Content-Type" content= ++ "text/html; charset=us-ascii"> ++</head> ++ ++<body> ++ <h1>Ada95 Binding for ncurses</h1> ++ ++ <p>by J&uuml;rgen Pfeifer.</p> ++ <hr> ++ ++ <h2>General Remarks</h2> ++ ++ <ul> ++ <li>This document describes Version 01.00 of the binding.</li> ++ ++ <li>The functionality is modeled to be compatible with the ++ ncurses package, a clone of the SVr4 curses model.<br> ++ I did the development on an Intel box running the latest stable ++ release of <a href="http://www.linux.org">Linux</a>, ncurses ++ and the most recent released <a href="http://www.gnat.com">GNU ++ Ada Translator</a> gnat versions. For any older versions of ++ ncurses and gnat it is not guaranteed to work.</li> ++ ++ <li>You must have the m4 macroprocessor to build this package. ++ If you don't have this program, you can get the FSF version ++ <a href="ftp://ftp.gnu.org/pub/gnu/">here</a>.</li> ++ ++ <li>Ada programs are supposed to be readable. One of my ++ favorite methods to make code readable is to use expressive ++ names for the identifiers. You can find a list of a mapping of ++ the cryptic curses names to the Ada names in this <a href= ++ "ada/table.html">table</a>.</li> ++ ++ <li>This is not a typical one-to-one interface mapping. It is ++ close to one-to-one on the functional level. Each (n)curses ++ function has it's counterpart with a more or less similar ++ formal parameter list in the binding. It is not one-to-one with ++ respect to the datatypes. I tried to make records out of the ++ flat chtype and similar structures, so you don't have to do bit ++ operations to mark an attributed character as bold. Just make ++ the boolean member <strong>bold</strong> of the record true. ++ The binding also hides the structures like WINDOW, PANEL, MENU, ++ FORM etc. ! It's a pure functional API.</li> ++ ++ <li>I try to do as much error checking as possible and feasible ++ in the binding. I will raise an Ada exception when something ++ went wrong in the low-level curses. This has the effect that - ++ at least first time in my life - (n)curses programs have now a ++ very rigid error checking, but - thanks to Ada - you don't have ++ to code the orgiastic error checking style of C.</li> ++ ++ <li>Support for wide characters is currently not in the ++ binding, as it is not really in ncurses at this point in ++ time.</li> ++ </ul> ++ ++ <h2>Limitations</h2> ++ ++ <ul> ++ <li>I provide no SCREEN datatype and functions to set a new ++ screen. If you need this (mostly for debugging I guess), write ++ a small C routine doing all this and import it into your Ada ++ program.</li> ++ ++ <li>I provide no functions to switch on/off curses tracing ++ options. Same suggestion as above.</li> ++ ++ <li>Although Ada95 is an OO Language, this binding doesn't ++ provide an OO abstraction of the (n)curses functionality. As ++ mentioned above it's a thin binding for the (n)curses ++ functions. But without any doubt it would be nice to build on ++ top of this an OO abstraction of (n)curses functionality.<br> ++ The only exception is the method how fieldtypes are represented ++ in this Binding. We provide an abstract tagged type Field_Type ++ from which the various fieldtypes are derived.</li> ++ ++ <li>I currently do not support the link_fieldtype functionality ++ of the forms subsystem.</li> ++ ++ <li>The *_IO packages are currently output only.</li> ++ </ul> ++ ++ <h2>Hierarchy of packages</h2> ++ ++ <ul> ++ <li> ++ <a href= ++ "ada/terminal_interface__ads.htm">Terminal_Interface</a> ++ ++ <ul> ++ <li> ++ <a href= ++ "ada/terminal_interface-curses__ads.htm">Curses</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-mouse__ads.htm">Mouse</a></li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-panels__ads.htm">Panels</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-panels-user_data__ads.htm"> ++ User_Data</a></li> ++ </ul> ++ </li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-menus__ads.htm">Menus</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-menus-menu_user_data__ads.htm"> ++ Menu_User_Data</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-menus-item_user_data__ads.htm"> ++ Item_User_Data</a></li> ++ </ul> ++ </li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-forms__ads.htm">Forms</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-forms-form_user_data__ads.htm"> ++ Form_User_Data</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_user_data__ads.htm"> ++ Field_User_Data</a></li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-forms-field_types__ads.htm"> ++ Field_Types</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-alpha__ads.htm"> ++ Alpha</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm"> ++ AlphaNumeric</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-intfield__ads.htm"> ++ IntField</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-numeric__ads.htm"> ++ Numeric</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-regexp__ads.htm"> ++ RegExp</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm"> ++ IPV4_Address</a></li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm"> ++ Enumeration</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm"> ++ Ada</a></li> ++ </ul> ++ </li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-forms-field_types-user__ads.htm"> ++ User</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm"> ++ Choice</a></li> ++ </ul> ++ </li> ++ </ul> ++ </li> ++ </ul> ++ </li> ++ ++ <li> ++ <a href= ++ "ada/terminal_interface-curses-text_io__ads.htm">Text_IO</a> ++ ++ <ul> ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-integer_io__ads.htm"> ++ Integer_IO</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-float_io__ads.htm"> ++ Float_IO</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-fixed_io__ads.htm"> ++ Fixed_IO</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-decimal_io__ads.htm"> ++ Decimal_IO</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-modular_io__ads.htm"> ++ Modular_IO</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-enumeration_io__ads.htm"> ++ Enumeration_IO</a></li> ++ ++ <li><a href= ++ "ada/terminal_interface-curses-text_io-complex_io__ads.htm"> ++ Complex_IO</a></li> ++ </ul> ++ </li> ++ </ul> ++ </li> ++ </ul> ++ </li> ++ </ul> ++ ++ <p>If you want to navigate through the html pages of the package ++ specs, click <a href="ada/index.htm">here</a>.</p> ++ ++ <h2>Implementation Details</h2> ++ ++ <h4>Behind the abstraction</h4> ++ ++ <p>All the new types like <strong>Window</strong>, ++ <strong>Panel</strong>, <strong>Menu</strong>, ++ <strong>Form</strong> etc. are just opaque representations of the ++ pointers to the corresponding low level (n)curses structures like ++ <strong>WINDOW *</strong>, <strong>PANEL *</strong>, <strong>MENU ++ *</strong> or <strong>FORM *</strong>. So you can safely pass ++ them to C routines that expect a pointer to one of those ++ structures.</p> ++ ++ <h4>Extended ripoffline() usage</h4> ++ ++ <p>The official documentation of (n)curses says, that the line ++ parameter determines only whether or not exactly ++ <strong>one</strong> line is stolen from the top or bottom of the ++ screen. So essentially only the sign of the parameter is ++ evaluated. ncurses has internally implemented it in a way, that ++ uses the line parameter also to control the amount of lines to ++ steal. This mechanism is used in the ++ <strong>Rip_Off_Lines</strong> routine of the binding.</p> ++ ++ <h4><a name="userpointer" id="userpointer">How user defined field ++ types work</a></h4> ++ ++ <p>TBD</p> ++ ++ <h4>Enumeration fields handling</h4> ++ ++ <p>The (n)curses documentation says, that the String arrays to be ++ passed to an TYPE_ENUM fieldtype must not be automatic variables. ++ This is not true in this binding, because it is internally ++ arranged to safely copy these values.</p> ++ ++ <h4><a name="compiler" id="compiler">Using other Ada ++ compilers</a></h4> ++ ++ <p>This should basically not be a problem.</p> ++ ++ <h4>Port to other curses implementations</h4> ++ ++ <p>Basically it should not be too hard to make all this run on a ++ regular SVr4 implementation of curses. The problems are probably ++ these:<br></p> ++ ++ <ul> ++ <li>ncurses has some additional features which are presented in ++ this binding. You have two choices to deal with this: ++ ++ <ul> ++ <li>Emulate the feature in this binding</li> ++ ++ <li>Raise an exception for non implemented features</li> ++ </ul> ++ ++ <p>Most likely you will follow a mixed approach. Some ++ features are easy to simulate, others will be hard if not ++ impossible.</p> ++ </li> ++ </ul> ++ ++ <p>I'm quite sure I forgot something.</p> ++</body> ++</html> +diff -Naur ncurses-5.9/doc/html/announce.html ncurses-5.9.patch/doc/html/announce.html +--- ncurses-5.9/doc/html/announce.html 2011-04-04 11:46:33.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/announce.html 2014-09-01 16:33:22.315792055 +0200 +@@ -1,6 +1,6 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- +- $Id: announce.html,v 1.55 2011/04/04 09:46:33 tom Exp $ ++ $Id: announce.html,v 1.56 2013/05/17 23:34:26 tom Exp $ + **************************************************************************** + * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * +diff -Naur ncurses-5.9/doc/html/hackguide.html ncurses-5.9.patch/doc/html/hackguide.html +--- ncurses-5.9/doc/html/hackguide.html 2010-12-04 17:44:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/hackguide.html 2014-09-01 16:33:22.315792055 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- +- $Id: hackguide.html,v 1.28 2010/12/04 16:44:21 tom Exp $ ++ $Id: hackguide.html,v 1.29 2013/05/17 23:29:18 tom Exp $ + **************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +diff -Naur ncurses-5.9/doc/html/index.html ncurses-5.9.patch/doc/html/index.html +--- ncurses-5.9/doc/html/index.html 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/index.html 2014-09-01 16:33:22.315792055 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- +- $Id: index.html,v 1.5 2010/12/04 18:36:44 tom Exp $ ++ $Id: index.html,v 1.6 2013/05/17 23:30:29 tom Exp $ + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +diff -Naur ncurses-5.9/doc/html/man/adacurses-config.1.html ncurses-5.9.patch/doc/html/man/adacurses-config.1.html +--- ncurses-5.9/doc/html/man/adacurses-config.1.html 2011-04-05 00:46:28.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/adacurses-config.1.html 2014-09-01 16:33:22.315792055 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2010,2011 Free Software Foundation, Inc. * +@@ -83,7 +83,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/captoinfo.1m.html ncurses-5.9.patch/doc/html/man/captoinfo.1m.html +--- ncurses-5.9/doc/html/man/captoinfo.1m.html 2011-04-05 00:46:28.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/captoinfo.1m.html 2014-09-01 16:33:22.316792056 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -87,8 +87,8 @@ + + </PRE> + <H2>FILES</H2><PRE> +- /usr/share/terminfo Compiled terminal description +- database. ++ /usr/share/terminfo Compiled terminal description data- ++ base. + + + </PRE> +@@ -101,7 +101,6 @@ + has not mistakenly translated a completely unknown and + random capability and/or syntax error. + +- + Nonstd Std From Terminfo + name name capability + ----------------------------------------------- +@@ -116,8 +115,8 @@ + EN @7 XENIX key_end + GE ae XENIX exit_alt_charset_mode + GS as XENIX enter_alt_charset_mode +- + HM kh XENIX key_home ++ + LD kL XENIX key_dl + PD kN XENIX key_npage + PN po XENIX prtr_off +@@ -139,7 +138,6 @@ + bilities for forms drawing, designed to take advantage of + the IBM PC high-half graphics. They were as follows: + +- + Cap Graphic + ----------------------------- + G2 upper left +@@ -182,7 +180,6 @@ + font0 s0ds + font1 s1ds + font2 s2ds +- + font3 s3ds + + Additionally, the AIX <EM>box1</EM> capability will be automati- +@@ -208,7 +205,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/clear.1.html ncurses-5.9.patch/doc/html/man/clear.1.html +--- ncurses-5.9/doc/html/man/clear.1.html 2011-04-05 00:46:28.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/clear.1.html 2014-09-01 16:33:22.316792056 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: clear.1,v 1.8 2010/12/04 18:36:44 tom Exp @ ++ * @Id: clear.1,v 1.10 2013/06/22 22:22:11 tom Exp @ + --> + <HTML> + <HEAD> +@@ -57,9 +57,11 @@ + + </PRE> + <H2>DESCRIPTION</H2><PRE> +- <STRONG>clear</STRONG> clears your screen if this is possible. It looks in +- the environment for the terminal type and then in the <STRONG>ter-</STRONG> +- <STRONG>minfo</STRONG> database to figure out how to clear the screen. ++ <STRONG>clear</STRONG> clears your screen if this is possible, including ++ its scrollback buffer (if the extended "E3" capability is ++ defined). <STRONG>clear</STRONG> looks in the environment for the terminal ++ type and then in the <STRONG>terminfo</STRONG> database to determine how to ++ clear the screen. + + <STRONG>clear</STRONG> ignores any command-line parameters that may be + present. +@@ -69,7 +71,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/curs_addch.3x.html ncurses-5.9.patch/doc/html/man/curs_addch.3x.html +--- ncurses-5.9/doc/html/man/curs_addch.3x.html 2011-02-26 00:24:50.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_addch.3x.html 2014-09-01 16:33:22.316792056 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -70,7 +70,7 @@ + The <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG> and <STRONG>mvwaddch</STRONG> routines put the + character <EM>ch</EM> into the given window at its current window + position, which is then advanced. They are analogous to +- <STRONG>putchar</STRONG> in <STRONG><A HREF="stdio.3.html">stdio(3)</A></STRONG>. If the advance is at the right mar- ++ <STRONG>putchar</STRONG> in <STRONG>stdio(3)</STRONG>. If the advance is at the right mar- + gin, the cursor automatically wraps to the beginning of + the next line. At the bottom of the current scrolling + region, if <STRONG>scrollok</STRONG> is enabled, the scrolling region is +@@ -112,9 +112,8 @@ + characters to the screen with routines of the <STRONG>addch</STRONG> fam- + ily. The default character listed below is used if the + <STRONG>acsc</STRONG> capability does not define a terminal-specific +- replacement for it. The names are taken from VT100 +- nomenclature. +- ++ replacement for it. The names are taken from VT100 nomen- ++ clature. + + <EM>Name</EM> <EM>Default</EM> <EM>Description</EM> + -------------------------------------------------- +@@ -202,7 +201,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, + <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, +- <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>. ++ <STRONG>putc(3)</STRONG>. + + Comparable functions in the wide-character (ncursesw) + library are described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>. +diff -Naur ncurses-5.9/doc/html/man/curs_addchstr.3x.html ncurses-5.9.patch/doc/html/man/curs_addchstr.3x.html +--- ncurses-5.9/doc/html/man/curs_addchstr.3x.html 2011-01-09 02:03:04.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_addchstr.3x.html 2014-09-01 16:33:22.316792056 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_addchstr.3x,v 1.15 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp @ + --> + <HTML> + <HEAD> +@@ -62,62 +62,63 @@ + <STRONG>int</STRONG> <STRONG>waddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG> + <STRONG>int</STRONG> <STRONG>mvaddchstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG> + <STRONG>int</STRONG> <STRONG>mvaddchnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG> +- <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> +- <STRONG>*chstr);</STRONG> +- <STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> +- <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG> ++ <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG> ++ <STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG> + + + </PRE> + <H2>DESCRIPTION</H2><PRE> +- These routines copy <EM>chstr</EM> into the window image structure +- at and after the current cursor position. The four rou- +- tines with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements, +- but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the +- whole string is copied, to the maximum number of charac- +- ters that will fit on the line. +- +- The window cursor is <EM>not</EM> advanced, and these routines work +- faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per- +- form any kind of checking (such as for the newline, +- backspace, or carriage return characters), they do not ad- +- vance the current cursor position, they do not expand oth- +- er control characters to ^-escapes, and they truncate the +- string if it crosses the right margin, rather than wrap- +- ping it around to the new line. ++ These functions copy the (null-terminated) <EM>chstr</EM> array in- ++ to the window image structure starting at the current cur- ++ sor position. The four functions with <EM>n</EM> as the last argu- ++ ment copy at most <EM>n</EM> elements, but no more than will fit on ++ the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is copied, to the ++ maximum number of characters that will fit on the line. ++ ++ The window cursor is <EM>not</EM> advanced. These functions work ++ faster than <STRONG>waddnstr</STRONG>. On the other hand: ++ ++ <STRONG>o</STRONG> they do not perform checking (such as for the newline, ++ backspace, or carriage return characters), ++ ++ <STRONG>o</STRONG> they do not advance the current cursor position, ++ ++ <STRONG>o</STRONG> they do not expand other control characters to ^-es- ++ capes, and ++ ++ <STRONG>o</STRONG> they truncate the string if it crosses the right mar- ++ gin, rather than wrapping it around to the new line. + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> +- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on +- success (the SVr4 manuals specify only "an integer value +- other than <STRONG>ERR</STRONG>") upon successful completion, unless other- +- wise noted in the preceding routine descriptions. ++<H2>RETURN VALUE</H2><PRE> ++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> ++ on success. + +- X/Open does not define any error conditions. This imple- ++ X/Open does not define any error conditions. This imple- + mentation returns an error if the window pointer is null. + +- Functions with a "mv" prefix first perform a cursor move- +- ment using <STRONG>wmove</STRONG>, and return an error if the position is ++ Functions with a "mv" prefix first perform a cursor move- ++ ment using <STRONG>wmove</STRONG>, and return an error if the position is + outside the window, or if the window pointer is null. + + + </PRE> + <H2>NOTES</H2><PRE> +- Note that all routines except <STRONG>waddchnstr</STRONG> may be macros. ++ All functions except <STRONG>waddchnstr</STRONG> may be macros. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- These entry points are described in the XSI Curses stan- ++ These entry points are described in the XSI Curses stan- + dard, Issue 4. + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. ++ <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. + +- Comparable functions in the wide-character (ncursesw) li- ++ Comparable functions in the wide-character (ncursesw) li- + brary are described in <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>. + + +diff -Naur ncurses-5.9/doc/html/man/curs_addstr.3x.html ncurses-5.9.patch/doc/html/man/curs_addstr.3x.html +--- ncurses-5.9/doc/html/man/curs_addstr.3x.html 2011-01-09 02:03:05.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_addstr.3x.html 2014-09-01 16:33:22.317792058 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_addstr.3x,v 1.16 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp @ + --> + <HTML> + <HEAD> +@@ -68,26 +68,32 @@ + + </PRE> + <H2>DESCRIPTION</H2><PRE> +- These routines write the characters of the (null-terminat- +- ed) character string <EM>str</EM> on the given window. It is simi- +- lar to calling <STRONG>waddch</STRONG> once for each character in the +- string. The four routines with <EM>n</EM> as the last argument +- write at most <EM>n</EM> characters. If <EM>n</EM> is -1, then the entire +- string will be added, up to the maximum number of charac- +- ters that will fit on the line, or until a terminating +- null is reached. ++ These functions write the (null-terminated) character ++ string <EM>str</EM> on the given window. It is similar to calling ++ <STRONG>waddch</STRONG> once for each character in the string. ++ ++ The <EM>mv</EM> functions perform cursor movement once, before ++ writing any characters. Thereafter, the cursor is ad- ++ vanced as a side-effect of writing to the window. ++ ++ The four functions with <EM>n</EM> as the last argument write at ++ most <EM>n</EM> characters, or until a terminating null is reached. ++ If <EM>n</EM> is -1, then the entire string will be added. + + + </PRE> + <H2>RETURN VALUE</H2><PRE> +- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on +- success (the SVr4 manuals specify only "an integer value +- other than <STRONG>ERR</STRONG>") upon successful completion. ++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> ++ on success. + + X/Open does not define any error conditions. This imple- +- mentation returns an error if the window pointer is null +- or if the string pointer is null or if the corresponding +- calls to <STRONG>waddch</STRONG> return an error. ++ mentation returns an error ++ ++ <STRONG>o</STRONG> if the window pointer is null or ++ ++ <STRONG>o</STRONG> if the string pointer is null or ++ ++ <STRONG>o</STRONG> if the corresponding calls to <STRONG>waddch</STRONG> return an error. + + Functions with a "mv" prefix first perform a cursor move- + ment using <STRONG>wmove</STRONG>, and return an error if the position is +@@ -96,16 +102,13 @@ + + </PRE> + <H2>NOTES</H2><PRE> +- Note that all of these routines except <STRONG>waddstr</STRONG> and +- <STRONG>waddnstr</STRONG> may be macros. ++ All of these functions except <STRONG>waddnstr</STRONG> may be macros. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- All these entry points are described in the XSI Curses +- standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW, +- associated with extended-level conformance, are not yet +- detected. ++ These functions are described in the XSI Curses standard, ++ Issue 4. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/curs_add_wch.3x.html ncurses-5.9.patch/doc/html/man/curs_add_wch.3x.html +--- ncurses-5.9/doc/html/man/curs_add_wch.3x.html 2011-02-26 00:24:49.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_add_wch.3x.html 2014-09-01 16:33:22.316792056 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2011,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_add_wch.3x,v 1.14 2011/01/15 15:27:43 tom Exp @ ++ * @Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -77,17 +77,17 @@ + ous character at that location is removed. A new + character specified by <EM>wch</EM> is placed at that location + with rendition specified by <EM>wch</EM>. The cursor then +- advances to the next spacing character on the screen. ++ advances to the next spacing character on the screen. + + <STRONG>o</STRONG> If <EM>wch</EM> refers to a non-spacing character, all previous +- characters at that location are preserved. The non- +- spacing characters of <EM>wch</EM> are added to the spacing +- complex character, and the rendition specified by <EM>wch</EM> ++ characters at that location are preserved. The non- ++ spacing characters of <EM>wch</EM> are added to the spacing ++ complex character, and the rendition specified by <EM>wch</EM> + is ignored. + +- <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline, +- backspace or other control character, the window is +- updated and the cursor moves as if <STRONG>addch</STRONG> were called. ++ <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline, ++ backspace or other control character, the window is ++ updated and the cursor moves as if <STRONG>addch</STRONG> were called. + + The <STRONG>echo_wchar</STRONG> function is functionally equivalent to a + call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>. Similarly, +@@ -99,11 +99,10 @@ + functions instead of their equivalents. + + <STRONG>Line</STRONG> <STRONG>Graphics</STRONG> +- Like <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG>, <STRONG>addch_wch</STRONG> accepts symbols which make it ++ Like <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG>addch_wch</STRONG> accepts symbols which make it + simple to draw lines and other frequently used special + characters. These symbols correspond to the same VT100 +- line-drawing set as <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG>. +- ++ line-drawing set as <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>. + + <EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM> + ---------------------------------------------------------------- +@@ -111,8 +110,8 @@ + WACS_BOARD 0x2592 # board of squares + WACS_BTEE 0x2534 + bottom tee + WACS_BULLET 0x00b7 o bullet +- + WACS_CKBOARD 0x2592 : checker board (stipple) ++ + WACS_DARROW 0x2193 v arrow pointing down + WACS_DEGREE 0x00b0 ' degree symbol + WACS_DIAMOND 0x25c6 + diamond +@@ -144,7 +143,6 @@ + The wide-character configuration of ncurses also defines + symbols for thick- and double-lines: + +- + <EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM> + --------------------------------------------------------------------- + WACS_T_ULCORNER 0x250f + thick upper left corner +@@ -172,7 +170,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on + success. + +@@ -217,7 +215,7 @@ + </PRE> + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, +- <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG> ++ <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG>putwc(3)</STRONG> + + + +diff -Naur ncurses-5.9/doc/html/man/curs_add_wchstr.3x.html ncurses-5.9.patch/doc/html/man/curs_add_wchstr.3x.html +--- ncurses-5.9/doc/html/man/curs_add_wchstr.3x.html 2011-01-09 02:03:05.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_add_wchstr.3x.html 2014-09-01 16:33:22.316792056 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_add_wchstr.3x,v 1.9 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp @ + --> + <HTML> + <HEAD> +@@ -47,7 +47,7 @@ + + </PRE> + <H2>NAME</H2><PRE> +- <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>, ++ <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>, + <STRONG>mvadd_wchstr</STRONG>, <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>, <STRONG>mvwadd_wchnstr</STRONG> + - add an array of complex characters (and attributes) to a + curses window +@@ -69,39 +69,42 @@ + + </PRE> + <H2>DESCRIPTION</H2><PRE> +- These routines copy the array of complex characters <EM>wchstr</EM> +- into the window image structure at and after the current +- cursor position. The four routines with <EM>n</EM> as the last +- argument copy at most <EM>n</EM> elements, but no more than will +- fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is copied, +- to the maximum number of characters that will fit on the +- line. +- +- The window cursor is <EM>not</EM> advanced. These routines work +- faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per- +- form checking (such as for the newline, backspace, or car- +- riage return characters), they do not advance the current +- cursor position, they do not expand other control charac- +- ters to ^-escapes, and they truncate the string if it +- crosses the right margin, rather than wrapping it around +- to the new line. +- +- These routines end successfully on encountering a null +- <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line. If a +- complex character cannot completely fit at the end of the +- current line, the remaining columns are filled with the ++ These functions copy the (null-terminated) array of com- ++ plex characters <EM>wchstr</EM> into the window image structure ++ starting at the current cursor position. The four func- ++ tions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements, ++ but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the ++ whole array is copied, to the maximum number of characters ++ that will fit on the line. ++ ++ The window cursor is <EM>not</EM> advanced. These functions work ++ faster than <STRONG>waddnstr</STRONG>. On the other hand: ++ ++ <STRONG>o</STRONG> they do not perform checking (such as for the newline, ++ backspace, or carriage return characters), ++ ++ <STRONG>o</STRONG> they do not advance the current cursor position, ++ ++ <STRONG>o</STRONG> they do not expand other control characters to ^-es- ++ capes, and ++ ++ <STRONG>o</STRONG> they truncate the string if it crosses the right mar- ++ gin, rather than wrapping it around to the new line. ++ ++ These functions end successfully on encountering a null ++ <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line. If a ++ complex character cannot completely fit at the end of the ++ current line, the remaining columns are filled with the + background character and rendition. + + + </PRE> +-<H2>NOTES</H2><PRE> +- All functions except <STRONG>wadd_wchnstr</STRONG> may be macros. ++<H2>RETURN VALUE</H2><PRE> ++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> ++ on success. + +- +-</PRE> +-<H2>RETURN VALUES</H2><PRE> +- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on +- success. ++ X/Open does not define any error conditions. This imple- ++ mentation returns an error if the window pointer is null. + + Functions with a "mv" prefix first perform a cursor move- + ment using <STRONG>wmove</STRONG>, and return an error if the position is +@@ -109,14 +112,22 @@ + + + </PRE> ++<H2>NOTES</H2><PRE> ++ All functions except <STRONG>wadd_wchnstr</STRONG> may be macros. ++ ++ ++</PRE> + <H2>PORTABILITY</H2><PRE> +- All these entry points are described in the XSI Curses +- standard, Issue 4. ++ These entry points are described in the XSI Curses stan- ++ dard, Issue 4. + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> ++ <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. ++ ++ Comparable functions in the narrow-character (ncurses) li- ++ brary are described in <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>. + + + +diff -Naur ncurses-5.9/doc/html/man/curs_addwstr.3x.html ncurses-5.9.patch/doc/html/man/curs_addwstr.3x.html +--- ncurses-5.9/doc/html/man/curs_addwstr.3x.html 2011-01-09 02:03:05.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_addwstr.3x.html 2014-09-01 16:33:22.317792058 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_addwstr.3x,v 1.10 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp @ + --> + <HTML> + <HEAD> +@@ -68,43 +68,51 @@ + + </PRE> + <H2>DESCRIPTION</H2><PRE> +- These routines write the characters of the (null-terminat- +- ed) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window. It +- is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t in +- the string, then calling <STRONG>wadd_wch</STRONG> for the resulting ++ These functions write the characters of the (null-termi- ++ nated) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window. ++ It is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t ++ in the string, then calling <STRONG>wadd_wch</STRONG> for the resulting + <STRONG>cchar_t</STRONG>. + +- The <EM>mv</EM> routines perform cursor movement once, before writ- +- ing any characters. Thereafter, the cursor is advanced as +- a side-effect of writing to the window. ++ The <EM>mv</EM> functions perform cursor movement once, before ++ writing any characters. Thereafter, the cursor is ad- ++ vanced as a side-effect of writing to the window. + +- The four routines with <EM>n</EM> as the last argument write at +- most <EM>n</EM> <STRONG>wchar_t</STRONG> characters. If <EM>n</EM> is -1, then the entire +- string will be added, up to the maximum number of charac- +- ters that will fit on the line, or until a terminating +- null is reached. ++ The four functions with <EM>n</EM> as the last argument write at ++ most <EM>n</EM> <STRONG>wchar_t</STRONG> characters, or until a terminating null is ++ reached. If <EM>n</EM> is -1, then the entire string will be ++ added. + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> +- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on +- success. ++<H2>RETURN VALUE</H2><PRE> ++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> ++ on success. + +- Functions with a "mv" prefix first perform a cursor move- +- ment using <STRONG>wmove</STRONG>, and return an error if the position is ++ X/Open does not define any error conditions. This imple- ++ mentation returns an error ++ ++ <STRONG>o</STRONG> if the window pointer is null or ++ ++ <STRONG>o</STRONG> if the string pointer is null or ++ ++ <STRONG>o</STRONG> if the corresponding calls to <STRONG>wadd_wch</STRONG> return an er- ++ ror. ++ ++ Functions with a "mv" prefix first perform a cursor move- ++ ment using <STRONG>wmove</STRONG>, and return an error if the position is + outside the window, or if the window pointer is null. + + + </PRE> + <H2>NOTES</H2><PRE> +- Note that all of these routines except <STRONG>waddnwstr</STRONG> may be +- macros. ++ All of these functions except <STRONG>waddnwstr</STRONG> may be macros. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- All these entry points are described in the XSI Curses +- standard, Issue 4. ++ These functions are described in the XSI Curses standard, ++ Issue 4. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/curs_attr.3x.html ncurses-5.9.patch/doc/html/man/curs_attr.3x.html +--- ncurses-5.9/doc/html/man/curs_attr.3x.html 2011-02-26 00:24:50.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_attr.3x.html 2014-09-01 16:33:22.317792058 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_attr.3x,v 1.36 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_attr.3x,v 1.39 2013/09/21 20:39:49 Sven.Joachim Exp @ + --> + <HTML> + <HEAD> +@@ -148,19 +148,36 @@ + be passed to the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or + OR'd with the characters passed to <STRONG>addch</STRONG>. + ++ <EM>Name</EM> <EM>Description</EM> ++ ------------------------------------------------------------ ++ <STRONG>A_NORMAL</STRONG> Normal display (no highlight) ++ <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal. ++ <STRONG>A_UNDERLINE</STRONG> Underlining ++ <STRONG>A_REVERSE</STRONG> Reverse video ++ <STRONG>A_BLINK</STRONG> Blinking ++ <STRONG>A_DIM</STRONG> Half bright ++ <STRONG>A_BOLD</STRONG> Extra bright or bold ++ <STRONG>A_PROTECT</STRONG> Protected mode ++ <STRONG>A_INVIS</STRONG> Invisible or blank mode ++ <STRONG>A_ALTCHARSET</STRONG> Alternate character set ++ <STRONG>A_ITALIC</STRONG> Italics (non-X/Open extension) ++ <STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character ++ <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> Color-pair number <EM>n</EM> ++ ++ These video attributes are supported by <STRONG>attr_on</STRONG> and relat- ++ ed functions (which also support the attributes recognized ++ by <STRONG>attron</STRONG>, etc.): ++ ++ <EM>Name</EM> <EM>Description</EM> ++ ----------------------------------------- ++ <STRONG>WA_HORIZONTAL</STRONG> Horizontal highlight ++ <STRONG>WA_LEFT</STRONG> Left highlight ++ <STRONG>WA_LOW</STRONG> Low highlight ++ <STRONG>WA_RIGHT</STRONG> Right highlight ++ <STRONG>WA_TOP</STRONG> Top highlight ++ <STRONG>WA_VERTICAL</STRONG> Vertical highlight + +- <STRONG>A_NORMAL</STRONG> Normal display (no highlight) +- <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal. +- <STRONG>A_UNDERLINE</STRONG> Underlining +- <STRONG>A_REVERSE</STRONG> Reverse video +- <STRONG>A_BLINK</STRONG> Blinking +- <STRONG>A_DIM</STRONG> Half bright +- <STRONG>A_BOLD</STRONG> Extra bright or bold +- <STRONG>A_PROTECT</STRONG> Protected mode +- <STRONG>A_INVIS</STRONG> Invisible or blank mode +- <STRONG>A_ALTCHARSET</STRONG> Alternate character set +- <STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character +- <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> Color-pair number <EM>n</EM> ++ For consistency + + The following macro is the reverse of <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG>: + +@@ -202,33 +219,44 @@ + correctly manipulate all other highlights (specifically, + <STRONG>A_ALTCHARSET</STRONG>, <STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>). + ++ This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for ++ terminals which have the <EM>enter</EM><STRONG>_</STRONG><EM>italics</EM><STRONG>_</STRONG><EM>mode</EM> (sitm) and <EM>ex-</EM> ++ <EM>it</EM><STRONG>_</STRONG><EM>italics</EM><STRONG>_</STRONG><EM>mode</EM> (ritm) capabilities. Italics are not men- ++ tioned in X/Open Curses. Unlike the other video at- ++ tributes, <STRONG>I_ITALIC</STRONG> is unrelated to the <EM>set</EM><STRONG>_</STRONG><EM>attributes</EM> ca- ++ pabilities. This implementation makes the assumption that ++ <EM>exit</EM><STRONG>_</STRONG><EM>attribute</EM><STRONG>_</STRONG><EM>mode</EM> may also reset italics. ++ + XSI Curses added the new entry points, <STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>, + <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>wat-</STRONG> + <STRONG>tr_set</STRONG>. These are intended to work with a new series of +- highlight macros prefixed with <STRONG>WA_</STRONG>. +- +- Older versions of this library did not force an update of +- the screen when changing the attributes. Use <STRONG>touchwin</STRONG> to +- force the screen to match the updated attributes. ++ highlight macros prefixed with <STRONG>WA_</STRONG>. The older macros have ++ direct counterparts in the newer set of names: + ++ <EM>Name</EM> <EM>Description</EM> ++ ------------------------------------------------------------ ++ <STRONG>WA_NORMAL</STRONG> Normal display (no highlight) ++ <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal. ++ <STRONG>WA_UNDERLINE</STRONG> Underlining ++ <STRONG>WA_REVERSE</STRONG> Reverse video ++ <STRONG>WA_BLINK</STRONG> Blinking ++ <STRONG>WA_DIM</STRONG> Half bright ++ <STRONG>WA_BOLD</STRONG> Extra bright or bold ++ <STRONG>WA_ALTCHARSET</STRONG> Alternate character set + +- <STRONG>WA_NORMAL</STRONG> Normal display (no highlight) +- <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal. +- <STRONG>WA_UNDERLINE</STRONG> Underlining +- <STRONG>WA_REVERSE</STRONG> Reverse video +- <STRONG>WA_BLINK</STRONG> Blinking +- <STRONG>WA_DIM</STRONG> Half bright +- <STRONG>WA_BOLD</STRONG> Extra bright or bold +- <STRONG>WA_ALTCHARSET</STRONG> Alternate character set ++ Older versions of this library did not force an update of ++ the screen when changing the attributes. Use <STRONG>touchwin</STRONG> to ++ force the screen to match the updated attributes. + + The XSI curses standard specifies that each pair of corre- +- sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same ++ sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same + current-highlight information. + + The XSI standard extended conformance level adds new high- + lights <STRONG>A_HORIZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VER-</STRONG> +- <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each) which this +- implementation does not yet support. ++ <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each). As of Au- ++ gust 2013, no known terminal provides these highlights ++ (i.e., via the <STRONG>sgr1</STRONG> capability). + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/curs_beep.3x.html ncurses-5.9.patch/doc/html/man/curs_beep.3x.html +--- ncurses-5.9/doc/html/man/curs_beep.3x.html 2011-01-09 02:03:05.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_beep.3x.html 2014-09-01 16:33:22.317792058 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_bkgd.3x.html ncurses-5.9.patch/doc/html/man/curs_bkgd.3x.html +--- ncurses-5.9/doc/html/man/curs_bkgd.3x.html 2011-01-09 02:03:06.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_bkgd.3x.html 2014-09-01 16:33:22.317792058 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2003,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_bkgrnd.3x.html ncurses-5.9.patch/doc/html/man/curs_bkgrnd.3x.html +--- ncurses-5.9/doc/html/man/curs_bkgrnd.3x.html 2011-01-09 02:03:06.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_bkgrnd.3x.html 2014-09-01 16:33:22.317792058 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_bkgrnd.3x,v 1.4 2010/12/04 18:49:20 tom Exp @ ++ * @Id: curs_bkgrnd.3x,v 1.5 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -102,7 +102,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines do not return a + value. + +diff -Naur ncurses-5.9/doc/html/man/curs_border.3x.html ncurses-5.9.patch/doc/html/man/curs_border.3x.html +--- ncurses-5.9/doc/html/man/curs_border.3x.html 2011-01-09 02:03:06.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_border.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_border_set.3x.html ncurses-5.9.patch/doc/html/man/curs_border_set.3x.html +--- ncurses-5.9/doc/html/man/curs_border_set.3x.html 2011-01-22 22:01:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_border_set.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2011,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_border_set.3x,v 1.10 2011/01/15 12:56:18 tom Exp @ ++ * @Id: curs_border_set.3x,v 1.11 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -154,7 +154,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + Upon successful completion, these functions return <STRONG>OK</STRONG>. + Otherwise, they return <STRONG>ERR</STRONG>. + +diff -Naur ncurses-5.9/doc/html/man/curs_clear.3x.html ncurses-5.9.patch/doc/html/man/curs_clear.3x.html +--- ncurses-5.9/doc/html/man/curs_clear.3x.html 2011-01-09 02:03:06.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_clear.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_color.3x.html ncurses-5.9.patch/doc/html/man/curs_color.3x.html +--- ncurses-5.9/doc/html/man/curs_color.3x.html 2011-01-09 02:03:06.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_color.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_delch.3x.html ncurses-5.9.patch/doc/html/man/curs_delch.3x.html +--- ncurses-5.9/doc/html/man/curs_delch.3x.html 2011-01-09 02:03:07.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_delch.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_deleteln.3x.html ncurses-5.9.patch/doc/html/man/curs_deleteln.3x.html +--- ncurses-5.9/doc/html/man/curs_deleteln.3x.html 2011-01-09 02:03:07.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_deleteln.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_extend.3x.html ncurses-5.9.patch/doc/html/man/curs_extend.3x.html +--- ncurses-5.9/doc/html/man/curs_extend.3x.html 2011-01-09 02:03:07.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_extend.3x.html 2014-09-01 16:33:22.318792059 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1999-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_getcchar.3x.html ncurses-5.9.patch/doc/html/man/curs_getcchar.3x.html +--- ncurses-5.9/doc/html/man/curs_getcchar.3x.html 2011-01-09 02:03:07.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_getcchar.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_getcchar.3x,v 1.15 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_getcchar.3x,v 1.16 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -128,7 +128,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + When <EM>wch</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of + wide characters referenced by <EM>wcval</EM>, including one for a + trailing null. +@@ -143,7 +143,7 @@ + </PRE> + <H2>SEE ALSO</H2><PRE> + Functions: <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, +- <STRONG><A HREF="wcwidth.3.html">wcwidth(3)</A></STRONG>. ++ <STRONG>wcwidth(3)</STRONG>. + + + +diff -Naur ncurses-5.9/doc/html/man/curs_getch.3x.html ncurses-5.9.patch/doc/html/man/curs_getch.3x.html +--- ncurses-5.9/doc/html/man/curs_getch.3x.html 2011-02-26 00:24:52.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_getch.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_getch.3x,v 1.36 2011/01/22 19:38:51 tom Exp @ ++ * @Id: curs_getch.3x,v 1.37 2012/07/07 20:04:56 tom Exp @ + --> + <HTML> + <HEAD> +@@ -110,7 +110,6 @@ + be returned by the next call to <STRONG>wgetch</STRONG>. There is just one + input queue for all windows. + +- + <STRONG>Function</STRONG> <STRONG>Keys</STRONG> + The following function keys, defined in <STRONG>&lt;curses.h&gt;</STRONG>, might + be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note +@@ -179,8 +178,8 @@ + KEY_REPLACE Replace key + KEY_RESIZE Screen resized + KEY_RESTART Restart key +- KEY_RESUME Resume key + ++ KEY_RESUME Resume key + KEY_SAVE Save key + KEY_SBEG Shifted beginning key + KEY_SCANCEL Shifted cancel key +@@ -233,21 +232,18 @@ + sion of <STRONG>KEY_MOUSE</STRONG>. + + +- + </PRE> + <H2>RETURN VALUE</H2><PRE> + All routines return the integer <STRONG>ERR</STRONG> upon failure and an + integer value other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of ungetch()) + upon successful completion. + +- <STRONG>ungetch</STRONG> +- returns an error if there is no more room in +- the FIFO. +- +- <STRONG>wgetch</STRONG> +- returns an error if the window pointer is +- null, or if its timeout expires without having +- any data. ++ <STRONG>ungetch</STRONG> ++ returns ERR if there is no more room in the FIFO. ++ ++ <STRONG>wgetch</STRONG> ++ returns ERR if the window pointer is null, or if ++ its timeout expires without having any data. + + Functions with a "mv" prefix first perform a cursor move- + ment using <STRONG>wmove</STRONG>, and return an error if the position is +@@ -321,7 +317,7 @@ + documentation. Under historical curses implementations, + it varied depending on whether the operating system's im- + plementation of handled signal receipt interrupts a +- <STRONG><A HREF="read.2.html">read(2)</A></STRONG> call in progress or not, and also (in some imple- ++ <STRONG>read(2)</STRONG> call in progress or not, and also (in some imple- + mentations) depending on whether an input timeout or non- + blocking mode has been set. + +diff -Naur ncurses-5.9/doc/html/man/curs_getstr.3x.html ncurses-5.9.patch/doc/html/man/curs_getstr.3x.html +--- ncurses-5.9/doc/html/man/curs_getstr.3x.html 2011-01-09 02:03:08.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_getstr.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_get_wch.3x.html ncurses-5.9.patch/doc/html/man/curs_get_wch.3x.html +--- ncurses-5.9/doc/html/man/curs_get_wch.3x.html 2010-09-18 23:35:17.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/curs_get_wch.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_get_wch.3x,v 1.7 2010/08/14 23:31:42 tom Exp @ ++ * @Id: curs_get_wch.3x,v 1.8 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -122,7 +122,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> func- + tions successfully report the pressing of a function key, + they return <STRONG>KEY_CODE_YES</STRONG>. When they successfully report a +diff -Naur ncurses-5.9/doc/html/man/curs_get_wstr.3x.html ncurses-5.9.patch/doc/html/man/curs_get_wstr.3x.html +--- ncurses-5.9/doc/html/man/curs_get_wstr.3x.html 2011-01-09 02:03:08.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_get_wstr.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_get_wstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_get_wstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -118,7 +118,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + All of these functions return <STRONG>OK</STRONG> upon successful comple- + tion. Otherwise, they return <STRONG>ERR</STRONG>. + +diff -Naur ncurses-5.9/doc/html/man/curs_getyx.3x.html ncurses-5.9.patch/doc/html/man/curs_getyx.3x.html +--- ncurses-5.9/doc/html/man/curs_getyx.3x.html 2011-01-09 02:03:08.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_getyx.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_inch.3x.html ncurses-5.9.patch/doc/html/man/curs_inch.3x.html +--- ncurses-5.9/doc/html/man/curs_inch.3x.html 2011-01-09 02:03:08.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_inch.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/curs_inchstr.3x.html ncurses-5.9.patch/doc/html/man/curs_inchstr.3x.html +--- ncurses-5.9/doc/html/man/curs_inchstr.3x.html 2011-01-09 02:03:09.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_inchstr.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_initscr.3x.html ncurses-5.9.patch/doc/html/man/curs_initscr.3x.html +--- ncurses-5.9/doc/html/man/curs_initscr.3x.html 2011-01-09 02:03:09.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_initscr.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_initscr.3x,v 1.17 2010/12/04 18:36:58 tom Exp @ ++ * @Id: curs_initscr.3x,v 1.19 2013/07/20 19:34:14 tom Exp @ + --> + <HTML> + <HEAD> +@@ -148,11 +148,19 @@ + rather than exiting. It is safe but redundant to check + the return value of <STRONG>initscr</STRONG> in XSI Curses. + ++ If the TERM variable is missing or empty, <STRONG>initscr</STRONG> uses the ++ value "unknown", which normally corresponds to a terminal ++ entry with the <EM>generic</EM> (<EM>gn</EM>) capability. Generic entries ++ are detected by <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> and cannot be used for full- ++ screen operation. Other implementations may handle a ++ missing/empty TERM variable differently. ++ + + </PRE> + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, +- <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>. ++ <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG>curs_vari-</STRONG> ++ <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>. + + + +diff -Naur ncurses-5.9/doc/html/man/curs_inopts.3x.html ncurses-5.9.patch/doc/html/man/curs_inopts.3x.html +--- ncurses-5.9/doc/html/man/curs_inopts.3x.html 2011-01-09 02:03:09.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_inopts.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp @ ++ * @Id: curs_inopts.3x,v 1.18 2013/07/20 19:42:02 tom Exp @ + --> + <HTML> + <HEAD> +@@ -135,7 +135,7 @@ + + Initially, whether the terminal returns 7 or 8 significant + bits on input depends on the control mode of the tty driv- +- er [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. To force 8 bits to be returned, in- ++ er [see <STRONG>termio(7)</STRONG>]. To force 8 bits to be returned, in- + voke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is equivalent, under POSIX, to + setting the CS8 flag on the terminal. To force 7 bits to + be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is equivalent, +@@ -168,7 +168,7 @@ + + When the <STRONG>noqiflush</STRONG> routine is used, normal flush of input + and output queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG> +- characters will not be done [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. When <STRONG>qiflush</STRONG> ++ characters will not be done [see <STRONG>termio(7)</STRONG>]. When <STRONG>qiflush</STRONG> + is called, the queues will be flushed when these control + characters are read. You may want to call <STRONG>noqiflush()</STRONG> in + a signal handler if you want output to continue as though +@@ -185,7 +185,7 @@ + additional capability of being able to block for only <EM>de-</EM> + <EM>lay</EM> milliseconds (where <EM>delay</EM> is positive). + +- The <STRONG>curses</STRONG> library does ``line-breakout optimization'' by ++ The <STRONG>curses</STRONG> library does "line-breakout optimization" by + looking for typeahead periodically while updating the + screen. If input is found, and it is coming from a tty, + the current update is postponed until <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG> +@@ -229,24 +229,58 @@ + ty, set echo or noecho explicitly just after initializa- + tion, even if your program remains in cooked mode. + ++ When <STRONG>keypad</STRONG> is first enabled, ncurses loads the key-defi- ++ nitions for the current terminal description. If the ter- ++ minal description includes extended string capabilities, ++ e.g., from using the <STRONG>-x</STRONG> option of tic, then ncurses also ++ defines keys for the capabilities whose names begin with ++ "k". The corresponding keycodes are generated and (de- ++ pending on previous loads of terminal descriptions) may ++ differ from one execution of a program to the next. The ++ generated keycodes are recognized by the <STRONG>keyname</STRONG> function ++ (which will then return a name beginning with "k" denoting ++ the terminfo capability name rather than "K", used for ++ curses key-names). On the other hand, an application can ++ use <STRONG>define_key</STRONG> to establish a specific keycode for a given ++ string. This makes it possible for an application to ++ check for an extended capability's presence with <EM>tigetstr</EM>, ++ and reassign the keycode to match its own needs. ++ ++ Low-level applications can use <STRONG>tigetstr</STRONG> to obtain the def- ++ inition of any particular string capability. Higher-level ++ applications which use the curses <STRONG>wgetch</STRONG> and similar func- ++ tions to return keycodes rely upon the order in which the ++ strings are loaded. If more than one key definition has ++ the same string value, then <STRONG>wgetch</STRONG> can return only one ++ keycode. Most curses implementations (including ncurses) ++ load key definitions in the order defined by the array of ++ string capability names. The last key to be loaded deter- ++ mines the keycode which will be returned. In ncurses, you ++ may also have extended capabilities interpreted as key ++ definitions. These are loaded after the predefined keys, ++ and if a capability's value is the same as a previously- ++ loaded key definition, the later definition is the one ++ used. ++ + + </PRE> + <H2>NOTES</H2><PRE> +- Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG> +- <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG> ++ Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG> ++ <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG> + may be macros. + + The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in +- that they attempt to restore to normal (`cooked') mode +- from raw and cbreak modes respectively. Mixing raw/noraw +- and cbreak/nocbreak calls leads to tty driver control +- states that are hard to predict or understand; it is not ++ that they attempt to restore to normal (`cooked') mode ++ from raw and cbreak modes respectively. Mixing raw/noraw ++ and cbreak/nocbreak calls leads to tty driver control ++ states that are hard to predict or understand; it is not + recommended. + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG> ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, ++ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG>termio(7)</STRONG> + + + +diff -Naur ncurses-5.9/doc/html/man/curs_insch.3x.html ncurses-5.9.patch/doc/html/man/curs_insch.3x.html +--- ncurses-5.9/doc/html/man/curs_insch.3x.html 2011-01-09 02:03:09.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_insch.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_insstr.3x.html ncurses-5.9.patch/doc/html/man/curs_insstr.3x.html +--- ncurses-5.9/doc/html/man/curs_insstr.3x.html 2011-01-09 02:03:09.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_insstr.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_instr.3x.html ncurses-5.9.patch/doc/html/man/curs_instr.3x.html +--- ncurses-5.9/doc/html/man/curs_instr.3x.html 2011-01-09 02:03:10.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_instr.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_ins_wch.3x.html ncurses-5.9.patch/doc/html/man/curs_ins_wch.3x.html +--- ncurses-5.9/doc/html/man/curs_ins_wch.3x.html 2011-01-09 02:03:10.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_ins_wch.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_ins_wstr.3x.html ncurses-5.9.patch/doc/html/man/curs_ins_wstr.3x.html +--- ncurses-5.9/doc/html/man/curs_ins_wstr.3x.html 2011-01-09 02:03:10.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_ins_wstr.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_ins_wstr.3x,v 1.6 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_ins_wstr.3x,v 1.7 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -102,7 +102,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + Upon successful completion, these functions return OK. + Otherwise, they return ERR. + +diff -Naur ncurses-5.9/doc/html/man/curs_in_wch.3x.html ncurses-5.9.patch/doc/html/man/curs_in_wch.3x.html +--- ncurses-5.9/doc/html/man/curs_in_wch.3x.html 2011-01-09 02:03:10.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_in_wch.3x.html 2014-09-01 16:33:22.319792061 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_in_wchstr.3x.html ncurses-5.9.patch/doc/html/man/curs_in_wchstr.3x.html +--- ncurses-5.9/doc/html/man/curs_in_wchstr.3x.html 2011-01-09 02:03:10.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_in_wchstr.3x.html 2014-09-01 16:33:22.320792063 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_in_wchstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp @ ++ * @Id: curs_in_wchstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -90,7 +90,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + Upon successful completion, these functions return <STRONG>OK</STRONG>. + Otherwise, they return <STRONG>ERR</STRONG>. + +diff -Naur ncurses-5.9/doc/html/man/curs_inwstr.3x.html ncurses-5.9.patch/doc/html/man/curs_inwstr.3x.html +--- ncurses-5.9/doc/html/man/curs_inwstr.3x.html 2011-01-09 02:03:11.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_inwstr.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_inwstr.3x,v 1.7 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_inwstr.3x,v 1.8 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -87,7 +87,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + All routines return <STRONG>ERR</STRONG> upon failure. Upon successful com- + pletion, the *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the *<STRONG>innwstr</STRONG> + routines return the number of characters read into the +diff -Naur ncurses-5.9/doc/html/man/curs_kernel.3x.html ncurses-5.9.patch/doc/html/man/curs_kernel.3x.html +--- ncurses-5.9/doc/html/man/curs_kernel.3x.html 2011-01-09 02:03:11.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_kernel.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_legacy.3x.html ncurses-5.9.patch/doc/html/man/curs_legacy.3x.html +--- ncurses-5.9/doc/html/man/curs_legacy.3x.html 2011-01-09 02:03:11.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_legacy.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_memleaks.3x.html ncurses-5.9.patch/doc/html/man/curs_memleaks.3x.html +--- ncurses-5.9/doc/html/man/curs_memleaks.3x.html 2011-01-09 02:03:11.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_memleaks.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2008,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_mouse.3x.html ncurses-5.9.patch/doc/html/man/curs_mouse.3x.html +--- ncurses-5.9/doc/html/man/curs_mouse.3x.html 2011-02-26 00:24:55.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_mouse.3x.html 2014-09-01 16:33:22.321792065 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_mouse.3x,v 1.38 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_mouse.3x,v 1.39 2013/06/22 18:09:42 tom Exp @ + --> + <HTML> + <HEAD> +@@ -59,13 +59,12 @@ + + <STRONG>typedef</STRONG> <STRONG>unsigned</STRONG> <STRONG>long</STRONG> <STRONG>mmask_t;</STRONG> + +- typedef struct +- { +- short id; <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM> ++ <STRONG>typedef</STRONG> <STRONG>struct</STRONG> <STRONG>{</STRONG> ++ <STRONG>short</STRONG> <STRONG>id;</STRONG> <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM> + <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>y,</STRONG> <STRONG>z;</STRONG> <EM>/*</EM> <EM>event</EM> <EM>coordinates</EM> <EM>*/</EM> + <STRONG>mmask_t</STRONG> <STRONG>bstate;</STRONG> <EM>/*</EM> <EM>button</EM> <EM>state</EM> <EM>bits</EM> <EM>*/</EM> +- <STRONG>}</STRONG> +- <STRONG>MEVENT;</STRONG> ++ <STRONG>}</STRONG> <STRONG>MEVENT;</STRONG> ++ + <STRONG>bool</STRONG> <STRONG>has_mouse(void);</STRONG> + <STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*event);</STRONG> + <STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*event);</STRONG> +@@ -98,7 +97,6 @@ + + Here are the mouse event type masks which may be defined: + +- + <EM>Name</EM> <EM>Description</EM> + --------------------------------------------------------------------- + BUTTON1_PRESSED mouse button 1 down +@@ -111,11 +109,10 @@ + BUTTON2_RELEASED mouse button 2 up + BUTTON2_CLICKED mouse button 2 clicked + BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked +- +- + BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked + --------------------------------------------------------------------- + BUTTON3_PRESSED mouse button 3 down ++ + BUTTON3_RELEASED mouse button 3 up + BUTTON3_CLICKED mouse button 3 clicked + BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked +diff -Naur ncurses-5.9/doc/html/man/curs_move.3x.html ncurses-5.9.patch/doc/html/man/curs_move.3x.html +--- ncurses-5.9/doc/html/man/curs_move.3x.html 2011-01-09 02:03:12.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_move.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_opaque.3x.html ncurses-5.9.patch/doc/html/man/curs_opaque.3x.html +--- ncurses-5.9/doc/html/man/curs_opaque.3x.html 2011-01-09 02:03:12.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_opaque.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2007-2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_opaque.3x,v 1.9 2010/12/04 18:40:45 tom Exp @ ++ * @Id: curs_opaque.3x,v 1.10 2013/07/20 19:42:29 tom Exp @ + --> + <HTML> + <HEAD> +@@ -76,7 +76,7 @@ + <H2>DESCRIPTION</H2><PRE> + This implementation provides functions which return prop- + erties set in the WINDOW structure, allowing it to be +- ``opaque'' if the symbol <STRONG>NCURSES_OPAQUE</STRONG> is defined: ++ "opaque" if the symbol <STRONG>NCURSES_OPAQUE</STRONG> is defined: + + <STRONG>is_cleared</STRONG> + returns the value set in <STRONG>clearok</STRONG> +diff -Naur ncurses-5.9/doc/html/man/curs_outopts.3x.html ncurses-5.9.patch/doc/html/man/curs_outopts.3x.html +--- ncurses-5.9/doc/html/man/curs_outopts.3x.html 2011-01-09 02:03:12.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_outopts.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_overlay.3x.html ncurses-5.9.patch/doc/html/man/curs_overlay.3x.html +--- ncurses-5.9/doc/html/man/curs_overlay.3x.html 2011-01-09 02:03:12.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_overlay.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_overlay.3x,v 1.16 2010/12/04 18:40:45 tom Exp @ ++ * @Id: curs_overlay.3x,v 1.17 2013/04/06 23:48:51 tom Exp @ + --> + <HTML> + <HEAD> +@@ -72,7 +72,7 @@ + (blanks are not copied) whereas <STRONG>overwrite</STRONG> is destructive. + + The <STRONG>copywin</STRONG> routine provides a finer granularity of con- +- trol over the <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines. Like in the ++ trol over the <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines. As in the + <STRONG>prefresh</STRONG> routine, a rectangle is specified in the destina- + tion window, (<EM>dminrow</EM>, <EM>dmincol</EM>) and (<EM>dmaxrow</EM>, <EM>dmaxcol</EM>), + and the upper-left-corner coordinates of the source win- +diff -Naur ncurses-5.9/doc/html/man/curs_pad.3x.html ncurses-5.9.patch/doc/html/man/curs_pad.3x.html +--- ncurses-5.9/doc/html/man/curs_pad.3x.html 2011-01-09 02:03:12.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_pad.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_print.3x.html ncurses-5.9.patch/doc/html/man/curs_print.3x.html +--- ncurses-5.9/doc/html/man/curs_print.3x.html 2011-01-09 02:03:12.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_print.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_printw.3x.html ncurses-5.9.patch/doc/html/man/curs_printw.3x.html +--- ncurses-5.9/doc/html/man/curs_printw.3x.html 2011-01-09 02:03:13.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_printw.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +@@ -69,12 +69,12 @@ + </PRE> + <H2>DESCRIPTION</H2><PRE> + The <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG> routines are +- analogous to <STRONG>printf</STRONG> [see <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>]. In effect, the ++ analogous to <STRONG>printf</STRONG> [see <STRONG>printf(3)</STRONG>]. In effect, the + string that would be output by <STRONG>printf</STRONG> is output instead as + though <STRONG>waddstr</STRONG> were used on the given window. + + The <STRONG>vwprintw</STRONG> and <STRONG>wv_printw</STRONG> routines are analogous to +- <STRONG>vprintf</STRONG> [see <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>] and perform a <STRONG>wprintw</STRONG> using a ++ <STRONG>vprintf</STRONG> [see <STRONG>printf(3)</STRONG>] and perform a <STRONG>wprintw</STRONG> using a + variable argument list. The third argument is a <STRONG>va_list</STRONG>, + a pointer to a list of arguments, as defined in + <STRONG>&lt;stdarg.h&gt;</STRONG>. +@@ -111,7 +111,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG>vprintf(3)</STRONG> ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG>vprintf(3)</STRONG> + + + +diff -Naur ncurses-5.9/doc/html/man/curs_refresh.3x.html ncurses-5.9.patch/doc/html/man/curs_refresh.3x.html +--- ncurses-5.9/doc/html/man/curs_refresh.3x.html 2011-01-09 02:03:13.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_refresh.3x.html 2014-09-01 16:33:22.322792066 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_scanw.3x.html ncurses-5.9.patch/doc/html/man/curs_scanw.3x.html +--- ncurses-5.9/doc/html/man/curs_scanw.3x.html 2011-01-09 02:03:13.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_scanw.3x.html 2014-09-01 16:33:22.323792068 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +@@ -66,9 +66,9 @@ + </PRE> + <H2>DESCRIPTION</H2><PRE> + The <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> and <STRONG>mvscanw</STRONG> routines are analogous to +- <STRONG>scanf</STRONG> [see <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>]. The effect of these routines is as ++ <STRONG>scanf</STRONG> [see <STRONG>scanf(3)</STRONG>]. The effect of these routines is as + though <STRONG>wgetstr</STRONG> were called on the window, and the result- +- ing line used as input for <STRONG><A HREF="sscanf.3.html">sscanf(3)</A></STRONG>. Fields which do not ++ ing line used as input for <STRONG>sscanf(3)</STRONG>. Fields which do not + map to a variable in the <EM>fmt</EM> field are lost. + + The <STRONG>vwscanw</STRONG> and <STRONG>vw_scanw</STRONG> routines are analogous to <STRONG>vscanf</STRONG>. +@@ -118,7 +118,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG> ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG>scanf(3)</STRONG> + + + +diff -Naur ncurses-5.9/doc/html/man/curs_scr_dump.3x.html ncurses-5.9.patch/doc/html/man/curs_scr_dump.3x.html +--- ncurses-5.9/doc/html/man/curs_scr_dump.3x.html 2011-01-09 02:03:13.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_scr_dump.3x.html 2014-09-01 16:33:22.323792068 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +@@ -122,7 +122,7 @@ + </PRE> + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, +- <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3.html">system(3)</A></STRONG> ++ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG>system(3)</STRONG> + + + +diff -Naur ncurses-5.9/doc/html/man/curs_scroll.3x.html ncurses-5.9.patch/doc/html/man/curs_scroll.3x.html +--- ncurses-5.9/doc/html/man/curs_scroll.3x.html 2011-01-09 02:03:13.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_scroll.3x.html 2014-09-01 16:33:22.323792068 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_slk.3x.html ncurses-5.9.patch/doc/html/man/curs_slk.3x.html +--- ncurses-5.9/doc/html/man/curs_slk.3x.html 2011-01-09 02:03:14.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_slk.3x.html 2014-09-01 16:33:22.323792068 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_sp_funcs.3x.html ncurses-5.9.patch/doc/html/man/curs_sp_funcs.3x.html +--- ncurses-5.9/doc/html/man/curs_sp_funcs.3x.html 2011-02-26 00:24:57.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_sp_funcs.3x.html 2014-09-01 16:33:22.323792068 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_sp_funcs.3x,v 1.5 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_sp_funcs.3x,v 1.6 2013/06/22 17:53:59 tom Exp @ + * *************************************************************************** + * *************************************************************************** + * *************************************************************************** +@@ -131,7 +131,7 @@ + <STRONG>int</STRONG> <STRONG>slk_attron_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG> + <STRONG>int</STRONG> <STRONG>slk_attr_set_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>attr_t,</STRONG> <STRONG>short,</STRONG> <STRONG>void*);</STRONG> + <STRONG>int</STRONG> <STRONG>slk_attrset_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG> +- <STRONG>int</STRONG> <STRONG>slk_attr_sp((SCREEN*);</STRONG> ++ <STRONG>int</STRONG> <STRONG>slk_attr_sp(SCREEN*);</STRONG> + <STRONG>int</STRONG> <STRONG>slk_clear_sp(SCREEN*);</STRONG> + <STRONG>int</STRONG> <STRONG>slk_color_sp(SCREEN*,</STRONG> <STRONG>short);</STRONG> + <STRONG>int</STRONG> <STRONG>slk_init_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG> +@@ -193,16 +193,15 @@ + functions which improve the ability to manage multiple + screens. This feature can be added to any of the configu- + rations supported by ncurses; it adds new entrypoints +- without changing the meaning of any of the existing ones. +- ++ without changing the meaning of any of the existing ones. + + <STRONG>IMPROVED</STRONG> <STRONG>FUNCTIONS</STRONG> +- Most of the functions are new versions of existing func- ++ Most of the functions are new versions of existing func- + tions. A parameter is added at the front of the parameter + list. It is a SCREEN pointer. + +- The existing functions all use the current screen, which +- is a static variable. The extended functions use the ++ The existing functions all use the current screen, which ++ is a static variable. The extended functions use the + specified screen, thereby reducing the number of variables + which must be modified to update multiple screens. + +@@ -210,22 +209,22 @@ + Here are the new functions: + + ceiling_panel +- this returns a pointer to the topmost panel in the ++ this returns a pointer to the topmost panel in the + given screen. + + ground_panel +- this returns a pointer to the lowest panel in the ++ this returns a pointer to the lowest panel in the + given screen. + + new_prescr +- when creating a new screen, the library uses static +- variables which have been preset, e.g., by +- <STRONG><A HREF="use_env.3x.html">use_env(3x)</A></STRONG>, <STRONG><A HREF="filter.3x.html">filter(3x)</A></STRONG>, etc. With the screen-point- ++ when creating a new screen, the library uses static ++ variables which have been preset, e.g., by ++ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, etc. With the screen-point- + er extension, there are situations where it must cre- +- ate a current screen before the unextended library +- does. The <STRONG>new_prescr</STRONG> function is used internally to ++ ate a current screen before the unextended library ++ does. The <STRONG>new_prescr</STRONG> function is used internally to + handle these cases. It is also provided as an entry- +- point to allow applications to customize the library ++ point to allow applications to customize the library + initialization. + + +@@ -234,37 +233,36 @@ + This extension introduces some new names: + + NCURSES_SP_FUNCS +- This is set to the library patch-level number. In +- the unextended library, this is zero (0), to make it ++ This is set to the library patch-level number. In ++ the unextended library, this is zero (0), to make it + useful for checking if the extension is provided. + + NCURSES_SP_NAME +- The new functions are named using the macro <EM>NCURS-</EM> +- <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation. ++ The new functions are named using the macro <EM>NCURS-</EM> ++ <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation. + Currently this adds a "_sp" suffix to the name of the +- unextended function. This manual page indexes the ++ unextended function. This manual page indexes the + extensions showing the full name. However the proper +- usage of these functions uses the macro, to provide ++ usage of these functions uses the macro, to provide + for the possibility of changing the naming convention + for specific library configurations. + + NCURSES_SP_OUTC +- This is a new function-pointer type to use in the +- screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is ++ This is a new function-pointer type to use in the ++ screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is + used in the unextended library. + + NCURSES_OUTC +- This is a function-pointer type used for the cases +- where a function passes characters to the output +- stream, e.g., <STRONG><A HREF="vidputs.3x.html">vidputs(3x)</A></STRONG>. +- ++ This is a function-pointer type used for the cases ++ where a function passes characters to the output ++ stream, e.g., <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- These routines are specific to ncurses. They were not +- supported on Version 7, BSD or System V implementations. +- It is recommended that any code depending on ncurses ex- ++ These routines are specific to ncurses. They were not ++ supported on Version 7, BSD or System V implementations. ++ It is recommended that any code depending on ncurses ex- + tensions be conditioned using <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>. + + +diff -Naur ncurses-5.9/doc/html/man/curs_termattrs.3x.html ncurses-5.9.patch/doc/html/man/curs_termattrs.3x.html +--- ncurses-5.9/doc/html/man/curs_termattrs.3x.html 2011-02-26 00:24:58.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_termattrs.3x.html 2014-09-01 16:33:22.323792068 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +@@ -111,11 +111,11 @@ + + If a given terminal does not support a video attribute + that an application program is trying to use, <STRONG>curses</STRONG> may +- substitute a different video attribute for it. The +- <STRONG>termattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of +- all video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG> +- and <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is use- +- ful when a <STRONG>curses</STRONG> program needs complete control over the ++ substitute a different video attribute for it. The <STRONG>ter-</STRONG> ++ <STRONG>mattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of all ++ video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG> and ++ <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is useful ++ when a <STRONG>curses</STRONG> program needs complete control over the + appearance of the screen. + + The <STRONG>termname</STRONG> routine returns the terminal name used by +diff -Naur ncurses-5.9/doc/html/man/curs_termcap.3x.html ncurses-5.9.patch/doc/html/man/curs_termcap.3x.html +--- ncurses-5.9/doc/html/man/curs_termcap.3x.html 2011-01-09 02:03:14.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_termcap.3x.html 2014-09-01 16:33:22.324792069 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_termcap.3x,v 1.26 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp @ + --> + <HTML> + <HEAD> +@@ -79,39 +79,62 @@ + bilities of entries for which a terminfo entry has been + compiled. + +- The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns +- 1 on success, 0 if there is no such entry, and -1 if the +- terminfo database could not be found. The emulation ig- +- nores the buffer pointer <EM>bp</EM>. ++ <STRONG>INITIALIZATION</STRONG> ++ The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns: + ++ 1 on success, ++ ++ 0 if there is no such entry (or that it is a generic ++ type, having too little information for curses ap- ++ plications to run), and ++ ++ -1 if the terminfo database could not be found. ++ ++ This differs from the <EM>termcap</EM> library in two ways: ++ ++ <STRONG>o</STRONG> The emulation ignores the buffer pointer <EM>bp</EM>. The ++ <EM>termcap</EM> library would store a copy of the terminal ++ description in the area referenced by this pointer. ++ However, ncurses stores its terminal descriptions ++ in compiled binary form, which is not the same ++ thing. ++ ++ <STRONG>o</STRONG> There is a difference in return codes. The <EM>termcap</EM> ++ library does not check if the terminal description ++ is marked with the <EM>generic</EM> capability, or if the ++ terminal description has cursor-addressing. ++ ++ <STRONG>CAPABILITY</STRONG> <STRONG>VALUES</STRONG> + The <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or ze- + ro if it is not available. + +- The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1 ++ The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1 + if it is not available. + +- The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or +- zero if it is not available. Use <STRONG>tputs</STRONG> to output the re- +- turned string. The return value will also be copied to +- the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be ++ The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or ++ zero if it is not available. Use <STRONG>tputs</STRONG> to output the re- ++ turned string. The return value will also be copied to ++ the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be + updated to point past the null ending this value. + + Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tget-</STRONG> + <STRONG>flag</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetstr</STRONG> are compared in lookups. + +- The <STRONG>tgoto</STRONG> routine instantiates the parameters into the +- given capability. The output from this routine is to be ++ <STRONG>FORMATTING</STRONG> <STRONG>CAPABILITIES</STRONG> ++ The <STRONG>tgoto</STRONG> routine instantiates the parameters into the ++ given capability. The output from this routine is to be + passed to <STRONG>tputs</STRONG>. + +- The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> ++ The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + manual page. It can retrieve capabilities by either term- + cap or terminfo name. + ++ <STRONG>GLOBAL</STRONG> <STRONG>VARIABLES</STRONG> + The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the ter- + minfo entry's data for <STRONG>pad_char</STRONG>, <STRONG>cursor_up</STRONG> and +- <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> is not used by ++ <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> is not used by + ncurses. <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function. <STRONG>BC</STRONG> is +- used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set ++ used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set + by ncurses in a system-specific coding to reflect the ter- + minal speed. + +@@ -119,7 +142,7 @@ + </PRE> + <H2>RETURN VALUE</H2><PRE> + Except where explicitly noted, routines that return an in- +- teger return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies ++ teger return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies + "an integer value other than <STRONG>ERR</STRONG>") upon successful comple- + tion. + +@@ -129,54 +152,76 @@ + </PRE> + <H2>BUGS</H2><PRE> + If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized +- string, be aware that it will be returned in terminfo no- ++ string, be aware that it will be returned in terminfo no- + tation, not the older and not-quite-compatible termcap no- +- tation. This will not cause problems if all you do with +- it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo- +- style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if con- +- figured to support termcap, will check if the string is +- indeed terminfo-style by looking for "%p" parameters or +- "$&lt;..&gt;" delays, and invoke a termcap-style parser if the ++ tation. This will not cause problems if all you do with ++ it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo- ++ style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if con- ++ figured to support termcap, will check if the string is ++ indeed terminfo-style by looking for "%p" parameters or ++ "$&lt;..&gt;" delays, and invoke a termcap-style parser if the + string does not appear to be terminfo). + +- Because terminfo conventions for representing padding in +- string capabilities differ from termcap's, <STRONG>tputs("50");</STRONG> +- will put out a literal "50" rather than busy-waiting for ++ Because terminfo conventions for representing padding in ++ string capabilities differ from termcap's, <STRONG>tputs("50");</STRONG> ++ will put out a literal "50" rather than busy-waiting for + 50 milliseconds. Cope with it. + +- Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG> +- string. One consequence of this is that termcap applica- +- tions assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter- +- nate character set. This implementation checks for, and ++ Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG> ++ string. One consequence of this is that termcap applica- ++ tions assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter- ++ nate character set. This implementation checks for, and + modifies the data shown to the termcap interface to accom- + modate termcap's limitation in this respect. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- The XSI Curses standard, Issue 4 describes these func- +- tions. However, they are marked TO BE WITHDRAWN and may ++ The XSI Curses standard, Issue 4 describes these func- ++ tions. However, they are marked TO BE WITHDRAWN and may + be removed in future versions. + +- Neither the XSI Curses standard nor the SVr4 man pages +- documented the return values of <STRONG>tgetent</STRONG> correctly, though +- all three were in fact returned ever since SVr1. In par- +- ticular, an omission in the XSI Curses documentation has +- been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or ++ Neither the XSI Curses standard nor the SVr4 man pages ++ documented the return values of <STRONG>tgetent</STRONG> correctly, though ++ all three were in fact returned ever since SVr1. In par- ++ ticular, an omission in the XSI Curses documentation has ++ been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or + <STRONG>ERR</STRONG>. Because the purpose of these functions is to provide +- compatibility with the <EM>termcap</EM> library, that is a defect ++ compatibility with the <EM>termcap</EM> library, that is a defect + in XCurses, Issue 4, Version 2 rather than in ncurses. + +- External variables are provided for support of certain +- termcap applications. However, termcap applications' use ++ External variables are provided for support of certain ++ termcap applications. However, termcap applications' use + of those variables is poorly documented, e.g., not distin- +- guishing between input and output. In particular, some ++ guishing between input and output. In particular, some + applications are reported to declare and/or modify <STRONG>ospeed</STRONG>. + ++ The comment that only the first two characters of the <STRONG>id</STRONG> ++ parameter are used escapes many application developers. ++ The original BSD 4.2 termcap library (and historical ++ relics thereof) did not require a trailing null NUL on the ++ parameter name passed to <STRONG>tgetstr</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetflag</STRONG>. ++ Some applications assume that the termcap interface does ++ not require the trailing NUL for the parameter name. Tak- ++ ing into account these issues: ++ ++ <STRONG>o</STRONG> As a special case, <STRONG>tgetflag</STRONG> matched against a single- ++ character identifier provided that was at the end of ++ the terminal description. You should not rely upon ++ this behavior in portable programs. This implementa- ++ tion disallows matches against single-character capa- ++ bility names. ++ ++ <STRONG>o</STRONG> This implementation disallows matches by the termcap ++ interface against extended capability names which are ++ longer than two characters. ++ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>. ++ ++ http://invisible-island.net/ncurses/tctest.html + + + +diff -Naur ncurses-5.9/doc/html/man/curs_terminfo.3x.html ncurses-5.9.patch/doc/html/man/curs_terminfo.3x.html +--- ncurses-5.9/doc/html/man/curs_terminfo.3x.html 2011-01-09 02:03:15.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_terminfo.3x.html 2014-09-01 16:33:22.324792069 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2011,2013 Free 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,12 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_terminfo.3x,v 1.35 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_terminfo.3x,v 1.43 2013/07/20 19:29:59 tom Exp @ ++ * *************************************************************************** ++ * *************************************************************************** ++ * *************************************************************************** ++ * *************************************************************************** ++ * *************************************************************************** + --> + <HTML> + <HEAD> +@@ -68,7 +73,7 @@ + <STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG> + <STRONG>int</STRONG> <STRONG>vidputs(chtype</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG> + <STRONG>int</STRONG> <STRONG>vidattr(chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG> +- <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(char));</STRONG> ++ <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG> + <STRONG>int</STRONG> <STRONG>vid_attr(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG> + <STRONG>int</STRONG> <STRONG>mvcur(int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM>, int <EM>newcol</EM><STRONG>);</STRONG> + <STRONG>int</STRONG> <STRONG>tigetflag(char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG> +@@ -85,38 +90,51 @@ + tion keys. For all other functionality, <STRONG>curses</STRONG> routines + are more suitable and their use is recommended. + ++ <STRONG>Initialization</STRONG> + Initially, <STRONG>setupterm</STRONG> should be called. Note that <STRONG>se-</STRONG> + <STRONG>tupterm</STRONG> is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG>. + This defines the set of terminal-dependent variables +- [listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and +- <STRONG>columns</STRONG> are initialized by <STRONG>setupterm</STRONG> as follows: ++ [listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. + +- If <STRONG>use_env(FALSE)</STRONG> has been called, values for <STRONG>lines</STRONG> +- and <STRONG>columns</STRONG> specified in <STRONG>terminfo</STRONG> are used. ++ Each initialization routine provides applications with the ++ terminal capabilities either directly (via header defini- ++ tions), or by special functions. The header files <STRONG>curs-</STRONG> ++ <STRONG>es.h</STRONG> and <STRONG>term.h</STRONG> should be included (in this order) to get ++ the definitions for these strings, numbers, and flags. + +- Otherwise, if the environment variables <STRONG>LINES</STRONG> and +- <STRONG>COLUMNS</STRONG> exist, their values are used. If these en- +- vironment variables do not exist and the program is +- running in a window, the current window size is +- used. Otherwise, if the environment variables do +- not exist, the values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> speci- +- fied in the <STRONG>terminfo</STRONG> database are used. +- +- The header files <STRONG>curses.h</STRONG> and <STRONG>term.h</STRONG> should be included +- (in this order) to get the definitions for these strings, +- numbers, and flags. Parameterized strings should be +- passed through <STRONG>tparm</STRONG> to instantiate them. All <STRONG>terminfo</STRONG> +- strings [including the output of <STRONG>tparm</STRONG>] should be printed +- with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. Call the <STRONG>reset_shell_mode</STRONG> to restore +- the tty modes before exiting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>]. Pro- +- grams which use cursor addressing should output <STRONG>en-</STRONG> +- <STRONG>ter_ca_mode</STRONG> upon startup and should output <STRONG>exit_ca_mode</STRONG> +- before exiting. Programs desiring shell escapes should +- call +- +- <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before the shell +- is called and should output <STRONG>enter_ca_mode</STRONG> and call <STRONG>re-</STRONG> +- <STRONG>set_prog_mode</STRONG> after returning from the shell. ++ The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and <STRONG>columns</STRONG> are initialized ++ by <STRONG>setupterm</STRONG> as follows: ++ ++ <STRONG>o</STRONG> If <STRONG>use_env(FALSE)</STRONG> has been called, values for <STRONG>lines</STRONG> ++ and <STRONG>columns</STRONG> specified in <STRONG>terminfo</STRONG> are used. ++ ++ <STRONG>o</STRONG> Otherwise, if the environment variables <STRONG>LINES</STRONG> and <STRONG>COL-</STRONG> ++ <STRONG>UMNS</STRONG> exist, their values are used. If these environ- ++ ment variables do not exist and the program is running ++ in a window, the current window size is used. Other- ++ wise, if the environment variables do not exist, the ++ values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the <STRONG>terminfo</STRONG> ++ database are used. ++ ++ Parameterized strings should be passed through <STRONG>tparm</STRONG> to ++ instantiate them. All <STRONG>terminfo</STRONG> strings [including the ++ output of <STRONG>tparm</STRONG>] should be printed with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. ++ Call <STRONG>reset_shell_mode</STRONG> to restore the tty modes before ex- ++ iting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>]. ++ ++ Programs which use cursor addressing should ++ ++ <STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> upon startup and ++ ++ <STRONG>o</STRONG> output <STRONG>exit_ca_mode</STRONG> before exiting. ++ ++ Programs which execute shell subprocesses should ++ ++ <STRONG>o</STRONG> call <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before ++ the shell is called and ++ ++ <STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> and call <STRONG>reset_prog_mode</STRONG> after ++ returning from the shell. + + The <STRONG>setupterm</STRONG> routine reads in the <STRONG>terminfo</STRONG> database, ini- + tializing the <STRONG>terminfo</STRONG> structures, but does not set up the +@@ -129,54 +147,74 @@ + <EM>rret</EM>. A return value of <STRONG>OK</STRONG> combined with status of <STRONG>1</STRONG> in + <EM>errret</EM> is normal. If <STRONG>ERR</STRONG> is returned, examine <EM>errret</EM>: + +- <STRONG>1</STRONG> means that the terminal is hardcopy, cannot be +- used for curses applications. ++ <STRONG>1</STRONG> means that the terminal is hardcopy, cannot be used ++ for curses applications. ++ ++ <STRONG>setupterm</STRONG> determines if the entry is a hardcopy type ++ by checking the <EM>hc</EM> (<EM>hardcopy</EM>) capability. + +- <STRONG>0</STRONG> means that the terminal could not be found, or +- that it is a generic type, having too little +- information for curses applications to run. ++ <STRONG>0</STRONG> means that the terminal could not be found, or that ++ it is a generic type, having too little information ++ for curses applications to run. + +- <STRONG>-1</STRONG> means that the <STRONG>terminfo</STRONG> database could not be +- found. ++ <STRONG>setupterm</STRONG> determines if the entry is a generic type ++ by checking the <EM>gn</EM> (<EM>generic</EM>) capability. + +- If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon ++ <STRONG>-1</STRONG> means that the <STRONG>terminfo</STRONG> database could not be found. ++ ++ If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon + finding an error and exits. Thus, the simplest call is: + + <STRONG>setupterm((char</STRONG> <STRONG>*)0,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0);</STRONG>, + +- which uses all the defaults and sends the output to <STRONG>std-</STRONG> ++ which uses all the defaults and sends the output to <STRONG>std-</STRONG> + <STRONG>out</STRONG>. + +- The <STRONG>setterm</STRONG> routine is being replaced by <STRONG>setupterm</STRONG>. The +- call: ++ The <STRONG>setterm</STRONG> routine was replaced by <STRONG>setupterm</STRONG>. The call: + + <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG> + + provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>. The +- <STRONG>setterm</STRONG> routine is included here for BSD compatibility, +- and is not recommended for new programs. ++ <STRONG>setterm</STRONG> routine is provided for BSD compatibility, and is ++ not recommended for new programs. + +- The <STRONG>set_curterm</STRONG> routine sets the variable <STRONG>cur_term</STRONG> to +- <EM>nterm</EM>, and makes all of the <STRONG>terminfo</STRONG> boolean, numeric, and +- string variables use the values from <EM>nterm</EM>. It returns +- the old value of <STRONG>cur_term</STRONG>. ++ <STRONG>The</STRONG> <STRONG>Terminal</STRONG> <STRONG>State</STRONG> ++ The <STRONG>setupterm</STRONG> routine stores its information about the ++ terminal in a <STRONG>TERMINAL</STRONG> structure pointed to by the global ++ variable <STRONG>cur_term</STRONG>. If it detects an error, or decides ++ that the terminal is unsuitable (hardcopy or generic), it ++ discards this information, making it not available to ap- ++ plications. ++ ++ If <STRONG>setupterm</STRONG> is called repeatedly for the same terminal ++ type, it will reuse the information. It maintains only ++ one copy of a given terminal's capabilities in memory. If ++ it is called for different terminal types, <STRONG>setupterm</STRONG> allo- ++ cates new storage for each set of terminal capabilities. ++ ++ The <STRONG>set_curterm</STRONG> routine sets <STRONG>cur_term</STRONG> to <EM>nterm</EM>, and makes ++ all of the <STRONG>terminfo</STRONG> boolean, numeric, and string variables ++ use the values from <EM>nterm</EM>. It returns the old value of ++ <STRONG>cur_term</STRONG>. + +- The <STRONG>del_curterm</STRONG> routine frees the space pointed to by ++ The <STRONG>del_curterm</STRONG> routine frees the space pointed to by + <EM>oterm</EM> and makes it available for further use. If <EM>oterm</EM> is +- the same as <STRONG>cur_term</STRONG>, references to any of the <STRONG>terminfo</STRONG> +- boolean, numeric, and string variables thereafter may re- +- fer to invalid memory locations until another <STRONG>setupterm</STRONG> ++ the same as <STRONG>cur_term</STRONG>, references to any of the <STRONG>terminfo</STRONG> ++ boolean, numeric, and string variables thereafter may re- ++ fer to invalid memory locations until another <STRONG>setupterm</STRONG> + has been called. + + The <STRONG>restartterm</STRONG> routine is similar to <STRONG>setupterm</STRONG> and +- <STRONG>initscr</STRONG>, except that it is called after restoring memory +- to a previous state (for example, when reloading a game +- saved as a core image dump). It assumes that the windows +- and the input and output options are the same as when mem- +- ory was saved, but the terminal type and baud rate may be +- different. Accordingly, it saves various tty state bits, +- calls <STRONG>setupterm</STRONG>, and then restores the bits. ++ <STRONG>initscr</STRONG>, except that it is called after restoring memory ++ to a previous state (for example, when reloading a game ++ saved as a core image dump). <STRONG>restartterm</STRONG> assumes that the ++ windows and the input and output options are the same as ++ when memory was saved, but the terminal type and baud rate ++ may be different. Accordingly, <STRONG>restartterm</STRONG> saves various ++ tty state bits, calls <STRONG>setupterm</STRONG>, and then restores the ++ bits. + ++ <STRONG>Formatting</STRONG> <STRONG>Output</STRONG> + The <STRONG>tparm</STRONG> routine instantiates the string <EM>str</EM> with parame- + ters <EM>pi</EM>. A pointer is returned to the result of <EM>str</EM> with + the parameters applied. +@@ -185,6 +223,7 @@ + rather than a fixed-parameter list. Its numeric parame- + ters are integers (int) rather than longs. + ++ <STRONG>Output</STRONG> <STRONG>Functions</STRONG> + The <STRONG>tputs</STRONG> routine applies padding information to the + string <EM>str</EM> and outputs it. The <EM>str</EM> must be a terminfo + string variable or the return value from <STRONG>tparm</STRONG>, <STRONG>tgetstr</STRONG>, +@@ -218,36 +257,48 @@ + takes effect immediately (rather than at the next re- + fresh). + ++ <STRONG>Terminal</STRONG> <STRONG>Capability</STRONG> <STRONG>Functions</STRONG> + The <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG> and <STRONG>tigetstr</STRONG> routines return the + value of the capability corresponding to the <STRONG>terminfo</STRONG> <EM>cap-</EM> +- <EM>name</EM> passed to them, such as <STRONG>xenl</STRONG>. ++ <EM>name</EM> passed to them, such as <STRONG>xenl</STRONG>. The <EM>capname</EM> for each ++ capability is given in the table column entitled <EM>capname</EM> ++ code in the capabilities section of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. ++ ++ These routines return special values to denote errors. ++ ++ The <STRONG>tigetflag</STRONG> routine returns ++ ++ <STRONG>-1</STRONG> if <EM>capname</EM> is not a boolean capability, or ++ ++ <STRONG>0</STRONG> if it is canceled or absent from the terminal de- ++ scription. + +- The <STRONG>tigetflag</STRONG> routine returns the value <STRONG>-1</STRONG> if <EM>capname</EM> is +- not a boolean capability, or <STRONG>0</STRONG> if it is canceled or absent +- from the terminal description. +- +- The <STRONG>tigetnum</STRONG> routine returns the value <STRONG>-2</STRONG> if <EM>capname</EM> is +- not a numeric capability, or <STRONG>-1</STRONG> if it is canceled or ab- +- sent from the terminal description. +- +- The <STRONG>tigetstr</STRONG> routine returns the value <STRONG>(char</STRONG> <STRONG>*)-1</STRONG> if <EM>cap-</EM> +- <EM>name</EM> is not a string capability, or <STRONG>0</STRONG> if it is canceled or +- absent from the terminal description. +- +- The <EM>capname</EM> for each capability is given in the table col- +- umn entitled <EM>capname</EM> code in the capabilities section of +- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. ++ The <STRONG>tigetnum</STRONG> routine returns + ++ <STRONG>-2</STRONG> if <EM>capname</EM> is not a numeric capability, or ++ ++ <STRONG>-1</STRONG> if it is canceled or absent from the terminal de- ++ scription. ++ ++ The <STRONG>tigetstr</STRONG> routine returns ++ ++ <STRONG>(char</STRONG> <STRONG>*)-1</STRONG> ++ if <EM>capname</EM> is not a string capability, or ++ ++ <STRONG>0</STRONG> if it is canceled or absent from the terminal de- ++ scription. ++ ++ <STRONG>Terminal</STRONG> <STRONG>Capability</STRONG> <STRONG>Names</STRONG> ++ These null-terminated arrays contain the short terminfo ++ names ("codes"), the <STRONG>termcap</STRONG> names, and the long terminfo ++ names ("fnames") for each of the predefined <STRONG>terminfo</STRONG> vari- ++ ables: + <STRONG>char</STRONG> <STRONG>*boolnames[]</STRONG>, <STRONG>*boolcodes[]</STRONG>, <STRONG>*boolfnames[]</STRONG> + + <STRONG>char</STRONG> <STRONG>*numnames[]</STRONG>, <STRONG>*numcodes[]</STRONG>, <STRONG>*numfnames[]</STRONG> + + <STRONG>char</STRONG> <STRONG>*strnames[]</STRONG>, <STRONG>*strcodes[]</STRONG>, <STRONG>*strfnames[]</STRONG> + +- These null-terminated arrays contain the <EM>capnames</EM>, the +- <STRONG>termcap</STRONG> codes, and the full C names, for each of the <STRONG>ter-</STRONG> +- <STRONG>minfo</STRONG> variables. +- + + </PRE> + <H2>RETURN VALUE</H2><PRE> +@@ -261,49 +312,64 @@ + X/Open defines no error conditions. In this implementa- + tion + +- <STRONG>del_curterm</STRONG> +- returns an error if its terminal parameter is +- null. +- +- <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error-codes. +- +- <STRONG>restartterm</STRONG> +- returns an error if the associated call to <STRONG>se-</STRONG> +- <STRONG>tupterm</STRONG> returns an error. +- +- <STRONG>setupterm</STRONG> +- returns an error if it cannot allocate enough +- memory, or create the initial windows (stdscr, +- curscr, newscr). Other error conditions are +- documented above. +- +- <STRONG>tputs</STRONG> +- returns an error if the string parameter is +- null. It does not detect I/O errors: X/Open +- states that <STRONG>tputs</STRONG> ignores the return value of +- the output function <EM>putc</EM>. +- +- +-</PRE> +-<H2>NOTES</H2><PRE> +- The <STRONG>setupterm</STRONG> routine should be used in place of <STRONG>setterm</STRONG>. +- It may be useful when you want to test for terminal capa- +- bilities without committing to the allocation of storage +- involved in <STRONG>initscr</STRONG>. +- +- Note that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros. ++ <STRONG>del_curterm</STRONG> ++ returns an error if its terminal parameter is ++ null. ++ ++ <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error-codes. ++ ++ <STRONG>restartterm</STRONG> ++ returns an error if the associated call to <STRONG>se-</STRONG> ++ <STRONG>tupterm</STRONG> returns an error. ++ ++ <STRONG>setupterm</STRONG> ++ returns an error if it cannot allocate enough ++ memory, or create the initial windows (stdscr, ++ curscr, newscr). Other error conditions are ++ documented above. ++ ++ <STRONG>tputs</STRONG> ++ returns an error if the string parameter is ++ null. It does not detect I/O errors: X/Open ++ states that <STRONG>tputs</STRONG> ignores the return value of ++ the output function <EM>putc</EM>. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- The function <STRONG>setterm</STRONG> is not described by X/Open and must +- be considered non-portable. All other functions are as ++ X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros. ++ ++ The function <STRONG>setterm</STRONG> is not described by X/Open and must ++ be considered non-portable. All other functions are as + described by X/Open. + +- <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. +- This is not part of X/Open Curses, but is assumed by some ++ <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. ++ This is not part of X/Open Curses, but is assumed by some + applications. + ++ If configured to use the terminal-driver, e.g., for the ++ MinGW port, ++ ++ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as ++ the special value "unknown". ++ ++ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows con- ++ sole driver by checking if $TERM is set to "#win32con" ++ or an abbreviation of that string. ++ ++ Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor ++ passed to <STRONG>setupterm</STRONG> from <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> uses buffered ++ I/O, and would write to the corresponding stream. In ad- ++ dition to the limitation that the terminal was left in ++ block-buffered mode on exit (like SystemV curses), it was ++ problematic because <STRONG>ncurses</STRONG> did not allow a reliable way ++ to cleanup on receiving SIGTSTP. The current version uses ++ output buffers managed directly by <STRONG>ncurses</STRONG>. Some of the ++ low-level functions described in this manual page write to ++ the standard output. They are not signal-safe. The high- ++ level functions in <STRONG>ncurses</STRONG> use alternate versions of these ++ functions using the more reliable buffering scheme. ++ + In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type + and returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. We have chosen to implement the + X/Open Curses semantics. +@@ -323,12 +389,12 @@ + zeroes are fine for this purpose. + + In response to comments by Thomas E. Dickey, X/Open Curses +- Issue 7 proposed the <STRONG>tiparam</STRONG> function in mid-2009. ++ Issue 7 proposed the <STRONG>tiparm</STRONG> function in mid-2009. + + X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state + may not match the actual terminal state, and that an ap- + plication should touch and refresh the window before re- +- suming normal curses calls. Both ncurses and System V Re- ++ suming normal curses calls. Both <STRONG>ncurses</STRONG> and System V Re- + lease 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo- + cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is docu- + mented as a terminfo function, <STRONG>mvcur</STRONG> is really a curses +@@ -339,15 +405,18 @@ + for the old ordinates. In that case, the old location is + unknown. + ++ Other implementions may not declare the capability name ++ arrays. Some provide them without declaring them. X/Open ++ does not specify them. ++ + Extended terminal capability names, e.g., as defined by +- <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not stored in the arrays described in this +- section. ++ <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not stored in the arrays described here. + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG> +- <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>, ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG> ++ <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, + <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + + +diff -Naur ncurses-5.9/doc/html/man/curs_threads.3x.html ncurses-5.9.patch/doc/html/man/curs_threads.3x.html +--- ncurses-5.9/doc/html/man/curs_threads.3x.html 2011-01-09 02:03:15.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_threads.3x.html 2014-09-01 16:33:22.324792069 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_threads.3x,v 1.19 2012/05/26 17:03:26 tom Exp @ + * *************************************************************************** + * *************************************************************************** + --> +@@ -61,9 +61,9 @@ + <STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG> + <STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <STRONG>size);</STRONG> + <STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <STRONG>size);</STRONG> +- <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG> ++ <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG> + <STRONG>*data);</STRONG> +- <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG> ++ <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG> + <STRONG>*data);</STRONG> + + +diff -Naur ncurses-5.9/doc/html/man/curs_touch.3x.html ncurses-5.9.patch/doc/html/man/curs_touch.3x.html +--- ncurses-5.9/doc/html/man/curs_touch.3x.html 2011-01-09 02:03:15.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_touch.3x.html 2014-09-01 16:33:22.324792069 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_trace.3x.html ncurses-5.9.patch/doc/html/man/curs_trace.3x.html +--- ncurses-5.9/doc/html/man/curs_trace.3x.html 2011-01-09 02:03:16.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_trace.3x.html 2014-09-01 16:33:22.324792069 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2000-2009,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/curs_util.3x.html ncurses-5.9.patch/doc/html/man/curs_util.3x.html +--- ncurses-5.9/doc/html/man/curs_util.3x.html 2011-02-26 00:24:59.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_util.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,7 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- ++ * t + **************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 +28,7 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_util.3x,v 1.32 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_util.3x,v 1.37 2013/07/20 19:43:45 tom Exp @ + --> + <HTML> + <HEAD> +@@ -48,8 +49,8 @@ + </PRE> + <H2>NAME</H2><PRE> + <STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>, +- <STRONG>nofilter</STRONG>, <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous +- <STRONG>curses</STRONG> utility routines ++ <STRONG>nofilter</STRONG>, <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>use_tioctl</STRONG>, <STRONG>wunctrl</STRONG> - ++ miscellaneous <STRONG>curses</STRONG> utility routines + + + </PRE> +@@ -63,6 +64,7 @@ + <STRONG>void</STRONG> <STRONG>filter(void);</STRONG> + <STRONG>void</STRONG> <STRONG>nofilter(void);</STRONG> + <STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <STRONG>f);</STRONG> ++ <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <STRONG>f);</STRONG> + <STRONG>int</STRONG> <STRONG>putwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>FILE</STRONG> <STRONG>*filep);</STRONG> + <STRONG>WINDOW</STRONG> <STRONG>*getwin(FILE</STRONG> <STRONG>*filep);</STRONG> + <STRONG>int</STRONG> <STRONG>delay_output(int</STRONG> <STRONG>ms);</STRONG> +@@ -122,16 +124,66 @@ + <STRONG>$TERM</STRONG>. The limitation arises because the <STRONG>filter</STRONG> routine + modifies the in-memory copy of the terminal information. + +- The <STRONG>use_env</STRONG> routine, if used, is called before <STRONG>initscr</STRONG> or +- <STRONG>newterm</STRONG> are called. When called with <STRONG>FALSE</STRONG> as an argu- +- ment, the values of <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the +- <EM>terminfo</EM> database will be used, even if environment vari- +- ables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> (used by default) are set, or if +- <STRONG>curses</STRONG> is running in a window (in which case default be- +- havior would be to use the window size if <STRONG>LINES</STRONG> and +- <STRONG>COLUMNS</STRONG> are not set). Note that setting <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> +- overrides the corresponding size which may be obtained +- from the operating system. ++ The <STRONG>use_env</STRONG> routine, if used, should be called before ++ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the ++ screen size). It modifies the way <STRONG>ncurses</STRONG> treats environ- ++ ment variables when determining the screen size. ++ ++ <STRONG>o</STRONG> Normally ncurses looks first at the terminal database ++ for the screen size. ++ ++ If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it ++ stops here unless If <STRONG>use_tioctl</STRONG> was also called with ++ <STRONG>TRUE</STRONG> for parameter. ++ ++ <STRONG>o</STRONG> Then it asks for the screen size via operating system ++ calls. If successful, it overrides the values from ++ the terminal database. ++ ++ <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parame- ++ ter), ncurses examines the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environ- ++ ment variables, using a value in those to override the ++ results from the operating system or terminal data- ++ base. ++ ++ Ncurses also updates the screen size in response to ++ SIGWINCH, unless overridden by the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> ++ environment variables, ++ ++ The <STRONG>use_tioctl</STRONG> routine, if used, should be called before ++ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the ++ screen size). After <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an ++ argument, ncurses modifies the last step in its computa- ++ tion of screen size as follows: ++ ++ <STRONG>o</STRONG> checks if the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables ++ are set to a number greater than zero. ++ ++ <STRONG>o</STRONG> for each, ncurses updates the corresponding environ- ++ ment variable with the value that it has obtained via ++ operating system call or from the terminal database. ++ ++ <STRONG>o</STRONG> ncurses re-fetches the value of the environment vari- ++ ables so that it is still the environment variables ++ which set the screen size. ++ ++ The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as summarized ++ here: ++ ++ <EM>use</EM><STRONG>_</STRONG><EM>env</EM> <EM>use</EM><STRONG>_</STRONG><EM>tioctl</EM> <EM>Summary</EM> ++ ---------------------------------------------------------------- ++ TRUE FALSE This is the default behavior. ncurses ++ uses operating system calls unless over- ++ ridden by $LINES or $COLUMNS environment ++ variables. ++ TRUE TRUE ncurses updates $LINES and $COLUMNS ++ based on operating system calls. ++ ++ FALSE TRUE ncurses ignores $LINES and $COLUMNS, us- ++ es operating system calls to obtain ++ size. ++ FALSE FALSE ncurses relies on the terminal database ++ to determine size. + + The <STRONG>putwin</STRONG> routine writes all data associated with window + <EM>win</EM> into the file to which <EM>filep</EM> points. This information +@@ -191,60 +243,60 @@ + control code. If <STRONG>use_legacy_coding</STRONG> has been called + with a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG> returns the parameter, + i.e., a one-character string with the parameter as +- the first character. Otherwise, it returns ``~@'', +- ``~A'', etc., analogous to ``^@'', ``^A'', C0 con- +- trols. +- +- X/Open Curses does not document whether <STRONG>unctrl</STRONG> can +- be called before initializing curses. This imple- +- mentation permits that, and returns the ``~@'', +- etc., values in that case. ++ the first character. Otherwise, it returns "~@", ++ "~A", etc., analogous to "^@", "^A", C0 controls. + +- <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unc-</STRONG> ++ X/Open Curses does not document whether <STRONG>unctrl</STRONG> can ++ be called before initializing curses. This imple- ++ mentation permits that, and returns the "~@", etc., ++ values in that case. ++ ++ <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unc-</STRONG> + <STRONG>trl</STRONG> returns a null pointer. + + The SVr4 documentation describes the action of <STRONG>filter</STRONG> only +- in the vaguest terms. The description here is adapted +- from the XSI Curses standard (which erroneously fails to ++ in the vaguest terms. The description here is adapted ++ from the XSI Curses standard (which erroneously fails to + describe the disabling of <STRONG>cuu</STRONG>). + +- The strings returned by <STRONG>unctrl</STRONG> in this implementation are +- determined at compile time, showing C1 controls from the +- upper-128 codes with a `~' prefix rather than `^'. Other +- implementations have different conventions. For example, +- they may show both sets of control characters with `^', +- and strip the parameter to 7 bits. Or they may ignore C1 +- controls and treat all of the upper-128 codes as print- ++ The strings returned by <STRONG>unctrl</STRONG> in this implementation are ++ determined at compile time, showing C1 controls from the ++ upper-128 codes with a `~' prefix rather than `^'. Other ++ implementations have different conventions. For example, ++ they may show both sets of control characters with `^', ++ and strip the parameter to 7 bits. Or they may ignore C1 ++ controls and treat all of the upper-128 codes as print- + able. This implementation uses 8 bits but does not modify + the string to reflect locale. The <STRONG>use_legacy_coding</STRONG> func- + tion allows the caller to change the output of <STRONG>unctrl</STRONG>. + +- Likewise, the <STRONG>meta</STRONG> function allows the caller to change +- the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use +- the `M-' prefix for ``meta'' keys (codes in the range 128 +- to 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only af- +- ter curses is initialized. X/Open Curses does not docu- +- ment the treatment of codes 128 to 159. When treating +- them as ``meta'' keys (or if <STRONG>keyname</STRONG> is called before ini- +- tializing curses), this implementation returns strings +- ``M-^@'', ``M-^A'', etc. +- +- The <STRONG>keyname</STRONG> function may return the names of user-defined +- string capabilities which are defined in the terminfo en- +- try via the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>. This implementation auto- +- matically assigns at run-time keycodes to user-defined +- strings which begin with "k". The keycodes start at +- KEY_MAX, but are not guaranteed to be the same value for +- different runs because user-defined codes are merged from +- all terminal descriptions which have been loaded. The +- <STRONG>use_extended_names</STRONG> function controls whether this data is +- loaded when the terminal description is read by the li- ++ Likewise, the <STRONG>meta</STRONG> function allows the caller to change ++ the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use ++ the `M-' prefix for "meta" keys (codes in the range 128 to ++ 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only after ++ curses is initialized. X/Open Curses does not document ++ the treatment of codes 128 to 159. When treating them as ++ "meta" keys (or if <STRONG>keyname</STRONG> is called before initializing ++ curses), this implementation returns strings "M-^@", ++ "M-^A", etc. ++ ++ The <STRONG>keyname</STRONG> function may return the names of user-defined ++ string capabilities which are defined in the terminfo en- ++ try via the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>. This implementation auto- ++ matically assigns at run-time keycodes to user-defined ++ strings which begin with "k". The keycodes start at ++ KEY_MAX, but are not guaranteed to be the same value for ++ different runs because user-defined codes are merged from ++ all terminal descriptions which have been loaded. The ++ <STRONG>use_extended_names</STRONG> function controls whether this data is ++ loaded when the terminal description is read by the li- + brary. + +- The <STRONG>nofilter</STRONG> routine is specific to ncurses. It was not +- supported on Version 7, BSD or System V implementations. +- It is recommended that any code depending on ncurses ex- +- tensions be conditioned using NCURSES_VERSION. ++ The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are specific to ++ ncurses. They were not supported on Version 7, BSD or ++ System V implementations. It is recommended that any code ++ depending on ncurses extensions be conditioned using ++ NCURSES_VERSION. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/curs_variables.3x.html ncurses-5.9.patch/doc/html/man/curs_variables.3x.html +--- ncurses-5.9/doc/html/man/curs_variables.3x.html 2011-01-09 02:03:16.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_variables.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_variables.3x,v 1.4 2010/12/04 18:38:55 tom Exp @ ++ * @Id: curs_variables.3x,v 1.6 2013/12/21 18:41:32 tom Exp @ + --> + <HTML> + <HEAD> +@@ -73,10 +73,10 @@ + <STRONG><A HREF="ncurses.3x.html">es(3x)</A></STRONG> manual page. + + Depending on the configuration, these may be actual vari- +- ables, or macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>) which provide +- read-only access to <EM>curses</EM>'s state. In either case, ap- +- plications should treat them as read-only to avoid confus- +- ing the library. ++ ables, or macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> and ++ <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>) which provide read-only access to <EM>curs-</EM> ++ <EM>es</EM>'s state. In either case, applications should treat ++ them as read-only to avoid confusing the library. + + <STRONG>COLOR_PAIRS</STRONG> + After initializing curses, this variable contains the num- +@@ -133,7 +133,7 @@ + </PRE> + <H2>NOTES</H2><PRE> + The curses library is initialized using either +- <STRONG><A HREF="initscr.3x.html">initscr(3x)</A></STRONG>, or <STRONG><A HREF="newterm.3x.html">newterm(3x)</A></STRONG>. ++ <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, or <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>. + + If <STRONG>curses</STRONG> is configured to use separate curses/terminfo + libraries, most of these variables reside in the curses +@@ -148,8 +148,8 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>termin-</STRONG> +- <STRONG><A HREF="terminfo.3x.html">fo(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, ++ <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + + + +diff -Naur ncurses-5.9/doc/html/man/curs_window.3x.html ncurses-5.9.patch/doc/html/man/curs_window.3x.html +--- ncurses-5.9/doc/html/man/curs_window.3x.html 2011-01-09 02:03:17.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/curs_window.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/default_colors.3x.html ncurses-5.9.patch/doc/html/man/default_colors.3x.html +--- ncurses-5.9/doc/html/man/default_colors.3x.html 2011-01-09 02:03:17.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/default_colors.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * +@@ -159,7 +159,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ded.1.html">ded(1)</A></STRONG>. ++ <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG>ded(1)</STRONG>. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/define_key.3x.html ncurses-5.9.patch/doc/html/man/define_key.3x.html +--- ncurses-5.9/doc/html/man/define_key.3x.html 2011-01-09 02:03:17.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/define_key.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/form.3x.html ncurses-5.9.patch/doc/html/man/form.3x.html +--- ncurses-5.9/doc/html/man/form.3x.html 2011-04-05 00:46:40.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/form.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -243,7 +243,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/form_cursor.3x.html ncurses-5.9.patch/doc/html/man/form_cursor.3x.html +--- ncurses-5.9/doc/html/man/form_cursor.3x.html 2011-01-09 02:03:17.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_cursor.3x.html 2014-09-01 16:33:22.325792071 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_data.3x.html ncurses-5.9.patch/doc/html/man/form_data.3x.html +--- ncurses-5.9/doc/html/man/form_data.3x.html 2011-01-09 02:03:18.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_data.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_driver.3x.html ncurses-5.9.patch/doc/html/man/form_driver.3x.html +--- ncurses-5.9/doc/html/man/form_driver.3x.html 2011-01-09 02:03:18.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_driver.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * +@@ -342,7 +342,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>, <STRONG><A HREF="getch.3x.html">getch(3x)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/form_field.3x.html ncurses-5.9.patch/doc/html/man/form_field.3x.html +--- ncurses-5.9/doc/html/man/form_field.3x.html 2011-01-09 02:03:18.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: form_field.3x,v 1.10 2010/12/04 18:40:45 tom Exp @ ++ * @Id: form_field.3x,v 1.11 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -78,7 +78,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + The function <STRONG>form_fields</STRONG> returns a pointer (which may be + <STRONG>NULL</STRONG>). It does not set errno. + +diff -Naur ncurses-5.9/doc/html/man/form_field_attributes.3x.html ncurses-5.9.patch/doc/html/man/form_field_attributes.3x.html +--- ncurses-5.9/doc/html/man/form_field_attributes.3x.html 2011-01-09 02:03:18.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_attributes.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_field_buffer.3x.html ncurses-5.9.patch/doc/html/man/form_field_buffer.3x.html +--- ncurses-5.9/doc/html/man/form_field_buffer.3x.html 2011-02-26 00:25:01.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_buffer.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -151,8 +151,8 @@ + When configured for wide characters, <STRONG>field_buffer</STRONG> returns + a pointer to temporary storage (allocated and freed by the + library). The application should not attempt to modify +- the data. It will be freed on the next call to +- <STRONG>field_buffer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>. ++ the data. It will be freed on the next call to <STRONG>field_buf-</STRONG> ++ <STRONG>fer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/form_field_info.3x.html ncurses-5.9.patch/doc/html/man/form_field_info.3x.html +--- ncurses-5.9/doc/html/man/form_field_info.3x.html 2011-01-09 02:03:19.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_info.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_field_just.3x.html ncurses-5.9.patch/doc/html/man/form_field_just.3x.html +--- ncurses-5.9/doc/html/man/form_field_just.3x.html 2011-01-09 02:03:19.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_just.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_field_new.3x.html ncurses-5.9.patch/doc/html/man/form_field_new.3x.html +--- ncurses-5.9/doc/html/man/form_field_new.3x.html 2011-01-09 02:03:19.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_new.3x.html 2014-09-01 16:33:22.326792073 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_field_opts.3x.html ncurses-5.9.patch/doc/html/man/form_field_opts.3x.html +--- ncurses-5.9/doc/html/man/form_field_opts.3x.html 2011-01-09 02:03:19.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_opts.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_fieldtype.3x.html ncurses-5.9.patch/doc/html/man/form_fieldtype.3x.html +--- ncurses-5.9/doc/html/man/form_fieldtype.3x.html 2011-02-26 00:25:02.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_fieldtype.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -112,8 +112,8 @@ + <STRONG>REQ_PREV_CHOICE</STRONG> assume that the possible values of a field + form an ordered set, and provide the forms user with a way + to move through the set. The <STRONG>set_fieldtype_choice</STRONG> func- +- tion allows forms programmers to define successor and +- predecessor functions for the field type. These functions ++ tion allows forms programmers to define successor and pre- ++ decessor functions for the field type. These functions + take the field pointer and an argument-block structure as + arguments. + +diff -Naur ncurses-5.9/doc/html/man/form_field_userptr.3x.html ncurses-5.9.patch/doc/html/man/form_field_userptr.3x.html +--- ncurses-5.9/doc/html/man/form_field_userptr.3x.html 2011-01-09 02:03:20.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_userptr.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_field_validation.3x.html ncurses-5.9.patch/doc/html/man/form_field_validation.3x.html +--- ncurses-5.9/doc/html/man/form_field_validation.3x.html 2011-01-09 02:03:20.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_field_validation.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/form_hook.3x.html ncurses-5.9.patch/doc/html/man/form_hook.3x.html +--- ncurses-5.9/doc/html/man/form_hook.3x.html 2011-01-09 02:03:20.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_hook.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_new.3x.html ncurses-5.9.patch/doc/html/man/form_new.3x.html +--- ncurses-5.9/doc/html/man/form_new.3x.html 2011-01-09 02:03:20.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_new.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_new_page.3x.html ncurses-5.9.patch/doc/html/man/form_new_page.3x.html +--- ncurses-5.9/doc/html/man/form_new_page.3x.html 2011-01-09 02:03:20.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_new_page.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_opts.3x.html ncurses-5.9.patch/doc/html/man/form_opts.3x.html +--- ncurses-5.9/doc/html/man/form_opts.3x.html 2011-01-09 02:03:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_opts.3x.html 2014-09-01 16:33:22.327792074 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_page.3x.html ncurses-5.9.patch/doc/html/man/form_page.3x.html +--- ncurses-5.9/doc/html/man/form_page.3x.html 2011-01-09 02:03:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_page.3x.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_post.3x.html ncurses-5.9.patch/doc/html/man/form_post.3x.html +--- ncurses-5.9/doc/html/man/form_post.3x.html 2011-01-09 02:03:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_post.3x.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_requestname.3x.html ncurses-5.9.patch/doc/html/man/form_requestname.3x.html +--- ncurses-5.9/doc/html/man/form_requestname.3x.html 2011-01-09 02:03:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_requestname.3x.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_userptr.3x.html ncurses-5.9.patch/doc/html/man/form_userptr.3x.html +--- ncurses-5.9/doc/html/man/form_userptr.3x.html 2011-01-09 02:03:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_userptr.3x.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/form_variables.3x.html ncurses-5.9.patch/doc/html/man/form_variables.3x.html +--- ncurses-5.9/doc/html/man/form_variables.3x.html 2011-01-09 02:03:21.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_variables.3x.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2010,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: form_variables.3x,v 1.3 2010/12/04 18:38:55 tom Exp @ ++ * @Id: form_variables.3x,v 1.4 2013/06/22 17:58:32 tom Exp @ + --> + <HTML> + <HEAD> +@@ -68,7 +68,7 @@ + </PRE> + <H2>DESCRIPTION</H2><PRE> + These are building blocks for the form library, defining +- fields that can be created using <STRONG><A HREF="set_fieldtype.3x.html">set_fieldtype(3x)</A></STRONG>. Each ++ fields that can be created using <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>. Each + provides functions for field- and character-validation, + according to the given datatype. + +diff -Naur ncurses-5.9/doc/html/man/form_win.3x.html ncurses-5.9.patch/doc/html/man/form_win.3x.html +--- ncurses-5.9/doc/html/man/form_win.3x.html 2011-01-09 02:03:22.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/form_win.3x.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/index.html ncurses-5.9.patch/doc/html/man/index.html +--- ncurses-5.9/doc/html/man/index.html 2010-01-09 21:36:50.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/index.html 2014-09-01 16:33:22.328792076 +0200 +@@ -1,8 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"> + <!-- +- $Id: index.html,v 1.4 2010/01/09 20:36:50 tom Exp $ ++ $Id: index.html,v 1.7 2013/06/07 20:12:36 tom Exp $ + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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,39 +28,83 @@ + * authorization. * + **************************************************************************** + --> +-<HTML> +-<HEAD> +-<TITLE>NCURSES &ndash; Manual Pages</TITLE> +-<LINK REV=MADE HREF="mailto:dickey@invisible-island.net"> +-</HEAD> +-<BODY> +-<HR> +-<ul> +-<li>Programs: +-<ul> +-<li><a href = "captoinfo.1m.html">captoinfo &ndash; convert a termcap description into a terminfo description</a> +-<li><a href = "clear.1.html">clear &ndash; clear the terminal screen</a> +-<li><a href = "infocmp.1m.html">infocmp &ndash; compare or print out terminfo descriptions</a> +-<li><a href = "infotocap.1m.html">infotocap &ndash; convert a terminfo description into a termcap description</a> +-<li><a href = "tabs.1.html">tabs &ndash; set tabs on a terminal</a> +-<li><a href = "tic.1m.html">tic &ndash; the terminfo entry-description compiler</a> +-<li><a href = "toe.1m.html">toe &ndash; table of (terminfo) entries</a> +-<li><a href = "tput.1.html">tput &ndash; initialize a terminal or query terminfo database</a> +-<li><a href = "tset.1.html">tset &ndash; terminal initialization</a> +-</ul> +-<li>Libraries: +-<ul> +-<li><a href = "ncurses.3x.html">ncurses &ndash; CRT screen handling and optimization package</a> +-<li><a href = "panel.3x.html">panel- panel stack extension for curses</a> +-<li><a href = "form.3x.html">form &ndash; curses extension for programming forms</a> +-<li><a href = "menu.3x.html">menu &ndash; curses extension for programming menus</a> +-</ul> +-<li>File formats: +-<ul> +-<li><a href = "terminfo.5.html">terminfo &ndash; terminal capability data base</a> +-<li><a href = "term.5.html">term &ndash; format of compiled term file.</a> +-<li><a href = "term.7.html">term &ndash; conventions for naming terminal types</a> +-</ul> +-</ul> +-</BODY> +-</HTML> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++ ++<html> ++<head> ++ <meta name="generator" content= ++ "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org"> ++ ++ <title>NCURSES &ndash; Manual Pages</title> ++ <link rev="MADE" href="mailto:dickey@invisible-island.net"> ++ <meta http-equiv="Content-Type" content= ++ "text/html; charset=us-ascii"> ++</head> ++ ++<body> ++ <ul> ++ <li>Programs: ++ ++ <ul> ++ <li><a href="captoinfo.1m.html">captoinfo &ndash; convert a ++ termcap description into a terminfo description</a></li> ++ ++ <li><a href="clear.1.html">clear &ndash; clear the terminal ++ screen</a></li> ++ ++ <li><a href="infocmp.1m.html">infocmp &ndash; compare or ++ print out terminfo descriptions</a></li> ++ ++ <li><a href="infotocap.1m.html">infotocap &ndash; convert a ++ terminfo description into a termcap description</a></li> ++ ++ <li><a href="tabs.1.html">tabs &ndash; set tabs on a ++ terminal</a></li> ++ ++ <li><a href="tic.1m.html">tic &ndash; the terminfo ++ entry-description compiler</a></li> ++ ++ <li><a href="toe.1m.html">toe &ndash; table of (terminfo) ++ entries</a></li> ++ ++ <li><a href="tput.1.html">tput &ndash; initialize a ++ terminal or query terminfo database</a></li> ++ ++ <li><a href="tset.1.html">tset &ndash; terminal ++ initialization</a></li> ++ </ul> ++ </li> ++ ++ <li>Libraries: ++ ++ <ul> ++ <li><a href="ncurses.3x.html">ncurses &ndash; CRT screen ++ handling and optimization package</a></li> ++ ++ <li><a href="panel.3x.html">panel- panel stack extension ++ for curses</a></li> ++ ++ <li><a href="form.3x.html">form &ndash; curses extension ++ for programming forms</a></li> ++ ++ <li><a href="menu.3x.html">menu &ndash; curses extension ++ for programming menus</a></li> ++ </ul> ++ </li> ++ ++ <li>File formats: ++ ++ <ul> ++ <li><a href="terminfo.5.html">terminfo &ndash; terminal ++ capability data base</a></li> ++ ++ <li><a href="term.5.html">term &ndash; format of compiled ++ term file.</a></li> ++ ++ <li><a href="term.7.html">term &ndash; conventions for ++ naming terminal types</a></li> ++ </ul> ++ </li> ++ </ul> ++</body> ++</html> +diff -Naur ncurses-5.9/doc/html/man/infocmp.1m.html ncurses-5.9.patch/doc/html/man/infocmp.1m.html +--- ncurses-5.9/doc/html/man/infocmp.1m.html 2011-04-05 00:46:44.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/infocmp.1m.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: infocmp.1m,v 1.46 2010/12/04 18:40:45 tom Exp @ ++ * @Id: infocmp.1m,v 1.53 2013/02/02 22:07:35 tom Exp @ + --> + <HTML> + <HEAD> +@@ -53,7 +53,7 @@ + + </PRE> + <H2>SYNOPSIS</H2><PRE> +- <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTUVcdegilnpqrtux</STRONG>] ++ <STRONG>infocmp</STRONG> [<STRONG>-1CDEFGIKLTUVcdegilnpqrtux</STRONG>] + [<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>] + [<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>] + [<EM>termname</EM>...] +@@ -72,76 +72,91 @@ + <STRONG>Default</STRONG> <STRONG>Options</STRONG> + If no options are specified and zero or one <EM>termnames</EM> are + specified, the <STRONG>-I</STRONG> option will be assumed. If more than +- one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed. ++ one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed. + + <STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG> +- <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first +- terminal <EM>termname</EM> with each of the descriptions given by +- the entries for the other terminal's <EM>termnames</EM>. If a +- capability is defined for only one of the terminals, the +- value returned will depend on the type of the capability: +- <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and ++ <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first ++ terminal <EM>termname</EM> with each of the descriptions given by ++ the entries for the other terminal's <EM>termnames</EM>. If a ++ capability is defined for only one of the terminals, the ++ value returned will depend on the type of the capability: ++ <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and + <STRONG>NULL</STRONG> for string variables. + +- The <STRONG>-d</STRONG> option produces a list of each capability that is +- different between two entries. This option is useful to +- show the difference between two entries, created by dif- ++ The <STRONG>-d</STRONG> option produces a list of each capability that is ++ different between two entries. This option is useful to ++ show the difference between two entries, created by dif- + ferent people, for the same or similar terminals. + +- The <STRONG>-c</STRONG> option produces a list of each capability that is +- common between two entries. Capabilities that are not set +- are ignored. This option can be used as a quick check to +- see if the <STRONG>-u</STRONG> option is worth using. +- +- The <STRONG>-n</STRONG> option produces a list of each capability that is +- in neither entry. If no <EM>termnames</EM> are given, the environ- +- ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>. +- This can be used as a quick check to see if anything was +- left out of a description. ++ The <STRONG>-c</STRONG> option produces a list of each capability that is ++ common between two or more entries. Capabilities that are ++ not set are ignored. This option can be used as a quick ++ check to see if the <STRONG>-u</STRONG> option is worth using. ++ ++ The <STRONG>-n</STRONG> option produces a list of each capability that is ++ in none of the given entries. If no <EM>termnames</EM> are given, ++ the environment variable <STRONG>TERM</STRONG> will be used for both of the ++ <EM>termnames</EM>. This can be used as a quick check to see if ++ anything was left out of a description. + + <STRONG>Source</STRONG> <STRONG>Listing</STRONG> <STRONG>Options</STRONG> <STRONG>[-I]</STRONG> <STRONG>[-L]</STRONG> <STRONG>[-C]</STRONG> <STRONG>[-r]</STRONG> +- The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing ++ The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing + for each terminal named. + + <STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names + <STRONG>-L</STRONG> use the long C variable name listed in &lt;<STRONG>term.h</STRONG>&gt; + <STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names + <STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form ++ <STRONG>-K</STRONG> modifies the <STRONG>-C</STRONG> option, improving BSD-compatibility. + +- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG> ++ If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG> + will be used for the terminal name. + +- The source produced by the <STRONG>-C</STRONG> option may be used directly +- as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can ++ The source produced by the <STRONG>-C</STRONG> option may be used directly ++ as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can + be changed to the <STRONG>termcap</STRONG> format. <STRONG>infocmp</STRONG> will attempt to +- convert most of the parameterized information, and any- +- thing not converted will be plainly marked in the output ++ convert most of the parameterized information, and any- ++ thing not converted will be plainly marked in the output + and commented out. These should be edited by hand. + +- All padding information for strings will be collected +- together and placed at the beginning of the string where +- <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa- ++ For best results when converting to <STRONG>termcap</STRONG> format, you ++ should use both <STRONG>-C</STRONG> and <STRONG>-r</STRONG>. Normally a termcap description ++ is limited to 1023 bytes. infocmp trims away less essen- ++ tial parts to make it fit. If you are converting to one ++ of the (rare) termcap implementations which accept an ++ unlimited size of termcap, you may want to add the <STRONG>-T</STRONG> ++ option. More often however, you must help the termcap ++ implementation, and trim excess whitespace (use the <STRONG>-0</STRONG> ++ option for that). ++ ++ All padding information for strings will be collected ++ together and placed at the beginning of the string where ++ <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa- + tion with a trailing '/') will become optional. + + All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but + which are derivable from other <STRONG>terminfo</STRONG> variables, will be + output. Not all <STRONG>terminfo</STRONG> capabilities will be translated; +- only those variables which were part of <STRONG>termcap</STRONG> will nor- +- mally be output. Specifying the <STRONG>-r</STRONG> option will take off +- this restriction, allowing all capabilities to be output +- in <EM>termcap</EM> form. ++ only those variables which were part of <STRONG>termcap</STRONG> will nor- ++ mally be output. Specifying the <STRONG>-r</STRONG> option will take off ++ this restriction, allowing all capabilities to be output ++ in <EM>termcap</EM> form. Normally you would use both the <STRONG>-C</STRONG> and ++ <STRONG>-r</STRONG> options. The actual format used incorporates some ++ improvements for escaped characters from terminfo format. ++ For a stricter BSD-compatible translation, use the <STRONG>-K</STRONG> ++ option rather than <STRONG>-C</STRONG>. + + Note that because padding is collected to the beginning of +- the capability, not all capabilities are output. Manda- +- tory padding is not supported. Because <STRONG>termcap</STRONG> strings +- are not as flexible, it is not always possible to convert +- a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG> +- format. A subsequent conversion of the <STRONG>termcap</STRONG> file back +- into <STRONG>terminfo</STRONG> format will not necessarily reproduce the ++ the capability, not all capabilities are output. Manda- ++ tory padding is not supported. Because <STRONG>termcap</STRONG> strings ++ are not as flexible, it is not always possible to convert ++ a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG> ++ format. A subsequent conversion of the <STRONG>termcap</STRONG> file back ++ into <STRONG>terminfo</STRONG> format will not necessarily reproduce the + original <STRONG>terminfo</STRONG> source. + +- Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG> +- equivalents, and some terminal types which commonly have ++ Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG> ++ equivalents, and some terminal types which commonly have + such sequences, are: + + <STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals +@@ -154,66 +169,77 @@ + <STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG> <STRONG>%r</STRONG> hp + + <STRONG>Use=</STRONG> <STRONG>Option</STRONG> <STRONG>[-u]</STRONG> +- The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of +- the first terminal <EM>termname</EM> which is relative to the sum +- of the descriptions given by the entries for the other +- terminals <EM>termnames</EM>. It does this by analyzing the dif- +- ferences between the first <EM>termname</EM> and the other ++ The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of ++ the first terminal <EM>termname</EM> which is relative to the sum ++ of the descriptions given by the entries for the other ++ terminals <EM>termnames</EM>. It does this by analyzing the dif- ++ ferences between the first <EM>termname</EM> and the other + <EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> fields for +- the other terminals. In this manner, it is possible to +- retrofit generic terminfo entries into a terminal's ++ the other terminals. In this manner, it is possible to ++ retrofit generic terminfo entries into a terminal's + description. Or, if two similar terminals exist, but were +- coded at different times or by different people so that ++ coded at different times or by different people so that + each description is a full description, using <STRONG>infocmp</STRONG> will + show what can be done to change one description to be rel- + ative to the other. + + A capability will get printed with an at-sign (@) if it no +- longer exists in the first <EM>termname</EM>, but one of the other +- <EM>termname</EM> entries contains a value for it. A capability's +- value gets printed if the value in the first <EM>termname</EM> is +- not found in any of the other <EM>termname</EM> entries, or if the ++ longer exists in the first <EM>termname</EM>, but one of the other ++ <EM>termname</EM> entries contains a value for it. A capability's ++ value gets printed if the value in the first <EM>termname</EM> is ++ not found in any of the other <EM>termname</EM> entries, or if the + first of the other <EM>termname</EM> entries that has this capabil- +- ity gives a different value for the capability than that ++ ity gives a different value for the capability than that + in the first <EM>termname</EM>. + +- The order of the other <EM>termname</EM> entries is significant. +- Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan ++ The order of the other <EM>termname</EM> entries is significant. ++ Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan + of the capabilities, specifying two <STRONG>use=</STRONG> entries that con- + tain differing entries for the same capabilities will pro- +- duce different results depending on the order that the +- entries are given in. <STRONG>infocmp</STRONG> will flag any such incon- +- sistencies between the other <EM>termname</EM> entries as they are ++ duce different results depending on the order that the ++ entries are given in. <STRONG>infocmp</STRONG> will flag any such incon- ++ sistencies between the other <EM>termname</EM> entries as they are + found. + +- Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry ++ Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry + that contains that capability will cause the second speci- +- fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a ++ fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a + description can be a useful check to make sure that every- +- thing was specified correctly in the original source ++ thing was specified correctly in the original source + description. + +- Another error that does not cause incorrect compiled +- files, but will slow down the compilation time, is speci- +- fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG> +- will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not ++ Another error that does not cause incorrect compiled ++ files, but will slow down the compilation time, is speci- ++ fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG> ++ will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not + needed. + + <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>] +- The location of the compiled <STRONG>terminfo</STRONG> database is taken +- from the environment variable <STRONG>TERMINFO</STRONG> . If the variable +- is not defined, or the terminal is not found in that loca- +- tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG> +- <STRONG>minfo</STRONG>, will be used. The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to +- override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG> +- for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG> +- for the other <EM>termnames</EM>. With this, it is possible to +- compare descriptions for a terminal with the same name +- located in two different databases. This is useful for +- comparing descriptions for the same terminal created by +- different people. ++ Like other <STRONG>ncurses</STRONG> utilities, infocmp looks for the termi- ++ nal descriptions in several places. You can use the <STRONG>TER-</STRONG> ++ <STRONG>MINFO</STRONG> and <STRONG>TERMINFO_DIRS</STRONG> environment variables to override ++ the compiled-in default list of places to search (see ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> for details). ++ ++ You can also use the options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> to override the ++ list of places to search when comparing terminal descrip- ++ tions: ++ ++ <STRONG>o</STRONG> The <STRONG>-A</STRONG> option sets the location for the first <EM>termname</EM> ++ ++ <STRONG>o</STRONG> The <STRONG>-B</STRONG> option sets the location for the other ++ <EM>termnames</EM>. ++ ++ Using these options, it is possible to compare descrip- ++ tions for a terminal with the same name located in two ++ different databases. For instance, you can use this fea- ++ ture for comparing descriptions for the same terminal cre- ++ ated by different people. + + <STRONG>Other</STRONG> <STRONG>Options</STRONG> ++ <STRONG>-0</STRONG> causes the fields to be printed on one line, without ++ wrapping. ++ + <STRONG>-1</STRONG> causes the fields to be printed out one to a line. + Otherwise, the fields will be printed several to a + line to a maximum width of 60 characters. +@@ -222,67 +248,71 @@ + rather than discarding them. Capabilities are com- + mented by prefixing them with a period. + ++ <STRONG>-D</STRONG> tells <STRONG>infocmp</STRONG> to print the database locations that it ++ knows about, and exit. ++ + <STRONG>-E</STRONG> Dump the capabilities of the given terminal as +- tables, needed in the C initializer for a TERMTYPE +- structure (the terminal capability structure in the +- <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing ver- +- sions of the curses library hardwired for a given +- terminal type. The tables are all declared static, +- and are named according to the type and the name of ++ tables, needed in the C initializer for a TERMTYPE ++ structure (the terminal capability structure in the ++ <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing ver- ++ sions of the curses library hardwired for a given ++ terminal type. The tables are all declared static, ++ and are named according to the type and the name of + the corresponding terminal entry. + +- Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG> +- options was not needed; but support for extended ++ Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG> ++ options was not needed; but support for extended + names required making the arrays of terminal capabil- + ities separate from the TERMTYPE structure. + +- <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C +- initializer for a TERMTYPE structure (the terminal +- capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option ++ <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C ++ initializer for a TERMTYPE structure (the terminal ++ capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option + is useful for preparing versions of the curses + library hardwired for a given terminal type. + +- <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol- +- lowing arguments are filenames. The files are +- searched for pairwise matches between entries, with ++ <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol- ++ lowing arguments are filenames. The files are ++ searched for pairwise matches between entries, with + two entries considered to match if any of their names +- do. The report printed to standard output lists +- entries with no matches in the other file, and +- entries with more than one match. For entries with +- exactly one match it includes a difference report. +- Normally, to reduce the volume of the report, use +- references are not resolved before looking for dif- ++ do. The report printed to standard output lists ++ entries with no matches in the other file, and ++ entries with more than one match. For entries with ++ exactly one match it includes a difference report. ++ Normally, to reduce the volume of the report, use ++ references are not resolved before looking for dif- + ferences, but resolution can be forced by also speci- + fying <STRONG>-r</STRONG>. + +- <STRONG>-f</STRONG> Display complex terminfo strings which contain ++ <STRONG>-f</STRONG> Display complex terminfo strings which contain + if/then/else/endif expressions indented for readabil- + ity. + + <STRONG>-G</STRONG> Display constant literals in decimal form rather than + their character equivalents. + +- <STRONG>-g</STRONG> Display constant character literals in quoted form ++ <STRONG>-g</STRONG> Display constant character literals in quoted form + rather than their decimal equivalents. + + <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset +- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each +- string, the code tries to analyze it into actions in ++ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each ++ string, the code tries to analyze it into actions in + terms of the other capabilities in the entry, certain +- X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC +- VT-series private modes (the set of recognized spe- +- cial sequences has been selected for completeness +- over the existing terminfo database). Each report +- line consists of the capability name, followed by a ++ X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC ++ VT-series private modes (the set of recognized spe- ++ cial sequences has been selected for completeness ++ over the existing terminfo database). Each report ++ line consists of the capability name, followed by a + colon and space, followed by a printable expansion of +- the capability string with sections matching recog- +- nized actions translated into {}-bracketed descrip- +- tions. Here is a list of the DEC/ANSI special ++ the capability string with sections matching recog- ++ nized actions translated into {}-bracketed descrip- ++ tions. Here is a list of the DEC/ANSI special + sequences recognized: i. + + Action Meaning + ----------------------------------------- + RIS full reset ++ + SC save cursor + RC restore cursor + LL home-down +@@ -310,17 +340,16 @@ + DEC[+-]CKM application cursor keys + DEC[+-]ANM set VT52 mode + DEC[+-]COLM 132-column mode +- + DEC[+-]SCLM smooth scroll + DEC[+-]SCNM reverse video mode + DEC[+-]OM origin mode + DEC[+-]AWM wraparound mode + DEC[+-]ARM auto-repeat mode + +- It also recognizes a SGR action corresponding to +- ANSI/ISO 6429/ECMA Set Graphics Rendition, with the +- values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE. +- All but NORMAL may be prefixed with `+' (turn on) or ++ It also recognizes a SGR action corresponding to ++ ANSI/ISO 6429/ECMA Set Graphics Rendition, with the ++ values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE. ++ All but NORMAL may be prefixed with `+' (turn on) or + `-' (turn off). + + An SGR0 designates an empty highlight sequence (equivalent +@@ -398,18 +427,19 @@ + + </PRE> + <H2>FILES</H2><PRE> +- /usr/share/terminfo Compiled terminal description +- database. ++ /usr/share/terminfo Compiled terminal description data- ++ base. + + + </PRE> + <H2>EXTENSIONS</H2><PRE> +- The <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG> +- and <STRONG>-t</STRONG> options are not supported in SVr4 curses. ++ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, ++ <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG> and <STRONG>-t</STRONG> options are not supported in SVr4 ++ curses. + + The <STRONG>-r</STRONG> option's notion of `termcap' capabilities is System +- V Release 4's. Actual BSD curses versions will have a +- more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG> ++ V Release 4's. Actual BSD curses versions will have a ++ more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG> + <STRONG>-RBSD</STRONG>. + + +@@ -420,10 +450,12 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, ++ <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ http://invisible-island.net/ncurses/tctest.html ++ ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/infotocap.1m.html ncurses-5.9.patch/doc/html/man/infotocap.1m.html +--- ncurses-5.9/doc/html/man/infotocap.1m.html 2011-04-05 00:46:44.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/infotocap.1m.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -80,8 +80,8 @@ + + </PRE> + <H2>FILES</H2><PRE> +- /usr/share/terminfo Compiled terminal description +- database. ++ /usr/share/terminfo Compiled terminal description data- ++ base. + + + </PRE> +@@ -94,7 +94,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/keybound.3x.html ncurses-5.9.patch/doc/html/man/keybound.3x.html +--- ncurses-5.9/doc/html/man/keybound.3x.html 2011-01-09 02:03:23.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/keybound.3x.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/key_defined.3x.html ncurses-5.9.patch/doc/html/man/key_defined.3x.html +--- ncurses-5.9/doc/html/man/key_defined.3x.html 2011-01-09 02:03:23.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/key_defined.3x.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2003-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/keyok.3x.html ncurses-5.9.patch/doc/html/man/keyok.3x.html +--- ncurses-5.9/doc/html/man/keyok.3x.html 2011-01-09 02:03:23.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/keyok.3x.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/legacy_coding.3x.html ncurses-5.9.patch/doc/html/man/legacy_coding.3x.html +--- ncurses-5.9/doc/html/man/legacy_coding.3x.html 2011-01-09 02:03:23.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/legacy_coding.3x.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2005-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/menu.3x.html ncurses-5.9.patch/doc/html/man/menu.3x.html +--- ncurses-5.9/doc/html/man/menu.3x.html 2011-04-05 00:46:45.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/menu.3x.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +@@ -226,7 +226,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/menu_attributes.3x.html ncurses-5.9.patch/doc/html/man/menu_attributes.3x.html +--- ncurses-5.9/doc/html/man/menu_attributes.3x.html 2011-01-09 02:03:24.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_attributes.3x.html 2014-09-01 16:33:22.329792078 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_cursor.3x.html ncurses-5.9.patch/doc/html/man/menu_cursor.3x.html +--- ncurses-5.9/doc/html/man/menu_cursor.3x.html 2011-01-09 02:03:24.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_cursor.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_driver.3x.html ncurses-5.9.patch/doc/html/man/menu_driver.3x.html +--- ncurses-5.9/doc/html/man/menu_driver.3x.html 2011-02-26 00:25:05.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_driver.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * +@@ -119,8 +119,8 @@ + Clear the menu pattern buffer. + + REQ_BACK_PATTERN +- Delete the previous character from the pattern +- buffer. ++ Delete the previous character from the pattern buf- ++ fer. + + REQ_NEXT_MATCH + Move to the next item matching the pattern match. +@@ -128,20 +128,20 @@ + REQ_PREV_MATCH + Move to the previous item matching the pattern match. + +- If the second argument is a printable character, the code +- appends it to the pattern buffer and attempts to move to +- the next item matching the new pattern. If there is no ++ If the second argument is a printable character, the code ++ appends it to the pattern buffer and attempts to move to ++ the next item matching the new pattern. If there is no + such match, <STRONG>menu_driver</STRONG> returns <STRONG>E_NO_MATCH</STRONG> and deletes the + appended character from the buffer. + +- If the second argument is one of the above pre-defined ++ If the second argument is one of the above pre-defined + requests, the corresponding action is performed. + + <STRONG>MOUSE</STRONG> <STRONG>HANDLING</STRONG> +- If the second argument is the KEY_MOUSE special key, the ++ If the second argument is the KEY_MOUSE special key, the + associated mouse event is translated into one of the above +- pre-defined requests. Currently only clicks in the user +- window (e.g., inside the menu display area or the decora- ++ pre-defined requests. Currently only clicks in the user ++ window (e.g., inside the menu display area or the decora- + tion window) are handled. + + If you click above the display region of the menu: +@@ -160,32 +160,32 @@ + + <STRONG>o</STRONG> a REQ_LAST_ITEM is generated for a triple-click. + +- If you click at an item inside the display area of the ++ If you click at an item inside the display area of the + menu: + + <STRONG>o</STRONG> the menu cursor is positioned to that item. + +- <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen- ++ <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen- + erated and <STRONG>E_UNKNOWN_COMMAND</STRONG> is returned. This return +- value makes sense, because a double click usually ++ value makes sense, because a double click usually + means that an item-specific action should be returned. + It is exactly the purpose of this return value to sig- +- nal that an application specific command should be ++ nal that an application specific command should be + executed. + +- <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG> ++ <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG> + returns the result of this request. + +- If you clicked outside the user window or the mouse event +- could not be translated into a menu request an ++ If you clicked outside the user window or the mouse event ++ could not be translated into a menu request an + <STRONG>E_REQUEST_DENIED</STRONG> is returned. + + <STRONG>APPLICATION-DEFINED</STRONG> <STRONG>COMMANDS</STRONG> + If the second argument is neither printable nor one of the +- above pre-defined menu requests or KEY_MOUSE, the drive +- assumes it is an application-specific command and returns ++ above pre-defined menu requests or KEY_MOUSE, the drive ++ assumes it is an application-specific command and returns + <STRONG>E_UNKNOWN_COMMAND</STRONG>. Application-defined commands should be +- defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of ++ defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of + these pre-defined requests. + + +@@ -199,7 +199,7 @@ + System error occurred (see <STRONG>errno</STRONG>). + + <STRONG>E_BAD_ARGUMENT</STRONG> +- Routine detected an incorrect or out-of-range argu- ++ Routine detected an incorrect or out-of-range argu- + ment. + + <STRONG>E_BAD_STATE</STRONG> +@@ -221,7 +221,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>, <STRONG><A HREF="getch.3x.html">getch(3x)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>. + + + </PRE> +@@ -232,14 +232,14 @@ + + </PRE> + <H2>PORTABILITY</H2><PRE> +- These routines emulate the System V menu library. They +- were not supported on Version 7 or BSD versions. The sup- ++ These routines emulate the System V menu library. They ++ were not supported on Version 7 or BSD versions. The sup- + port for mouse events is ncurses specific. + + + </PRE> + <H2>AUTHORS</H2><PRE> +- Juergen Pfeifer. Manual pages and adaptation for new ++ Juergen Pfeifer. Manual pages and adaptation for new + curses by Eric S. Raymond. + + +diff -Naur ncurses-5.9/doc/html/man/menu_format.3x.html ncurses-5.9.patch/doc/html/man/menu_format.3x.html +--- ncurses-5.9/doc/html/man/menu_format.3x.html 2011-01-09 02:03:24.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_format.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_hook.3x.html ncurses-5.9.patch/doc/html/man/menu_hook.3x.html +--- ncurses-5.9/doc/html/man/menu_hook.3x.html 2011-01-09 02:03:24.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_hook.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_items.3x.html ncurses-5.9.patch/doc/html/man/menu_items.3x.html +--- ncurses-5.9/doc/html/man/menu_items.3x.html 2011-01-09 02:03:24.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_items.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: menu_items.3x,v 1.9 2010/12/04 18:40:45 tom Exp @ ++ * @Id: menu_items.3x,v 1.10 2012/11/03 23:03:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -74,7 +74,7 @@ + + + </PRE> +-<H2>RETURN VALUES</H2><PRE> ++<H2>RETURN VALUE</H2><PRE> + The function <STRONG>menu_items</STRONG> returns a pointer (which may be + <STRONG>NULL</STRONG>). It does not set errno. + +diff -Naur ncurses-5.9/doc/html/man/menu_mark.3x.html ncurses-5.9.patch/doc/html/man/menu_mark.3x.html +--- ncurses-5.9/doc/html/man/menu_mark.3x.html 2011-01-09 02:03:24.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_mark.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_new.3x.html ncurses-5.9.patch/doc/html/man/menu_new.3x.html +--- ncurses-5.9/doc/html/man/menu_new.3x.html 2011-01-09 02:03:25.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_new.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_opts.3x.html ncurses-5.9.patch/doc/html/man/menu_opts.3x.html +--- ncurses-5.9/doc/html/man/menu_opts.3x.html 2011-01-09 02:03:25.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_opts.3x.html 2014-09-01 16:33:22.330792079 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_pattern.3x.html ncurses-5.9.patch/doc/html/man/menu_pattern.3x.html +--- ncurses-5.9/doc/html/man/menu_pattern.3x.html 2011-01-09 02:03:25.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_pattern.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/menu_post.3x.html ncurses-5.9.patch/doc/html/man/menu_post.3x.html +--- ncurses-5.9/doc/html/man/menu_post.3x.html 2011-01-09 02:03:25.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_post.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_requestname.3x.html ncurses-5.9.patch/doc/html/man/menu_requestname.3x.html +--- ncurses-5.9/doc/html/man/menu_requestname.3x.html 2011-01-09 02:03:25.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_requestname.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_spacing.3x.html ncurses-5.9.patch/doc/html/man/menu_spacing.3x.html +--- ncurses-5.9/doc/html/man/menu_spacing.3x.html 2011-01-09 02:03:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_spacing.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_userptr.3x.html ncurses-5.9.patch/doc/html/man/menu_userptr.3x.html +--- ncurses-5.9/doc/html/man/menu_userptr.3x.html 2011-01-09 02:03:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_userptr.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/menu_win.3x.html ncurses-5.9.patch/doc/html/man/menu_win.3x.html +--- ncurses-5.9/doc/html/man/menu_win.3x.html 2011-01-09 02:03:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/menu_win.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/mitem_current.3x.html ncurses-5.9.patch/doc/html/man/mitem_current.3x.html +--- ncurses-5.9/doc/html/man/mitem_current.3x.html 2011-01-09 02:03:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_current.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/mitem_name.3x.html ncurses-5.9.patch/doc/html/man/mitem_name.3x.html +--- ncurses-5.9/doc/html/man/mitem_name.3x.html 2011-01-09 02:03:26.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_name.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/mitem_new.3x.html ncurses-5.9.patch/doc/html/man/mitem_new.3x.html +--- ncurses-5.9/doc/html/man/mitem_new.3x.html 2011-01-09 02:03:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_new.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/mitem_opts.3x.html ncurses-5.9.patch/doc/html/man/mitem_opts.3x.html +--- ncurses-5.9/doc/html/man/mitem_opts.3x.html 2011-01-09 02:03:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_opts.3x.html 2014-09-01 16:33:22.331792081 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/mitem_userptr.3x.html ncurses-5.9.patch/doc/html/man/mitem_userptr.3x.html +--- ncurses-5.9/doc/html/man/mitem_userptr.3x.html 2011-01-09 02:03:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_userptr.3x.html 2014-09-01 16:33:22.332792083 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/mitem_value.3x.html ncurses-5.9.patch/doc/html/man/mitem_value.3x.html +--- ncurses-5.9/doc/html/man/mitem_value.3x.html 2011-01-09 02:03:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_value.3x.html 2014-09-01 16:33:22.332792083 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/mitem_visible.3x.html ncurses-5.9.patch/doc/html/man/mitem_visible.3x.html +--- ncurses-5.9/doc/html/man/mitem_visible.3x.html 2011-01-09 02:03:27.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/mitem_visible.3x.html 2014-09-01 16:33:22.332792083 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +diff -Naur ncurses-5.9/doc/html/man/ncurses.3x.html ncurses-5.9.patch/doc/html/man/ncurses.3x.html +--- ncurses-5.9/doc/html/man/ncurses.3x.html 2011-04-05 00:46:49.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/ncurses.3x.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp @ ++ * @Id: ncurses.3x,v 1.112 2013/07/20 19:29:59 tom Exp @ + --> + <HTML> + <HEAD> +@@ -60,10 +60,10 @@ + <H2>DESCRIPTION</H2><PRE> + The <STRONG>ncurses</STRONG> library routines give the user a terminal- + independent method of updating character screens with rea- +- sonable optimization. This implementation is ``new +- curses'' (ncurses) and is the approved replacement for +- 4.4BSD classic curses, which has been discontinued. This +- describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ sonable optimization. This implementation is "new curses" ++ (ncurses) and is the approved replacement for 4.4BSD clas- ++ sic curses, which has been discontinued. This describes ++ <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + The <STRONG>ncurses</STRONG> library emulates the curses library of System + V Release 4 UNIX, and XPG4 (X/Open Portability Guide) +@@ -150,48 +150,48 @@ + Among those, the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>. + More general versions of these routines are included with + names beginning with <STRONG>w</STRONG>, allowing the user to specify a +- window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>. ++ window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>. + +- After using routines to manipulate a window, <STRONG>refresh</STRONG> is +- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look +- like <STRONG>stdscr</STRONG>. The characters in a window are actually of +- type <STRONG>chtype</STRONG>, (character and attribute data) so that other +- information about the character may also be stored with ++ After using routines to manipulate a window, <STRONG>refresh</STRONG> is ++ called, telling <STRONG>curses</STRONG> to make the user's CRT screen look ++ like <STRONG>stdscr</STRONG>. The characters in a window are actually of ++ type <STRONG>chtype</STRONG>, (character and attribute data) so that other ++ information about the character may also be stored with + each character. + +- Special windows called <EM>pads</EM> may also be manipulated. ++ Special windows called <EM>pads</EM> may also be manipulated. + These are windows which are not constrained to the size of +- the screen and whose contents need not be completely dis- ++ the screen and whose contents need not be completely dis- + played. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more information. + +- In addition to drawing characters on the screen, video +- attributes and colors may be supported, causing the char- +- acters to show up in such modes as underlined, in reverse +- video, or in color on terminals that support such display ++ In addition to drawing characters on the screen, video ++ attributes and colors may be supported, causing the char- ++ acters to show up in such modes as underlined, in reverse ++ video, or in color on terminals that support such display + enhancements. Line drawing characters may be specified to +- be output. On input, <STRONG>curses</STRONG> is also able to translate +- arrow and function keys that transmit escape sequences +- into single values. The video attributes, line drawing +- characters, and input values use names, defined in ++ be output. On input, <STRONG>curses</STRONG> is also able to translate ++ arrow and function keys that transmit escape sequences ++ into single values. The video attributes, line drawing ++ characters, and input values use names, defined in + <STRONG>&lt;curses.h&gt;</STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>. + + If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or +- if the program is executing in a window environment, line +- and column information in the environment will override ++ if the program is executing in a window environment, line ++ and column information in the environment will override + information read by <EM>terminfo</EM>. This would affect a program +- running in an AT&amp;T 630 layer, for example, where the size ++ running in an AT&amp;T 630 layer, for example, where the size + of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>). + +- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro- +- gram using <STRONG>curses</STRONG> checks for a local terminal definition +- before checking in the standard place. For example, if ++ If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro- ++ gram using <STRONG>curses</STRONG> checks for a local terminal definition ++ before checking in the standard place. For example, if + <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini- + tion is found in + + <STRONG>/usr/share/terminfo/a/att4424</STRONG>. + + (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid +- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is ++ creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is + set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks + + <STRONG>$HOME/myterms/a/att4424</STRONG>, +@@ -200,119 +200,117 @@ + + <STRONG>/usr/share/terminfo/a/att4424</STRONG>. + +- This is useful for developing experimental definitions or ++ This is useful for developing experimental definitions or + when write permission in <STRONG>/usr/share/terminfo</STRONG> is not avail- + able. + +- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in +- <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size ++ The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in ++ <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size + of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val- + ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively. + +- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable ++ The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable + <STRONG>curscr</STRONG> which is used for certain low-level operations like +- clearing and redrawing a screen containing garbage. The ++ clearing and redrawing a screen containing garbage. The + <STRONG>curscr</STRONG> can be used in only a few routines. + + <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG> +- Many <STRONG>curses</STRONG> routines have two or more versions. The rou- ++ Many <STRONG>curses</STRONG> routines have two or more versions. The rou- + tines prefixed with <STRONG>w</STRONG> require a window argument. The rou- + tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with- + out a prefix generally use <STRONG>stdscr</STRONG>. + + The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate +- to move to before performing the appropriate action. The +- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the +- other routine. The coordinate <EM>y</EM> always refers to the row +- (of the window), and <EM>x</EM> always refers to the column. The ++ to move to before performing the appropriate action. The ++ <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the ++ other routine. The coordinate <EM>y</EM> always refers to the row ++ (of the window), and <EM>x</EM> always refers to the column. The + upper left-hand corner is always (0,0), not (1,1). + + The routines prefixed with <STRONG>mvw</STRONG> take both a window argument +- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always ++ and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always + specified before the coordinates. + +- In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the ++ In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the + pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG> + <STRONG>DOW</STRONG>. + + Option setting routines require a Boolean flag <EM>bf</EM> with the +- value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of +- the data types used in the library routines, such as <STRONG>WIN-</STRONG> +- <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>. +- Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are ++ value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of ++ the data types used in the library routines, such as <STRONG>WIN-</STRONG> ++ <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>. ++ Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are + defined in <STRONG>&lt;term.h&gt;</STRONG>. + +- This manual page describes functions which may appear in +- any configuration of the library. There are two common ++ This manual page describes functions which may appear in ++ any configuration of the library. There are two common + configurations of the library: + + ncurses + the "normal" library, which handles 8-bit + characters. The normal (8-bit) library stores +- characters combined with attributes in <STRONG>chtype</STRONG> ++ characters combined with attributes in <STRONG>chtype</STRONG> + data. + +- Attributes alone (no corresponding character) +- may be stored in <STRONG>chtype</STRONG> or the equivalent +- <STRONG>attr_t</STRONG> data. In either case, the data is ++ Attributes alone (no corresponding character) ++ may be stored in <STRONG>chtype</STRONG> or the equivalent ++ <STRONG>attr_t</STRONG> data. In either case, the data is + stored in something like an integer. + +- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is ++ Each cell (row and column) in a <STRONG>WINDOW</STRONG> is + stored as a <STRONG>chtype</STRONG>. + + ncursesw +- the so-called "wide" library, which handles +- multibyte characters (see the section on ++ the so-called "wide" library, which handles ++ multibyte characters (see the section on + <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide" library +- includes all of the calls from the "normal" +- library. It adds about one third more calls ++ includes all of the calls from the "normal" ++ library. It adds about one third more calls + using data types which store multibyte charac- + ters: + + <STRONG>cchar_t</STRONG> +- corresponds to <STRONG>chtype</STRONG>. However it is a +- structure, because more data is stored +- than can fit into an integer. The char- ++ corresponds to <STRONG>chtype</STRONG>. However it is a ++ structure, because more data is stored ++ than can fit into an integer. The char- + acters are large enough to require a full +- integer value - and there may be more +- than one character per cell. The video +- attributes and color are stored in sepa- ++ integer value - and there may be more ++ than one character per cell. The video ++ attributes and color are stored in sepa- + rate fields of the structure. + + Each cell (row and column) in a <STRONG>WINDOW</STRONG> is + stored as a <STRONG>cchar_t</STRONG>. + + <STRONG>wchar_t</STRONG> +- stores a "wide" character. Like <STRONG>chtype</STRONG>, ++ stores a "wide" character. Like <STRONG>chtype</STRONG>, + this may be an integer. + + <STRONG>wint_t</STRONG> +- stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same, ++ stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same, + though both may have the same size. + + The "wide" library provides new functions +- which are analogous to functions in the "nor- +- mal" library. There is a naming convention +- which relates many of the normal/wide vari- +- ants: a "_w" is inserted into the name. For ++ which are analogous to functions in the "nor- ++ mal" library. There is a naming convention ++ which relates many of the normal/wide vari- ++ ants: a "_w" is inserted into the name. For + example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>. + +- + <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG> + The following table lists each <STRONG>curses</STRONG> routine and the name +- of the manual page on which it is described. Routines +- flagged with `*' are ncurses-specific, not described by ++ of the manual page on which it is described. Routines ++ flagged with `*' are ncurses-specific, not described by + XPG4 or present in SVr4. + +- + <STRONG>curses</STRONG> Routine Name Manual Page Name + -------------------------------------------- + COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> + PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> + _nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>* +- + _nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>* + _nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* ++ + _traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* + _traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* + _tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* +@@ -376,9 +374,9 @@ + echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> + echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> + echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> +- + endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> + erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> ++ + erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> + erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> + filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> +@@ -442,9 +440,9 @@ + intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> + inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> + is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* +- + is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* + is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* ++ + is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* + is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* + is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* +@@ -508,9 +506,9 @@ + mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> + mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> + mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> +- + mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> + mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> ++ + mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> + mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> + mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> +@@ -574,9 +572,9 @@ + pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> + pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> + pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> +- + prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> + printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> ++ + putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> + qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> +@@ -640,9 +638,9 @@ + tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> + touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> +- + touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> + tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> ++ + tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> + tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* +@@ -656,6 +654,7 @@ + use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> + use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>* + use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>* ++ use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> + vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> +@@ -706,8 +705,8 @@ + wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> + wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> + wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> +- + wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> ++ + wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> + whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> + whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> +@@ -752,11 +751,14 @@ + + </PRE> + <H2>RETURN VALUE</H2><PRE> +- Routines that return an integer return <STRONG>ERR</STRONG> upon failure +- and an integer value other than <STRONG>ERR</STRONG> upon successful com- +- pletion, unless otherwise noted in the routine descrip- ++ Routines that return an integer return <STRONG>ERR</STRONG> upon failure ++ and an integer value other than <STRONG>ERR</STRONG> upon successful com- ++ pletion, unless otherwise noted in the routine descrip- + tions. + ++ As a general rule, routines check for null pointers passed ++ as parameters, and handle this as an error. ++ + All macros return the value of the <STRONG>w</STRONG> version, except + <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The + return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, +@@ -773,52 +775,56 @@ + important ones have been already discussed in detail. + + BAUDRATE +- The debugging library checks this environment symbol +- when the application has redirected output to a file. +- The symbol's numeric value is used for the baudrate. +- If no value is found, <STRONG>ncurses</STRONG> uses 9600. This allows +- testers to construct repeatable test-cases that take +- into account costs that depend on baudrate. ++ The debugging library checks this environment vari- ++ able when the application has redirected output to a ++ file. The variable's numeric value is used for the ++ baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600. ++ This allows testers to construct repeatable test- ++ cases that take into account costs that depend on ++ baudrate. + + CC When set, change occurrences of the command_character +- (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo +- entries to the value of this symbol. Very few ter- ++ (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo ++ entries to the value of this variable. Very few ter- + minfo entries provide this feature. + +- Because this name is also used in development envi- +- ronments to represent the C compiler's name, <STRONG>ncurses</STRONG> ++ Because this name is also used in development envi- ++ ronments to represent the C compiler's name, <STRONG>ncurses</STRONG> + ignores it if it does not happen to be a single char- + acter. + + COLUMNS + Specify the width of the screen in characters. +- Applications running in a windowing environment usu- +- ally are able to obtain the width of the window in +- which they are executing. If neither the <STRONG>COLUMNS</STRONG> +- value nor the terminal's screen size is available, +- <STRONG>ncurses</STRONG> uses the size which may be specified in the ++ Applications running in a windowing environment usu- ++ ally are able to obtain the width of the window in ++ which they are executing. If neither the <STRONG>COLUMNS</STRONG> ++ value nor the terminal's screen size is available, ++ <STRONG>ncurses</STRONG> uses the size which may be specified in the + terminfo database (i.e., the <STRONG>cols</STRONG> capability). + +- It is important that your application use a correct +- size for the screen. This is not always possible +- because your application may be running on a host +- which does not honor NAWS (Negotiations About Window +- Size), or because you are temporarily running as +- another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG> ++ It is important that your application use a correct ++ size for the screen. This is not always possible ++ because your application may be running on a host ++ which does not honor NAWS (Negotiations About Window ++ Size), or because you are temporarily running as ++ another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG> + overrides the library's use of the screen size + obtained from the operating system. + +- Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified +- independently. This is mainly useful to circumvent +- legacy misfeatures of terminal descriptions, e.g., ++ Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified ++ independently. This is mainly useful to circumvent ++ legacy misfeatures of terminal descriptions, e.g., + xterm which commonly specifies a 65 line screen. For +- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified ++ best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified + in a terminal description for terminals which are run + as emulations. + + Use the <STRONG>use_env</STRONG> function to disable all use of exter- +- nal environment (including system calls) to determine +- the screen size. ++ nal environment (but not including system calls) to ++ determine the screen size. Use the <STRONG>use_tioctl</STRONG> func- ++ tion to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen ++ size obtained from system calls or the terminal data- ++ base. + + ESCDELAY + Specifies the total time, in milliseconds, for which +@@ -858,234 +864,278 @@ + + LINES + Like COLUMNS, specify the height of the screen in +- characters. See COLUMNS for a detailed description. ++ characters. See COLUMNS for a detailed description. + + MOUSE_BUTTONS_123 + This applies only to the OS/2 EMX port. It specifies +- the order of buttons on the mouse. OS/2 numbers a ++ the order of buttons on the mouse. OS/2 numbers a + 3-button mouse inconsistently from other platforms: + + 1 = left + 2 = right + 3 = middle. + +- This symbol lets you customize the mouse. The symbol +- must be three numeric digits 1-3 in any order, e.g., +- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses +- 132. ++ This variable lets you customize the mouse. The ++ variable must be three numeric digits 1-3 in any ++ order, e.g., 123 or 321. If it is not specified, ++ <STRONG>ncurses</STRONG> uses 132. + + NCURSES_ASSUMED_COLORS +- Override the compiled-in assumption that the termi- +- nal's default colors are white-on-black (see +- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and +- background color values with this environment vari- +- able by proving a 2-element list: foreground,back- +- ground. For example, to tell ncurses to not assume +- anything about the colors, set this to "-1,-1". To +- make it green-on-black, set it to "2,0". Any posi- ++ Override the compiled-in assumption that the termi- ++ nal's default colors are white-on-black (see ++ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and ++ background color values with this environment vari- ++ able by proving a 2-element list: foreground,back- ++ ground. For example, to tell ncurses to not assume ++ anything about the colors, set this to "-1,-1". To ++ make it green-on-black, set it to "2,0". Any posi- + tive value from zero to the terminfo <STRONG>max_colors</STRONG> value + is allowed. + + NCURSES_GPM_TERMS +- This applies only to ncurses configured to use the ++ This applies only to ncurses configured to use the + GPM interface. + + If present, the environment variable is a list of one +- or more terminal names against which the TERM envi- +- ronment variable is matched. Setting it to an empty +- value disables the GPM interface; using the built-in ++ or more terminal names against which the TERM envi- ++ ronment variable is matched. Setting it to an empty ++ value disables the GPM interface; using the built-in + support for xterm, etc. + +- If the environment variable is absent, ncurses will ++ If the environment variable is absent, ncurses will + attempt to open GPM if TERM contains "linux". + + NCURSES_NO_HARD_TABS +- <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement +- optimization. In some cases, your terminal driver +- may not handle these properly. Set this environment ++ <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement ++ optimization. In some cases, your terminal driver ++ may not handle these properly. Set this environment + variable to disable the feature. You can also adjust + your <STRONG>stty</STRONG> settings to avoid the problem. + + NCURSES_NO_MAGIC_COOKIES + Some terminals use a magic-cookie feature which +- requires special handling to make highlighting and +- other video attributes display properly. You can +- suppress the highlighting entirely for these termi- ++ requires special handling to make highlighting and ++ other video attributes display properly. You can ++ suppress the highlighting entirely for these termi- + nals by setting this environment variable. + + NCURSES_NO_PADDING +- Most of the terminal descriptions in the terminfo +- database are written for real "hardware" terminals. +- Many people use terminal emulators which run in a +- windowing environment and use curses-based applica- +- tions. Terminal emulators can duplicate all of the ++ Most of the terminal descriptions in the terminfo ++ database are written for real "hardware" terminals. ++ Many people use terminal emulators which run in a ++ windowing environment and use curses-based applica- ++ tions. Terminal emulators can duplicate all of the + important aspects of a hardware terminal, but they do +- not have the same limitations. The chief limitation +- of a hardware terminal from the standpoint of your ++ not have the same limitations. The chief limitation ++ of a hardware terminal from the standpoint of your + application is the management of dataflow, i.e., tim- + ing. Unless a hardware terminal is interfaced into a +- terminal concentrator (which does flow control), it +- (or your application) must manage dataflow, prevent- +- ing overruns. The cheapest solution (no hardware ++ terminal concentrator (which does flow control), it ++ (or your application) must manage dataflow, prevent- ++ ing overruns. The cheapest solution (no hardware + cost) is for your program to do this by pausing after +- operations that the terminal does slowly, such as ++ operations that the terminal does slowly, such as + clearing the display. + +- As a result, many terminal descriptions (including +- the vt100) have delay times embedded. You may wish +- to use these descriptions, but not want to pay the ++ As a result, many terminal descriptions (including ++ the vt100) have delay times embedded. You may wish ++ to use these descriptions, but not want to pay the + performance penalty. + +- Set the NCURSES_NO_PADDING symbol to disable all but +- mandatory padding. Mandatory padding is used as a +- part of special control sequences such as <EM>flash</EM>. ++ Set the NCURSES_NO_PADDING environment variable to ++ disable all but mandatory padding. Mandatory padding ++ is used as a part of special control sequences such ++ as <EM>flash</EM>. + + NCURSES_NO_SETBUF +- Normally <STRONG>ncurses</STRONG> enables buffered output during ter- +- minal initialization. This is done (as in SVr4 +- curses) for performance reasons. For testing pur- +- poses, both of <STRONG>ncurses</STRONG> and certain applications, this +- feature is made optional. Setting the +- NCURSES_NO_SETBUF variable disables output buffering, +- leaving the output in the original (usually line +- buffered) mode. ++ This setting is obsolete. Before changes ++ ++ <STRONG>o</STRONG> started with 5.9 patch 20120825 and ++ ++ <STRONG>o</STRONG> continued though 5.9 patch 20130126 ++ ++ <STRONG>ncurses</STRONG> enabled buffered output during terminal ini- ++ tialization. This was done (as in SVr4 curses) for ++ performance reasons. For testing purposes, both of ++ <STRONG>ncurses</STRONG> and certain applications, this feature was ++ made optional. Setting the NCURSES_NO_SETBUF vari- ++ able disabled output buffering, leaving the output in ++ the original (usually line buffered) mode. ++ ++ In the current implementation, ncurses performs its ++ own buffering and does not require this workaround. ++ It does not modify the buffering of the standard out- ++ put. ++ ++ The reason for the change was to make the behavior ++ for interrupts and other signals more robust. One ++ drawback is that certain nonconventional programs ++ would mix ordinary stdio calls with ncurses calls and ++ (usually) work. This is no longer possible since ++ ncurses is not using the buffered standard output but ++ its own output (to the same file descriptor). As a ++ special case, the low-level calls such as <STRONG>putp</STRONG> still ++ use the standard output. But high-level curses calls ++ do not. + + NCURSES_NO_UTF8_ACS + During initialization, the <STRONG>ncurses</STRONG> library checks for +- special cases where VT100 line-drawing (and the cor- +- responding alternate character set capabilities) +- described in the terminfo are known to be missing. +- Specifically, when running in a UTF-8 locale, the +- Linux console emulator and the GNU screen program +- ignore these. Ncurses checks the TERM environment +- variable for these. For other special cases, you +- should set this environment variable. Doing this +- tells ncurses to use Unicode values which correspond ++ special cases where VT100 line-drawing (and the cor- ++ responding alternate character set capabilities) ++ described in the terminfo are known to be missing. ++ Specifically, when running in a UTF-8 locale, the ++ Linux console emulator and the GNU screen program ++ ignore these. Ncurses checks the TERM environment ++ variable for these. For other special cases, you ++ should set this environment variable. Doing this ++ tells ncurses to use Unicode values which correspond + to the VT100 line-drawing glyphs. That works for the + special cases cited, and is likely to work for termi- + nal emulators. + +- When setting this variable, you should set it to a +- nonzero value. Setting it to zero (or to a nonnum- +- ber) disables the special check for "linux" and ++ When setting this variable, you should set it to a ++ nonzero value. Setting it to zero (or to a nonnum- ++ ber) disables the special check for "linux" and + "screen". + +- As an alternative to the environment variable, +- ncurses checks for an extended terminfo capability +- <STRONG>U8</STRONG>. This is a numeric capability which can be com- ++ As an alternative to the environment variable, ++ ncurses checks for an extended terminfo capability ++ <STRONG>U8</STRONG>. This is a numeric capability which can be com- + piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example + + # linux console, if patched to provide working + # VT100 shift-in/shift-out, with corresponding font. + linux-vt100|linux console with VT100 line-graphics, +- U8#0, use=linux, ++ U8#0, use=linux, + + # uxterm with vt100Graphics resource set to false + xterm-utf8|xterm relying on UTF-8 line-graphics, +- U8#1, use=xterm, ++ U8#1, use=xterm, + + The name "U8" is chosen to be two characters, to per- +- mit it to be used by applications that use ncurses' ++ mit it to be used by applications that use ncurses' + termcap interface. + + NCURSES_TRACE +- During initialization, the <STRONG>ncurses</STRONG> debugging library +- checks the NCURSES_TRACE symbol. If it is defined, +- to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function, +- using that value as the argument. +- +- The argument values, which are defined in <STRONG>curses.h</STRONG>, +- provide several types of information. When running +- with traces enabled, your application will write the ++ During initialization, the <STRONG>ncurses</STRONG> debugging library ++ checks the NCURSES_TRACE environment variable. If it ++ is defined, to a numeric value, <STRONG>ncurses</STRONG> calls the ++ <STRONG>trace</STRONG> function, using that value as the argument. ++ ++ The argument values, which are defined in <STRONG>curses.h</STRONG>, ++ provide several types of information. When running ++ with traces enabled, your application will write the + file <STRONG>trace</STRONG> to the current directory. + +- TERM Denotes your terminal type. Each terminal type is ++ TERM Denotes your terminal type. Each terminal type is + distinct, though many are similar. + + TERMCAP + If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM> +- <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's ++ <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's + description in termcap form if it is not available in + the terminfo database. + +- The TERMCAP symbol contains either a terminal +- description (with newlines stripped out), or a file +- name telling where the information denoted by the +- TERM symbol exists. In either case, setting it +- directs <STRONG>ncurses</STRONG> to ignore the usual place for this +- information, e.g., /etc/termcap. ++ The TERMCAP environment variable contains either a ++ terminal description (with newlines stripped out), or ++ a file name telling where the information denoted by ++ the TERM environment variable exists. In either ++ case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual ++ place for this information, e.g., /etc/termcap. + + TERMINFO + Overrides the directory in which <STRONG>ncurses</STRONG> searches for + your terminal description. This is the simplest, but +- not the only way to change the list of directories. ++ not the only way to change the list of directories. + The complete list of directories in order follows: + +- <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if ++ <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if + any, is searched first + +- <STRONG>o</STRONG> the directory specified by the TERMINFO symbol ++ <STRONG>o</STRONG> the directory specified by the TERMINFO environ- ++ ment variable + + <STRONG>o</STRONG> $HOME/.terminfo + +- <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS symbol ++ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environ- ++ ment variable ++ ++ <STRONG>o</STRONG> one or more directories whose names are config- ++ ured and compiled into the ncurses library, i.e., + +- <STRONG>o</STRONG> one or more directories whose names are config- +- ured and compiled into the ncurses library, e.g., +- /usr/share/terminfo ++ <STRONG>o</STRONG> /usr/local/ncurses/share/ter- ++ minfo:/usr/share/terminfo (corresponding to ++ the TERMINFO_DIRS variable) ++ ++ <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the ++ TERMINFO variable) + + TERMINFO_DIRS +- Specifies a list of directories to search for termi- +- nal descriptions. The list is separated by colons +- (i.e., ":") on Unix, semicolons on OS/2 EMX. All of +- the terminal descriptions are in terminfo form, which +- makes a subdirectory named for the first letter of +- the terminal names therein. ++ Specifies a list of directories to search for termi- ++ nal descriptions. The list is separated by colons ++ (i.e., ":") on Unix, semicolons on OS/2 EMX. ++ ++ All of the terminal descriptions are in terminfo ++ form. Normally these are stored in a directory tree, ++ using subdirectories named by the first letter of the ++ terminal names therein. ++ ++ If <STRONG>ncurses</STRONG> is built with a hashed database, then each ++ entry in this list can also be the path of the corre- ++ sponding database file. ++ ++ If <STRONG>ncurses</STRONG> is built with a support for reading term- ++ cap files directly, then an entry in this list may be ++ the path of a termcap file. + + TERMPATH +- If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG> +- checks the TERMPATH symbol. This is a list of file- +- names separated by spaces or colons (i.e., ":") on +- Unix, semicolons on OS/2 EMX. If the TERMPATH symbol +- is not set, <STRONG>ncurses</STRONG> looks in the files /etc/termcap, +- /usr/share/misc/termcap and $HOME/.termcap, in that ++ If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG> ++ checks the TERMPATH environment variable. This is a ++ list of filenames separated by spaces or colons ++ (i.e., ":") on Unix, semicolons on OS/2 EMX. ++ ++ If the TERMPATH environment variable is not set, ++ <STRONG>ncurses</STRONG> looks in the files /etc/termcap, ++ /usr/share/misc/termcap and $HOME/.termcap, in that + order. + +- The library may be configured to disregard the following +- variables when the current user is the superuser (root), +- or if the application uses setuid or setgid permissions: +- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME. ++ The library may be configured to disregard the following ++ variables when the current user is the superuser (root), ++ or if the application uses setuid or setgid permissions: ++ ++ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as ++ $HOME. + + + </PRE> + <H2>ALTERNATE CONFIGURATIONS</H2><PRE> +- Several different configurations are possible, depending +- on the configure script options used when building +- <STRONG>ncurses</STRONG>. There are a few main options whose effects are ++ Several different configurations are possible, depending ++ on the configure script options used when building ++ <STRONG>ncurses</STRONG>. There are a few main options whose effects are + visible to the applications developer using <STRONG>ncurses</STRONG>: + + --disable-overwrite +- The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG> ++ The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG> + <STRONG>OPSIS</STRONG>: + + <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG> + +- This option is used to avoid filename conflicts when +- <STRONG>ncurses</STRONG> is not the main implementation of curses of +- the computer. If <STRONG>ncurses</STRONG> is installed disabling +- overwrite, it puts its headers in a subdirectory, ++ This option is used to avoid filename conflicts when ++ <STRONG>ncurses</STRONG> is not the main implementation of curses of ++ the computer. If <STRONG>ncurses</STRONG> is installed disabling ++ overwrite, it puts its headers in a subdirectory, + e.g., + + <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG> + +- It also omits a symbolic link which would allow you ++ It also omits a symbolic link which would allow you + to use <STRONG>-lcurses</STRONG> to build executables. + + --enable-widec +- The configure script renames the library and (if the +- <STRONG>--disable-overwrite</STRONG> option is used) puts the header ++ The configure script renames the library and (if the ++ <STRONG>--disable-overwrite</STRONG> option is used) puts the header + files in a different subdirectory. All of the +- library names have a "w" appended to them, i.e., ++ library names have a "w" appended to them, i.e., + instead of + + <STRONG>-lncurses</STRONG> +@@ -1095,16 +1145,16 @@ + <STRONG>-lncursesw</STRONG> + + You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com- +- piling for the wide-character library to use the +- extended (wide-character) functions. The <STRONG>curses.h</STRONG> +- file which is installed for the wide-character +- library is designed to be compatible with the normal ++ piling for the wide-character library to use the ++ extended (wide-character) functions. The <STRONG>curses.h</STRONG> ++ file which is installed for the wide-character ++ library is designed to be compatible with the normal + library's header. Only the size of the <STRONG>WINDOW</STRONG> struc- +- ture differs, and very few applications require more +- than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are +- installed allowing overwrite, the wide-character +- library's headers should be installed last, to allow +- applications to be built using either library from ++ ture differs, and very few applications require more ++ than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are ++ installed allowing overwrite, the wide-character ++ library's headers should be installed last, to allow ++ applications to be built using either library from + the same set of headers. + + --with-shared +@@ -1114,16 +1164,16 @@ + --with-debug + + --with-profile +- The shared and normal (static) library names differ +- by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and +- <STRONG>libncurses.a</STRONG>. The debug and profiling libraries add +- a "_g" and a "_p" to the root names respectively, +- e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>. ++ The shared and normal (static) library names differ ++ by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libn-</STRONG> ++ <STRONG>curses.a</STRONG>. The debug and profiling libraries add a ++ "_g" and a "_p" to the root names respectively, e.g., ++ <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>. + + --with-trace +- The <STRONG>trace</STRONG> function normally resides in the debug ++ The <STRONG>trace</STRONG> function normally resides in the debug + library, but it is sometimes useful to configure this +- in the shared library. Configure scripts should ++ in the shared library. Configure scripts should + check for the function's existence rather than assum- + ing it is always in the debug library. + +@@ -1131,14 +1181,14 @@ + </PRE> + <H2>FILES</H2><PRE> + /usr/share/tabset +- directory containing initialization files for the ++ directory containing initialization files for the + terminal capability database /usr/share/terminfo ter- + minal capability database + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_" ++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_" + for detailed routine descriptions. + <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> + +@@ -1148,52 +1198,61 @@ + The <STRONG>ncurses</STRONG> library can be compiled with an option + (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term- + cap file if the terminal setup code cannot find a terminfo +- entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not +- recommended, as it essentially includes an entire termcap +- compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost ++ entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not ++ recommended, as it essentially includes an entire termcap ++ compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost + in core and startup cycles. + +- The <STRONG>ncurses</STRONG> library includes facilities for capturing +- mouse events on certain terminals (including xterm). See ++ The <STRONG>ncurses</STRONG> library includes facilities for capturing ++ mouse events on certain terminals (including xterm). See + the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details. + +- The <STRONG>ncurses</STRONG> library includes facilities for responding to +- window resizing events, e.g., when running in an xterm. +- See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for +- details. In addition, the library may be configured with ++ The <STRONG>ncurses</STRONG> library includes facilities for responding to ++ window resizing events, e.g., when running in an xterm. ++ See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for ++ details. In addition, the library may be configured with + a SIGWINCH handler. + +- The <STRONG>ncurses</STRONG> library extends the fixed set of function key +- capabilities of terminals by allowing the application +- designer to define additional key sequences at runtime. ++ The <STRONG>ncurses</STRONG> library extends the fixed set of function key ++ capabilities of terminals by allowing the application ++ designer to define additional key sequences at runtime. + See the <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> man- + ual pages for details. + + The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi- +- nals which implement the ISO-6429 SGR 39 and SGR 49 con- ++ nals which implement the ISO-6429 SGR 39 and SGR 49 con- + trols, which allow an application to reset the terminal to +- its original foreground and background colors. From the +- users' perspective, the application is able to draw col- +- ored text on a background whose color is set indepen- +- dently, providing better control over color contrasts. ++ its original foreground and background colors. From the ++ users' perspective, the application is able to draw col- ++ ored text on a background whose color is set indepen- ++ dently, providing better control over color contrasts. + See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details. + +- The <STRONG>ncurses</STRONG> library includes a function for directing +- application output to a printer attached to the terminal ++ The <STRONG>ncurses</STRONG> library includes a function for directing ++ application output to a printer attached to the terminal + device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details. + + + </PRE> + <H2>PORTABILITY</H2><PRE> +- The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor- ++ The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor- + mant with XSI Curses. The EXTENDED XSI Curses functional- + ity (including color support) is supported. + +- A small number of local differences (that is, individual +- differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are +- described in <STRONG>PORTABILITY</STRONG> sections of the library man ++ A small number of local differences (that is, individual ++ differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are ++ described in <STRONG>PORTABILITY</STRONG> sections of the library man + pages. + ++ Unlike other implementations, this one checks parameters ++ such as pointers to WINDOW structures to ensure they are ++ not null. The main reason for providing this behavior is ++ to guard against programmer error. The standard interface ++ does not provide a way for the library to tell an applica- ++ tion which of several possible errors were detected. ++ Relying on this (or some other) extension will adversely ++ affect the portability of curses applications. ++ + This implementation also contains several extensions: + + <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it +@@ -1227,31 +1286,31 @@ + + <STRONG>o</STRONG> This implementation can also be configured to provide + a set of functions which improve the ability to manage +- multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details. ++ multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details. + +- In historic curses versions, delays embedded in the capa- ++ In historic curses versions, delays embedded in the capa- + bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding +- delay bits in the UNIX tty driver. In this implementa- +- tion, all padding is done by sending NUL bytes. This +- method is slightly more expensive, but narrows the inter- +- face to the UNIX kernel significantly and increases the ++ delay bits in the UNIX tty driver. In this implementa- ++ tion, all padding is done by sending NUL bytes. This ++ method is slightly more expensive, but narrows the inter- ++ face to the UNIX kernel significantly and increases the + package's portability correspondingly. + + + </PRE> + <H2>NOTES</H2><PRE> +- The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the ++ The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the + header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>. + +- If standard output from a <STRONG>ncurses</STRONG> program is re-directed +- to something which is not a tty, screen updates will be ++ If standard output from a <STRONG>ncurses</STRONG> program is re-directed ++ to something which is not a tty, screen updates will be + directed to standard error. This was an undocumented fea- + ture of AT&amp;T System V Release 3 curses. + + + </PRE> + <H2>AUTHORS</H2><PRE> +- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. ++ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. + Based on pcurses by Pavel Curtis. + + +diff -Naur ncurses-5.9/doc/html/man/ncurses5-config.1.html ncurses-5.9.patch/doc/html/man/ncurses5-config.1.html +--- ncurses-5.9/doc/html/man/ncurses5-config.1.html 2011-04-05 00:46:49.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/ncurses5-config.1.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 2010 Free Software Foundation, Inc. * +@@ -105,10 +105,11 @@ + + <STRONG>--terminfo-dirs</STRONG> + echos the $TERMINFO_DIRS directory list, e.g., +- /usr/local/ncurses/lib/terminfo:/usr/share/terminfo ++ /usr/local/ncurses/share/terminfo:/usr/share/ter- ++ minfo + + <STRONG>--termpath</STRONG> +- echos the $TERMPATH termcap list, if support for ++ echos the $TERMPATH termcap list, if support for + termcap is configured. + + <STRONG>--help</STRONG> prints this message +@@ -118,7 +119,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/panel.3x.html ncurses-5.9.patch/doc/html/man/panel.3x.html +--- ncurses-5.9/doc/html/man/panel.3x.html 2011-04-05 00:46:49.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/panel.3x.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * +@@ -174,35 +174,35 @@ + + </PRE> + <H2>DIAGNOSTICS</H2><PRE> +- Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an +- error occurs. Each routine that returns an int value ++ Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an ++ error occurs. Each routine that returns an int value + returns <STRONG>OK</STRONG> if it executes successfully and <STRONG>ERR</STRONG> if not. + + + </PRE> + <H2>COMPATIBILITY</H2><PRE> +- Reasonable care has been taken to ensure compatibility +- with the native panel facility introduced in SVr3.2 +- (inspection of the SVr4 manual pages suggests the +- programming interface is unchanged). The <STRONG>PANEL</STRONG> data +- structures are merely similar. The programmer is cau- +- tioned not to directly use <STRONG>PANEL</STRONG> fields. ++ Reasonable care has been taken to ensure compatibility ++ with the native panel facility introduced in SVr3.2 ++ (inspection of the SVr4 manual pages suggests the program- ++ ming interface is unchanged). The <STRONG>PANEL</STRONG> data structures ++ are merely similar. The programmer is cautioned not to ++ directly use <STRONG>PANEL</STRONG> fields. + +- The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical +- in this implementation, and work equally well with dis- ++ The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical ++ in this implementation, and work equally well with dis- + played or hidden panels. In the native System V implemen- + tation, <STRONG>show_panel()</STRONG> is intended for making a hidden panel +- visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is +- intended for making an already-visible panel move to the +- top of the stack. You are cautioned to use the correct +- function to ensure compatibility with native panel ++ visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is ++ intended for making an already-visible panel move to the ++ top of the stack. You are cautioned to use the correct ++ function to ensure compatibility with native panel + libraries. + + + </PRE> + <H2>NOTE</H2><PRE> +- In your library list, libpanel.a should be before libn- +- curses.a; that is, you want to say `-lpanel -lncurses', ++ In your library list, libpanel.a should be before libn- ++ curses.a; that is, you want to say `-lpanel -lncurses', + not the other way around (which would usually give a link- + error). + +@@ -218,14 +218,14 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + </PRE> + <H2>AUTHOR</H2><PRE> +- Originally written by Warren Tucker &lt;wht@n4hgf.mt- +- park.ga.us&gt;, primarily to assist in porting u386mon to +- systems without a native panels library. Repackaged for ++ Originally written by Warren Tucker &lt;wht@n4hgf.mt- ++ park.ga.us&gt;, primarily to assist in porting u386mon to ++ systems without a native panels library. Repackaged for + ncurses by Zeyd ben-Halim. + + +diff -Naur ncurses-5.9/doc/html/man/resizeterm.3x.html ncurses-5.9.patch/doc/html/man/resizeterm.3x.html +--- ncurses-5.9/doc/html/man/resizeterm.3x.html 2011-01-09 02:03:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/resizeterm.3x.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * Author: Thomas E. Dickey 1996-2005 +- * @Id: resizeterm.3x,v 1.14 2010/12/04 18:38:55 tom Exp @ ++ * Author: Thomas E. Dickey 1996-on ++ * @Id: resizeterm.3x,v 1.17 2013/06/22 20:41:54 tom Exp @ + --> + <HTML> + <HEAD> +@@ -69,28 +69,29 @@ + terminal (e.g., xterm). The function <STRONG>resizeterm</STRONG> resizes + the standard and current windows to the specified dimen- + sions, and adjusts other bookkeeping data used by the +- <STRONG>ncurses</STRONG> library that record the window dimensions. ++ <STRONG>ncurses</STRONG> library that record the window dimensions such as ++ the <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> variables. + +- Most of the work is done by the inner function ++ Most of the work is done by the inner function + <STRONG>resize_term</STRONG>. The outer function <STRONG>resizeterm</STRONG> adds bookkeep- +- ing for the SIGWINCH handler. When resizing the windows, +- <STRONG>resize_term</STRONG> blank-fills the areas that are extended. The ++ ing for the SIGWINCH handler. When resizing the windows, ++ <STRONG>resize_term</STRONG> blank-fills the areas that are extended. The + calling application should fill in these areas with appro- +- priate data. The <STRONG>resize_term</STRONG> function attempts to resize +- all windows. However, due to the calling convention of +- pads, it is not possible to resize these without addi- ++ priate data. The <STRONG>resize_term</STRONG> function attempts to resize ++ all windows. However, due to the calling convention of ++ pads, it is not possible to resize these without addi- + tional interaction with the application. + +- A support function <STRONG>is_term_resized</STRONG> is provided so that +- applications can check if the <STRONG>resize_term</STRONG> function would ++ A support function <STRONG>is_term_resized</STRONG> is provided so that ++ applications can check if the <STRONG>resize_term</STRONG> function would + modify the window structures. It returns TRUE if the win- + dows would be modified, and FALSE otherwise. + + + </PRE> + <H2>RETURN VALUE</H2><PRE> +- Except as notes, these function return the integer <STRONG>ERR</STRONG> +- upon failure and <STRONG>OK</STRONG> on success. They will fail if either ++ Except as noted, these functions return the integer <STRONG>ERR</STRONG> ++ upon failure and <STRONG>OK</STRONG> on success. They will fail if either + of the dimensions are less than or equal to zero, or if an + error occurs while (re)allocating memory for the windows. + +@@ -98,29 +99,27 @@ + </PRE> + <H2>NOTES</H2><PRE> + While these functions are intended to be used to support a +- signal handler (i.e., for SIGWINCH), care should be taken +- to avoid invoking them in a context where <STRONG>malloc</STRONG> or <STRONG>real-</STRONG> +- <STRONG>loc</STRONG> may have been interrupted, since it uses those func- ++ signal handler (i.e., for SIGWINCH), care should be taken ++ to avoid invoking them in a context where <STRONG>malloc</STRONG> or <STRONG>real-</STRONG> ++ <STRONG>loc</STRONG> may have been interrupted, since it uses those func- + tions. + +- If ncurses is configured to supply its own SIGWINCH han- +- dler, the <STRONG>resizeterm</STRONG> function ungetch's a <STRONG>KEY_RESIZE</STRONG> which +- will be read on the next call to <STRONG>getch</STRONG>. This is used to ++ If ncurses is configured to supply its own SIGWINCH han- ++ dler, the <STRONG>resizeterm</STRONG> function <STRONG>ungetch</STRONG>'s a <STRONG>KEY_RESIZE</STRONG> which ++ will be read on the next call to <STRONG>getch</STRONG>. This is used to + alert an application that the screen size has changed, and +- that it should repaint special features such as pads that ++ that it should repaint special features such as pads that + cannot be done automatically. + +- If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set, +- this overrides the library's use of the window size +- obtained from the operating system. Thus, even if a SIG- +- WINCH is received, no screen size change may be recorded. +- In that case, no <STRONG>KEY_RESIZE</STRONG> is queued for the next call to +- <STRONG>getch</STRONG>; an <STRONG>ERR</STRONG> will be returned instead. ++ If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set, ++ this overrides the library's use of the window size ++ obtained from the operating system. Thus, even if a SIG- ++ WINCH is received, no screen size change may be recorded. + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. ++ <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/tabs.1.html ncurses-5.9.patch/doc/html/man/tabs.1.html +--- ncurses-5.9/doc/html/man/tabs.1.html 2011-04-05 00:46:50.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/tabs.1.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2011,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: tabs.1,v 1.8 2010/12/04 18:40:45 tom Exp @ ++ * @Id: tabs.1,v 1.11 2013/06/22 18:11:57 tom Exp @ + --> + <HTML> + <HEAD> +@@ -52,7 +52,7 @@ + + </PRE> + <H2>SYNOPSIS</H2><PRE> +- <STRONG>tabs</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahuUV</STRONG>] <EM>file...</EM> ++ <STRONG>tabs</STRONG> [<EM>options</EM>]] <EM>[tabstop-list]</EM> + + + </PRE> +@@ -85,14 +85,17 @@ + any debugging option, but not to modify the terminal + settings. + +- The <STRONG>tabs</STRONG> program processes a single list of tab stops. +- The last option to be processed which defines a list is ++ <STRONG>-V</STRONG> reports the version of ncurses which was used in this ++ program, and exits. ++ ++ The <STRONG>tabs</STRONG> 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. + + <STRONG>Implicit</STRONG> <STRONG>Lists</STRONG> +- Use a single number as an option, e.g., "<STRONG>-5</STRONG>" 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 ++ Use a single number as an option, e.g., "<STRONG>-5</STRONG>" 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. + + Use "<STRONG>-0</STRONG>" to clear all tabs. +@@ -100,17 +103,18 @@ + Use "<STRONG>-8</STRONG>" to set tabs to the standard interval. + + <STRONG>Explicit</STRONG> <STRONG>Lists</STRONG> +- An explicit list can be defined after the options (this +- does not use a "-"). The values in the list must be in ++ 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, + + tabs 1,6,11,16,21 + tabs 1 6 11 16 21 +- Use a '+' to treat a number as an increment relative to ++ Use a '+' to treat a number as an increment relative to + the previous value, e.g., + + tabs 1,+5,+5,+5,+5 ++ + which is equivalent to the 1,6,11,16,21 example. + + <STRONG>Predefined</STRONG> <STRONG>Tab-Stops</STRONG> +@@ -137,18 +141,18 @@ + + </PRE> + <H2>PORTABILITY</H2><PRE> +- X/Open describes a <STRONG>+m</STRONG> option, to set a terminal's left- +- margin. Very few of the entries in the terminal database ++ X/Open describes a <STRONG>+m</STRONG> option, to set a terminal's left- ++ margin. Very few of the entries in the terminal database + provide this capability. + +- The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not ++ The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not + provided by other implementations. + +- Documentation for other implementations states that there +- is a limit on the number of tab stops. While some termi- ++ Documentation for other implementations states that there ++ is a limit on the number of tab stops. While some termi- + nals 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 ++ implementation will attempt to set tab stops up to the ++ right margin of the screen, if the given list happens to + be that long. + + +@@ -156,7 +160,7 @@ + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/term.5.html ncurses-5.9.patch/doc/html/man/term.5.html +--- ncurses-5.9/doc/html/man/term.5.html 2011-01-09 02:03:28.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/term.5.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/man/term.7.html ncurses-5.9.patch/doc/html/man/term.7.html +--- ncurses-5.9/doc/html/man/term.7.html 2011-02-26 00:25:09.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/term.7.html 2014-09-01 16:33:22.333792084 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -27,7 +27,7 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: term.7,v 1.22 2010/12/04 18:41:07 tom Exp @ ++ * @Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp @ + --> + <HTML> + <HEAD> +@@ -85,9 +85,9 @@ + the tty device and baud rate. + + Setting your own <STRONG>TERM</STRONG> value may also be useful if you have +- created a custom entry incorporating options (such as +- visual bell or reverse-video) which you wish to override +- the system default type for your line. ++ created a custom entry incorporating options (such as vis- ++ ual bell or reverse-video) which you wish to override the ++ system default type for your line. + + Terminal type descriptions are stored as files of capabil- + ity data underneath /usr/share/terminfo. To browse a list +diff -Naur ncurses-5.9/doc/html/man/terminfo.5.html ncurses-5.9.patch/doc/html/man/terminfo.5.html +--- ncurses-5.9/doc/html/man/terminfo.5.html 2011-04-05 00:46:51.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/terminfo.5.html 2014-09-01 16:33:22.335792088 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + * DO NOT EDIT THIS FILE BY HAND! +@@ -6,7 +6,7 @@ + * Note: this must be run through tbl before nroff. + * The magic cookie on the first line triggers this under some man programs. + **************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: terminfo.head,v 1.18 2010/07/31 16:08:48 tom Exp @ ++ * @Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp @ + * Head of terminfo man page ends here +- * @Id: terminfo.tail,v 1.53 2010/12/04 18:38:55 tom Exp @ ++ * @Id: terminfo.tail,v 1.68 2013/11/09 15:20:48 tom Exp @ + * Beginning of terminfo.tail file + * This file is part of ncurses. + * See "terminfo.head" for copyright. +@@ -73,12 +73,12 @@ + </PRE> + <H2>DESCRIPTION</H2><PRE> + <EM>Terminfo</EM> is a data base describing terminals, used by +- screen-oriented programs such as <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>, <STRONG><A HREF="rogue.1.html">rogue(1)</A></STRONG> and ++ screen-oriented programs such as <STRONG>nvi(1)</STRONG>, <STRONG>rogue(1)</STRONG> and + libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. <EM>Terminfo</EM> describes termi- + nals by giving a set of capabilities which they have, by + specifying how to perform screen operations, and by speci- + fying padding requirements and initialization sequences. +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + Entries in <EM>terminfo</EM> consist of a sequence of `,' separated + fields (embedded commas may be escaped with a backslash or +@@ -106,14 +106,13 @@ + Terminal names (except for the last, verbose entry) should + be chosen using the following conventions. The particular + piece of hardware making up the terminal should have a +- root name, thus ``hp2621''. This name should not contain ++ root name, thus "hp2621". This name should not contain + hyphens. Modes that the hardware can be in, or user pref- + erences, should be indicated by appending a hyphen and a + mode suffix. Thus, a vt100 in 132 column mode would be + vt100-w. The following suffixes should be used where pos- + sible: + +- + <STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG> + -<EM>nn</EM> Number of lines on the screen aaa-60 + -<EM>n</EM>p Number of pages of memory c100-4p +@@ -126,14 +125,14 @@ + -ns No status line hp2626-ns + -rv Reverse video c100-rv + -s Enable status line vt100-s +- + -vb Use visible bell instead of beep wy370-vb ++ + -w Wide mode (&gt; 80 columns, usually 132) vt100-w + + For more on terminal naming conventions, see the <STRONG>term(7)</STRONG> + manual page. + +- <STRONG>Capabilities</STRONG> ++ <STRONG>Predefined</STRONG> <STRONG>Capabilities</STRONG> + The following is a complete table of the capabilities + included in a terminfo description block and available to + terminfo-using code. In each line of the table, +@@ -176,133 +175,134 @@ + These are the boolean capabilities: + + +- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> +- <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG> +- auto_left_margin bw bw cub1 wraps from col- ++ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> ++ <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG> ++ auto_left_margin bw bw cub1 wraps from col- + umn 0 to last column +- auto_right_margin am am terminal has auto- ++ auto_right_margin am am terminal has auto- + matic margins +- back_color_erase bce ut screen erased with ++ back_color_erase bce ut screen erased with + background color +- can_change ccc cc terminal can re- ++ can_change ccc cc terminal can re- + define existing col- + ors +- ceol_standout_glitch xhp xs standout not erased ++ ceol_standout_glitch xhp xs standout not erased + by overwriting (hp) +- col_addr_glitch xhpa YA only positive motion ++ col_addr_glitch xhpa YA only positive motion + for hpa/mhpa caps + + +- cpi_changes_res cpix YF changing character ++ ++ cpi_changes_res cpix YF changing character + pitch changes reso- + lution +- cr_cancels_micro_mode crxm YB using cr turns off ++ cr_cancels_micro_mode crxm YB using cr turns off + micro mode +- dest_tabs_magic_smso xt xt tabs destructive, ++ dest_tabs_magic_smso xt xt tabs destructive, + magic so char + (t1061) +- eat_newline_glitch xenl xn newline ignored ++ eat_newline_glitch xenl xn newline ignored + after 80 cols (con- + cept) +- erase_overstrike eo eo can erase over- ++ erase_overstrike eo eo can erase over- + strikes with a blank +- generic_type gn gn generic line type +- hard_copy hc hc hardcopy terminal +- hard_cursor chts HC cursor is hard to ++ generic_type gn gn generic line type ++ hard_copy hc hc hardcopy terminal ++ hard_cursor chts HC cursor is hard to + see +- has_meta_key km km Has a meta key ++ has_meta_key km km Has a meta key + (i.e., sets 8th-bit) +- has_print_wheel daisy YC printer needs opera- ++ has_print_wheel daisy YC printer needs opera- + tor to change char- + acter set +- has_status_line hs hs has extra status ++ has_status_line hs hs has extra status + line +- hue_lightness_saturation hls hl terminal uses only ++ hue_lightness_saturation hls hl terminal uses only + HLS color notation + (Tektronix) +- insert_null_glitch in in insert mode distin- ++ insert_null_glitch in in insert mode distin- + guishes nulls +- lpi_changes_res lpix YG changing line pitch ++ lpi_changes_res lpix YG changing line pitch + changes resolution +- memory_above da da display may be ++ memory_above da da display may be + retained above the + screen +- memory_below db db display may be ++ memory_below db db display may be + retained below the + screen +- move_insert_mode mir mi safe to move while ++ move_insert_mode mir mi safe to move while + in insert mode +- move_standout_mode msgr ms safe to move while ++ move_standout_mode msgr ms safe to move while + in standout mode +- needs_xon_xoff nxon nx padding will not ++ needs_xon_xoff nxon nx padding will not + work, xon/xoff + required +- no_esc_ctlc xsb xb beehive (f1=escape, ++ no_esc_ctlc xsb xb beehive (f1=escape, + f2=ctrl C) +- no_pad_char npc NP pad character does ++ no_pad_char npc NP pad character does + not exist +- non_dest_scroll_region ndscr ND scrolling region is ++ non_dest_scroll_region ndscr ND scrolling region is + non-destructive +- non_rev_rmcup nrrmc NR smcup does not ++ non_rev_rmcup nrrmc NR smcup does not + reverse rmcup +- over_strike os os terminal can over- ++ over_strike os os terminal can over- + strike +- prtr_silent mc5i 5i printer will not ++ prtr_silent mc5i 5i printer will not + echo on screen +- row_addr_glitch xvpa YD only positive motion ++ row_addr_glitch xvpa YD only positive motion + for vpa/mvpa caps +- semi_auto_right_margin sam YE printing in last ++ semi_auto_right_margin sam YE printing in last + column causes cr +- status_line_esc_ok eslok es escape can be used ++ status_line_esc_ok eslok es escape can be used + on the status line +- tilde_glitch hz hz cannot print ~'s ++ tilde_glitch hz hz cannot print ~'s + (hazeltine) + + +- transparent_underline ul ul underline character ++ transparent_underline ul ul underline character + overstrikes +- xon_xoff xon xo terminal uses ++ xon_xoff xon xo terminal uses + xon/xoff handshaking + + These are the numeric capabilities: + + +- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> +- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG> +- columns cols co number of columns in ++ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> ++ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG> ++ columns cols co number of columns in + a line +- init_tabs it it tabs initially every ++ init_tabs it it tabs initially every + # spaces +- label_height lh lh rows in each label +- label_width lw lw columns in each ++ label_height lh lh rows in each label ++ label_width lw lw columns in each + label +- lines lines li number of lines on ++ lines lines li number of lines on + screen or page +- lines_of_memory lm lm lines of memory if &gt; ++ lines_of_memory lm lm lines of memory if &gt; + line. 0 means varies +- magic_cookie_glitch xmc sg number of blank ++ magic_cookie_glitch xmc sg number of blank + characters left by + smso or rmso +- max_attributes ma ma maximum combined ++ max_attributes ma ma maximum combined + attributes terminal + can handle +- max_colors colors Co maximum number of ++ max_colors colors Co maximum number of + colors on screen +- max_pairs pairs pa maximum number of ++ max_pairs pairs pa maximum number of + color-pairs on the + screen +- maximum_windows wnum MW maximum number of ++ maximum_windows wnum MW maximum number of + defineable windows +- no_color_video ncv NC video attributes ++ no_color_video ncv NC video attributes + that cannot be used + with colors +- num_labels nlab Nl number of labels on ++ num_labels nlab Nl number of labels on + screen +- padding_baud_rate pb pb lowest baud rate ++ padding_baud_rate pb pb lowest baud rate + where padding needed +- virtual_terminal vt vt virtual terminal ++ virtual_terminal vt vt virtual terminal + number (CB/unix) +- width_status_line wsl ws number of columns in ++ width_status_line wsl ws number of columns in + status line + + The following numeric capabilities are present in the +@@ -310,47 +310,47 @@ + man page. They came in with SVr4's printer support. + + +- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> +- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG> +- bit_image_entwining bitwin Yo number of passes for ++ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> ++ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG> ++ bit_image_entwining bitwin Yo number of passes for + each bit-image row +- bit_image_type bitype Yp type of bit-image ++ bit_image_type bitype Yp type of bit-image + device +- buffer_capacity bufsz Ya numbers of bytes ++ buffer_capacity bufsz Ya numbers of bytes + buffered before + printing +- buttons btns BT number of buttons on ++ buttons btns BT number of buttons on + mouse +- dot_horz_spacing spinh Yc spacing of dots hor- ++ dot_horz_spacing spinh Yc spacing of dots hor- + izontally in dots + per inch + +- dot_vert_spacing spinv Yb spacing of pins ver- ++ dot_vert_spacing spinv Yb spacing of pins ver- + tically in pins per + inch +- max_micro_address maddr Yd maximum value in ++ max_micro_address maddr Yd maximum value in + micro_..._address +- max_micro_jump mjump Ye maximum value in ++ max_micro_jump mjump Ye maximum value in + parm_..._micro +- micro_col_size mcs Yf character step size ++ micro_col_size mcs Yf character step size + when in micro mode +- micro_line_size mls Yg line step size when ++ micro_line_size mls Yg line step size when + in micro mode +- number_of_pins npins Yh numbers of pins in ++ number_of_pins npins Yh numbers of pins in + print-head +- output_res_char orc Yi horizontal resolu- ++ output_res_char orc Yi horizontal resolu- + tion in units per + line +- output_res_horz_inch orhi Yk horizontal resolu- ++ output_res_horz_inch orhi Yk horizontal resolu- + tion in units per + inch +- output_res_line orl Yj vertical resolution ++ output_res_line orl Yj vertical resolution + in units per line +- output_res_vert_inch orvi Yl vertical resolution ++ output_res_vert_inch orvi Yl vertical resolution + in units per inch +- print_rate cps Ym print rate in char- ++ print_rate cps Ym print rate in char- + acters per second +- wide_char_size widcs Yn character step size ++ wide_char_size widcs Yn character step size + when in double wide + mode + +@@ -402,8 +402,8 @@ + prototype !? + create_window cwin CW define a window #1 + from #2,#3 to #4,#5 +- cursor_address cup cm move to row #1 +- columns #2 ++ cursor_address cup cm move to row #1 col- ++ umns #2 + cursor_down cud1 do down one line + cursor_home home ho home cursor (if no + cup) +@@ -904,8 +904,8 @@ + zero_motion zerom Zx No motion for subse- + quent character + +- The following string capabilities are present in the +- SVr4.0 term structure, but were originally not documented ++ The following string capabilities are present in the ++ SVr4.0 term structure, but were originally not documented + in the man page. + + +@@ -989,13 +989,14 @@ + bottom margins to + #1, #2 + +- The XSI Curses standard added these. They are some +- post-4.1 versions of System V curses, e.g., Solaris 2.5 +- and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are +- invented; according to the XSI Curses standard, they have +- no termcap names. If your compiled terminfo entries use +- these, they may not be binary-compatible with System V +- terminfo entries after SVr4.1; beware! ++ The XSI Curses standard added these hardcopy capabili- ++ ties. They were used in some post-4.1 versions of System ++ V curses, e.g., Solaris 2.5 and IRIX 6.x. Except for <STRONG>YI</STRONG>, ++ the <STRONG>ncurses</STRONG> termcap names for them are invented. Accord- ++ ing to the XSI Curses standard, they have no termcap ++ names. If your compiled terminfo entries use these, they ++ may not be binary-compatible with System V terminfo ++ entries after SVr4.1; beware! + + + <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG> +@@ -1015,123 +1016,210 @@ + set_a_attributes sgr1 sA Define second set of + video attributes + #1-#6 +- set_pglen_inch slengthsL YI Set page length +- to #1 hundredth of +- an inch ++ set_pglen_inch slengthYI Set page length to ++ #1 hundredth of an ++ inch (some implemen- ++ tations use sL for ++ termcap). ++ ++ <STRONG>User-Defined</STRONG> <STRONG>Capabilities</STRONG> ++ The preceding section listed the <EM>predefined</EM> capabilities. ++ They deal with some special features for terminals no ++ longer (or possibly never) produced. Occasionally there ++ are special features of newer terminals which are awkward ++ or impossible to represent by reusing the predefined capa- ++ bilities. ++ ++ <STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined ++ capabilities. The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> ++ option for this purpose. When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats ++ unknown capabilities as user-defined. That is, if <STRONG>tic</STRONG> ++ encounters a capability name which it does not recognize, ++ it infers its type (boolean, number or string) from the ++ syntax and makes an extended table entry for that capabil- ++ ity. The <STRONG>use_extended_names</STRONG> function makes this informa- ++ tion conditionally available to applications. The ncurses ++ library provides the data leaving most of the behavior to ++ applications: ++ ++ <STRONG>o</STRONG> User-defined capability strings whose name begins with ++ "k" are treated as function keys. ++ ++ <STRONG>o</STRONG> The types (boolean, number, string) determined by <STRONG>tic</STRONG> ++ can be inferred by successful calls on <STRONG>tigetflag</STRONG>, etc. ++ ++ <STRONG>o</STRONG> If the capability name happens to be two characters, ++ the capability is also available through the termcap ++ interface. ++ ++ While termcap is said to be extensible because it does not ++ use a predefined set of capabilities, in practice it has ++ been limited to the capabilities defined by terminfo ++ implementations. As a rule, user-defined capabilities ++ intended for use by termcap applications should be limited ++ to booleans and numbers to avoid running past the 1023 ++ byte limit assumed by termcap implementations and their ++ applications. In particular, providing extended sets of ++ function keys (past the 60 numbered keys and the handful ++ of special named keys) is best done using the longer names ++ available using terminfo. + + <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG> + The following entry, describing an ANSI-standard terminal, +- is representative of what a <STRONG>terminfo</STRONG> entry for a modern ++ is representative of what a <STRONG>terminfo</STRONG> entry for a modern + terminal typically looks like. + +- ansi|ansi/pc-term compatible with color, +- mc5i, +- colors#8, ncv#3, pairs#64, +- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC, +- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM, +- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I, +- ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT, +- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V, +- kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P, +- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, +- kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, +- op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db, +- rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, +- s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- 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;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m, +- sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n, +- u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd, +- +- Entries may continue onto multiple lines by placing white +- space at the beginning of each line except the first. +- Comments may be included on lines beginning with ``#''. +- Capabilities in <EM>terminfo</EM> are of three types: Boolean capa- +- bilities which indicate that the terminal has some partic- +- ular feature, numeric capabilities giving the size of the +- terminal or the size of particular delays, and string +- capabilities, which give a sequence which can be used to +- perform particular terminal operations. ++ ansi|ansi/pc-term compatible with color, ++ am, mc5i, mir, msgr, ++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260 ++ j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303 ++ u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, ++ cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, ++ 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, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, ++ mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT, ++ rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m, ++ s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, ++ 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, smpch=\E[11m, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, ++ u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd, ++ ++ Entries may continue onto multiple lines by placing white ++ space at the beginning of each line except the first. ++ Comments may be included on lines beginning with "#". ++ Capabilities in <EM>terminfo</EM> are of three types: ++ ++ <STRONG>o</STRONG> Boolean capabilities which indicate that the terminal ++ has some particular feature, ++ ++ <STRONG>o</STRONG> numeric capabilities giving the size of the terminal ++ or the size of particular delays, and + ++ <STRONG>o</STRONG> string capabilities, which give a sequence which can ++ be used to perform particular terminal operations. + + <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG> +- All capabilities have names. For instance, the fact that +- ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an +- automatic return and line-feed when the end of a line is +- reached) is indicated by the capability <STRONG>am</STRONG>. Hence the ++ All capabilities have names. For instance, the fact that ++ ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an ++ automatic return and line-feed when the end of a line is ++ reached) is indicated by the capability <STRONG>am</STRONG>. Hence the + description of ansi includes <STRONG>am</STRONG>. Numeric capabilities are +- followed by the character `#' and then a positive value. +- Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter- +- minal has, gives the value `80' for ansi. Values for ++ followed by the character "#" and then a positive value. ++ Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter- ++ minal has, gives the value "80" for ansi. Values for + numeric capabilities may be specified in decimal, octal or +- hexadecimal, using the C programming language conventions ++ hexadecimal, using the C programming language conventions + (e.g., 255, 0377 and 0xff or 0xFF). + +- Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to ++ Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to + end of line sequence) are given by the two-character code, +- an `=', and then a string ending at the next following +- `,'. ++ an "=", and then a string ending at the next following ++ ",". + +- A number of escape sequences are provided in the string ++ A number of escape sequences are provided in the string + valued capabilities for easy encoding of characters there. +- Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a +- control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG> +- <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab, +- backspace, form-feed, and space. Other escapes include <STRONG>\^</STRONG> +- for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null. +- (<STRONG>\0</STRONG> will produce \200, which does not terminate a string +- but behaves as a null character on most terminals, provid- +- ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters +- may be given as three octal digits after a <STRONG>\</STRONG>. +- +- A delay in milliseconds may appear anywhere in a string +- capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;, +- and padding characters are supplied by <EM>tputs</EM> to provide +- this delay. The delay must be a number with at most one ++ Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a ++ control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG> ++ <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab, ++ backspace, form-feed, and space. Other escapes include ++ ++ <STRONG>o</STRONG> <STRONG>\^</STRONG> for <STRONG>^</STRONG>, ++ ++ <STRONG>o</STRONG> <STRONG>\\</STRONG> for <STRONG>\</STRONG>, ++ ++ <STRONG>o</STRONG> <STRONG>\</STRONG>, for comma, ++ ++ <STRONG>o</STRONG> <STRONG>\:</STRONG> for <STRONG>:</STRONG>, ++ ++ <STRONG>o</STRONG> and <STRONG>\0</STRONG> for null. ++ ++ <STRONG>\0</STRONG> will produce \200, which does not terminate a ++ string but behaves as a null character on most termi- ++ nals, providing CS7 is specified. See <STRONG>stty(1)</STRONG>. ++ ++ The reason for this quirk is to maintain binary com- ++ patibility of the compiled terminfo files with other ++ implementations, e.g., the SVr4 systems, which docu- ++ ment this. Compiled terminfo files use null-termi- ++ nated strings, with no lengths. Modifying this would ++ require a new binary format, which would not work with ++ other implementations. ++ ++ Finally, characters may be given as three octal digits ++ after a <STRONG>\</STRONG>. ++ ++ A delay in milliseconds may appear anywhere in a string ++ capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;, ++ and padding characters are supplied by <EM>tputs</EM> to provide ++ this delay. The delay must be a number with at most one + decimal place of precision; it may be followed by suffixes +- `*' or '/' or both. A `*' indicates that the padding +- required is proportional to the number of lines affected +- by the operation, and the amount given is the per- +- affected-unit padding required. (In the case of insert ++ "*" or "/" or both. A "*" indicates that the padding ++ required is proportional to the number of lines affected ++ by the operation, and the amount given is the per- ++ affected-unit padding required. (In the case of insert + character, the factor is still the number of <EM>lines</EM> +- affected.) Normally, padding is advisory if the device +- has the <STRONG>xon</STRONG> capability; it is used for cost computation +- but does not trigger delays. A `/' suffix indicates that +- the padding is mandatory and forces a delay of the given +- number of milliseconds even on devices for which <STRONG>xon</STRONG> is ++ affected.) Normally, padding is advisory if the device ++ has the <STRONG>xon</STRONG> capability; it is used for cost computation ++ but does not trigger delays. A "/" suffix indicates that ++ the padding is mandatory and forces a delay of the given ++ number of milliseconds even on devices for which <STRONG>xon</STRONG> is + present to indicate flow control. + +- Sometimes individual capabilities must be commented out. +- To do this, put a period before the capability name. For ++ Sometimes individual capabilities must be commented out. ++ To do this, put a period before the capability name. For + example, see the second <STRONG>ind</STRONG> in the example above. + +- + <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG> +- If the environment variable TERMINFO is set, it is inter- +- preted as the pathname of a directory containing the com- +- piled description you are working on. Only that directory +- is searched. +- +- If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter- +- minfo reader code will instead look in the directory +- <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails +- to find one there, and the environment variable TER- +- MINFO_DIRS is set, it will interpret the contents of that +- variable as a list of colon- separated directories to be +- searched (an empty entry is interpreted as a command to +- search <EM>/usr/share/terminfo</EM>). If no description is found +- in any of the TERMINFO_DIRS directories, the fetch fails. +- +- If neither TERMINFO nor TERMINFO_DIRS is set, the last +- place tried will be the system terminfo directory, +- <EM>/usr/share/terminfo</EM>. +- +- (Neither the <STRONG>$HOME/.terminfo</STRONG> lookups nor TERMINFO_DIRS +- extensions are supported under stock System V ter- +- minfo/curses.) ++ The <STRONG>ncurses</STRONG> library searches for terminal descriptions in ++ several places. It uses only the first description found. ++ The library has a compiled-in list of places to search ++ which can be overridden by environment variables. Before ++ starting to search, <STRONG>ncurses</STRONG> eliminates duplicates in its ++ search list. ++ ++ <STRONG>o</STRONG> If the environment variable TERMINFO is set, it is ++ interpreted as the pathname of a directory containing ++ the compiled description you are working on. Only ++ that directory is searched. ++ ++ <STRONG>o</STRONG> If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in ++ the directory <STRONG>$HOME/.terminfo</STRONG> for a compiled descrip- ++ tion. ++ ++ <STRONG>o</STRONG> Next, if the environment variable TERMINFO_DIRS is ++ set, <STRONG>ncurses</STRONG> will interpret the contents of that vari- ++ able as a list of colon-separated directories (or ++ database files) to be searched. ++ ++ An empty directory name (i.e., if the variable begins ++ or ends with a colon, or contains adacent colons) is ++ interpreted as the system location <EM>/usr/share/ter-</EM> ++ <EM>minfo</EM>. ++ ++ <STRONG>o</STRONG> Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations: ++ ++ <STRONG>o</STRONG> a list of directories ++ (/usr/local/ncurses/share/terminfo:/usr/share/ter- ++ minfo), and + ++ <STRONG>o</STRONG> the system terminfo directory, <EM>/usr/share/terminfo</EM> ++ (the compiled-in default). + + <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG> + We now outline how to prepare descriptions of terminals. +@@ -1147,12 +1235,11 @@ + To get the padding for insert line right (if the terminal + manufacturer did not document it) a severe test is to edit + a large file at 9600 baud, delete 16 or so lines from the +- middle of the screen, then hit the `u' key several times ++ middle of the screen, then hit the "u" key several times + quickly. If the terminal messes up, more padding is usu- + ally needed. A similar test can be used for insert char- + acter. + +- + <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG> + The number of columns on each line for the terminal is + given by the <STRONG>cols</STRONG> numeric capability. If the terminal is +@@ -1178,7 +1265,7 @@ + as <STRONG>cub1</STRONG>. Similarly, codes to move to the right, up, and + down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>. These local + cursor motions should not alter the text they pass over, +- for example, you would not normally use `<STRONG>cuf1</STRONG>= ' because ++ for example, you would not normally use "<STRONG>cuf1</STRONG>= " because + the space would erase the character moved over. + + A very important point here is that the local cursor +@@ -1190,137 +1277,135 @@ + left corner of the screen and send the <STRONG>ind</STRONG> (index) string. + + To scroll text down, a program goes to the top left corner +- of the screen and sends the <STRONG>ri</STRONG> (reverse index) string. +- The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their ++ of the screen and sends the <STRONG>ri</STRONG> (reverse index) string. ++ The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their + respective corners of the screen. + + Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG> + and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except +- that they take one parameter, and scroll that many lines. +- They are also undefined except at the appropriate edge of ++ that they take one parameter, and scroll that many lines. ++ They are also undefined except at the appropriate edge of + the screen. + +- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the +- right edge of the screen when text is output, but this ++ The <STRONG>am</STRONG> capability tells whether the cursor sticks at the ++ right edge of the screen when text is output, but this + does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column. +- The only local motion which is defined from the left edge +- is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will +- move to the right edge of the previous row. If <STRONG>bw</STRONG> is not +- given, the effect is undefined. This is useful for draw- +- ing a box around the edge of the screen, for example. If +- the terminal has switch selectable automatic margins, the +- <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>. +- If the terminal has a command which moves to the first +- column of the next line, that command can be given as <STRONG>nel</STRONG> +- (newline). It does not matter if the command clears the +- remainder of the current line, so if the terminal has no +- <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG> ++ The only local motion which is defined from the left edge ++ is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will ++ move to the right edge of the previous row. If <STRONG>bw</STRONG> is not ++ given, the effect is undefined. This is useful for draw- ++ ing a box around the edge of the screen, for example. If ++ the terminal has switch selectable automatic margins, the ++ <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>. ++ If the terminal has a command which moves to the first ++ column of the next line, that command can be given as <STRONG>nel</STRONG> ++ (newline). It does not matter if the command clears the ++ remainder of the current line, so if the terminal has no ++ <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG> + out of one or both of them. + + These capabilities suffice to describe hard-copy and +- "glass-tty" terminals. Thus the model 33 teletype is ++ "glass-tty" terminals. Thus the model 33 teletype is + described as + + 33|tty33|tty|model 33 teletype, +- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os, ++ bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os, + + while the Lear Siegler ADM-3 is described as + + adm3|3|lsi adm3, +- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J, +- ind=^J, lines#24, +- ++ am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J, ++ ind=^J, lines#24, + + <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG> +- Cursor addressing and other strings requiring parameters +- in the terminal are described by a parameterized string +- capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For +- example, to address the cursor, the <STRONG>cup</STRONG> capability is ++ Cursor addressing and other strings requiring parameters ++ in the terminal are described by a parameterized string ++ capability, with <EM>printf</EM>-like escapes such as <EM>%x</EM> in it. ++ For example, to address the cursor, the <STRONG>cup</STRONG> capability is + given, using two parameters: the row and column to address + to. (Rows and columns are numbered from zero and refer to + the physical screen visible to the user, not to any unseen +- memory.) If the terminal has memory relative cursor ++ memory.) If the terminal has memory relative cursor + addressing, that can be indicated by <STRONG>mrcup</STRONG>. + +- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes +- to manipulate it. Typically a sequence will push one of +- the parameters onto the stack and then print it in some +- format. Print (e.g., "%d") is a special case. Other +- operations, including "%t" pop their operand from the ++ The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes ++ to manipulate it. Typically a sequence will push one of ++ the parameters onto the stack and then print it in some ++ format. Print (e.g., "%d") is a special case. Other ++ operations, including "%t" pop their operand from the + stack. It is noted that more complex operations are often + necessary, e.g., in the <STRONG>sgr</STRONG> string. + + The <STRONG>%</STRONG> encodings have the following meanings: + ++ <STRONG>%%</STRONG> outputs "%" + +- %% outputs `%' +- +- %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM> +- as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:' +- to allow the next character to be a `-' flag, avoid- ++ <STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM> ++ as in <STRONG>printf</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>. Use a ":" ++ to allow the next character to be a "-" flag, avoid- + ing interpreting "%-" as an operator. + + %c print pop() like %c in <STRONG>printf</STRONG> + +- %s print pop() like %s in <STRONG>printf</STRONG> ++ <STRONG>%s</STRONG> print pop() like %s in <STRONG>printf</STRONG> + +- %p[1-9] ++ <STRONG>%p</STRONG><EM>[1-9]</EM> + push <EM>i</EM>'th parameter + +- %P[a-z] +- set dynamic variable [a-z] to pop() ++ <STRONG>%P</STRONG><EM>[a-z]</EM> ++ set dynamic variable <EM>[a-z]</EM> to pop() + +- %g[a-z] +- get dynamic variable [a-z] and push it ++ <STRONG>%g</STRONG><EM>[a-z]/</EM> ++ get dynamic variable <EM>[a-z]</EM> and push it + +- %P[A-Z] +- set static variable [a-z] to pop() ++ <STRONG>%P</STRONG><EM>[A-Z]</EM> ++ set static variable <EM>[a-z]</EM> to <EM>pop()</EM> + +- %g[A-Z] +- get static variable [a-z] and push it +- +- The terms "static" and "dynamic" are misleading. +- Historically, these are simply two different sets of +- variables, whose values are not reset between calls +- to <STRONG>tparm</STRONG>. However, that fact is not documented in +- other implementations. Relying on it will adversely ++ <STRONG>%g</STRONG><EM>[A-Z]</EM> ++ get static variable <EM>[a-z]</EM> and push it ++ ++ The terms "static" and "dynamic" are misleading. ++ Historically, these are simply two different sets of ++ variables, whose values are not reset between calls ++ to <STRONG>tparm</STRONG>. However, that fact is not documented in ++ other implementations. Relying on it will adversely + impact portability to other implementations. + +- %'<EM>c</EM>' char constant <EM>c</EM> ++ <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM> + +- %{<EM>nn</EM>} ++ <STRONG>%{</STRONG><EM>nn</EM><STRONG>}</STRONG> + integer constant <EM>nn</EM> + +- %l push strlen(pop) ++ <STRONG>%l</STRONG> push strlen(pop) + +- %+ %- %* %/ %m +- arithmetic (%m is mod): push(pop() op pop()) ++ <STRONG>%+</STRONG>, <STRONG>%-</STRONG>, <STRONG>%*</STRONG>, <STRONG>%/</STRONG>, <STRONG>%m</STRONG> ++ arithmetic (%m is mod): <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM> + +- %&amp; %| %^ +- bit operations (AND, OR and exclusive-OR): push(pop() +- op pop()) ++ <STRONG>%&amp;</STRONG>, <STRONG>%|</STRONG>, <STRONG>%^</STRONG> ++ bit operations (AND, OR and exclusive-OR): <EM>push(pop()</EM> ++ <EM>op</EM> <EM>pop())</EM> + +- %= %&gt; %&lt; +- logical operations: push(pop() op pop()) ++ <STRONG>%=</STRONG>, <STRONG>%&gt;</STRONG>, <STRONG>%&lt;</STRONG> ++ logical operations: <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM> + +- %A, %O ++ <STRONG>%A</STRONG>, <STRONG>%O</STRONG> + logical AND and OR operations (for conditionals) + +- %! %~ +- unary operations (logical and bit complement): ++ <STRONG>%!</STRONG>, <STRONG>%~</STRONG> ++ unary operations (logical and bit complement): + push(op pop()) + +- %i add 1 to first two parameters (for ANSI terminals) ++ <STRONG>%i</STRONG> add 1 to first two parameters (for ANSI terminals) + +- %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %; +- This forms an if-then-else. The %e <EM>elsepart</EM> is +- optional. Usually the %? <EM>expr</EM> part pushes a value +- onto the stack, and %t pops it from the stack, test- +- ing if it is nonzero (true). If it is zero (false), +- control passes to the %e (else) part. ++ <STRONG>%?</STRONG> <EM>expr</EM> <STRONG>%t</STRONG> <EM>thenpart</EM> <STRONG>%e</STRONG> <EM>elsepart</EM> <STRONG>%;</STRONG> ++ This forms an if-then-else. The <STRONG>%e</STRONG> <EM>elsepart</EM> is ++ optional. Usually the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value ++ onto the stack, and <STRONG>%t</STRONG> pops it from the stack, test- ++ ing if it is nonzero (true). If it is zero (false), ++ control passes to the <STRONG>%e</STRONG> (else) part. + + It is possible to form else-if's a la Algol 68: +- %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %; ++ <STRONG>%?</STRONG> c1 <STRONG>%t</STRONG> b1 <STRONG>%e</STRONG> c2 <STRONG>%t</STRONG> b2 <STRONG>%e</STRONG> c3 <STRONG>%t</STRONG> b3 <STRONG>%e</STRONG> c4 <STRONG>%t</STRONG> b4 <STRONG>%e</STRONG> <STRONG>%;</STRONG> + + where ci are conditions, bi are bodies. + +@@ -1332,7 +1417,7 @@ + + Binary operations are in postfix form with the operands in + the usual order. That is, to get x-5 one would use +- "%gx%{5}%-". %P and %g variables are persistent across ++ "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG> variables are persistent across + escape-string evaluations. + + Consider the HP2645, which, to get to row 3 and column 12, +@@ -1342,241 +1427,238 @@ + its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY". + + The Microterm ACT-IV needs the current row and column sent +- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded +- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c" +- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to ++ preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded ++ in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c" ++ need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to + move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is +- necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG> +- and <STRONG>\r</STRONG>, as the system may change or discard them. (The +- library routines dealing with terminfo set tty modes so ++ necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG> ++ and <STRONG>\r</STRONG>, as the system may change or discard them. (The ++ library routines dealing with terminfo set tty modes so + that tabs are never expanded, so \t is safe to send. This + turns out to be essential for the Ann Arbor 4080.) + + A final example is the LSI ADM-3a, which uses row and col- + umn offset by a blank character, thus "cup=\E=%p1%' +- '%+%c%p2%' '%+%c". After sending `\E=', this pushes the +- first parameter, pushes the ASCII value for a space (32), +- adds them (pushing the sum on the stack in place of the +- two previous values) and outputs that value as a charac- +- ter. Then the same is done for the second parameter. ++ '%+%c%p2%' '%+%c". After sending "\E=", this pushes the ++ first parameter, pushes the ASCII value for a space (32), ++ adds them (pushing the sum on the stack in place of the ++ two previous values) and outputs that value as a charac- ++ ter. Then the same is done for the second parameter. + More complex arithmetic is possible using the stack. + +- + <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG> + If the terminal has a fast way to home the cursor (to very +- upper left corner of screen) then this can be given as +- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left- +- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up +- with <STRONG>cuu1</STRONG> from the home position, but a program should +- never do this itself (unless <STRONG>ll</STRONG> does) because it can make +- no assumption about the effect of moving up from the home +- position. Note that the home position is the same as ++ upper left corner of screen) then this can be given as ++ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left- ++ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up ++ with <STRONG>cuu1</STRONG> from the home position, but a program should ++ never do this itself (unless <STRONG>ll</STRONG> does) because it can make ++ no assumption about the effect of moving up from the home ++ position. Note that the home position is the same as + addressing to (0,0): to the top left corner of the screen, +- not of memory. (Thus, the \EH sequence on HP terminals ++ not of memory. (Thus, the \EH sequence on HP terminals + cannot be used for <STRONG>home</STRONG>.) + + If the terminal has row or column absolute cursor address- +- ing, these can be given as single parameter capabilities ++ ing, these can be given as single parameter capabilities + <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi- + tion absolute). Sometimes these are shorter than the more +- general two parameter sequence (as with the hp2645) and +- can be used in preference to <STRONG>cup</STRONG>. If there are +- parameterized local motions (e.g., move <EM>n</EM> spaces to the +- right) these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a +- single parameter indicating how many spaces to move. +- These are primarily useful if the terminal does not have +- <STRONG>cup</STRONG>, such as the TEKTRONIX 4025. ++ general two parameter sequence (as with the hp2645) and ++ can be used in preference to <STRONG>cup</STRONG>. If there are parameter- ++ ized local motions (e.g., move <EM>n</EM> spaces to the right) ++ these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single ++ parameter indicating how many spaces to move. These are ++ primarily useful if the terminal does not have <STRONG>cup</STRONG>, such ++ as the TEKTRONIX 4025. + + If the terminal needs to be in a special mode when running + a program that uses these capabilities, the codes to enter +- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This +- arises, for example, from terminals like the Concept with +- more than one page of memory. If the terminal has only +- memory relative cursor addressing and not screen relative ++ and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This ++ arises, for example, from terminals like the Concept with ++ more than one page of memory. If the terminal has only ++ memory relative cursor addressing and not screen relative + cursor addressing, a one screen-sized window must be fixed +- into the terminal for cursor addressing to work properly. ++ into the terminal for cursor addressing to work properly. + This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets +- the command character to be the one used by terminfo. If +- the <STRONG>smcup</STRONG> sequence will not restore the screen after an ++ the command character to be the one used by terminfo. If ++ the <STRONG>smcup</STRONG> sequence will not restore the screen after an + <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting + <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>. + +- + <STRONG>Area</STRONG> <STRONG>Clears</STRONG> + If the terminal can clear from the current position to the +- end of the line, leaving the cursor where it is, this ++ end of the line, leaving the cursor where it is, this + should be given as <STRONG>el</STRONG>. If the terminal can clear from the +- beginning of the line to the current position inclusive, +- leaving the cursor where it is, this should be given as +- <STRONG>el1</STRONG>. If the terminal can clear from the current position +- to the end of the display, then this should be given as +- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line. +- (Thus, it can be simulated by a request to delete a large ++ beginning of the line to the current position inclusive, ++ leaving the cursor where it is, this should be given as ++ <STRONG>el1</STRONG>. If the terminal can clear from the current position ++ to the end of the display, then this should be given as ++ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line. ++ (Thus, it can be simulated by a request to delete a large + number of lines, if a true <STRONG>ed</STRONG> is not available.) + +- + <STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG> +- If the terminal can open a new blank line before the line +- where the cursor is, this should be given as <STRONG>il1</STRONG>; this is +- done only from the first position of a line. The cursor ++ If the terminal can open a new blank line before the line ++ where the cursor is, this should be given as <STRONG>il1</STRONG>; this is ++ done only from the first position of a line. The cursor + must then appear on the newly blank line. If the terminal +- can delete the line which the cursor is on, then this +- should be given as <STRONG>dl1</STRONG>; this is done only from the first +- position on the line to be deleted. Versions of <STRONG>il1</STRONG> and +- <STRONG>dl1</STRONG> which take a single parameter and insert or delete ++ can delete the line which the cursor is on, then this ++ should be given as <STRONG>dl1</STRONG>; this is done only from the first ++ position on the line to be deleted. Versions of <STRONG>il1</STRONG> and ++ <STRONG>dl1</STRONG> which take a single parameter and insert or delete + that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>. + +- If the terminal has a settable scrolling region (like the +- vt100) the command to set this can be described with the +- <STRONG>csr</STRONG> capability, which takes two parameters: the top and ++ If the terminal has a settable scrolling region (like the ++ vt100) the command to set this can be described with the ++ <STRONG>csr</STRONG> capability, which takes two parameters: the top and + bottom lines of the scrolling region. The cursor position + is, alas, undefined after using this command. + +- It is possible to get the effect of insert or delete line ++ It is possible to get the effect of insert or delete line + using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save +- and restore cursor) commands may be useful for ensuring +- that your synthesized insert/delete string does not move +- the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this +- synthesis automatically, so you need not compose ++ and restore cursor) commands may be useful for ensuring ++ that your synthesized insert/delete string does not move ++ the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this ++ synthesis automatically, so you need not compose + insert/delete strings for an entry with <STRONG>csr</STRONG>). + + Yet another way to construct insert and delete might be to +- use a combination of index with the memory-lock feature +- found on some terminals (like the HP-700/90 series, which ++ use a combination of index with the memory-lock feature ++ found on some terminals (like the HP-700/90 series, which + however also has insert/delete). + +- Inserting lines at the top or bottom of the screen can +- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a +- true insert/delete line, and is often faster even on ter- ++ Inserting lines at the top or bottom of the screen can ++ also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a ++ true insert/delete line, and is often faster even on ter- + minals with those features. + +- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each +- scrolling window is effectively a view port on a screen- +- sized canvas. To test for this capability, create a +- scrolling region in the middle of the screen, write some- +- thing to the bottom line, move the cursor to the top of ++ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each ++ scrolling window is effectively a view port on a screen- ++ sized canvas. To test for this capability, create a ++ scrolling region in the middle of the screen, write some- ++ thing to the bottom line, move the cursor to the top of + the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data +- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re- +- appears, then scrolling is non-destructive. System V and +- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu- +- late destructive scrolling; their documentation cautions +- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG> ++ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re- ++ appears, then scrolling is non-destructive. System V and ++ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu- ++ late destructive scrolling; their documentation cautions ++ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG> + implementation is more liberal and will do explicit erases + after scrolling if <STRONG>ndstr</STRONG> is defined. + + If the terminal has the ability to define a window as part +- of memory, which all commands affect, it should be given ++ of memory, which all commands affect, it should be given + as the parameterized string <STRONG>wind</STRONG>. The four parameters are +- the starting and ending lines in memory and the starting ++ the starting and ending lines in memory and the starting + and ending columns in memory, in that order. + +- If the terminal can retain display memory above, then the +- <STRONG>da</STRONG> capability should be given; if display memory can be +- retained below, then <STRONG>db</STRONG> should be given. These indicate +- that deleting a line or scrolling may bring non-blank +- lines up from below or that scrolling back with <STRONG>ri</STRONG> may ++ If the terminal can retain display memory above, then the ++ <STRONG>da</STRONG> capability should be given; if display memory can be ++ retained below, then <STRONG>db</STRONG> should be given. These indicate ++ that deleting a line or scrolling may bring non-blank ++ lines up from below or that scrolling back with <STRONG>ri</STRONG> may + bring down non-blank lines. + +- + <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG> +- There are two basic kinds of intelligent terminals with +- respect to insert/delete character which can be described +- using <EM>terminfo.</EM> The most common insert/delete character +- operations affect only the characters on the current line +- and shift characters off the end of the line rigidly. +- Other terminals, such as the Concept 100 and the Perkin +- Elmer Owl, make a distinction between typed and untyped +- blanks on the screen, shifting upon an insert or delete +- only to an untyped blank on the screen which is either +- eliminated, or expanded to two untyped blanks. You can +- determine the kind of terminal you have by clearing the +- screen and then typing text separated by cursor motions. +- Type "abc def" using local cursor motions (not spaces) +- between the "abc" and the "def". Then position the cursor +- before the "abc" and put the terminal in insert mode. If +- typing characters causes the rest of the line to shift +- rigidly and characters to fall off the end, then your ter- +- minal does not distinguish between blanks and untyped +- positions. If the "abc" shifts over to the "def" which +- then move together around the end of the current line and +- onto the next as you insert, you have the second type of +- terminal, and should give the capability <STRONG>in</STRONG>, which stands +- for "insert null". While these are two logically separate +- attributes (one line versus multi-line insert mode, and +- special treatment of untyped spaces) we have seen no ter- +- minals whose insert mode cannot be described with the sin- +- gle attribute. ++ There are two basic kinds of intelligent terminals with ++ respect to insert/delete character which can be described ++ using <EM>terminfo.</EM> The most common insert/delete character ++ operations affect only the characters on the current line ++ and shift characters off the end of the line rigidly. ++ Other terminals, such as the Concept 100 and the Perkin ++ Elmer Owl, make a distinction between typed and untyped ++ blanks on the screen, shifting upon an insert or delete ++ only to an untyped blank on the screen which is either ++ eliminated, or expanded to two untyped blanks. ++ ++ You can determine the kind of terminal you have by clear- ++ ing the screen and then typing text separated by cursor ++ motions. Type "abc def" using local cursor motions ++ (not spaces) between the "abc" and the "def". Then posi- ++ tion the cursor before the "abc" and put the terminal in ++ insert mode. If typing characters causes the rest of the ++ line to shift rigidly and characters to fall off the end, ++ then your terminal does not distinguish between blanks and ++ untyped positions. If the "abc" shifts over to the "def" ++ which then move together around the end of the current ++ line and onto the next as you insert, you have the second ++ type of terminal, and should give the capability <STRONG>in</STRONG>, which ++ stands for "insert null". ++ ++ While these are two logically separate attributes (one ++ line versus multi-line insert mode, and special treatment ++ of untyped spaces) we have seen no terminals whose insert ++ mode cannot be described with the single attribute. + +- Terminfo can describe both terminals which have an insert ++ Terminfo can describe both terminals which have an insert + mode, and terminals which send a simple sequence to open a +- blank position on the current line. Give as <STRONG>smir</STRONG> the +- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the +- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any +- sequence needed to be sent just before sending the +- character to be inserted. Most terminals with a true +- insert mode will not give <STRONG>ich1</STRONG>; terminals which send a +- sequence to open a screen position should give it here. +- +- If your terminal has both, insert mode is usually prefer- +- able to <STRONG>ich1</STRONG>. Technically, you should not give both +- unless the terminal actually requires both to be used in +- combination. Accordingly, some non-curses applications +- get confused if both are present; the symptom is doubled ++ blank position on the current line. Give as <STRONG>smir</STRONG> the ++ sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the ++ sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any ++ sequence needed to be sent just before sending the charac- ++ ter to be inserted. Most terminals with a true insert ++ mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence ++ to open a screen position should give it here. ++ ++ If your terminal has both, insert mode is usually prefer- ++ able to <STRONG>ich1</STRONG>. Technically, you should not give both ++ unless the terminal actually requires both to be used in ++ combination. Accordingly, some non-curses applications ++ get confused if both are present; the symptom is doubled + characters in an update using insert. This requirement is + now rare; most <STRONG>ich</STRONG> sequences do not require previous smir, + and most smir insert modes do not require <STRONG>ich1</STRONG> before each +- character. Therefore, the new <STRONG>curses</STRONG> actually assumes +- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as ++ character. Therefore, the new <STRONG>curses</STRONG> actually assumes ++ this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as + appropriate (but not both). If you have to write an entry +- to be used under new curses for a terminal old enough to ++ to be used under new curses for a terminal old enough to + need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>. + + If post insert padding is needed, give this as a number of +- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence +- which may need to be sent after an insert of a single ++ milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence ++ which may need to be sent after an insert of a single + character may also be given in <STRONG>ip</STRONG>. If your terminal needs +- both to be placed into an `insert mode' and a special code +- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG> +- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG> ++ both to be placed into an "insert mode" and a special code ++ to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG> ++ and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG> + capability, with one parameter, <EM>n</EM>, will repeat the effects + of <STRONG>ich1</STRONG> <EM>n</EM> times. + + If padding is necessary between characters typed while not +- in insert mode, give this as a number of milliseconds +- padding in <STRONG>rmp</STRONG>. ++ in insert mode, give this as a number of milliseconds pad- ++ ding in <STRONG>rmp</STRONG>. + +- It is occasionally necessary to move around while in +- insert mode to delete characters on the same line (e.g., +- if there is a tab after the insertion position). If your +- terminal allows motion while in insert mode you can give +- the capability <STRONG>mir</STRONG> to speed up inserting in this case. +- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals ++ It is occasionally necessary to move around while in ++ insert mode to delete characters on the same line (e.g., ++ if there is a tab after the insertion position). If your ++ terminal allows motion while in insert mode you can give ++ the capability <STRONG>mir</STRONG> to speed up inserting in this case. ++ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals + (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way + their insert mode works. + +- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac- +- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM> +- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit +- delete mode (any mode the terminal needs to be placed in ++ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac- ++ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM> ++ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit ++ delete mode (any mode the terminal needs to be placed in + for <STRONG>dch1</STRONG> to work). + +- A command to erase <EM>n</EM> characters (equivalent to outputting +- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG> ++ A command to erase <EM>n</EM> characters (equivalent to outputting ++ <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG> + with one parameter. + +- + <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG> + If your terminal has one or more kinds of display +- attributes, these can be represented in a number of dif- ++ attributes, these can be represented in a number of dif- + ferent ways. You should choose one display form as <EM>stand-</EM> + <EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the- +- eyes, format for highlighting error messages and other +- attention getters. (If you have a choice, reverse video +- plus half-bright is good, or reverse video alone.) The +- sequences to enter and exit standout mode are given as +- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into +- or out of standout mode leaves one or even two blank +- spaces on the screen, as the TVI 912 and Teleray 1061 do, ++ eyes, format for highlighting error messages and other ++ attention getters. (If you have a choice, reverse video ++ plus half-bright is good, or reverse video alone.) The ++ sequences to enter and exit standout mode are given as ++ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into ++ or out of standout mode leaves one or even two blank spa- ++ ces on the screen, as the TVI 912 and Teleray 1061 do, + then <STRONG>xmc</STRONG> should be given to tell how many spaces are left. + + Codes to begin underlining and end underlining can be +@@ -1605,19 +1687,18 @@ + + For example, the DEC vt220 supports most of the modes: + ++ <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG> + +- <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG> +- +- none none \E[0m +- p1 standout \E[0;1;7m +- p2 underline \E[0;4m +- p3 reverse \E[0;7m +- p4 blink \E[0;5m +- p5 dim not available +- p6 bold \E[0;1m +- p7 invis \E[0;8m +- p8 protect not used +- p9 altcharset ^O (off) ^N (on) ++ none none \E[0m ++ p1 standout \E[0;1;7m ++ p2 underline \E[0;4m ++ p3 reverse \E[0;7m ++ p4 blink \E[0;5m ++ p5 dim not available ++ p6 bold \E[0;1m ++ p7 invis \E[0;8m ++ p8 protect not used ++ p9 altcharset ^O (off) ^N (on) + + We begin each escape sequence by turning off any existing + modes, since there is no quick way to determine whether +@@ -1637,23 +1718,21 @@ + Writing out the above sequences, along with their depen- + dencies yields + ++ <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG> + +- <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG> +- +- \E[0 always \E[0 +- ;1 if p1 or p6 %?%p1%p6%|%t;1%; +- ;4 if p2 %?%p2%|%t;4%; +- ;5 if p4 %?%p4%|%t;5%; +- +- ;7 if p1 or p3 %?%p1%p3%|%t;7%; +- ;8 if p7 %?%p7%|%t;8%; +- m always m +- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%; ++ \E[0 always \E[0 ++ ;1 if p1 or p6 %?%p1%p6%|%t;1%; ++ ;4 if p2 %?%p2%|%t;4%; ++ ;5 if p4 %?%p4%|%t;5%; ++ ;7 if p1 or p3 %?%p1%p3%|%t;7%; ++ ;8 if p7 %?%p7%|%t;8%; ++ m always m ++ ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%; + + Putting this all together into the sgr sequence gives: + +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%; +- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%; ++ %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, + + Remember that if you specify sgr, you must also specify + sgr0. Also, some implementations rely on sgr being given +@@ -1664,8 +1743,8 @@ + assumes that sgr0 does not exit alternate character set + mode. + +- Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit +- special ``cookies'' when they receive mode-setting ++ Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit ++ special "cookies" when they receive mode-setting + sequences, which affect the display algorithm rather than + having extra bits for each character. Some terminals, + such as the HP 2621, automatically leave standout mode +@@ -1695,7 +1774,6 @@ + erasable with a blank, then this should be indicated by + giving <STRONG>eo</STRONG>. + +- + <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG> + If the terminal has a keypad that transmits codes when the + keys are pressed, this information can be given. Note +@@ -1704,27 +1782,57 @@ + unshifted HP 2621 keys). If the keypad can be set to + transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and + <STRONG>rmkx</STRONG>. Otherwise the keypad is assumed to always transmit. +- The codes sent by the left arrow, right arrow, up arrow, +- down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG> +- <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func- +- tion keys such as f0, f1, ..., f10, the codes they send +- can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have +- labels other than the default f0 through f10, the labels +- can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes +- transmitted by certain other special keys can be given: +- <STRONG>kll</STRONG> (home down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs), +- <STRONG>kctab</STRONG> (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear +- screen or erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG> +- (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end +- of line), <STRONG>ked</STRONG> (clear to end of screen), <STRONG>kich1</STRONG> (insert +- character or enter insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG> +- (next page), <STRONG>kpp</STRONG> (previous page), <STRONG>kind</STRONG> (scroll for- +- ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop +- in this column). In addition, if the keypad has a 3 by 3 +- array of keys including the four arrow keys, the other +- five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. +- These keys are useful when the effects of a 3 by 3 direc- +- tional pad are needed. ++ ++ The codes sent by the left arrow, right arrow, up arrow, ++ down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG> ++ <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func- ++ tion keys such as f0, f1, ..., f10, the codes they send ++ can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have ++ labels other than the default f0 through f10, the labels ++ can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. ++ ++ The codes transmitted by certain other special keys can be ++ given: ++ ++ <STRONG>o</STRONG> <STRONG>kll</STRONG> (home down), ++ ++ <STRONG>o</STRONG> <STRONG>kbs</STRONG> (backspace), ++ ++ <STRONG>o</STRONG> <STRONG>ktbc</STRONG> (clear all tabs), ++ ++ <STRONG>o</STRONG> <STRONG>kctab</STRONG> (clear the tab stop in this column), ++ ++ <STRONG>o</STRONG> <STRONG>kclr</STRONG> (clear screen or erase key), ++ ++ <STRONG>o</STRONG> <STRONG>kdch1</STRONG> (delete character), ++ ++ <STRONG>o</STRONG> <STRONG>kdl1</STRONG> (delete line), ++ ++ <STRONG>o</STRONG> <STRONG>krmir</STRONG> (exit insert mode), ++ ++ <STRONG>o</STRONG> <STRONG>kel</STRONG> (clear to end of line), ++ ++ <STRONG>o</STRONG> <STRONG>ked</STRONG> (clear to end of screen), ++ ++ <STRONG>o</STRONG> <STRONG>kich1</STRONG> (insert character or enter insert mode), ++ ++ <STRONG>o</STRONG> <STRONG>kil1</STRONG> (insert line), ++ ++ <STRONG>o</STRONG> <STRONG>knp</STRONG> (next page), ++ ++ <STRONG>o</STRONG> <STRONG>kpp</STRONG> (previous page), ++ ++ <STRONG>o</STRONG> <STRONG>kind</STRONG> (scroll forward/down), ++ ++ <STRONG>o</STRONG> <STRONG>kri</STRONG> (scroll backward/up), ++ ++ <STRONG>o</STRONG> <STRONG>khts</STRONG> (set a tab stop in this column). ++ ++ In addition, if the keypad has a 3 by 3 array of keys ++ including the four arrow keys, the other five keys can be ++ given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are use- ++ ful when the effects of a 3 by 3 directional pad are ++ needed. + + Strings to program function keys can be given as <STRONG>pfkey</STRONG>, + <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should +@@ -1746,12 +1854,11 @@ + or more pln sequences to make sure that the change becomes + visible. + +- + <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG> + If the terminal has hardware tabs, the command to advance + to the next tab stop can be given as <STRONG>ht</STRONG> (usually control +- I). A ``back-tab'' command which moves leftward to the +- preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if ++ I). A "back-tab" command which moves leftward to the pre- ++ ceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if + the teletype modes indicate that tabs are being expanded + by the computer rather than being sent to the terminal, + programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are +@@ -1851,9 +1958,8 @@ + ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the + first character of the <STRONG>pad</STRONG> string is used. + +- + <STRONG>Status</STRONG> <STRONG>Lines</STRONG> +- Some terminals have an extra `status line' which is not ++ Some terminals have an extra "status line" which is not + normally used by software (and thus not counted in the + terminal's <STRONG>lines</STRONG> capability). + +@@ -1883,110 +1989,105 @@ + The boolean capability <STRONG>eslok</STRONG> specifies that escape + sequences, tabs, etc., work ordinarily in the status line. + +- The <STRONG>ncurses</STRONG> implementation does not yet use any of these +- capabilities. They are documented here in case they ever ++ The <STRONG>ncurses</STRONG> implementation does not yet use any of these ++ capabilities. They are documented here in case they ever + become important. + +- + <STRONG>Line</STRONG> <STRONG>Graphics</STRONG> +- Many terminals have alternate character sets useful for +- forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for +- the drawing characters supported by the VT100, with some +- characters from the AT&amp;T 4410v1 added. This alternate ++ Many terminals have alternate character sets useful for ++ forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for ++ the drawing characters supported by the VT100, with some ++ characters from the AT&amp;T 4410v1 added. This alternate + character set may be specified by the <STRONG>acsc</STRONG> capability. + +- +- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG> +- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG> +- UK pound sign ACS_STERLING f } +- arrow pointing down ACS_DARROW v . +- arrow pointing left ACS_LARROW &lt; , +- arrow pointing right ACS_RARROW &gt; + +- arrow pointing up ACS_UARROW ^ - +- board of squares ACS_BOARD # h +- bullet ACS_BULLET o ~ +- checker board (stipple) ACS_CKBOARD : a +- degree symbol ACS_DEGREE \ f +- diamond ACS_DIAMOND + ` +- greater-than-or-equal-to ACS_GEQUAL &gt; z +- greek pi ACS_PI * { +- horizontal line ACS_HLINE - q +- lantern symbol ACS_LANTERN # i +- large plus or crossover ACS_PLUS + n +- less-than-or-equal-to ACS_LEQUAL &lt; y +- +- lower left corner ACS_LLCORNER + m +- lower right corner ACS_LRCORNER + j +- not-equal ACS_NEQUAL ! | +- plus/minus ACS_PLMINUS # g +- scan line 1 ACS_S1 ~ o +- scan line 3 ACS_S3 - p +- scan line 7 ACS_S7 - r +- scan line 9 ACS_S9 _ s +- solid square block ACS_BLOCK # 0 +- tee pointing down ACS_TTEE + w +- tee pointing left ACS_RTEE + u +- tee pointing right ACS_LTEE + t +- tee pointing up ACS_BTEE + v +- upper left corner ACS_ULCORNER + l +- upper right corner ACS_URCORNER + k +- vertical line ACS_VLINE | x +- +- The best way to define a new device's graphics set is to +- add a column to a copy of this table for your terminal, +- giving the character which (when emitted between +- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond- +- ing graphic. Then read off the VT100/your terminal char- +- acter pairs right to left in sequence; these become the ++ <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG> ++ <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG> ++ UK pound sign ACS_STERLING f } ++ arrow pointing down ACS_DARROW v . ++ arrow pointing left ACS_LARROW &lt; , ++ arrow pointing right ACS_RARROW &gt; + ++ arrow pointing up ACS_UARROW ^ - ++ board of squares ACS_BOARD # h ++ bullet ACS_BULLET o ~ ++ checker board (stipple) ACS_CKBOARD : a ++ degree symbol ACS_DEGREE \ f ++ diamond ACS_DIAMOND + ` ++ greater-than-or-equal-to ACS_GEQUAL &gt; z ++ greek pi ACS_PI * { ++ horizontal line ACS_HLINE - q ++ lantern symbol ACS_LANTERN # i ++ large plus or crossover ACS_PLUS + n ++ less-than-or-equal-to ACS_LEQUAL &lt; y ++ lower left corner ACS_LLCORNER + m ++ lower right corner ACS_LRCORNER + j ++ not-equal ACS_NEQUAL ! | ++ plus/minus ACS_PLMINUS # g ++ scan line 1 ACS_S1 ~ o ++ scan line 3 ACS_S3 - p ++ scan line 7 ACS_S7 - r ++ scan line 9 ACS_S9 _ s ++ solid square block ACS_BLOCK # 0 ++ tee pointing down ACS_TTEE + w ++ tee pointing left ACS_RTEE + u ++ tee pointing right ACS_LTEE + t ++ tee pointing up ACS_BTEE + v ++ upper left corner ACS_ULCORNER + l ++ upper right corner ACS_URCORNER + k ++ vertical line ACS_VLINE | x ++ ++ The best way to define a new device's graphics set is to ++ add a column to a copy of this table for your terminal, ++ giving the character which (when emitted between ++ <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond- ++ ing graphic. Then read off the VT100/your terminal char- ++ acter pairs right to left in sequence; these become the + ACSC string. + +- + <STRONG>Color</STRONG> <STRONG>Handling</STRONG> +- Most color terminals are either `Tektronix-like' or `HP- +- like'. Tektronix-like terminals have a predefined set of +- N colors (where N usually 8), and can set character-cell ++ Most color terminals are either "Tektronix-like" or "HP- ++ like". Tektronix-like terminals have a predefined set of ++ N colors (where N usually 8), and can set character-cell + foreground and background characters independently, mixing +- them into N * N color-pairs. On HP-like terminals, the ++ them into N * N color-pairs. On HP-like terminals, the + use must set each color pair up separately (foreground and +- background are not independently settable). Up to M +- color-pairs may be set up from 2*M different colors. ++ background are not independently settable). Up to M ++ color-pairs may be set up from 2*M different colors. + ANSI-compatible terminals are Tektronix-like. + + Some basic color capabilities are independent of the color + method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify +- the maximum numbers of colors and color-pairs that can be +- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string +- resets foreground and background colors to their default +- values for the terminal. The <STRONG>oc</STRONG> string resets all colors +- or color-pairs to their default values for the terminal. +- Some terminals (including many PC terminal emulators) +- erase screen areas with the current background color +- rather than the power-up default background; these should ++ the maximum numbers of colors and color-pairs that can be ++ displayed simultaneously. The <STRONG>op</STRONG> (original pair) string ++ resets foreground and background colors to their default ++ values for the terminal. The <STRONG>oc</STRONG> string resets all colors ++ or color-pairs to their default values for the terminal. ++ Some terminals (including many PC terminal emulators) ++ erase screen areas with the current background color ++ rather than the power-up default background; these should + have the boolean capability <STRONG>bce</STRONG>. + +- To change the current foreground or background color on a +- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground) +- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground) +- and <STRONG>setb</STRONG> (set background). These take one parameter, the ++ To change the current foreground or background color on a ++ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground) ++ and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground) ++ and <STRONG>setb</STRONG> (set background). These take one parameter, the + color number. The SVr4 documentation describes only +- <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal ++ <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal + supports ANSI escape sequences to set background and fore- +- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec- +- tively. If the terminal supports other escape sequences +- to set background and foreground, they should be coded as +- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and +- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are ++ ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec- ++ tively. If the terminal supports other escape sequences ++ to set background and foreground, they should be coded as ++ <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and ++ the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are + defined." + +- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single ++ The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single + numeric argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> +- are portably defined as follows (the middle column is the ++ are portably defined as follows (the middle column is the + symbolic #define available in the header for the <STRONG>curses</STRONG> or +- <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map +- these as it likes, but the RGB values indicate normal ++ <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map ++ these as it likes, but the RGB values indicate normal + locations in color space. + +- + <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG> + black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0 + red <STRONG>COLOR_RED</STRONG> 1 max,0,0 +@@ -1997,7 +2098,7 @@ + cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max + white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max + +- The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond ++ The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond + to a different mapping, i.e., + + <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG> +@@ -2009,132 +2110,137 @@ + magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max + yellow <STRONG>COLOR_YELLOW</STRONG> 6 max,max,0 + white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max ++ + It is important to not confuse the two sets of color capa- +- bilities; otherwise red/blue will be interchanged on the ++ bilities; otherwise red/blue will be interchanged on the + display. + +- On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number ++ On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number + parameter to set which color pair is current. + +- On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be +- present to indicate that colors can be modified. If so, ++ On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be ++ present to indicate that colors can be modified. If so, + the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG> +- - 1)and three more parameters which describe the color. ++ - 1)and three more parameters which describe the color. + These three parameters default to being interpreted as RGB +- (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG> ++ (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG> + is present, they are instead as HLS (Hue, Lightness, Satu- + ration) indices. The ranges are terminal-dependent. + +- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for +- changing a color-pair value. It will take seven parame- +- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two +- triples describing first background and then foreground +- colors. These parameters must be (Red, Green, Blue) or ++ On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for ++ changing a color-pair value. It will take seven parame- ++ ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two ++ triples describing first background and then foreground ++ colors. These parameters must be (Red, Green, Blue) or + (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>. + +- On some color terminals, colors collide with highlights. ++ On some color terminals, colors collide with highlights. + You can register these collisions with the <STRONG>ncv</STRONG> capability. +- This is a bit-mask of attributes not to be used when col- +- ors are enabled. The correspondence with the attributes ++ This is a bit-mask of attributes not to be used when col- ++ ors are enabled. The correspondence with the attributes + understood by <STRONG>curses</STRONG> is as follows: + +- +- <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG> +- A_STANDOUT 0 1 +- A_UNDERLINE 1 2 +- A_REVERSE 2 4 +- A_BLINK 3 8 +- A_DIM 4 16 +- A_BOLD 5 32 +- A_INVIS 6 64 +- A_PROTECT 7 128 +- A_ALTCHARSET 8 256 +- +- For example, on many IBM PC consoles, the underline +- attribute collides with the foreground color blue and is +- not available in color mode. These should have an <STRONG>ncv</STRONG> ++ <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG> <STRONG>Set</STRONG> <STRONG>by</STRONG> ++ A_STANDOUT 0 1 sgr ++ A_UNDERLINE 1 2 sgr ++ A_REVERSE 2 4 sgr ++ A_BLINK 3 8 sgr ++ A_DIM 4 16 sgr ++ A_BOLD 5 32 sgr ++ A_INVIS 6 64 sgr ++ A_PROTECT 7 128 sgr ++ A_ALTCHARSET 8 256 sgr ++ A_HORIZONTAL 9 512 sgr1 ++ A_LEFT 10 1024 sgr1 ++ A_LOW 11 2048 sgr1 ++ A_RIGHT 12 4096 sgr1 ++ A_TOP 13 8192 sgr1 ++ A_VERTICAL 14 16384 sgr1 ++ A_ITALIC 15 32768 sitm ++ ++ For example, on many IBM PC consoles, the underline ++ attribute collides with the foreground color blue and is ++ not available in color mode. These should have an <STRONG>ncv</STRONG> + capability of 2. + +- SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it ++ SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it + and optimizes the output in favor of colors. + +- + <STRONG>Miscellaneous</STRONG> +- If the terminal requires other than a null (zero) charac- +- ter as a pad, then this can be given as pad. Only the +- first character of the pad string is used. If the termi- ++ If the terminal requires other than a null (zero) charac- ++ ter as a pad, then this can be given as pad. Only the ++ first character of the pad string is used. If the termi- + nal does not have a pad character, specify npc. Note that +- ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable; +- though the application may set this value to something +- other than a null, ncurses will test <STRONG>npc</STRONG> first and use ++ ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable; ++ though the application may set this value to something ++ other than a null, ncurses will test <STRONG>npc</STRONG> first and use + napms if the terminal has no pad character. + +- If the terminal can move up or down half a line, this can +- be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line ++ If the terminal can move up or down half a line, this can ++ be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line + down). This is primarily useful for superscripts and sub- +- scripts on hard-copy terminals. If a hard-copy terminal +- can eject to the next page (form feed), give this as <STRONG>ff</STRONG> ++ scripts on hard-copy terminals. If a hard-copy terminal ++ can eject to the next page (form feed), give this as <STRONG>ff</STRONG> + (usually control L). + +- If there is a command to repeat a given character a given +- number of times (to save time transmitting a large number +- of identical characters) this can be indicated with the +- parameterized string <STRONG>rep</STRONG>. The first parameter is the +- character to be repeated and the second is the number of +- times to repeat it. Thus, tparm(repeat_char, 'x', 10) is +- the same as `xxxxxxxxxx'. ++ If there is a command to repeat a given character a given ++ number of times (to save time transmitting a large number ++ of identical characters) this can be indicated with the ++ parameterized string <STRONG>rep</STRONG>. The first parameter is the ++ character to be repeated and the second is the number of ++ times to repeat it. Thus, tparm(repeat_char, 'x', 10) is ++ the same as "xxxxxxxxxx". + +- If the terminal has a settable command character, such as +- the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A ++ If the terminal has a settable command character, such as ++ the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A + prototype command character is chosen which is used in all +- capabilities. This character is given in the <STRONG>cmdch</STRONG> capa- +- bility to identify it. The following convention is sup- +- ported on some UNIX systems: The environment is to be +- searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences ++ capabilities. This character is given in the <STRONG>cmdch</STRONG> capa- ++ bility to identify it. The following convention is sup- ++ ported on some UNIX systems: The environment is to be ++ searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences + of the prototype character are replaced with the character + in the environment variable. + +- Terminal descriptions that do not represent a specific ++ Terminal descriptions that do not represent a specific + kind of known terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and +- <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so +- that programs can complain that they do not know how to +- talk to the terminal. (This capability does not apply to +- <EM>virtual</EM> terminal descriptions for which the escape ++ <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so ++ that programs can complain that they do not know how to ++ talk to the terminal. (This capability does not apply to ++ <EM>virtual</EM> terminal descriptions for which the escape + sequences are known.) + +- If the terminal has a ``meta key'' which acts as a shift +- key, setting the 8th bit of any character transmitted, +- this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software ++ If the terminal has a "meta key" which acts as a shift ++ key, setting the 8th bit of any character transmitted, ++ this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software + will assume that the 8th bit is parity and it will usually +- be cleared. If strings exist to turn this ``meta mode'' +- on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>. ++ be cleared. If strings exist to turn this "meta mode" on ++ and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>. + +- If the terminal has more lines of memory than will fit on +- the screen at once, the number of lines of memory can be +- indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the ++ If the terminal has more lines of memory than will fit on ++ the screen at once, the number of lines of memory can be ++ indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the + number of lines is not fixed, but that there is still more + memory than fits on the screen. + + If the terminal is one of those supported by the UNIX vir- +- tual terminal protocol, the terminal number can be given ++ tual terminal protocol, the terminal number can be given + as <STRONG>vt</STRONG>. + + Media copy strings which control an auxiliary printer con- + nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con- +- tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>: +- turn on the printer. When the printer is on, all text +- sent to the terminal will be sent to the printer. It is ++ tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>: ++ turn on the printer. When the printer is on, all text ++ sent to the terminal will be sent to the printer. It is + undefined whether the text is also displayed on the termi- + nal screen when the printer is on. A variation <STRONG>mc5p</STRONG> takes + one parameter, and leaves the printer on for as many char- +- acters as the value of the parameter, then turns the +- printer off. The parameter should not exceed 255. All ++ acters as the value of the parameter, then turns the ++ printer off. The parameter should not exceed 255. All + text, including <STRONG>mc4</STRONG>, is transparently passed to the + printer while an <STRONG>mc5p</STRONG> is in effect. + +- + <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG> +- Hazeltine terminals, which do not allow `~' characters to ++ Hazeltine terminals, which do not allow "~" characters to + be displayed should indicate <STRONG>hz</STRONG>. + + Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG> +@@ -2147,10 +2253,10 @@ + Teleray terminals, where tabs turn all characters moved + over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs). + Note: the variable indicating this is now +- `dest_tabs_magic_smso'; in older versions, it was tel- ++ "dest_tabs_magic_smso"; in older versions, it was tel- + eray_glitch. This glitch is also taken to mean that it is +- not possible to position the cursor on top of a ``magic +- cookie'', that to erase standout mode it is instead neces- ++ not possible to position the cursor on top of a "magic ++ cookie", that to erase standout mode it is instead neces- + sary to use delete and insert line. The ncurses implemen- + tation ignores this glitch. + +@@ -2159,13 +2265,12 @@ + ing that the f1 key is used for escape and f2 for control + C. (Only certain Superbees have this problem, depending + on the ROM.) Note that in older terminfo versions, this +- capability was called `beehive_glitch'; it is now +- `no_esc_ctl_c'. ++ capability was called "beehive_glitch"; it is now ++ "no_esc_ctl_c". + + Other specific terminal problems may be corrected by + adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>. + +- + <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG> + If there are two very similar terminals, one (the variant) + can be defined as being just like the other (the base) +@@ -2183,14 +2288,13 @@ + the use reference that imports it, where <EM>xx</EM> is the capa- + bility. For example, the entry + +- 2621-nl, smkx@, rmkx@, use=2621, ++ 2621-nl, smkx@, rmkx@, use=2621, + + defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG> + capabilities, and hence does not turn on the function key + labels when in visual mode. This is useful for different + modes for a terminal, or for different user preferences. + +- + <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG> + Long terminfo entries are unlikely to be a problem; to + date, no entry has even approached terminfo's 4096-byte +@@ -2229,21 +2333,21 @@ + libraries strip off the final newline, too (GNU termcap + does not). Now suppose: + +- * a termcap entry before expansion is more than 1023 +- bytes long, ++ <STRONG>o</STRONG> a termcap entry before expansion is more than 1023 ++ bytes long, + +- * and the application has only allocated a 1k buffer, ++ <STRONG>o</STRONG> and the application has only allocated a 1k buffer, + +- * and the termcap library (like the one in BSD/OS 1.1 +- and GNU) reads the whole entry into the buffer, no +- matter what its length, to see if it is the entry it +- wants, +- +- * and <STRONG>tgetent()</STRONG> is searching for a terminal type that +- either is the long entry, appears in the termcap file +- after the long entry, or does not appear in the file +- at all (so that <STRONG>tgetent()</STRONG> has to search the whole +- termcap file). ++ <STRONG>o</STRONG> and the termcap library (like the one in BSD/OS 1.1 ++ and GNU) reads the whole entry into the buffer, no ++ matter what its length, to see if it is the entry it ++ wants, ++ ++ <STRONG>o</STRONG> and <STRONG>tgetent()</STRONG> is searching for a terminal type that ++ either is the long entry, appears in the termcap file ++ after the long entry, or does not appear in the file ++ at all (so that <STRONG>tgetent()</STRONG> has to search the whole ++ termcap file). + + Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack, + and probably core dump the program. Programs like telnet +@@ -2288,61 +2392,72 @@ + + </PRE> + <H2>EXTENSIONS</H2><PRE> +- Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to +- SVr4, do not interpret the %A and %O operators in parame- ++ Searching for terminal descriptions in <STRONG>$HOME/.terminfo</STRONG> and ++ TERMINFO_DIRS is not supported by older implementations. ++ ++ Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to ++ SVr4, do not interpret the %A and %O operators in parame- + ter strings. + +- SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement +- while in an alternate-character-set mode (such modes may, +- among other things, map CR and NL to characters that do +- not trigger local motions). The <STRONG>ncurses</STRONG> implementation +- ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi- +- bility that an XPG4 implementation making the opposite +- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG> ++ SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement ++ while in an alternate-character-set mode (such modes may, ++ among other things, map CR and NL to characters that do ++ not trigger local motions). The <STRONG>ncurses</STRONG> implementation ++ ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi- ++ bility that an XPG4 implementation making the opposite ++ interpretation may need terminfo entries made for <STRONG>ncurses</STRONG> + to have <STRONG>msgr</STRONG> turned off. + +- The <STRONG>ncurses</STRONG> library handles insert-character and insert- ++ The <STRONG>ncurses</STRONG> library handles insert-character and insert- + character modes in a slightly non-standard way to get bet- +- ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG> ++ ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG> + subsection above. + +- The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG> +- <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses ++ The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG> ++ <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses + standard. They are deduced from the documentation for the + AT&amp;T 505 terminal. + +- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG> +- wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals +- and emulators like xterm that can return mouse-tracking ++ Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG> ++ wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals ++ and emulators like xterm that can return mouse-tracking + information in the keyboard-input stream. + +- Different commercial ports of terminfo and curses support +- different subsets of the XSI Curses standard and (in some ++ X/Open Curses does not mention italics. Portable applica- ++ tions must assume that numeric capabilities are signed ++ 16-bit values. This includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (ncv) ++ capability. The 32768 mask value used for italics with ++ ncv can be confused with an absent or cancelled ncv. If ++ italics should work with colors, then the ncv value must ++ be specified, even if it is zero. ++ ++ Different commercial ports of terminfo and curses support ++ different subsets of the XSI Curses standard and (in some + cases) different extension sets. Here is a summary, accu- + rate as of October 1995: + + <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili- + ties. + +- <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented ++ <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented + extended string capability (<STRONG>set_pglen</STRONG>). + +- <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter- +- minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the +- numerics with <STRONG>width_status_line</STRONG>; and the strings with ++ <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter- ++ minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the ++ numerics with <STRONG>width_status_line</STRONG>; and the strings with + <STRONG>prtr_non</STRONG>. + +- <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234] ++ <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234] + numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func- +- tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and ++ tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and + <STRONG>label_off</STRONG>, plus some incompatible extensions in the string + table. + +- <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11 +- through 63, plus a number of incompatible string table ++ <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11 ++ through 63, plus a number of incompatible string table + extensions. + +- <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions. ++ <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions. + + + </PRE> +@@ -2353,7 +2468,7 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>. ++ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>. + <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>. + + +diff -Naur ncurses-5.9/doc/html/man/term_variables.3x.html ncurses-5.9.patch/doc/html/man/term_variables.3x.html +--- ncurses-5.9/doc/html/man/term_variables.3x.html 2011-01-09 02:03:29.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/term_variables.3x.html 2014-09-01 16:33:22.334792086 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2011,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: term_variables.3x,v 1.2 2010/12/04 18:38:55 tom Exp @ ++ * @Id: term_variables.3x,v 1.3 2011/12/17 23:31:50 tom Exp @ + --> + <HTML> + <HEAD> +@@ -99,8 +99,8 @@ + <STRONG>Current</STRONG> <STRONG>Terminal</STRONG> <STRONG>Data</STRONG> + After initializing the curses or terminfo interfaces, the + <STRONG>cur_term</STRONG> contains data describing the current terminal. +- This variable is also set as a side-effect of <STRONG><A HREF="set_term.3x.html">set_term(3x)</A></STRONG> +- and <STRONG><A HREF="delscreen.3x.html">delscreen(3x)</A></STRONG>. ++ This variable is also set as a side-effect of <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> ++ and <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>. + + It is possible to save a value of <STRONG>cur_term</STRONG> for subsequent + use as a parameter to <STRONG>set_term</STRONG>, for switching between +@@ -108,7 +108,7 @@ + from <STRONG>newterm</STRONG> or <STRONG>setupterm</STRONG> to reuse in <STRONG>set_term</STRONG>. + + <STRONG>Terminfo</STRONG> <STRONG>Names</STRONG> +- The <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> and <STRONG><A HREF="infocmp.1.html">infocmp(1)</A></STRONG> programs use lookup tables for ++ The <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> and <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> programs use lookup tables for + the long and short names of terminfo capabilities, as well + as the corresponding names for termcap capabilities. + These are available to other applications, though the +@@ -130,8 +130,8 @@ + + </PRE> + <H2>NOTES</H2><PRE> +- The low-level terminfo interface is initialized using <STRONG>se-</STRONG> +- <STRONG><A HREF="setupterm.3x.html">tupterm(3x)</A></STRONG>. The upper-level curses interface uses the ++ The low-level terminfo interface is initialized using ++ <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>. The upper-level curses interface uses the + low-level terminfo interface, internally. + + +@@ -149,8 +149,8 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG>termin-</STRONG> +- <STRONG><A HREF="terminfo.3x.html">fo(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, ++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + + + +diff -Naur ncurses-5.9/doc/html/man/tic.1m.html ncurses-5.9.patch/doc/html/man/tic.1m.html +--- ncurses-5.9/doc/html/man/tic.1m.html 2011-04-05 00:46:51.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/tic.1m.html 2014-09-01 16:33:22.335792088 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: tic.1m,v 1.47 2010/12/04 18:38:55 tom Exp @ ++ * @Id: tic.1m,v 1.58 2013/07/20 19:31:25 tom Exp @ + --> + <HTML> + <HEAD> +@@ -52,84 +52,141 @@ + + </PRE> + <H2>SYNOPSIS</H2><PRE> +- <STRONG>tic</STRONG> [<STRONG>-1CGILNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>subset</EM>] +- [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM> ++ <STRONG>tic</STRONG> [<STRONG>-01CDGIKLNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>sub-</EM> ++ <EM>set</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM> + + + </PRE> + <H2>DESCRIPTION</H2><PRE> +- The command <STRONG>tic</STRONG> translates a <STRONG>terminfo</STRONG> file from source ++ The <STRONG>tic</STRONG> command translates a <STRONG>terminfo</STRONG> file from source + format into compiled format. The compiled format is nec- + essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>. + +- The results are normally placed in the system terminfo +- directory <STRONG>/usr/share/terminfo</STRONG>. There are two ways to +- change this behavior. ++ As described in <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, the database may be either a ++ directory tree (one file per terminal entry) or a hashed ++ database (one record per entry). The <STRONG>tic</STRONG> command writes ++ only one type of entry, depending on how it was built: ++ ++ <STRONG>o</STRONG> For directory trees, the top-level directory, e.g., ++ /usr/share/terminfo, specifies the location of the ++ database. ++ ++ <STRONG>o</STRONG> For hashed databases, a filename is needed. If the ++ given file is not found by that name, but can be found ++ by adding the suffix ".db", then that is used. ++ ++ The default name for the hashed database is the same ++ as the default directory name (only adding a ".db" ++ suffix). ++ ++ In either case (directory or hashed database), <STRONG>tic</STRONG> will ++ create the container if it does not exist. For a direc- ++ tory, this would be the "terminfo" leaf, versus a "ter- ++ minfo.db" file. + +- First, you may override the system default by setting the +- variable <STRONG>TERMINFO</STRONG> in your shell environment to a valid +- (existing) directory name. +- +- Secondly, if <STRONG>tic</STRONG> cannot get access to <EM>/usr/share/terminfo</EM> +- or your TERMINFO directory, it looks for the directory +- <EM>$HOME/.terminfo</EM>; if that directory exists, the entry is +- placed there. ++ The results are normally placed in the system terminfo ++ database <STRONG>/usr/share/terminfo</STRONG>. The compiled terminal ++ description can be placed in a different terminfo data- ++ base. There are two ways to achieve this: ++ ++ <STRONG>o</STRONG> First, you may override the system default either by ++ using the <STRONG>-o</STRONG> option, or by setting the variable <STRONG>TER-</STRONG> ++ <STRONG>MINFO</STRONG> in your shell environment to a valid database ++ location. ++ ++ <STRONG>o</STRONG> Secondly, if <STRONG>tic</STRONG> cannot write in <EM>/usr/share/terminfo</EM> ++ or the location specified using your TERMINFO vari- ++ able, it looks for the directory <EM>$HOME/.terminfo</EM> (or ++ hashed database <EM>$HOME/.terminfo.db)</EM>; if that location ++ exists, the entry is placed there. + + Libraries that read terminfo entries are expected to check +- for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if +- TERMINFO is not set, and finally look in <EM>/usr/share/ter-</EM> +- <EM>minfo</EM>. ++ in succession ++ ++ <STRONG>o</STRONG> a location specified with the TERMINFO environment ++ variable, ++ ++ <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>, ++ ++ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environment ++ variable, ++ ++ <STRONG>o</STRONG> a compiled-in list of directories ++ (/usr/local/ncurses/share/terminfo:/usr/share/ter- ++ minfo), and ++ ++ <STRONG>o</STRONG> the system terminfo database (<EM>/usr/share/terminfo</EM>). ++ ++ <STRONG>OPTIONS</STRONG> ++ <STRONG>-0</STRONG> restricts the output to a single line + + <STRONG>-1</STRONG> restricts the output to a single column + + <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities + rather than discarding them. Capabilities are com- +- mented by prefixing them with a period. This sets +- the <STRONG>-x</STRONG> option, because it treats the commented-out +- entries as user-defined names. If the source is +- termcap, accept the 2-character names required by ++ mented by prefixing them with a period. This sets ++ the <STRONG>-x</STRONG> option, because it treats the commented-out ++ entries as user-defined names. If the source is ++ termcap, accept the 2-character names required by + version 6. Otherwise these are ignored. + +- <STRONG>-C</STRONG> Force source translation to termcap format. Note: +- this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in ++ <STRONG>-C</STRONG> Force source translation to termcap format. Note: ++ this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in + that it does not merely translate capability names, +- but also translates terminfo strings to termcap ++ but also translates terminfo strings to termcap + format. Capabilities that are not translatable are +- left in the entry under their terminfo names but +- commented out with two preceding dots. ++ left in the entry under their terminfo names but ++ commented out with two preceding dots. The actual ++ format used incorporates some improvements for ++ escaped characters from terminfo format. For a ++ stricter BSD-compatible translation, add the <STRONG>-K</STRONG> ++ option. + +- <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including +- syntax problems and bad use links. If you specify ++ <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including ++ syntax problems and bad use links. If you specify + <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this option, the code will print warn- + ings about entries which, after use resolution, are +- more than 1023 (4096) bytes long. Due to a fixed +- buffer length in older termcap libraries (and a +- documented limit in terminfo), these entries may +- cause core dumps. ++ more than 1023 (4096) bytes long. Due to a fixed ++ buffer length in older termcap libraries, as well ++ as buggy checking for the buffer length (and a doc- ++ umented limit in terminfo), these entries may cause ++ core dumps with other implementations. ++ ++ <STRONG>-D</STRONG> tells <STRONG>tic</STRONG> to print the database locations that it ++ knows about, and exit. The first location shown is ++ the one to which it would write compiled terminal ++ descriptions. If <STRONG>tic</STRONG> is not able to find a ++ writable database location according to the rules ++ summarized above, it will print a diagnostic and ++ exit with an error rather than printing a list of ++ database locations. + + <STRONG>-e</STRONG> <EM>names</EM> +- Limit writes and translations to the following +- comma-separated list of terminals. If any name or ++ Limit writes and translations to the following ++ comma-separated list of terminals. If any name or + alias of a terminal matches one of the names in the +- list, the entry will be written or translated as +- normal. Otherwise no output will be generated for ++ list, the entry will be written or translated as ++ normal. Otherwise no output will be generated for + it. The option value is interpreted as a file con- +- taining the list if it contains a '/'. (Note: +- depending on how tic was compiled, this option may ++ taining the list if it contains a '/'. (Note: ++ depending on how tic was compiled, this option may + require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.) + + <STRONG>-f</STRONG> Display complex terminfo strings which contain +- if/then/else/endif expressions indented for read- ++ if/then/else/endif expressions indented for read- + ability. + +- <STRONG>-G</STRONG> Display constant literals in decimal form rather ++ <STRONG>-G</STRONG> Display constant literals in decimal form rather + than their character equivalents. + +- <STRONG>-g</STRONG> Display constant character literals in quoted form ++ <STRONG>-g</STRONG> Display constant character literals in quoted form + rather than their decimal equivalents. + + <STRONG>-I</STRONG> Force source translation to terminfo format. + ++ <STRONG>-K</STRONG> Suppress some longstanding ncurses extensions to ++ termcap format, e.g., "\s" for space. ++ + <STRONG>-L</STRONG> Force source translation to terminfo format using + the long C variable names listed in &lt;<STRONG>term.h</STRONG>&gt; + +@@ -145,8 +202,8 @@ + This option forces a more literal translation that + also preserves the obsolete capabilities. + +- <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given directory. Over- +- rides the TERMINFO environment variable. ++ <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location. ++ Overrides the TERMINFO environment variable. + + <STRONG>-R</STRONG><EM>subset</EM> + Restrict output to a given subset. This option is +@@ -160,15 +217,15 @@ + + <STRONG>-r</STRONG> Force entry resolution (so there are no remaining + tc capabilities) even when doing translation to +- termcap format. This may be needed if you are +- preparing a termcap file for a termcap library +- (such as GNU termcap through version 1.3 or BSD +- termcap through 4.3BSD) that does not handle multi- +- ple tc capabilities per entry. +- +- <STRONG>-s</STRONG> Summarize the compile by showing the directory into +- which entries are written, and the number of +- entries which are compiled. ++ termcap format. This may be needed if you are pre- ++ paring a termcap file for a termcap library (such ++ as GNU termcap through version 1.3 or BSD termcap ++ through 4.3BSD) that does not handle multiple tc ++ capabilities per entry. ++ ++ <STRONG>-s</STRONG> Summarize the compile by showing the database loca- ++ tion into which entries are written, and the number ++ of entries which are compiled. + + <STRONG>-T</STRONG> eliminates size-restrictions on the generated text. + This is mainly useful for testing and analysis, +@@ -195,41 +252,48 @@ + 1. If <EM>n</EM> is specified and greater than 1, the level + of detail is increased. + +- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is +- optional. If it is omitted, it defaults to 60. ++ The debug flag levels are as follows: + +- <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is, +- if you supply a capability name which <STRONG>tic</STRONG> does not +- recognize, it will infer its type (boolean, number or +- string) from the syntax and make an extended table +- entry for that. User-defined capability strings +- whose name begins with ``k'' are treated as function +- keys. ++ 1 Names of files created and linked + +- <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions +- in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each description +- in the file describes the capabilities of a particu- +- lar terminal. ++ 2 Information related to the "use" facility + +- The debug flag levels are as follows: ++ 3 Statistics from the hashing algorithm + +- 1 Names of files created and linked ++ 5 String-table memory allocations + +- 2 Information related to the ``use'' facility ++ 7 Entries into the string-table + +- 3 Statistics from the hashing algorithm ++ 8 List of tokens encountered by scanner + +- 5 String-table memory allocations ++ 9 All values computed in construction of the ++ hash table + +- 7 Entries into the string-table ++ If the debug level <EM>n</EM> is not given, it is taken to be ++ one. + +- 8 List of tokens encountered by scanner ++ <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is ++ optional. If it is omitted, it defaults to 60. + +- 9 All values computed in construction of the hash ta- +- ble ++ <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is, ++ if you supply a capability name which <STRONG>tic</STRONG> does not ++ recognize, it will infer its type (boolean, number or ++ string) from the syntax and make an extended table ++ entry for that. User-defined capability strings ++ whose name begins with "k" are treated as function ++ keys. + +- If the debug level <EM>n</EM> is not given, it is taken to be one. ++ <STRONG>PARAMETERS</STRONG> ++ <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions ++ in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each descrip- ++ tion in the file describes the capabilities of a ++ particular terminal. ++ ++ If <EM>file</EM> is "-", then the data is read from the ++ standard input. The <EM>file</EM> parameter may also be the ++ path of a character-device. + ++ <STRONG>PROCESSING</STRONG> + All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc- + umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capabil- + ity. +@@ -237,10 +301,8 @@ + When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal + entry currently being compiled, <STRONG>tic</STRONG> reads in the binary + from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries +- created from <EM>file</EM> will be used first. If the environment +- variable <STRONG>TERMINFO</STRONG> is set, that directory is searched +- instead of <STRONG>/usr/share/terminfo</STRONG>.) <STRONG>tic</STRONG> duplicates the capa- +- bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the ++ created from <EM>file</EM> will be used first. <STRONG>tic</STRONG> duplicates the ++ capabilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the + exception of those capabilities that explicitly are + defined in the current entry. + +@@ -249,52 +311,49 @@ + <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG> + for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>. + +- If the environment variable <STRONG>TERMINFO</STRONG> is set, the compiled +- results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>. +- + Total compiled entries cannot exceed 4096 bytes. The name +- field cannot exceed 512 bytes. Terminal names exceeding +- the maximum alias length (32 characters on systems with ++ field cannot exceed 512 bytes. Terminal names exceeding ++ the maximum alias length (32 characters on systems with + long filenames, 14 characters otherwise) will be truncated +- to the maximum alias length and a warning message will be ++ to the maximum alias length and a warning message will be + printed. + + + </PRE> + <H2>COMPATIBILITY</H2><PRE> +- There is some evidence that historic <STRONG>tic</STRONG> implementations +- treated description fields with no whitespace in them as +- additional aliases or short names. This <STRONG>tic</STRONG> does not do +- that, but it does warn when description fields may be +- treated that way and check them for dangerous characters. ++ There is some evidence that historic <STRONG>tic</STRONG> implementations ++ treated description fields with no whitespace in them as ++ additional aliases or short names. This <STRONG>tic</STRONG> does not do ++ that, but it does warn when description fields may be ++ treated that way and check them for dangerous characters. + + + </PRE> + <H2>EXTENSIONS</H2><PRE> +- Unlike the stock SVr4 <STRONG>tic</STRONG> command, this implementation can +- actually compile termcap sources. In fact, entries in +- terminfo and termcap syntax can be mixed in a single +- source file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap +- names taken to be equivalent to terminfo names. ++ Unlike the SVr4 <STRONG>tic</STRONG> command, this implementation can actu- ++ ally compile termcap sources. In fact, entries in ter- ++ minfo and termcap syntax can be mixed in a single source ++ file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap names taken ++ to be equivalent to terminfo names. + + The SVr4 manual pages are not clear on the resolution + rules for <STRONG>use</STRONG> capabilities. This implementation of <STRONG>tic</STRONG> + will find <STRONG>use</STRONG> targets anywhere in the source file, or any- + where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> is +- defined), or in the user's <EM>$HOME/.terminfo</EM> directory (if +- it exists), or (finally) anywhere in the system's file +- tree of compiled entries. ++ defined), or in the user's <EM>$HOME/.terminfo</EM> database (if it ++ exists), or (finally) anywhere in the system's file tree ++ of compiled entries. + + The error messages from this <STRONG>tic</STRONG> have the same format as + GNU C error messages, and can be parsed by GNU Emacs's + compile facility. + +- The <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-o</STRONG>, <STRONG>-r</STRONG>, +- <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under SVr4. The +- SVr4 <STRONG>-c</STRONG> mode does not report bad use links. ++ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, ++ <STRONG>-o</STRONG>, <STRONG>-r</STRONG>, <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under ++ SVr4. The SVr4 <STRONG>-c</STRONG> mode does not report bad use links. + + System V does not compile entries to or read entries from +- your <EM>$HOME/.terminfo</EM> directory unless TERMINFO is explic- ++ your <EM>$HOME/.terminfo</EM> database unless TERMINFO is explic- + itly set to it. + + +@@ -307,9 +366,9 @@ + </PRE> + <H2>SEE ALSO</H2><PRE> + <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + </PRE> +diff -Naur ncurses-5.9/doc/html/man/toe.1m.html ncurses-5.9.patch/doc/html/man/toe.1m.html +--- ncurses-5.9/doc/html/man/toe.1m.html 2011-04-05 00:46:51.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/toe.1m.html 2014-09-01 16:33:22.335792088 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -27,7 +27,7 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: toe.1m,v 1.23 2010/12/04 18:40:45 tom Exp @ ++ * @Id: toe.1m,v 1.26 2012/01/01 00:40:51 tom Exp @ + --> + <HTML> + <HEAD> +@@ -52,7 +52,7 @@ + + </PRE> + <H2>SYNOPSIS</H2><PRE> +- <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahuUV</STRONG>] <EM>file...</EM> ++ <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahsuUV</STRONG>] <EM>file...</EM> + + + </PRE> +@@ -71,6 +71,14 @@ + ncurses would search, rather than only the first + one that it finds. + ++ If the <STRONG>-s</STRONG> is also given, <STRONG>toe</STRONG> adds a column to the ++ report, showing (like <STRONG>conflict(1)</STRONG>) which entries ++ which belong to a given terminal database. An "*" ++ marks entries which differ, and "+" marks equiva- ++ lent entries. ++ ++ <STRONG>-s</STRONG> sort the output by the entry names. ++ + <STRONG>-u</STRONG> <EM>file</EM> + says to write a report to the standard output, + listing dependencies in the given terminfo/termcap +@@ -111,7 +119,7 @@ + <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/tput.1.html ncurses-5.9.patch/doc/html/man/tput.1.html +--- ncurses-5.9/doc/html/man/tput.1.html 2011-04-05 00:46:51.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/tput.1.html 2014-09-01 16:33:22.336792090 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + * t + **************************************************************************** +- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: tput.1,v 1.29 2010/12/04 18:41:07 tom Exp @ ++ * @Id: tput.1,v 1.32 2012/07/14 21:06:45 tom Exp @ + --> + <HTML> + <HEAD> +@@ -66,7 +66,7 @@ + <H2>DESCRIPTION</H2><PRE> + The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the + values of terminal-dependent capabilities and information +- available to the shell (see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>), to initialize or reset ++ available to the shell (see <STRONG>sh(1)</STRONG>), to initialize or reset + the terminal, or return the long name of the requested + terminal type. The result depends upon the capability's + type: +@@ -87,7 +87,7 @@ + + Before using a value returned on the standard output, the + application should test the exit code (e.g., <STRONG>$?</STRONG>, see +- <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG> ++ <STRONG>sh(1)</STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG> + <STRONG>NOSTICS</STRONG> sections.) For a complete list of capabilities + and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +@@ -95,54 +95,53 @@ + option is unnecessary, because the default is taken + from the environment variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is spec- + ified, then the shell variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> +- will be ignored,and the operating system will not +- be queried for the actual screen size. ++ will also be ignored. + + <EM>capname</EM> +- indicates the capability from the <STRONG>terminfo</STRONG> +- database. When <STRONG>termcap</STRONG> support is compiled in, the ++ indicates the capability from the <STRONG>terminfo</STRONG> data- ++ base. When <STRONG>termcap</STRONG> support is compiled in, the + <STRONG>termcap</STRONG> name for the capability is also accepted. + +- <EM>parms</EM> If the capability is a string that takes parame- ++ <EM>parms</EM> If the capability is a string that takes parame- + ters, the arguments <EM>parms</EM> will be instantiated into + the string. + +- Most parameters are numbers. Only a few terminfo ++ Most parameters are numbers. Only a few terminfo + capabilities require string parameters; <STRONG>tput</STRONG> uses a + table to decide which to pass as strings. Normally +- <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution. ++ <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution. + If no parameters are given for the capability, <STRONG>tput</STRONG> +- writes the string without performing the +- substitution. ++ writes the string without performing the substitu- ++ tion. + +- <STRONG>-S</STRONG> allows more than one capability per invocation of ++ <STRONG>-S</STRONG> allows more than one capability per invocation of + <STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from + the standard input instead of from the command line +- (see example). Only one <EM>capname</EM> is allowed per +- line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG> +- and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT ++ (see example). Only one <EM>capname</EM> is allowed per ++ line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG> ++ and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT + CODES section). + + Again, <STRONG>tput</STRONG> uses a table and the presence of param- +- eters in its input to decide whether to use <STRONG>tparm</STRONG> ++ eters in its input to decide whether to use <STRONG>tparm</STRONG> + (3x), and how to interpret the parameters. + +- <STRONG>-V</STRONG> reports the version of ncurses which was used in ++ <STRONG>-V</STRONG> reports the version of ncurses which was used in + this program, and exits. + +- <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry ++ <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry + for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above), + the following will occur: + +- (1) if present, the terminal's initialization +- strings will be output as detailed in the +- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM> ++ (1) if present, the terminal's initialization ++ strings will be output as detailed in the ++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM> + <EM>tion</EM>, + +- (2) any delays (e.g., newline) specified in the ++ (2) any delays (e.g., newline) specified in the + entry will be set in the tty driver, + +- (3) tabs expansion will be turned on or off ++ (3) tabs expansion will be turned on or off + according to the specification in the entry, + and + +@@ -153,22 +152,22 @@ + for any of the four above activities, that activity + will silently be skipped. + +- <STRONG>reset</STRONG> Instead of putting out initialization strings, the +- terminal's reset strings will be output if present +- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not +- present, but initialization strings are, the ini- +- tialization strings will be output. Otherwise, ++ <STRONG>reset</STRONG> Instead of putting out initialization strings, the ++ terminal's reset strings will be output if present ++ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not ++ present, but initialization strings are, the ini- ++ tialization strings will be output. Otherwise, + <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>. + + <STRONG>longname</STRONG> +- If the <STRONG>terminfo</STRONG> database is present and an entry +- for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above), ++ If the <STRONG>terminfo</STRONG> database is present and an entry ++ for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above), + then the long name of the terminal will be put out. + The long name is the last name in the first line of + the terminal's description in the <STRONG>terminfo</STRONG> database + [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>]. + +- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the ++ If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the + same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. See <STRONG>tset</STRONG> for comparison, which + has similar behavior. + +@@ -177,13 +176,13 @@ + <H2>EXAMPLES</H2><PRE> + <STRONG>tput</STRONG> <STRONG>init</STRONG> + Initialize the terminal according to the type of ter- +- minal in the environmental variable <STRONG>TERM</STRONG>. This com- +- mand should be included in everyone's .profile after ++ minal in the environmental variable <STRONG>TERM</STRONG>. This com- ++ mand should be included in everyone's .profile after + the environmental variable <STRONG>TERM</STRONG> has been exported, as +- illustrated on the <STRONG><A HREF="profile.5.html">profile(5)</A></STRONG> manual page. ++ illustrated on the <STRONG>profile(5)</STRONG> manual page. + + <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG> +- Reset an AT&amp;T 5620 terminal, overriding the type of ++ Reset an AT&amp;T 5620 terminal, overriding the type of + terminal in the environmental variable <STRONG>TERM</STRONG>. + + <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG> +@@ -263,29 +262,29 @@ + type of <EM>capname</EM>: + + <EM>boolean</EM> +- a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE. ++ a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE. + +- <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined +- for this terminal <EM>type</EM> (the value of <EM>capname</EM> +- is returned on standard output); a value of <STRONG>1</STRONG> ++ <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined ++ for this terminal <EM>type</EM> (the value of <EM>capname</EM> ++ is returned on standard output); a value of <STRONG>1</STRONG> + is set if <EM>capname</EM> is not defined for this ter- +- minal <EM>type</EM> (nothing is written to standard ++ minal <EM>type</EM> (nothing is written to standard + output). + + <EM>integer</EM> +- a value of <STRONG>0</STRONG> is always set, whether or not ++ a value of <STRONG>0</STRONG> is always set, whether or not + <EM>capname</EM> is defined for this terminal <EM>type</EM>. To +- determine if <EM>capname</EM> is defined for this ter- ++ determine if <EM>capname</EM> is defined for this ter- + minal <EM>type</EM>, the user must test the value writ- +- ten to standard output. A value of <STRONG>-1</STRONG> means +- that <EM>capname</EM> is not defined for this terminal ++ ten to standard output. A value of <STRONG>-1</STRONG> means ++ that <EM>capname</EM> is not defined for this terminal + <EM>type</EM>. + +- <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec- +- tive files. In that case, the exit code is ++ <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec- ++ tive files. In that case, the exit code is + set to 4 + <STRONG>errno</STRONG>. + +- Any other exit code indicates an error; see the DIAGNOS- ++ Any other exit code indicates an error; see the DIAGNOS- + TICS section. + + +@@ -294,11 +293,10 @@ + <STRONG>tput</STRONG> prints the following error messages and sets the cor- + responding exit codes. + +- + exit code error message + --------------------------------------------------------------------- +- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in +- the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g. ++ <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in ++ the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g. + <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>) + <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section. + <STRONG>2</STRONG> usage error +@@ -310,25 +308,37 @@ + + </PRE> + <H2>PORTABILITY</H2><PRE> +- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu- +- tion features used in the <STRONG>cup</STRONG> example, are not supported ++ The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu- ++ tion features used in the <STRONG>cup</STRONG> example, are not supported + in BSD curses or in AT&amp;T/USL curses before SVr4. + +- X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and +- <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM> ++ X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and ++ <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM> + <EM>name</EM> support. Other implementations of <STRONG>tput</STRONG> on SVr4-based + systems such as Solaris, IRIX64 and HPUX as well as others +- such as AIX and Tru64 provide support for <EM>capname</EM> +- operands. A few platforms such as FreeBSD and NetBSD rec- +- ognize termcap names rather than terminfo capability names +- in their respective <STRONG>tput</STRONG> commands. ++ such as AIX and Tru64 provide support for <EM>capname</EM> oper- ++ ands. ++ ++ A few platforms such as FreeBSD and NetBSD recognize term- ++ cap names rather than terminfo capability names in their ++ respective <STRONG>tput</STRONG> commands. ++ ++ Most implementations which provide support for <EM>capname</EM> op- ++ erands use the <EM>tparm</EM> function to expand parameters in it. ++ That function expects a mixture of numeric and string ++ parameters, requiring <STRONG>tput</STRONG> to know which type to use. ++ This implementation uses a table to determine that for the ++ standard <EM>capname</EM> operands, and an internal library func- ++ tion to analyze nonstandard <EM>capname</EM> operands. Other ++ implementations may simply guess that an operand contain- ++ ing only digits is intended to be a number. + + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. ++ <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/tset.1.html ncurses-5.9.patch/doc/html/man/tset.1.html +--- ncurses-5.9/doc/html/man/tset.1.html 2011-04-05 00:46:52.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/man/tset.1.html 2014-09-01 16:33:22.336792090 +0200 +@@ -1,7 +1,7 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2013 Free 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 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: tset.1,v 1.25 2010/12/04 18:38:55 tom Exp @ ++ * @Id: tset.1,v 1.28 2013/07/20 19:40:55 tom Exp @ + --> + <HTML> + <HEAD> +@@ -74,14 +74,14 @@ + tion, <EM>getty</EM> does this job by setting <STRONG>TERM</STRONG> according to the + type passed to it by <EM>/etc/inittab</EM>.) + +- 4. The default terminal type, ``unknown''. ++ 4. The default terminal type, "unknown". + + If the terminal type was not specified on the command- + line, the <STRONG>-m</STRONG> option mappings are then applied (see the + section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information). + Then, if the terminal type begins with a question mark +- (``?''), the user is prompted for confirmation of the ter- +- minal type. An empty response confirms the type, or, ++ ("?"), the user is prompted for confirmation of the termi- ++ nal type. An empty response confirms the type, or, + another type can be entered to specify a new type. Once + the terminal type has been determined, the terminfo entry + for the terminal is retrieved. If no terminfo entry is +@@ -116,8 +116,9 @@ + + The options are as follows: + +- <STRONG>-c</STRONG> Set control characters and modes. <STRONG>-e</STRONG> Set the erase +- character to <EM>ch</EM>. ++ <STRONG>-c</STRONG> Set control characters and modes. ++ ++ <STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>. + + <STRONG>-I</STRONG> Do not send the terminal or tab initialization + strings to the terminal. +@@ -126,36 +127,35 @@ + + <STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>. + +- <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal. ++ <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal. + See the section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more infor- + mation. + +- <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt ++ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt + and line kill characters. Normally <STRONG>tset</STRONG> displays the +- values for control characters which differ from the ++ values for control characters which differ from the + system's default values. + +- <STRONG>-q</STRONG> The terminal type is displayed to the standard out- +- put, and the terminal is not initialized in any way. ++ <STRONG>-q</STRONG> The terminal type is displayed to the standard out- ++ put, and the terminal is not initialized in any way. + The option `-' by itself is equivalent but archaic. + + <STRONG>-r</STRONG> Print the terminal type to the standard error output. + + <STRONG>-s</STRONG> Print the sequence of shell commands to initialize + the environment variable <STRONG>TERM</STRONG> to the standard output. +- See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details. ++ See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details. + + <STRONG>-V</STRONG> reports the version of ncurses which was used in this + program, and exits. + +- <STRONG>-w</STRONG> Resize the window to match the size deduced via ++ <STRONG>-w</STRONG> Resize the window to match the size deduced via + <STRONG>setupterm</STRONG>. Normally this has no effect, unless + <STRONG>setupterm</STRONG> is not able to detect the window size. + + The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be +- entered as actual characters or by using the `hat' nota- +- tion, i.e., control-h may be specified as ``^H'' or +- ``^h''. ++ entered as actual characters or by using the `hat' nota- ++ tion, i.e., control-h may be specified as "^H" or "^h". + + + </PRE> +@@ -167,7 +167,7 @@ + When the <STRONG>-s</STRONG> option is specified, the commands to enter the + information into the shell's environment are written to + the standard output. If the <STRONG>SHELL</STRONG> environmental variable +- ends in ``csh'', the commands are for <STRONG>csh</STRONG>, otherwise, they ++ ends in "csh", the commands are for <STRONG>csh</STRONG>, otherwise, they + are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset the + shell variable <STRONG>noglob</STRONG>, leaving it unset. The following + line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the +@@ -187,21 +187,21 @@ + terminal used on such ports. + + The purpose of the <STRONG>-m</STRONG> option is to map from some set of +- conditions to a terminal type, that is, to tell <STRONG>tset</STRONG> ``If ++ conditions to a terminal type, that is, to tell <STRONG>tset</STRONG> "If + I'm on this port at a particular speed, guess that I'm on +- that kind of terminal''. ++ that kind of terminal". + + The argument to the <STRONG>-m</STRONG> option consists of an optional port + type, an optional operator, an optional baud rate specifi- +- cation, an optional colon (``:'') character and a terminal ++ cation, an optional colon (":") character and a terminal + type. The port type is a string (delimited by either the + operator or the colon character). The operator may be any +- combination of ``&gt;'', ``&lt;'', ``@'', and ``!''; ``&gt;'' means +- greater than, ``&lt;'' means less than, ``@'' means equal to +- and ``!'' inverts the sense of the test. The baud rate is +- specified as a number and is compared with the speed of +- the standard error output (which should be the control +- terminal). The terminal type is a string. ++ combination of "&gt;", "&lt;", "@", and "!"; "&gt;" means greater ++ than, "&lt;" means less than, "@" means equal to and "!" ++ inverts the sense of the test. The baud rate is specified ++ as a number and is compared with the speed of the standard ++ error output (which should be the control terminal). The ++ terminal type is a string. + + If the terminal type is not specified on the command line, + the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the +@@ -232,8 +232,8 @@ + argument. Also, to avoid problems with meta-characters, + it is suggested that the entire <STRONG>-m</STRONG> option argument be + placed within single quote characters, and that <STRONG>csh</STRONG> users +- insert a backslash character (``\'') before any exclama- +- tion marks (``!''). ++ insert a backslash character ("\") before any exclamation ++ marks ("!"). + + + </PRE> +@@ -248,14 +248,14 @@ + <H2>COMPATIBILITY</H2><PRE> + The <STRONG>tset</STRONG> utility has been provided for backward-compati- + bility with BSD environments (under most modern UNIXes, +- <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for ++ <STRONG>/etc/inittab</STRONG> and <STRONG>getty(1)</STRONG> can set <STRONG>TERM</STRONG> appropriately for + each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most + important use). This implementation behaves like 4.4BSD + tset, with a few exceptions specified here. + + The <STRONG>-S</STRONG> option of BSD tset no longer works; it prints an + error message to stderr and dies. The <STRONG>-s</STRONG> option only sets +- <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>. Both these changes are because the ++ <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>. Both of these changes are because the + <STRONG>TERMCAP</STRONG> variable is no longer supported under terminfo- + based <STRONG>ncurses</STRONG>, which makes <STRONG>tset</STRONG> <STRONG>-S</STRONG> useless (we made it die + noisily rather than silently induce lossage). +@@ -316,10 +316,10 @@ + + </PRE> + <H2>SEE ALSO</H2><PRE> +- <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, ter- +- <STRONG><A HREF="minfo.5.html">minfo(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG> ++ <STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, ++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG> + +- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404). ++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20131221). + + + +diff -Naur ncurses-5.9/doc/html/man/wresize.3x.html ncurses-5.9.patch/doc/html/man/wresize.3x.html +--- ncurses-5.9/doc/html/man/wresize.3x.html 2011-01-09 02:03:30.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/man/wresize.3x.html 2014-09-01 16:33:22.336792090 +0200 +@@ -1,4 +1,4 @@ +-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- + **************************************************************************** + * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * +diff -Naur ncurses-5.9/doc/html/ncurses-intro.html ncurses-5.9.patch/doc/html/ncurses-intro.html +--- ncurses-5.9/doc/html/ncurses-intro.html 2010-12-04 17:46:22.000000000 +0100 ++++ ncurses-5.9.patch/doc/html/ncurses-intro.html 2014-09-01 16:33:22.336792090 +0200 +@@ -1,8 +1,8 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <!-- +- $Id: ncurses-intro.html,v 1.44 2010/12/04 16:46:22 tom Exp $ ++ $Id: ncurses-intro.html,v 1.46 2013/05/17 23:29:27 tom Exp $ + **************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -431,6 +431,7 @@ + Here is a sample program to motivate the discussion: + + <PRE> ++#include &lt;stdlib.h&gt; + #include &lt;curses.h&gt; + #include &lt;signal.h&gt; + +diff -Naur ncurses-5.9/doc/html/NCURSES-Programming-HOWTO.html ncurses-5.9.patch/doc/html/NCURSES-Programming-HOWTO.html +--- ncurses-5.9/doc/html/NCURSES-Programming-HOWTO.html 2005-06-21 23:50:00.000000000 +0200 ++++ ncurses-5.9.patch/doc/html/NCURSES-Programming-HOWTO.html 2014-09-01 16:33:22.266791973 +0200 +@@ -1,516 +1,1282 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +-<html> +-<head> +-<meta name="generator" content= +-"HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org"> +-<title>NCURSES Programming HOWTO</title> +-<meta name="GENERATOR" content= +-"Modular DocBook HTML Stylesheet Version 1.7"> +-</head> +-<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link= +-"#0000FF" vlink="#840084" alink="#0000FF"> +-<div class="ARTICLE"> +-<div class="TITLEPAGE"> +-<h1 class="TITLE"><a name="AEN2" id="AEN2">NCURSES Programming +-HOWTO</a></h1> +-<h3 class="AUTHOR"><a name="AEN4" id="AEN4">Pradeep Padala</a></h3> +-<div class="AFFILIATION"> +-<div class="ADDRESS"> +-<p class="ADDRESS"><code class="EMAIL">&lt;<a href= +-"mailto:ppadala@gmail.com">ppadala@gmail.com</a>&gt;</code></p> +-</div> +-</div> +-<p class="PUBDATE">v1.9, 2005-06-20<br></p> +-<div class="REVHISTORY"> +-<table width="100%" border="0"> +-<tr> +-<th align="left" valign="top" colspan="3"><b>Revision +-History</b></th> +-</tr> +-<tr> +-<td align="left">Revision 1.9</td> +-<td align="left">2005-06-20</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">The license has been changed to the +-MIT-style license used by NCURSES. Note that the programs are also +-re-licensed under this.</td> +-</tr> +-<tr> +-<td align="left">Revision 1.8</td> +-<td align="left">2005-06-17</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Lots of updates. Added references and +-perl examples. Changes to examples. Many grammatical and stylistic +-changes to the content. Changes to NCURSES history.</td> +-</tr> +-<tr> +-<td align="left">Revision 1.7.1</td> +-<td align="left">2002-06-25</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Added a README file for building and +-instructions for building from source.</td> +-</tr> +-<tr> +-<td align="left">Revision 1.7</td> +-<td align="left">2002-06-25</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Added "Other formats" section and made +-a lot of fancy changes to the programs. Inlining of programs is +-gone.</td> +-</tr> +-<tr> +-<td align="left">Revision 1.6.1</td> +-<td align="left">2002-02-24</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Removed the old Changelog section, +-cleaned the makefiles</td> +-</tr> +-<tr> +-<td align="left">Revision 1.6</td> +-<td align="left">2002-02-16</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Corrected a lot of spelling mistakes, +-added ACS variables section</td> +-</tr> +-<tr> +-<td align="left">Revision 1.5</td> +-<td align="left">2002-01-05</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Changed structure to present proper +-TOC</td> +-</tr> +-<tr> +-<td align="left">Revision 1.3.1</td> +-<td align="left">2001-07-26</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Corrected maintainers paragraph, +-Corrected stable release number</td> +-</tr> +-<tr> +-<td align="left">Revision 1.3</td> +-<td align="left">2001-07-24</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Added copyright notices to main +-document (LDP license) and programs (GPL), Corrected +-printw_example.</td> +-</tr> +-<tr> +-<td align="left">Revision 1.2</td> +-<td align="left">2001-06-05</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Incorporated ravi's changes. Mainly to +-introduction, menu, form, justforfun sections</td> +-</tr> +-<tr> +-<td align="left">Revision 1.1</td> +-<td align="left">2001-05-22</td> +-<td align="left">Revised by: ppadala</td> +-</tr> +-<tr> +-<td align="left" colspan="3">Added "a word about window" section, +-Added scanw_example.</td> +-</tr> +-</table> +-</div> +-<div> +-<div class="ABSTRACT"><a name="AEN67" id="AEN67"></a> +-<p><em>This document is intended to be an "All in One" guide for +-programming with ncurses and its sister libraries. We graduate from +-a simple "Hello World" program to more complex form manipulation. +-No prior experience in ncurses is assumed. Send comments to +-<a href="mailto:ppadala@gmail.com" target="_top">this +-address</a></em></p> +-</div> +-</div> +-<hr></div> +-<div class="TOC"> +-<dl> +-<dt><b>Table of Contents</b></dt> +-<dt>1. <a href="#INTRO">Introduction</a></dt> +-<dd> +-<dl> +-<dt>1.1. <a href="#WHATIS">What is NCURSES?</a></dt> +-<dt>1.2. <a href="#WHATCANWEDO">What we can do with +-NCURSES</a></dt> +-<dt>1.3. <a href="#WHERETOGETIT">Where to get it</a></dt> +-<dt>1.4. <a href="#PURPOSE">Purpose/Scope of the document</a></dt> +-<dt>1.5. <a href="#ABOUTPROGRAMS">About the Programs</a></dt> +-<dt>1.6. <a href="#OTHERFORMATS">Other Formats of the +-document</a></dt> +-<dt>1.7. <a href="#CREDITS">Credits</a></dt> +-<dt>1.8. <a href="#WISHLIST">Wish List</a></dt> +-<dt>1.9. <a href="#COPYRIGHT">Copyright</a></dt> +-</dl> +-</dd> +-<dt>2. <a href="#HELLOWORLD">Hello World !!!</a></dt> +-<dd> +-<dl> +-<dt>2.1. <a href="#COMPILECURSES">Compiling With the NCURSES +-Library</a></dt> +-<dt>2.2. <a href="#DISSECTION">Dissection</a></dt> +-</dl> +-</dd> +-<dt>3. <a href="#GORY">The Gory Details</a></dt> +-<dt>4. <a href="#INIT">Initialization</a></dt> +-<dd> +-<dl> +-<dt>4.1. <a href="#ABOUTINIT">Initialization functions</a></dt> +-<dt>4.2. <a href="#RAWCBREAK">raw() and cbreak()</a></dt> +-<dt>4.3. <a href="#ECHONOECHO">echo() and noecho()</a></dt> +-<dt>4.4. <a href="#KEYPAD">keypad()</a></dt> +-<dt>4.5. <a href="#HALFDELAY">halfdelay()</a></dt> +-<dt>4.6. <a href="#MISCINIT">Miscellaneous Initialization +-functions</a></dt> +-<dt>4.7. <a href="#INITEX">An Example</a></dt> +-</dl> +-</dd> +-<dt>5. <a href="#AWORDWINDOWS">A Word about Windows</a></dt> +-<dt>6. <a href="#PRINTW">Output functions</a></dt> +-<dd> +-<dl> +-<dt>6.1. <a href="#ADDCHCLASS">addch() class of functions</a></dt> +-<dt>6.2. <a href="#AEN298">mvaddch(), waddch() and +-mvwaddch()</a></dt> +-<dt>6.3. <a href="#PRINTWCLASS">printw() class of +-functions</a></dt> +-<dt>6.4. <a href="#ADDSTRCLASS">addstr() class of +-functions</a></dt> +-<dt>6.5. <a href="#ACAUTION">A word of caution</a></dt> +-</dl> +-</dd> +-<dt>7. <a href="#SCANW">Input functions</a></dt> +-<dd> +-<dl> +-<dt>7.1. <a href="#GETCHCLASS">getch() class of functions</a></dt> +-<dt>7.2. <a href="#SCANWCLASS">scanw() class of functions</a></dt> +-<dt>7.3. <a href="#GETSTRCLASS">getstr() class of +-functions</a></dt> +-<dt>7.4. <a href="#GETSTREX">Some examples</a></dt> +-</dl> +-</dd> +-<dt>8. <a href="#ATTRIB">Attributes</a></dt> +-<dd> +-<dl> +-<dt>8.1. <a href="#ATTRIBDETAILS">The details</a></dt> +-<dt>8.2. <a href="#ATTRONVSATTRSET">attron() vs attrset()</a></dt> +-<dt>8.3. <a href="#ATTR_GET">attr_get()</a></dt> +-<dt>8.4. <a href="#ATTR_FUNCS">attr_ functions</a></dt> +-<dt>8.5. <a href="#WATTRFUNCS">wattr functions</a></dt> +-<dt>8.6. <a href="#CHGAT">chgat() functions</a></dt> +-</dl> +-</dd> +-<dt>9. <a href="#WINDOWS">Windows</a></dt> +-<dd> +-<dl> +-<dt>9.1. <a href="#WINDOWBASICS">The basics</a></dt> +-<dt>9.2. <a href="#LETBEWINDOW">Let there be a Window !!!</a></dt> +-<dt>9.3. <a href="#BORDEREXEXPL">Explanation</a></dt> +-<dt>9.4. <a href="#OTHERSTUFF">The other stuff in the +-example</a></dt> +-<dt>9.5. <a href="#OTHERBORDERFUNCS">Other Border +-functions</a></dt> +-</dl> +-</dd> +-<dt>10. <a href="#COLOR">Colors</a></dt> +-<dd> +-<dl> +-<dt>10.1. <a href="#COLORBASICS">The basics</a></dt> +-<dt>10.2. <a href="#CHANGECOLORDEFS">Changing Color +-Definitions</a></dt> +-<dt>10.3. <a href="#COLORCONTENT">Color Content</a></dt> +-</dl> +-</dd> +-<dt>11. <a href="#KEYS">Interfacing with the key board</a></dt> +-<dd> +-<dl> +-<dt>11.1. <a href="#KEYSBASICS">The Basics</a></dt> +-<dt>11.2. <a href="#SIMPLEKEYEX">A Simple Key Usage +-example</a></dt> +-</dl> +-</dd> +-<dt>12. <a href="#MOUSE">Interfacing with the mouse</a></dt> +-<dd> +-<dl> +-<dt>12.1. <a href="#MOUSEBASICS">The Basics</a></dt> +-<dt>12.2. <a href="#GETTINGEVENTS">Getting the events</a></dt> +-<dt>12.3. <a href="#MOUSETOGETHER">Putting it all Together</a></dt> +-<dt>12.4. <a href="#MISCMOUSEFUNCS">Miscellaneous +-Functions</a></dt> +-</dl> +-</dd> +-<dt>13. <a href="#SCREEN">Screen Manipulation</a></dt> +-<dd> +-<dl> +-<dt>13.1. <a href="#GETYX">getyx() functions</a></dt> +-<dt>13.2. <a href="#SCREENDUMP">Screen Dumping</a></dt> +-<dt>13.3. <a href="#WINDOWDUMP">Window Dumping</a></dt> +-</dl> +-</dd> +-<dt>14. <a href="#MISC">Miscellaneous features</a></dt> +-<dd> +-<dl> +-<dt>14.1. <a href="#CURSSET">curs_set()</a></dt> +-<dt>14.2. <a href="#TEMPLEAVE">Temporarily Leaving Curses +-mode</a></dt> +-<dt>14.3. <a href="#ACSVARS">ACS_ variables</a></dt> +-</dl> +-</dd> +-<dt>15. <a href="#OTHERLIB">Other libraries</a></dt> +-<dt>16. <a href="#PANELS">Panel Library</a></dt> +-<dd> +-<dl> +-<dt>16.1. <a href="#PANELBASICS">The Basics</a></dt> +-<dt>16.2. <a href="#COMPILEPANELS">Compiling With the Panels +-Library</a></dt> +-<dt>16.3. <a href="#PANELBROWSING">Panel Window Browsing</a></dt> +-<dt>16.4. <a href="#USERPTRUSING">Using User Pointers</a></dt> +-<dt>16.5. <a href="#PANELMOVERESIZE">Moving and Resizing +-Panels</a></dt> +-<dt>16.6. <a href="#PANELSHOWHIDE">Hiding and Showing +-Panels</a></dt> +-<dt>16.7. <a href="#PANELABOVE">panel_above() and panel_below() +-Functions</a></dt> +-</dl> +-</dd> +-<dt>17. <a href="#MENUS">Menus Library</a></dt> +-<dd> +-<dl> +-<dt>17.1. <a href="#MENUBASICS">The Basics</a></dt> +-<dt>17.2. <a href="#COMPILEMENUS">Compiling With the Menu +-Library</a></dt> +-<dt>17.3. <a href="#MENUDRIVER">Menu Driver: The work horse of the +-menu system</a></dt> +-<dt>17.4. <a href="#MENUWINDOWS">Menu Windows</a></dt> +-<dt>17.5. <a href="#SCROLLMENUS">Scrolling Menus</a></dt> +-<dt>17.6. <a href="#MULTICOLUMN">Multi Columnar Menus</a></dt> +-<dt>17.7. <a href="#MULTIVALUEMENUS">Multi Valued Menus</a></dt> +-<dt>17.8. <a href="#MENUOPT">Menu Options</a></dt> +-<dt>17.9. <a href="#MENUUSERPTR">The useful User Pointer</a></dt> +-</dl> +-</dd> +-<dt>18. <a href="#FORMS">Forms Library</a></dt> +-<dd> +-<dl> +-<dt>18.1. <a href="#FORMBASICS">The Basics</a></dt> +-<dt>18.2. <a href="#COMPILEFORMS">Compiling With the Forms +-Library</a></dt> +-<dt>18.3. <a href="#PLAYFIELDS">Playing with Fields</a></dt> +-<dt>18.4. <a href="#FORMWINDOWS">Form Windows</a></dt> +-<dt>18.5. <a href="#FILEDVALIDATE">Field Validation</a></dt> +-<dt>18.6. <a href="#FORMDRIVER">Form Driver: The work horse of the +-forms system</a></dt> +-</dl> +-</dd> +-<dt>19. <a href="#TOOLS">Tools and Widget Libraries</a></dt> +-<dd> +-<dl> +-<dt>19.1. <a href="#CDK">CDK (Curses Development Kit)</a></dt> +-<dt>19.2. <a href="#DIALOG">The dialog</a></dt> +-<dt>19.3. <a href="#PERLCURSES">Perl Curses Modules CURSES::FORM +-and CURSES::WIDGETS</a></dt> +-</dl> +-</dd> +-<dt>20. <a href="#JUSTFORFUN">Just For Fun !!!</a></dt> +-<dd> +-<dl> +-<dt>20.1. <a href="#GAMEOFLIFE">The Game of Life</a></dt> +-<dt>20.2. <a href="#MAGIC">Magic Square</a></dt> +-<dt>20.3. <a href="#HANOI">Towers of Hanoi</a></dt> +-<dt>20.4. <a href="#QUEENS">Queens Puzzle</a></dt> +-<dt>20.5. <a href="#SHUFFLE">Shuffle</a></dt> +-<dt>20.6. <a href="#TT">Typing Tutor</a></dt> +-</dl> +-</dd> +-<dt>21. <a href="#REF">References</a></dt> +-</dl> +-</div> +-<div class="SECT1"> +-<h2 class="SECT1"><a name="INTRO" id="INTRO">1. +-Introduction</a></h2> +-<p>In the olden days of teletype terminals, terminals were away +-from computers and were connected to them through serial cables. +-The terminals could be configured by sending a series of bytes. All +-the capabilities (such as moving the cursor to a new location, +-erasing part of the screen, scrolling the screen, changing modes +-etc.) of terminals could be accessed through these series of bytes. +-These control seeuqnces are usually called escape sequences, +-because they start with an escape(0x1B) character. Even today, with +-proper emulation, we can send escape sequences to the emulator and +-achieve the same effect on a terminal window.</p> +-<p>Suppose you wanted to print a line in color. Try typing this on +-your console.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000">echo "^[[0;31;40mIn Color"</font> +-</pre></td> +-</tr> +-</table> +-<p>The first character is an escape character, which looks like two +-characters ^ and [. To be able to print it, you have to press +-CTRL+V and then the ESC key. All the others are normal printable +-characters. You should be able to see the string "In Color" in red. +-It stays that way and to revert back to the original mode type +-this.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000">echo "^[[0;37;40m"</font> +-</pre></td> +-</tr> +-</table> +-<p>Now, what do these magic characters mean? Difficult to +-comprehend? They might even be different for different terminals. +-So the designers of UNIX invented a mechanism named <var class= +-"LITERAL">termcap</var>. It is a file that lists all the +-capabilities of a particular terminal, along with the escape +-sequences needed to achieve a particular effect. In the later +-years, this was replaced by <var class="LITERAL">terminfo</var>. +-Without delving too much into details, this mechanism allows +-application programs to query the terminfo database and obtain the +-control characters to be sent to a terminal or terminal +-emulator.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WHATIS" id="WHATIS">1.1. What is +-NCURSES?</a></h3> +-<p>You might be wondering, what the import of all this technical +-gibberish is. In the above scenario, every application program is +-supposed to query the terminfo and perform the necessary stuff +-(sending control characters etc.). It soon became difficult to +-manage this complexity and this gave birth to 'CURSES'. Curses is a +-pun on the name "cursor optimization". The Curses library forms a +-wrapper over working with raw terminal codes, and provides highly +-flexible and efficient API (Application Programming Interface). It +-provides functions to move the cursor, create windows, produce +-colors, play with mouse etc. The application programs need not +-worry about the underlying terminal capabilities.</p> +-<p>So what is NCURSES? NCURSES is a clone of the original System V +-Release 4.0 (SVr4) curses. It is a freely distributable library, +-fully compatible with older version of curses. In short, it is a +-library of functions that manages an application's display on +-character-cell terminals. In the remainder of the document, the +-terms curses and ncurses are used interchangeably.</p> +-<p>A detailed history of NCURSES can be found in the NEWS file from +-the source distribution. The current package is maintained by +-<a href="mailto:dickey@his.com" target="_top">Thomas Dickey</a>. +-You can contact the maintainers at <a href= +-"mailto:bug-ncurses@gnu.org" target= +-"_top">bug-ncurses@gnu.org</a>.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WHATCANWEDO" id="WHATCANWEDO">1.2. What +-we can do with NCURSES</a></h3> +-<p>NCURSES not only creates a wrapper over terminal capabilities, +-but also gives a robust framework to create nice looking UI (User +-Interface)s in text mode. It provides functions to create windows +-etc. Its sister libraries panel, menu and form provide an extension +-to the basic curses library. These libraries usually come along +-with curses. One can create applications that contain multiple +-windows, menus, panels and forms. Windows can be managed +-independently, can provide 'scrollability' and even can be +-hidden.</p> +-<p>Menus provide the user with an easy command selection option. +-Forms allow the creation of easy-to-use data entry and display +-windows. Panels extend the capabilities of ncurses to deal with +-overlapping and stacked windows.</p> +-<p>These are just some of the basic things we can do with ncurses. +-As we move along, We will see all the capabilities of these +-libraries.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WHERETOGETIT" id="WHERETOGETIT">1.3. +-Where to get it</a></h3> +-<p>All right, now that you know what you can do with ncurses, you +-must be rearing to get started. NCURSES is usually shipped with +-your installation. In case you don't have the library or want to +-compile it on your own, read on.</p> +-<p><em>Compiling the package</em></p> +-<p>NCURSES can be obtained from <a href= +-"ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz" target= +-"_top">ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</a> or any +-of the ftp sites mentioned in <a href= +-"http://www.gnu.org/order/ftp.html" target= +-"_top">http://www.gnu.org/order/ftp.html</a>.</p> +-<p>Read the README and INSTALL files for details on to how to +-install it. It usually involves the following operations.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> ++<HTML ++><HEAD ++><TITLE ++> NCURSES Programming HOWTO </TITLE ++><META ++NAME="GENERATOR" ++CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD ++><BODY ++CLASS="ARTICLE" ++BGCOLOR="#FFFFFF" ++TEXT="#000000" ++LINK="#0000FF" ++VLINK="#840084" ++ALINK="#0000FF" ++><DIV ++CLASS="ARTICLE" ++><DIV ++CLASS="TITLEPAGE" ++><H1 ++CLASS="TITLE" ++><A ++NAME="AEN2" ++>NCURSES Programming HOWTO</A ++></H1 ++><H3 ++CLASS="AUTHOR" ++><A ++NAME="AEN4" ++> Pradeep Padala </A ++></H3 ++><DIV ++CLASS="AFFILIATION" ++><DIV ++CLASS="ADDRESS" ++><P ++CLASS="ADDRESS" ++><CODE ++CLASS="EMAIL" ++>&#60;<A ++HREF="mailto:ppadala@gmail.com" ++>ppadala@gmail.com</A ++>&#62;</CODE ++></P ++></DIV ++></DIV ++><P ++CLASS="PUBDATE" ++>v1.9, 2005-06-20<BR></P ++><DIV ++CLASS="REVHISTORY" ++><TABLE ++WIDTH="100%" ++BORDER="0" ++><TR ++><TH ++ALIGN="LEFT" ++VALIGN="TOP" ++COLSPAN="3" ++><B ++>Revision History</B ++></TH ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.9</TD ++><TD ++ALIGN="LEFT" ++>2005-06-20</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>The license has been changed to the MIT-style license used ++ by NCURSES. Note that the programs are also re-licensed under this.</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.8</TD ++><TD ++ALIGN="LEFT" ++>2005-06-17</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Lots of updates. Added references and perl examples. ++ Changes to examples. Many grammatical and stylistic changes to the ++ content. Changes to NCURSES history.</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.7.1</TD ++><TD ++ALIGN="LEFT" ++>2002-06-25</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Added a README file for building and instructions ++ for building from source.</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.7</TD ++><TD ++ALIGN="LEFT" ++>2002-06-25</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Added "Other formats" section and made a lot of fancy ++ changes to the programs. Inlining of programs is gone.</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.6.1</TD ++><TD ++ALIGN="LEFT" ++>2002-02-24</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Removed the old Changelog section, cleaned the makefiles</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.6</TD ++><TD ++ALIGN="LEFT" ++>2002-02-16</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Corrected a lot of spelling mistakes, added ACS variables ++ section</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.5</TD ++><TD ++ALIGN="LEFT" ++>2002-01-05</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Changed structure to present proper TOC</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.3.1</TD ++><TD ++ALIGN="LEFT" ++>2001-07-26</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Corrected maintainers paragraph, Corrected stable release number</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.3</TD ++><TD ++ALIGN="LEFT" ++>2001-07-24</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Added copyright notices to main document (LDP license) ++ and programs (GPL), Corrected ++ printw_example.</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.2</TD ++><TD ++ALIGN="LEFT" ++>2001-06-05</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Incorporated ravi's changes. Mainly to introduction, menu, ++ form, justforfun sections</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++>Revision 1.1</TD ++><TD ++ALIGN="LEFT" ++>2001-05-22</TD ++><TD ++ALIGN="LEFT" ++>Revised by: ppadala</TD ++></TR ++><TR ++><TD ++ALIGN="LEFT" ++COLSPAN="3" ++>Added "a word about window" section, Added scanw_example.</TD ++></TR ++></TABLE ++></DIV ++><DIV ++><DIV ++CLASS="ABSTRACT" ++><P ++></P ++><A ++NAME="AEN67" ++></A ++><P ++> <SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>This document is intended to be an "All in One" guide for programming with ++ncurses and its sister libraries. We graduate from a simple "Hello World" ++program to more complex form manipulation. No prior experience in ncurses is ++assumed. Send comments to <A ++HREF="mailto:ppadala@gmail.com" ++TARGET="_top" ++>this address</A ++> ++ </I ++></SPAN ++> ++ </P ++><P ++></P ++></DIV ++></DIV ++><HR></DIV ++><DIV ++CLASS="TOC" ++><DL ++><DT ++><B ++>Table of Contents</B ++></DT ++><DT ++>1. <A ++HREF="#INTRO" ++>Introduction</A ++></DT ++><DD ++><DL ++><DT ++>1.1. <A ++HREF="#WHATIS" ++>What is NCURSES?</A ++></DT ++><DT ++>1.2. <A ++HREF="#WHATCANWEDO" ++>What we can do with NCURSES</A ++></DT ++><DT ++>1.3. <A ++HREF="#WHERETOGETIT" ++>Where to get it</A ++></DT ++><DT ++>1.4. <A ++HREF="#PURPOSE" ++>Purpose/Scope of the document</A ++></DT ++><DT ++>1.5. <A ++HREF="#ABOUTPROGRAMS" ++>About the Programs</A ++></DT ++><DT ++>1.6. <A ++HREF="#OTHERFORMATS" ++>Other Formats of the document</A ++></DT ++><DD ++><DL ++><DT ++>1.6.1. <A ++HREF="#LISTFORMATS" ++>Readily available formats from tldp.org</A ++></DT ++><DT ++>1.6.2. <A ++HREF="#BUILDSOURCE" ++>Building from source</A ++></DT ++></DL ++></DD ++><DT ++>1.7. <A ++HREF="#CREDITS" ++>Credits</A ++></DT ++><DT ++>1.8. <A ++HREF="#WISHLIST" ++>Wish List</A ++></DT ++><DT ++>1.9. <A ++HREF="#COPYRIGHT" ++>Copyright</A ++></DT ++></DL ++></DD ++><DT ++>2. <A ++HREF="#HELLOWORLD" ++>Hello World !!!</A ++></DT ++><DD ++><DL ++><DT ++>2.1. <A ++HREF="#COMPILECURSES" ++>Compiling With the NCURSES Library</A ++></DT ++><DT ++>2.2. <A ++HREF="#DISSECTION" ++>Dissection</A ++></DT ++><DD ++><DL ++><DT ++>2.2.1. <A ++HREF="#ABOUT-INITSCR" ++>About initscr()</A ++></DT ++><DT ++>2.2.2. <A ++HREF="#MYST-REFRESH" ++>The mysterious refresh()</A ++></DT ++><DT ++>2.2.3. <A ++HREF="#ABOUT-ENDWIN" ++>About endwin()</A ++></DT ++></DL ++></DD ++></DL ++></DD ++><DT ++>3. <A ++HREF="#GORY" ++>The Gory Details</A ++></DT ++><DT ++>4. <A ++HREF="#INIT" ++>Initialization</A ++></DT ++><DD ++><DL ++><DT ++>4.1. <A ++HREF="#ABOUTINIT" ++>Initialization functions</A ++></DT ++><DT ++>4.2. <A ++HREF="#RAWCBREAK" ++>raw() and cbreak()</A ++></DT ++><DT ++>4.3. <A ++HREF="#ECHONOECHO" ++>echo() and noecho()</A ++></DT ++><DT ++>4.4. <A ++HREF="#KEYPAD" ++>keypad()</A ++></DT ++><DT ++>4.5. <A ++HREF="#HALFDELAY" ++>halfdelay()</A ++></DT ++><DT ++>4.6. <A ++HREF="#MISCINIT" ++>Miscellaneous Initialization functions</A ++></DT ++><DT ++>4.7. <A ++HREF="#INITEX" ++>An Example</A ++></DT ++></DL ++></DD ++><DT ++>5. <A ++HREF="#AWORDWINDOWS" ++>A Word about Windows</A ++></DT ++><DT ++>6. <A ++HREF="#PRINTW" ++>Output functions</A ++></DT ++><DD ++><DL ++><DT ++>6.1. <A ++HREF="#ADDCHCLASS" ++>addch() class of functions</A ++></DT ++><DT ++>6.2. <A ++HREF="#AEN298" ++>mvaddch(), waddch() and mvwaddch()</A ++></DT ++><DT ++>6.3. <A ++HREF="#PRINTWCLASS" ++>printw() class of functions</A ++></DT ++><DD ++><DL ++><DT ++>6.3.1. <A ++HREF="#PRINTWMVPRINTW" ++>printw() and mvprintw</A ++></DT ++><DT ++>6.3.2. <A ++HREF="#WPRINTWMVWPRINTW" ++>wprintw() and mvwprintw</A ++></DT ++><DT ++>6.3.3. <A ++HREF="#VWPRINTW" ++>vwprintw()</A ++></DT ++><DT ++>6.3.4. <A ++HREF="#SIMPLEPRINTWEX" ++>A Simple printw example</A ++></DT ++></DL ++></DD ++><DT ++>6.4. <A ++HREF="#ADDSTRCLASS" ++>addstr() class of functions</A ++></DT ++><DT ++>6.5. <A ++HREF="#ACAUTION" ++>A word of caution</A ++></DT ++></DL ++></DD ++><DT ++>7. <A ++HREF="#SCANW" ++>Input functions</A ++></DT ++><DD ++><DL ++><DT ++>7.1. <A ++HREF="#GETCHCLASS" ++>getch() class of functions</A ++></DT ++><DT ++>7.2. <A ++HREF="#SCANWCLASS" ++>scanw() class of functions</A ++></DT ++><DD ++><DL ++><DT ++>7.2.1. <A ++HREF="#SCANWMVSCANW" ++>scanw() and mvscanw</A ++></DT ++><DT ++>7.2.2. <A ++HREF="#WSCANWMVWSCANW" ++>wscanw() and mvwscanw()</A ++></DT ++><DT ++>7.2.3. <A ++HREF="#VWSCANW" ++>vwscanw()</A ++></DT ++></DL ++></DD ++><DT ++>7.3. <A ++HREF="#GETSTRCLASS" ++>getstr() class of functions</A ++></DT ++><DT ++>7.4. <A ++HREF="#GETSTREX" ++>Some examples</A ++></DT ++></DL ++></DD ++><DT ++>8. <A ++HREF="#ATTRIB" ++>Attributes</A ++></DT ++><DD ++><DL ++><DT ++>8.1. <A ++HREF="#ATTRIBDETAILS" ++>The details</A ++></DT ++><DT ++>8.2. <A ++HREF="#ATTRONVSATTRSET" ++>attron() vs attrset()</A ++></DT ++><DT ++>8.3. <A ++HREF="#ATTR_GET" ++>attr_get()</A ++></DT ++><DT ++>8.4. <A ++HREF="#ATTR_FUNCS" ++>attr_ functions</A ++></DT ++><DT ++>8.5. <A ++HREF="#WATTRFUNCS" ++>wattr functions</A ++></DT ++><DT ++>8.6. <A ++HREF="#CHGAT" ++>chgat() functions</A ++></DT ++></DL ++></DD ++><DT ++>9. <A ++HREF="#WINDOWS" ++>Windows</A ++></DT ++><DD ++><DL ++><DT ++>9.1. <A ++HREF="#WINDOWBASICS" ++>The basics</A ++></DT ++><DT ++>9.2. <A ++HREF="#LETBEWINDOW" ++>Let there be a Window !!!</A ++></DT ++><DT ++>9.3. <A ++HREF="#BORDEREXEXPL" ++>Explanation</A ++></DT ++><DT ++>9.4. <A ++HREF="#OTHERSTUFF" ++>The other stuff in the example</A ++></DT ++><DT ++>9.5. <A ++HREF="#OTHERBORDERFUNCS" ++>Other Border functions</A ++></DT ++></DL ++></DD ++><DT ++>10. <A ++HREF="#COLOR" ++>Colors</A ++></DT ++><DD ++><DL ++><DT ++>10.1. <A ++HREF="#COLORBASICS" ++>The basics</A ++></DT ++><DT ++>10.2. <A ++HREF="#CHANGECOLORDEFS" ++>Changing Color Definitions</A ++></DT ++><DT ++>10.3. <A ++HREF="#COLORCONTENT" ++>Color Content</A ++></DT ++></DL ++></DD ++><DT ++>11. <A ++HREF="#KEYS" ++>Interfacing with the key board</A ++></DT ++><DD ++><DL ++><DT ++>11.1. <A ++HREF="#KEYSBASICS" ++>The Basics</A ++></DT ++><DT ++>11.2. <A ++HREF="#SIMPLEKEYEX" ++>A Simple Key Usage example</A ++></DT ++></DL ++></DD ++><DT ++>12. <A ++HREF="#MOUSE" ++>Interfacing with the mouse</A ++></DT ++><DD ++><DL ++><DT ++>12.1. <A ++HREF="#MOUSEBASICS" ++>The Basics</A ++></DT ++><DT ++>12.2. <A ++HREF="#GETTINGEVENTS" ++>Getting the events</A ++></DT ++><DT ++>12.3. <A ++HREF="#MOUSETOGETHER" ++>Putting it all Together</A ++></DT ++><DT ++>12.4. <A ++HREF="#MISCMOUSEFUNCS" ++>Miscellaneous Functions</A ++></DT ++></DL ++></DD ++><DT ++>13. <A ++HREF="#SCREEN" ++>Screen Manipulation</A ++></DT ++><DD ++><DL ++><DT ++>13.1. <A ++HREF="#GETYX" ++>getyx() functions</A ++></DT ++><DT ++>13.2. <A ++HREF="#SCREENDUMP" ++>Screen Dumping</A ++></DT ++><DT ++>13.3. <A ++HREF="#WINDOWDUMP" ++>Window Dumping</A ++></DT ++></DL ++></DD ++><DT ++>14. <A ++HREF="#MISC" ++>Miscellaneous features</A ++></DT ++><DD ++><DL ++><DT ++>14.1. <A ++HREF="#CURSSET" ++>curs_set()</A ++></DT ++><DT ++>14.2. <A ++HREF="#TEMPLEAVE" ++>Temporarily Leaving Curses mode</A ++></DT ++><DT ++>14.3. <A ++HREF="#ACSVARS" ++>ACS_ variables</A ++></DT ++></DL ++></DD ++><DT ++>15. <A ++HREF="#OTHERLIB" ++>Other libraries</A ++></DT ++><DT ++>16. <A ++HREF="#PANELS" ++>Panel Library</A ++></DT ++><DD ++><DL ++><DT ++>16.1. <A ++HREF="#PANELBASICS" ++>The Basics</A ++></DT ++><DT ++>16.2. <A ++HREF="#COMPILEPANELS" ++>Compiling With the Panels Library</A ++></DT ++><DT ++>16.3. <A ++HREF="#PANELBROWSING" ++>Panel Window Browsing</A ++></DT ++><DT ++>16.4. <A ++HREF="#USERPTRUSING" ++>Using User Pointers</A ++></DT ++><DT ++>16.5. <A ++HREF="#PANELMOVERESIZE" ++>Moving and Resizing Panels</A ++></DT ++><DT ++>16.6. <A ++HREF="#PANELSHOWHIDE" ++>Hiding and Showing Panels</A ++></DT ++><DT ++>16.7. <A ++HREF="#PANELABOVE" ++>panel_above() and panel_below() Functions</A ++></DT ++></DL ++></DD ++><DT ++>17. <A ++HREF="#MENUS" ++>Menus Library</A ++></DT ++><DD ++><DL ++><DT ++>17.1. <A ++HREF="#MENUBASICS" ++>The Basics</A ++></DT ++><DT ++>17.2. <A ++HREF="#COMPILEMENUS" ++>Compiling With the Menu Library</A ++></DT ++><DT ++>17.3. <A ++HREF="#MENUDRIVER" ++>Menu Driver: The work horse of the menu system</A ++></DT ++><DT ++>17.4. <A ++HREF="#MENUWINDOWS" ++>Menu Windows</A ++></DT ++><DT ++>17.5. <A ++HREF="#SCROLLMENUS" ++>Scrolling Menus</A ++></DT ++><DT ++>17.6. <A ++HREF="#MULTICOLUMN" ++>Multi Columnar Menus</A ++></DT ++><DT ++>17.7. <A ++HREF="#MULTIVALUEMENUS" ++>Multi Valued Menus</A ++></DT ++><DT ++>17.8. <A ++HREF="#MENUOPT" ++>Menu Options</A ++></DT ++><DT ++>17.9. <A ++HREF="#MENUUSERPTR" ++>The useful User Pointer</A ++></DT ++></DL ++></DD ++><DT ++>18. <A ++HREF="#FORMS" ++>Forms Library</A ++></DT ++><DD ++><DL ++><DT ++>18.1. <A ++HREF="#FORMBASICS" ++>The Basics</A ++></DT ++><DT ++>18.2. <A ++HREF="#COMPILEFORMS" ++>Compiling With the Forms Library</A ++></DT ++><DT ++>18.3. <A ++HREF="#PLAYFIELDS" ++>Playing with Fields</A ++></DT ++><DD ++><DL ++><DT ++>18.3.1. <A ++HREF="#FETCHINFO" ++>Fetching Size and Location of Field</A ++></DT ++><DT ++>18.3.2. <A ++HREF="#MOVEFIELD" ++>Moving the field</A ++></DT ++><DT ++>18.3.3. <A ++HREF="#JUSTIFYFIELD" ++>Field Justification</A ++></DT ++><DT ++>18.3.4. <A ++HREF="#FIELDDISPATTRIB" ++>Field Display Attributes</A ++></DT ++><DT ++>18.3.5. <A ++HREF="#FIELDOPTIONBITS" ++>Field Option Bits</A ++></DT ++><DT ++>18.3.6. <A ++HREF="#FIELDSTATUS" ++>Field Status</A ++></DT ++><DT ++>18.3.7. <A ++HREF="#FIELDUSERPTR" ++>Field User Pointer</A ++></DT ++><DT ++>18.3.8. <A ++HREF="#VARIABLESIZEFIELDS" ++>Variable-Sized Fields</A ++></DT ++></DL ++></DD ++><DT ++>18.4. <A ++HREF="#FORMWINDOWS" ++>Form Windows</A ++></DT ++><DT ++>18.5. <A ++HREF="#FILEDVALIDATE" ++>Field Validation</A ++></DT ++><DT ++>18.6. <A ++HREF="#FORMDRIVER" ++>Form Driver: The work horse of the forms system</A ++></DT ++><DD ++><DL ++><DT ++>18.6.1. <A ++HREF="#PAGENAVREQ" ++>Page Navigation Requests</A ++></DT ++><DT ++>18.6.2. <A ++HREF="#INTERFIELDNAVREQ" ++>Inter-Field Navigation Requests</A ++></DT ++><DT ++>18.6.3. <A ++HREF="#INTRAFIELDNAVREQ" ++>Intra-Field Navigation Requests</A ++></DT ++><DT ++>18.6.4. <A ++HREF="#SCROLLREQ" ++>Scrolling Requests</A ++></DT ++><DT ++>18.6.5. <A ++HREF="#EDITREQ" ++>Editing Requests</A ++></DT ++><DT ++>18.6.6. <A ++HREF="#ORDERREQ" ++>Order Requests</A ++></DT ++><DT ++>18.6.7. <A ++HREF="#APPLICCOMMANDS" ++>Application Commands</A ++></DT ++></DL ++></DD ++></DL ++></DD ++><DT ++>19. <A ++HREF="#TOOLS" ++>Tools and Widget Libraries</A ++></DT ++><DD ++><DL ++><DT ++>19.1. <A ++HREF="#CDK" ++>CDK (Curses Development Kit)</A ++></DT ++><DD ++><DL ++><DT ++>19.1.1. <A ++HREF="#WIDGETLIST" ++>Widget List</A ++></DT ++><DT ++>19.1.2. <A ++HREF="#CDKATTRACT" ++>Some Attractive Features</A ++></DT ++><DT ++>19.1.3. <A ++HREF="#CDKCONCLUSION" ++>Conclusion</A ++></DT ++></DL ++></DD ++><DT ++>19.2. <A ++HREF="#DIALOG" ++>The dialog</A ++></DT ++><DT ++>19.3. <A ++HREF="#PERLCURSES" ++>Perl Curses Modules CURSES::FORM and CURSES::WIDGETS</A ++></DT ++></DL ++></DD ++><DT ++>20. <A ++HREF="#JUSTFORFUN" ++>Just For Fun !!!</A ++></DT ++><DD ++><DL ++><DT ++>20.1. <A ++HREF="#GAMEOFLIFE" ++>The Game of Life</A ++></DT ++><DT ++>20.2. <A ++HREF="#MAGIC" ++>Magic Square</A ++></DT ++><DT ++>20.3. <A ++HREF="#HANOI" ++>Towers of Hanoi</A ++></DT ++><DT ++>20.4. <A ++HREF="#QUEENS" ++>Queens Puzzle</A ++></DT ++><DT ++>20.5. <A ++HREF="#SHUFFLE" ++>Shuffle</A ++></DT ++><DT ++>20.6. <A ++HREF="#TT" ++>Typing Tutor</A ++></DT ++></DL ++></DD ++><DT ++>21. <A ++HREF="#REF" ++>References</A ++></DT ++></DL ++></DIV ++><DIV ++CLASS="SECT1" ++><H2 ++CLASS="SECT1" ++><A ++NAME="INTRO" ++>1. Introduction</A ++></H2 ++><P ++>In the olden days of teletype terminals, terminals were away from computers and ++were connected to them through serial cables. The terminals could be configured ++by sending a series of bytes. All the capabilities (such as ++moving the cursor to a new location, erasing part of the screen, scrolling the ++screen, changing modes etc.) of terminals could be accessed through these ++series of bytes. These control seeuqnces are usually called escape sequences, ++because they start ++with an escape(0x1B) character. Even today, with proper emulation, we can send ++escape sequences to the emulator and achieve the same effect on a terminal ++window.</P ++><P ++>Suppose you wanted to print a line in color. Try typing this on your console.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>echo "^[[0;31;40mIn Color"</PRE ++><P ++>The first character is an escape character, which looks like two characters ^ ++and [. To be able to print it, you have to press CTRL+V and then the ESC key. ++All the others are normal printable characters. You should be able to see the ++string "In Color" in red. It stays that way and to revert back to the original ++mode type this.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>echo "^[[0;37;40m"</PRE ++><P ++>Now, what do these magic characters mean? Difficult to comprehend? They might ++even be different for different terminals. So the designers of UNIX invented a ++mechanism named <TT ++CLASS="LITERAL" ++>termcap</TT ++>. It is a file that ++lists all the capabilities of a particular terminal, along with the escape ++sequences needed to achieve a particular effect. In the later years, this was ++replaced by <TT ++CLASS="LITERAL" ++>terminfo</TT ++>. Without delving too ++much into details, this mechanism allows application ++programs to query the terminfo database and obtain the control characters to be ++sent to a terminal or terminal emulator.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WHATIS" ++>1.1. What is NCURSES?</A ++></H3 ++><P ++> ++You might be wondering, what the import of all this technical gibberish is. In ++the above scenario, every application program is supposed to query the terminfo ++and perform the necessary stuff (sending control characters etc.). It soon became ++difficult to manage this complexity and this gave birth to 'CURSES'. Curses is ++a pun on the name "cursor optimization". The Curses library forms a wrapper ++over working with raw terminal codes, and provides highly flexible and ++efficient API (Application Programming Interface). It provides functions to ++move the cursor, create windows, produce colors, play with mouse etc. The ++application programs need not worry about the underlying terminal capabilities.</P ++><P ++>So what is NCURSES? NCURSES is a clone of the original System V Release 4.0 ++(SVr4) curses. It is a freely distributable library, fully compatible with ++older version of curses. In short, it is a library of functions that manages ++an application's display on character-cell terminals. In the remainder of the ++document, the terms curses and ncurses are used interchangeably. </P ++><P ++>A detailed history of NCURSES can be found in the NEWS file from the source ++distribution. The current package is maintained by ++<A ++HREF="mailto:dickey@his.com" ++TARGET="_top" ++>Thomas Dickey</A ++>. ++You can contact the maintainers at <A ++HREF="mailto:bug-ncurses@gnu.org" ++TARGET="_top" ++>bug-ncurses@gnu.org</A ++>.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WHATCANWEDO" ++>1.2. What we can do with NCURSES</A ++></H3 ++><P ++>NCURSES not only creates a wrapper over terminal capabilities, but also gives a ++robust framework to create nice looking UI (User Interface)s in text mode. It ++provides functions to create windows etc. Its sister libraries panel, menu and ++form provide an extension to the basic curses library. These libraries usually ++come along with curses. One can create applications that contain multiple ++windows, menus, panels and forms. Windows can be managed independently, can ++provide 'scrollability' and even can be hidden.</P ++><P ++> ++Menus provide the user with an easy command selection option. Forms allow the ++creation of easy-to-use data entry and display windows. Panels extend the ++capabilities of ncurses to deal with overlapping and stacked windows.</P ++><P ++>These are just some of the basic things we can do with ncurses. As we move ++along, We will see all the capabilities of these libraries. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WHERETOGETIT" ++>1.3. Where to get it</A ++></H3 ++><P ++>All right, now that you know what you can do with ncurses, you must be rearing ++to get started. NCURSES is usually shipped with your installation. In case ++you don't have the library or want to compile it on your own, read on.</P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>Compiling the package</I ++></SPAN ++> </P ++><P ++>NCURSES can be obtained from <A ++HREF="ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz" ++TARGET="_top" ++>ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</A ++> or any of the ftp ++sites mentioned in <A ++HREF="http://www.gnu.org/order/ftp.html" ++TARGET="_top" ++>http://www.gnu.org/order/ftp.html</A ++>. </P ++><P ++>Read the README and INSTALL files for details on to how to install it. It ++usually involves the following operations.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive + cd ncurses&lt;version&gt; # cd to the directory + ./configure # configure the build according to your + # environment + make # make it + su root # become root +- make install # install it</font> +-</pre></td> +-</tr> +-</table> +-<p><em>Using the RPM</em></p> +-<p>NCURSES RPM can be found and downloaded from <a href= +-"http://rpmfind.net" target="_top">http://rpmfind.net</a> . The RPM +-can be installed with the following command after becoming +-root.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> rpm -i &lt;downloaded rpm&gt;</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PURPOSE" id="PURPOSE">1.4. Purpose/Scope +-of the document</a></h3> +-<p>This document is intended to be a "All in One" guide for +-programming with ncurses and its sister libraries. We graduate from +-a simple "Hello World" program to more complex form manipulation. +-No prior experience in ncurses is assumed. The writing is informal, +-but a lot of detail is provided for each of the examples.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ABOUTPROGRAMS" id="ABOUTPROGRAMS">1.5. +-About the Programs</a></h3> +-<p>All the programs in the document are available in zipped form +-<a href= +-"http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz" +-target="_top">here</a>. Unzip and untar it. The directory structure +-looks like this.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000">ncurses ++ make install # install it</PRE ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>Using the RPM </I ++></SPAN ++></P ++><P ++>NCURSES RPM can be found and downloaded from <A ++HREF="http://rpmfind.net" ++TARGET="_top" ++>http://rpmfind.net </A ++>. The RPM can be installed with the following ++command after becoming root.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> rpm -i &lt;downloaded rpm&gt;</PRE ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PURPOSE" ++>1.4. Purpose/Scope of the document</A ++></H3 ++><P ++>This document is intended to be a "All in One" guide for programming with ++ncurses and its sister libraries. We graduate from a simple "Hello World" ++program to more complex form manipulation. No prior experience in ncurses is ++assumed. The writing is informal, but a lot of detail is provided for ++each of the examples.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ABOUTPROGRAMS" ++>1.5. About the Programs</A ++></H3 ++><P ++>All the programs in the document are available in zipped form ++<A ++HREF="http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz" ++TARGET="_top" ++>here</A ++>. Unzip and untar it. The directory structure looks like this.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>ncurses + | + |----&gt; JustForFun -- just for fun programs + |----&gt; basics -- basic programs +@@ -524,16 +1290,12 @@ + | by Anuradha Ratnaweera) + |----&gt; Makefile -- the top level Makefile + |----&gt; README -- the top level README file. contains instructions +- |----&gt; COPYING -- copyright notice</font> +-</pre></td> +-</tr> +-</table> +-<p>The individual directories contain the following files.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000">Description of files in each directory ++ |----&gt; COPYING -- copyright notice</PRE ++><P ++>The individual directories contain the following files.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>Description of files in each directory + -------------------------------------- + JustForFun + | +@@ -592,73 +1354,96 @@ + |----&gt; panel_simple.c -- A simple panel example + + perl +- |----&gt; 01-10.pl -- Perl equivalents of first ten example programs</font> +-</pre></td> +-</tr> +-</table> +-<p>There is a top level Makefile included in the main directory. It +-builds all the files and puts the ready-to-use exes in demo/exe +-directory. You can also do selective make by going into the +-corresponding directory. Each directory contains a README file +-explaining the purpose of each c file in the directory.</p> +-<p>For every example, I have included path name for the file +-relative to the examples directory.</p> +-<p>If you prefer browsing individual programs, point your browser +-to <a href= +-"http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/" +-target= +-"_top">http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</a></p> +-<p>All the programs are released under the same license that is +-used by ncurses (MIT-style). This gives you the ability to do +-pretty much anything other than claiming them as yours. Feel free +-to use them in your programs as appropriate.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="OTHERFORMATS" id="OTHERFORMATS">1.6. +-Other Formats of the document</a></h3> +-<p>This howto is also availabe in various other formats on the +-tldp.org site. Here are the links to other formats of this +-document.</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="LISTFORMATS" id="LISTFORMATS">1.6.1. +-Readily available formats from tldp.org</a></h4> +-<ul> +-<li> +-<p><a href= +-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf" +-target="_top">Acrobat PDF Format</a></p> +-</li> +-<li> +-<p><a href= +-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz" +-target="_top">PostScript Format</a></p> +-</li> +-<li> +-<p><a href= +-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz" +-target="_top">In Multiple HTML pages</a></p> +-</li> +-<li> +-<p><a href= +-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html" +-target="_top">In One big HTML format</a></p> +-</li> +-</ul> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="BUILDSOURCE" id="BUILDSOURCE">1.6.2. +-Building from source</a></h4> +-<p>If above links are broken or if you want to experiment with sgml +-read on.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">&#13; Get both the source and the tar,gzipped programs, available at ++ |----&gt; 01-10.pl -- Perl equivalents of first ten example programs</PRE ++><P ++>There is a top level Makefile included in the main directory. It builds all the ++files and puts the ready-to-use exes in demo/exe directory. You can also ++do selective make by going into the corresponding directory. Each directory ++contains a README file explaining the purpose of each c file in the directory.</P ++><P ++>For every example, I have included path name for the file relative to the ++examples directory. </P ++><P ++> If you prefer browsing individual programs, point your browser to ++<A ++HREF="http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/" ++TARGET="_top" ++>http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</A ++></P ++><P ++>All the programs are released under the same license that is used by ncurses ++(MIT-style). This gives you the ability to do pretty much anything other than ++claiming them as yours. Feel free to use them in your programs as appropriate.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="OTHERFORMATS" ++>1.6. Other Formats of the document</A ++></H3 ++><P ++>This howto is also availabe in various other formats on the tldp.org site. ++Here are the links to other formats of this document.</P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="LISTFORMATS" ++>1.6.1. Readily available formats from tldp.org</A ++></H4 ++><P ++></P ++><UL ++><LI ++><P ++><A ++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf" ++TARGET="_top" ++>Acrobat PDF Format</A ++></P ++></LI ++><LI ++><P ++><A ++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz" ++TARGET="_top" ++>PostScript Format</A ++></P ++></LI ++><LI ++><P ++><A ++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz" ++TARGET="_top" ++>In Multiple HTML pages</A ++></P ++></LI ++><LI ++><P ++><A ++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html" ++TARGET="_top" ++>In One big HTML format</A ++></P ++></LI ++></UL ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="BUILDSOURCE" ++>1.6.2. Building from source</A ++></H4 ++><P ++>If above links are broken or if you want to experiment with sgml read on. ++<PRE ++CLASS="PROGRAMLISTING" ++>&#13; Get both the source and the tar,gzipped programs, available at + http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/ + NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml + http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/ +@@ -679,588 +1464,862 @@ + NCURSES-ONE-BIG-FILE.html + for ps, you would use + htmldoc --size universal -t ps --firstpage p1 -f &lt;output file name.ps&gt; +- NCURSES-ONE-BIG-FILE.html</font> +-</pre></td> +-</tr> +-</table> +-<p>See <a href="http://www.tldp.org/LDP/LDP-Author-Guide/" target= +-"_top">LDP Author guide</a> for more details. If all else failes, +-mail me at <a href="ppadala@gmail.com" target= +-"_top">ppadala@gmail.com</a></p> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="CREDITS" id="CREDITS">1.7. +-Credits</a></h3> +-<p>I thank <a href="mailto:sharath_1@usa.net" target= +-"_top">Sharath</a> and Emre Akbas for helping me with few sections. +-The introduction was initially written by sharath. I rewrote it +-with few excerpts taken from his initial work. Emre helped in +-writing printw and scanw sections.</p> +-<p>Perl equivalents of the example programs are contributed by +-<a href="mailto:Aratnaweera@virtusa.com" target="_top">Anuradha +-Ratnaweera</a>.</p> +-<p>Then comes <a href="mailto:parimi@ece.arizona.edu" target= +-"_top">Ravi Parimi</a>, my dearest friend, who has been on this +-project before even one line was written. He constantly bombarded +-me with suggestions and patiently reviewed the whole text. He also +-checked each program on Linux and Solaris.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WISHLIST" id="WISHLIST">1.8. Wish +-List</a></h3> +-<p>This is the wish list, in the order of priority. If you have a +-wish or you want to work on completing the wish, mail <a href= +-"mailto:ppadala@gmail.com" target="_top">me</a>.</p> +-<ul> +-<li> +-<p>Add examples to last parts of forms section.</p> +-</li> +-<li> +-<p>Prepare a Demo showing all the programs and allow the user to +-browse through description of each program. Let the user compile +-and see the program in action. A dialog based interface is +-preferred.</p> +-</li> +-<li> +-<p>Add debug info. _tracef, _tracemouse stuff.</p> +-</li> +-<li> +-<p>Accessing termcap, terminfo using functions provided by ncurses +-package.</p> +-</li> +-<li> +-<p>Working on two terminals simultaneously.</p> +-</li> +-<li> +-<p>Add more stuff to miscellaneous section.</p> +-</li> +-</ul> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="COPYRIGHT" id="COPYRIGHT">1.9. +-Copyright</a></h3> +-<p>Copyright &copy; 2001 by Pradeep Padala.</p> +-<p>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:</p> +-<p>The above copyright notice and this permission notice shall be +-included in all copies or substantial portions of the Software.</p> +-<p>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.</p> +-<p>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.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="HELLOWORLD" id="HELLOWORLD">2. Hello +-World !!!</a></h2> +-<p>Welcome to the world of curses. Before we plunge into the +-library and look into its various features, let's write a simple +-program and say hello to the world.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="COMPILECURSES" id="COMPILECURSES">2.1. +-Compiling With the NCURSES Library</a></h3> +-<p>To use ncurses library functions, you have to include ncurses.h +-in your programs. To link the program with ncurses the flag +--lncurses should be added.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> #include &lt;ncurses.h&gt; ++ NCURSES-ONE-BIG-FILE.html</PRE ++></P ++><P ++>See <A ++HREF="http://www.tldp.org/LDP/LDP-Author-Guide/" ++TARGET="_top" ++>LDP Author guide</A ++> for more details. If all else failes, mail me at ++<A ++HREF="ppadala@gmail.com" ++TARGET="_top" ++>ppadala@gmail.com</A ++></P ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="CREDITS" ++>1.7. Credits</A ++></H3 ++><P ++>I thank <A ++HREF="mailto:sharath_1@usa.net" ++TARGET="_top" ++>Sharath</A ++> and Emre Akbas for ++helping me with few sections. The introduction was initially written by sharath. ++I rewrote it with few excerpts taken from his initial work. Emre helped in ++writing printw and scanw sections.</P ++><P ++>Perl equivalents of the example programs are contributed by <A ++HREF="mailto:Aratnaweera@virtusa.com" ++TARGET="_top" ++>Anuradha Ratnaweera</A ++>. </P ++><P ++>Then comes <A ++HREF="mailto:parimi@ece.arizona.edu" ++TARGET="_top" ++>Ravi Parimi</A ++>, my ++dearest friend, who has been on this project before even one line was written. ++He constantly bombarded me with suggestions and patiently reviewed the whole ++text. He also checked each program on Linux and Solaris. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WISHLIST" ++>1.8. Wish List</A ++></H3 ++><P ++>This is the wish list, in the order of priority. If you have a wish or you want ++to work on completing the wish, mail <A ++HREF="mailto:ppadala@gmail.com" ++TARGET="_top" ++>me</A ++>. </P ++><P ++></P ++><UL ++><LI ++><P ++>Add examples to last parts of forms section.</P ++></LI ++><LI ++><P ++>Prepare a Demo showing all the programs and allow the user to browse through ++description of each program. Let the user compile and see the program in action. ++A dialog based interface is preferred.</P ++></LI ++><LI ++><P ++>Add debug info. _tracef, _tracemouse stuff.</P ++></LI ++><LI ++><P ++>Accessing termcap, terminfo using functions provided by ncurses ++package.</P ++></LI ++><LI ++><P ++>Working on two terminals simultaneously.</P ++></LI ++><LI ++><P ++>Add more stuff to miscellaneous section.</P ++></LI ++></UL ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="COPYRIGHT" ++>1.9. Copyright</A ++></H3 ++><P ++>Copyright &copy; 2001 by Pradeep Padala. </P ++><P ++>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:</P ++><P ++>The above copyright notice and this permission notice shall be included in all ++copies or substantial portions of the Software.</P ++><P ++>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.</P ++><P ++>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. </P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="HELLOWORLD" ++>2. Hello World !!!</A ++></H2 ++><P ++>Welcome to the world of curses. Before we plunge into the library and look into ++its various features, let's write a simple program and say ++hello to the world. </P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="COMPILECURSES" ++>2.1. Compiling With the NCURSES Library</A ++></H3 ++><P ++>To use ncurses library functions, you have to include ncurses.h in your ++programs. To link the ++program with ncurses the flag -lncurses should be added.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> #include &lt;ncurses.h&gt; + . + . + . + +- compile and link: gcc &lt;program file&gt; -lncurses</font> +-</pre></td> +-</tr> +-</table> +-<div class="EXAMPLE"><a name="BHW" id="BHW"></a> +-<p><b>Example 1. The Hello World !!! Program</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++ compile and link: gcc &lt;program file&gt; -lncurses</PRE ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BHW" ++></A ++><P ++><B ++>Example 1. The Hello World !!! Program </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + int main() +-{ +- initscr(); /* Start curses mode */ +- printw("Hello World !!!"); /* Print Hello World */ +- refresh(); /* Print it on to the real screen */ +- getch(); /* Wait for user input */ +- endwin(); /* End curses mode */ +- +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="DISSECTION" id="DISSECTION">2.2. +-Dissection</a></h3> +-<p>The above program prints "Hello World !!!" to the screen and +-exits. This program shows how to initialize curses and do screen +-manipulation and end curses mode. Let's dissect it line by +-line.</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="ABOUT-INITSCR" id="ABOUT-INITSCR">2.2.1. +-About initscr()</a></h4> +-<p>The function initscr() initializes the terminal in curses mode. +-In some implementations, it clears the screen and presents a blank +-screen. To do any screen manipulation using curses package this has +-to be called first. This function initializes the curses system and +-allocates memory for our present window (called <var class= +-"LITERAL">stdscr</var>) and some other data-structures. Under +-extreme cases this function might fail due to insufficient memory +-to allocate memory for curses library's data structures.</p> +-<p>After this is done, we can do a variety of initializations to +-customize our curses settings. These details will be explained +-<a href="#INIT">later</a> .</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="MYST-REFRESH" id="MYST-REFRESH">2.2.2. +-The mysterious refresh()</a></h4> +-<p>The next line printw prints the string "Hello World !!!" on to +-the screen. This function is analogous to normal printf in all +-respects except that it prints the data on a window called stdscr +-at the current (y,x) co-ordinates. Since our present co-ordinates +-are at 0,0 the string is printed at the left hand corner of the +-window.</p> +-<p>This brings us to that mysterious refresh(). Well, when we +-called printw the data is actually written to an imaginary window, +-which is not updated on the screen yet. The job of printw is to +-update a few flags and data structures and write the data to a +-buffer corresponding to stdscr. In order to show it on the screen, +-we need to call refresh() and tell the curses system to dump the +-contents on the screen.</p> +-<p>The philosophy behind all this is to allow the programmer to do +-multiple updates on the imaginary screen or windows and do a +-refresh once all his screen update is done. refresh() checks the +-window and updates only the portion which has been changed. This +-improves performance and offers greater flexibility too. But, it is +-sometimes frustrating to beginners. A common mistake committed by +-beginners is to forget to call refresh() after they did some update +-through printw() class of functions. I still forget to add it +-sometimes :-)</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="ABOUT-ENDWIN" id="ABOUT-ENDWIN">2.2.3. +-About endwin()</a></h4> +-<p>And finally don't forget to end the curses mode. Otherwise your +-terminal might behave strangely after the program quits. endwin() +-frees the memory taken by curses sub-system and its data structures +-and puts the terminal in normal mode. This function must be called +-after you are done with the curses mode.</p> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="GORY" id="GORY">3. The Gory +-Details</a></h2> +-<p>Now that we have seen how to write a simple curses program let's +-get into the details. There are many functions that help customize +-what you see on screen and many features which can be put to full +-use.</p> +-<p>Here we go...</p> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="INIT" id="INIT">4. +-Initialization</a></h2> +-<p>We now know that to initialize curses system the function +-initscr() has to be called. There are functions which can be called +-after this initialization to customize our curses session. We may +-ask the curses system to set the terminal in raw mode or initialize +-color or initialize the mouse etc.. Let's discuss some of the +-functions that are normally called immediately after initscr();</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ABOUTINIT" id="ABOUTINIT">4.1. +-Initialization functions</a></h3> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="RAWCBREAK" id="RAWCBREAK">4.2. raw() and +-cbreak()</a></h3> +-<p>Normally the terminal driver buffers the characters a user types +-until a new line or carriage return is encountered. But most +-programs require that the characters be available as soon as the +-user types them. The above two functions are used to disable line +-buffering. The difference between these two functions is in the way +-control characters like suspend (CTRL-Z), interrupt and quit +-(CTRL-C) are passed to the program. In the raw() mode these +-characters are directly passed to the program without generating a +-signal. In the <var class="LITERAL">cbreak()</var> mode these +-control characters are interpreted as any other character by the +-terminal driver. I personally prefer to use raw() as I can exercise +-greater control over what the user does.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ECHONOECHO" id="ECHONOECHO">4.3. echo() +-and noecho()</a></h3> +-<p>These functions control the echoing of characters typed by the +-user to the terminal. <var class="LITERAL">noecho()</var> switches +-off echoing. The reason you might want to do this is to gain more +-control over echoing or to suppress unnecessary echoing while +-taking input from the user through the getch() etc. functions. Most +-of the interactive programs call <var class= +-"LITERAL">noecho()</var> at initialization and do the echoing of +-characters in a controlled manner. It gives the programmer the +-flexibility of echoing characters at any place in the window +-without updating current (y,x) co-ordinates.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="KEYPAD" id="KEYPAD">4.4. +-keypad()</a></h3> +-<p>This is my favorite initialization function. It enables the +-reading of function keys like F1, F2, arrow keys etc. Almost every +-interactive program enables this, as arrow keys are a major part of +-any User Interface. Do <var class="LITERAL">keypad(stdscr, +-TRUE)</var> to enable this feature for the regular screen (stdscr). +-You will learn more about key management in later sections of this +-document.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="HALFDELAY" id="HALFDELAY">4.5. +-halfdelay()</a></h3> +-<p>This function, though not used very often, is a useful one at +-times. halfdelay()is called to enable the half-delay mode, which is +-similar to the cbreak() mode in that characters typed are +-immediately available to program. However, it waits for 'X' tenths +-of a second for input and then returns ERR, if no input is +-available. 'X' is the timeout value passed to the function +-halfdelay(). This function is useful when you want to ask the user +-for input, and if he doesn't respond with in certain time, we can +-do some thing else. One possible example is a timeout at the +-password prompt.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MISCINIT" id="MISCINIT">4.6. +-Miscellaneous Initialization functions</a></h3> +-<p>There are few more functions which are called at initialization +-to customize curses behavior. They are not used as extensively as +-those mentioned above. Some of them are explained where +-appropriate.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="INITEX" id="INITEX">4.7. An +-Example</a></h3> +-<p>Let's write a program which will clarify the usage of these +-functions.</p> +-<div class="EXAMPLE"><a name="BINFU" id="BINFU"></a> +-<p><b>Example 2. Initialization Function Usage example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++{ ++ initscr(); /* Start curses mode */ ++ printw("Hello World !!!"); /* Print Hello World */ ++ refresh(); /* Print it on to the real screen */ ++ getch(); /* Wait for user input */ ++ endwin(); /* End curses mode */ ++ ++ return 0; ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="DISSECTION" ++>2.2. Dissection</A ++></H3 ++><P ++> ++The above program prints "Hello World !!!" to the screen and exits. This ++program shows how to initialize curses and do screen manipulation and ++end curses mode. Let's dissect it line by line. </P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="ABOUT-INITSCR" ++>2.2.1. About initscr()</A ++></H4 ++><P ++>The function initscr() initializes the terminal in curses mode. In some ++implementations, it clears the screen and presents a blank screen. To do any ++screen manipulation using curses package this has to be called first. This ++function initializes the curses system and allocates memory for our present ++window (called <TT ++CLASS="LITERAL" ++>stdscr</TT ++>) and some other data-structures. Under extreme ++cases this function might fail due to insufficient memory to allocate memory ++for curses library's data structures. </P ++><P ++> ++After this is done, we can do a variety of initializations to customize ++our curses settings. These details will be explained <A ++HREF="#INIT" ++>later </A ++>.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="MYST-REFRESH" ++>2.2.2. The mysterious refresh()</A ++></H4 ++><P ++>The next line printw prints the string "Hello World !!!" on to the screen. This ++function is analogous to normal printf in all respects except that it prints ++the data on a window called stdscr at the current (y,x) co-ordinates. Since our ++present co-ordinates are at 0,0 the string is printed at the left hand corner ++of the window.</P ++><P ++>This brings us to that mysterious refresh(). Well, when we called printw ++the data is actually written to an imaginary window, which is not updated ++on the screen yet. The job of printw is to update a few flags ++and data structures and write the data to a buffer corresponding to stdscr. ++In order to show it on the screen, we need to call refresh() and tell the ++curses system to dump the contents on the screen.</P ++><P ++>The philosophy behind all this is to allow the programmer to do multiple updates ++on the imaginary screen or windows and do a refresh once all his screen update ++is done. refresh() checks the window and updates only the portion which has been ++changed. This improves performance and offers greater flexibility too. But, it is ++sometimes frustrating to beginners. A common mistake committed by beginners is ++to forget to call refresh() after they did some update through printw() class of ++functions. I still forget to add it sometimes :-) </P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="ABOUT-ENDWIN" ++>2.2.3. About endwin()</A ++></H4 ++><P ++>And finally don't forget to end the curses mode. Otherwise your terminal might ++behave strangely after the program quits. endwin() frees the memory taken by ++curses sub-system and its data structures and puts the terminal in normal ++mode. This function must be called after you are done with the curses mode. </P ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="GORY" ++>3. The Gory Details</A ++></H2 ++><P ++>Now that we have seen how to write a simple curses program let's get into the ++details. There are many functions that help customize what you see on screen and ++many features which can be put to full use. </P ++><P ++>Here we go...</P ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="INIT" ++>4. Initialization</A ++></H2 ++><P ++>We now know that to initialize curses system the function initscr() has to be ++called. There are functions which can be called after this initialization to ++customize our curses session. We may ask the curses system to set the terminal ++in raw mode or initialize color or initialize the mouse etc.. Let's discuss some ++of the functions that are normally called immediately after initscr();</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ABOUTINIT" ++>4.1. Initialization functions</A ++></H3 ++><P ++> </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="RAWCBREAK" ++>4.2. raw() and cbreak()</A ++></H3 ++><P ++>Normally the terminal driver buffers the characters a user types until a new ++line or carriage return is encountered. But most programs require that the ++characters be available as soon as the user types them. The above two functions ++are used to disable line buffering. The difference between these two functions ++is in the way control characters like suspend (CTRL-Z), interrupt and quit ++(CTRL-C) are passed to the program. In the raw() mode these characters are ++directly passed to the program without generating a signal. In the ++<TT ++CLASS="LITERAL" ++>cbreak()</TT ++> mode these control characters are ++interpreted as any other character by the terminal driver. I personally prefer ++to use raw() as I can exercise greater control over what the user does.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ECHONOECHO" ++>4.3. echo() and noecho()</A ++></H3 ++><P ++> ++These functions control the echoing of characters typed by the user to the ++terminal. <TT ++CLASS="LITERAL" ++>noecho()</TT ++> switches off echoing. The ++reason you might want to do this is to gain more control over echoing or to ++suppress unnecessary echoing while taking input from the user through the ++getch() etc. functions. Most of the interactive programs call ++<TT ++CLASS="LITERAL" ++>noecho()</TT ++> at initialization and do the echoing ++of characters in a controlled manner. It gives the programmer the flexibility ++of echoing characters at any place in the window without updating current (y,x) ++co-ordinates. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="KEYPAD" ++>4.4. keypad()</A ++></H3 ++><P ++>This is my favorite initialization function. It enables the reading of function ++keys like F1, F2, arrow keys etc. Almost every interactive program enables this, ++as arrow keys are a major part of any User Interface. Do ++<TT ++CLASS="LITERAL" ++>keypad(stdscr, TRUE) </TT ++> to enable this feature ++for the regular screen (stdscr). You will learn more about key management in ++later sections of this document.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="HALFDELAY" ++>4.5. halfdelay()</A ++></H3 ++><P ++>This function, though not used very often, is a useful one at times. ++halfdelay()is called to enable the half-delay mode, which is similar to the ++cbreak() mode in that characters typed are immediately available to program. ++However, it waits for 'X' tenths of a second for input and then returns ERR, if ++no input is available. 'X' is the timeout value passed to the function ++halfdelay(). This function is useful when you want to ask the user for input, ++and if he doesn't respond with in certain time, we can do some thing else. One ++possible example is a timeout at the password prompt. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MISCINIT" ++>4.6. Miscellaneous Initialization functions</A ++></H3 ++><P ++>There are few more functions which are called at initialization to ++customize curses behavior. They are not used as extensively as those mentioned ++above. Some of them are explained where appropriate.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="INITEX" ++>4.7. An Example</A ++></H3 ++><P ++>Let's write a program which will clarify the usage of these functions.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BINFU" ++></A ++><P ++><B ++>Example 2. Initialization Function Usage example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + int main() +-{ int ch; ++{ int ch; + +- initscr(); /* Start curses mode */ +- raw(); /* Line buffering disabled */ +- keypad(stdscr, TRUE); /* We get F1, F2 etc.. */ +- noecho(); /* Don't echo() while we do getch */ +- +- printw("Type any character to see it in bold\n"); +- ch = getch(); /* If raw() hadn't been called +- * we have to press enter before it +- * gets to the program */ +- if(ch == KEY_F(1)) /* Without keypad enabled this will */ +- printw("F1 Key pressed");/* not get to us either */ +- /* Without noecho() some ugly escape +- * charachters might have been printed +- * on screen */ +- else +- { printw("The pressed key is "); +- attron(A_BOLD); +- printw("%c", ch); +- attroff(A_BOLD); +- } +- refresh(); /* Print it on to the real screen */ +- getch(); /* Wait for user input */ +- endwin(); /* End curses mode */ +- +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>This program is self-explanatory. But I used functions which +-aren't explained yet. The function <var class= +-"LITERAL">getch()</var> is used to get a character from user. It is +-equivalent to normal <var class="LITERAL">getchar()</var> except +-that we can disable the line buffering to avoid &lt;enter&gt; after +-input. Look for more about <var class="LITERAL">getch()</var>and +-reading keys in the <a href="#KEYS">key management section</a> . +-The functions attron and attroff are used to switch some attributes +-on and off respectively. In the example I used them to print the +-character in bold. These functions are explained in detail +-later.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="AWORDWINDOWS" id="AWORDWINDOWS">5. A +-Word about Windows</a></h2> +-<p>Before we plunge into the myriad ncurses functions, let me clear +-few things about windows. Windows are explained in detail in +-following <a href="#WINDOWS">sections</a></p> +-<p>A Window is an imaginary screen defined by curses system. A +-window does not mean a bordered window which you usually see on +-Win9X platforms. When curses is initialized, it creates a default +-window named <var class="LITERAL">stdscr</var> which represents +-your 80x25 (or the size of window in which you are running) screen. +-If you are doing simple tasks like printing few strings, reading +-input etc., you can safely use this single window for all of your +-purposes. You can also create windows and call functions which +-explicitly work on the specified window.</p> +-<p>For example, if you call</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> printw("Hi There !!!"); +- refresh();</font> +-</pre></td> +-</tr> +-</table> +-<p>It prints the string on stdscr at the present cursor position. +-Similarly the call to refresh(), works on stdscr only.</p> +-<p>Say you have created <a href="#WINDOWS">windows</a> then you +-have to call a function with a 'w' added to the usual function.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> wprintw(win, "Hi There !!!"); +- wrefresh(win);</font> +-</pre></td> +-</tr> +-</table> +-<p>As you will see in the rest of the document, naming of functions +-follow the same convention. For each function there usually are +-three more functions.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> printw(string); /* Print on stdscr at present cursor position */ ++ initscr(); /* Start curses mode */ ++ raw(); /* Line buffering disabled */ ++ keypad(stdscr, TRUE); /* We get F1, F2 etc.. */ ++ noecho(); /* Don't echo() while we do getch */ ++ ++ printw("Type any character to see it in bold\n"); ++ ch = getch(); /* If raw() hadn't been called ++ * we have to press enter before it ++ * gets to the program */ ++ if(ch == KEY_F(1)) /* Without keypad enabled this will */ ++ printw("F1 Key pressed");/* not get to us either */ ++ /* Without noecho() some ugly escape ++ * charachters might have been printed ++ * on screen */ ++ else ++ { printw("The pressed key is "); ++ attron(A_BOLD); ++ printw("%c", ch); ++ attroff(A_BOLD); ++ } ++ refresh(); /* Print it on to the real screen */ ++ getch(); /* Wait for user input */ ++ endwin(); /* End curses mode */ ++ ++ return 0; ++}</SPAN ++></PRE ++></DIV ++><P ++>This program is self-explanatory. But I used functions which aren't explained ++yet. The function <TT ++CLASS="LITERAL" ++>getch()</TT ++> is used to get a ++character from user. It is equivalent to normal ++<TT ++CLASS="LITERAL" ++>getchar()</TT ++> except that we can disable the line ++buffering to avoid &lt;enter&gt; after input. Look for more about ++<TT ++CLASS="LITERAL" ++>getch()</TT ++>and reading keys in the <A ++HREF="#KEYS" ++> key management section </A ++>. The functions attron and attroff ++are used to switch some attributes on and off respectively. In the example I ++used them to print the character in bold. These functions are explained in detail ++later.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="AWORDWINDOWS" ++>5. A Word about Windows</A ++></H2 ++><P ++> ++Before we plunge into the myriad ncurses functions, let me clear few things ++about windows. Windows are explained in detail in following <A ++HREF="#WINDOWS" ++> sections </A ++></P ++><P ++>A Window is an imaginary screen defined by curses system. A window does not mean ++a bordered window which you usually see on Win9X platforms. When curses is ++initialized, it creates a default window named ++<TT ++CLASS="LITERAL" ++>stdscr</TT ++> which represents your 80x25 (or the size ++of window in which you are running) screen. If you are doing simple tasks like ++printing few strings, reading input etc., you can safely use this single window ++for all of your purposes. You can also create windows and call functions which ++explicitly work on the specified window.</P ++><P ++>For example, if you call</P ++><PRE ++CLASS="PROGRAMLISTING" ++> printw("Hi There !!!"); ++ refresh();</PRE ++><P ++>It prints the string on stdscr at the present cursor position. Similarly the ++call to refresh(), works on stdscr only. </P ++><P ++>Say you have created <A ++HREF="#WINDOWS" ++>windows</A ++> then you have to ++call a function with a 'w' added to the usual function.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> wprintw(win, "Hi There !!!"); ++ wrefresh(win);</PRE ++><P ++>As you will see in the rest of the document, naming of functions follow the ++same convention. For each function there usually are three more functions.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> printw(string); /* Print on stdscr at present cursor position */ + mvprintw(y, x, string);/* Move to (y, x) then print string */ + wprintw(win, string); /* Print on window win at present cursor position */ + /* in the window */ + mvwprintw(win, y, x, string); /* Move to (y, x) relative to window */ +- /* co-ordinates and then print */</font> +-</pre></td> +-</tr> +-</table> +-<p>Usually the w-less functions are macros which expand to +-corresponding w-function with stdscr as the window parameter.</p> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="PRINTW" id="PRINTW">6. Output +-functions</a></h2> +-<p>I guess you can't wait any more to see some action. Back to our +-odyssey of curses functions. Now that curses is initialized, let's +-interact with world.</p> +-<p>There are three classes of functions which you can use to do +-output on screen.</p> +-<ol type="1"> +-<li> +-<p>addch() class: Print single character with attributes</p> +-</li> +-<li> +-<p>printw() class: Print formatted output similar to printf()</p> +-</li> +-<li> +-<p>addstr() class: Print strings</p> +-</li> +-</ol> +-<p>These functions can be used interchangeably and it's a matter of +-style as to which class is used. Let's see each one in detail.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ADDCHCLASS" id="ADDCHCLASS">6.1. addch() +-class of functions</a></h3> +-<p>These functions put a single character into the current cursor +-location and advance the position of the cursor. You can give the +-character to be printed but they usually are used to print a +-character with some attributes. Attributes are explained in detail +-in later <a href="#ATTRIB">sections</a> of the document. If a +-character is associated with an attribute(bold, reverse video +-etc.), when curses prints the character, it is printed in that +-attribute.</p> +-<p>In order to combine a character with some attributes, you have +-two options:</p> +-<ul> +-<li> +-<p>By OR'ing a single character with the desired attribute macros. +-These attribute macros could be found in the header file +-<var class="LITERAL">ncurses.h</var>. For example, you want to +-print a character ch(of type char) bold and underlined, you would +-call addch() as below.</p> +-<table border="0" bgcolor="#E0E0E0" width="90%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> addch(ch | A_BOLD | A_UNDERLINE);</font> +-</pre></td> +-</tr> +-</table> +-</li> +-<li> +-<p>By using functions like <var class= +-"LITERAL">attrset(),attron(),attroff()</var>. These functions are +-explained in the <a href="#ATTRIB">Attributes</a> section. Briefly, +-they manipulate the current attributes of the given window. Once +-set, the character printed in the window are associated with the +-attributes until it is turned off.</p> +-</li> +-</ul> +-<p>Additionally, <var class="LITERAL">curses</var> provides some +-special characters for character-based graphics. You can draw +-tables, horizontal or vertical lines, etc. You can find all +-avaliable characters in the header file <var class= +-"LITERAL">ncurses.h</var>. Try looking for macros beginning with +-<var class="LITERAL">ACS_</var> in this file.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="AEN298" id="AEN298">6.2. mvaddch(), +-waddch() and mvwaddch()</a></h3> +-<p><var class="LITERAL">mvaddch()</var> is used to move the cursor +-to a given point, and then print. Thus, the calls:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> move(row,col); /* moves the cursor to row<em>th</em> row and col<em>th</em> column */ +- addch(ch);</font> +-</pre></td> +-</tr> +-</table> ++ /* co-ordinates and then print */</PRE ++><P ++>Usually the w-less functions are macros which expand to corresponding w-function ++with stdscr as the window parameter.</P ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="PRINTW" ++>6. Output functions</A ++></H2 ++><P ++>I guess you can't wait any more to see some action. Back to our odyssey of ++curses functions. Now that curses is initialized, let's interact with ++world.</P ++><P ++>There are three classes of functions which you can use to do output on screen. ++<P ++></P ++><OL ++TYPE="1" ++><LI ++><P ++>addch() class: Print single character with attributes </P ++></LI ++><LI ++><P ++>printw() class: Print formatted output similar to printf()</P ++></LI ++><LI ++><P ++>addstr() class: Print strings</P ++></LI ++></OL ++></P ++><P ++>These functions can be used interchangeably and it's a matter of style as to ++which class is used. Let's see each one in detail.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ADDCHCLASS" ++>6.1. addch() class of functions</A ++></H3 ++><P ++>These functions put a single character into the current cursor location and ++advance the position of the cursor. You can give the character to be printed but ++they usually are used to print a character with some attributes. Attributes are ++explained in detail in later <A ++HREF="#ATTRIB" ++> sections </A ++> of the ++document. If a character is associated with an attribute(bold, reverse video ++etc.), when curses prints the character, it is printed in that attribute.</P ++><P ++>In order to combine a character with some attributes, you have two options:</P ++><P ++></P ++><UL ++><LI ++><P ++>By OR'ing a single character with the desired attribute macros. These attribute ++macros could be found in the header file ++<TT ++CLASS="LITERAL" ++>ncurses.h</TT ++>. For example, you want to print a ++character ch(of type char) bold and underlined, you would call addch() as below. ++<PRE ++CLASS="PROGRAMLISTING" ++> addch(ch | A_BOLD | A_UNDERLINE);</PRE ++></P ++></LI ++><LI ++><P ++>By using functions like <TT ++CLASS="LITERAL" ++>attrset(),attron(),attroff()</TT ++>. These functions are explained in the <A ++HREF="#ATTRIB" ++>Attributes</A ++> section. Briefly, they manipulate the current attributes of ++the given window. Once set, the character printed in the window are associated ++with the attributes until it is turned off.</P ++></LI ++></UL ++><P ++>Additionally, <TT ++CLASS="LITERAL" ++>curses</TT ++> provides some special ++characters for character-based graphics. You can draw tables, horizontal or ++vertical lines, etc. You can find all avaliable characters in the header file ++<TT ++CLASS="LITERAL" ++>ncurses.h</TT ++>. Try looking for macros beginning ++with <TT ++CLASS="LITERAL" ++>ACS_</TT ++> in this file. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="AEN298" ++>6.2. mvaddch(), waddch() and mvwaddch()</A ++></H3 ++><P ++><TT ++CLASS="LITERAL" ++>mvaddch()</TT ++> is used to move the cursor to a ++given point, and then print. Thus, the calls: ++<PRE ++CLASS="PROGRAMLISTING" ++> move(row,col); /* moves the cursor to row<SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>th</I ++></SPAN ++> row and col<SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>th</I ++></SPAN ++> column */ ++ addch(ch);</PRE ++> + can be replaced by +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> mvaddch(row,col,ch);</font> +-</pre></td> +-</tr> +-</table> +-<p><var class="LITERAL">waddch()</var> is similar to <var class= +-"LITERAL">addch()</var>, except that it adds a character into the +-given window. (Note that <var class="LITERAL">addch()</var> adds a +-character into the window <var class="LITERAL">stdscr</var>.)</p> +-<p>In a similar fashion <var class="LITERAL">mvwaddch()</var> +-function is used to add a character into the given window at the +-given coordinates.</p> +-<p>Now, we are familiar with the basic output function <var class= +-"LITERAL">addch()</var>. But, if we want to print a string, it +-would be very annoying to print it character by character. +-Fortunately, <var class="LITERAL">ncurses</var> provides +-<var class="LITERAL">printf</var><em>-like</em> or <var class= +-"LITERAL">puts</var><em>-like</em> functions.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PRINTWCLASS" id="PRINTWCLASS">6.3. +-printw() class of functions</a></h3> +-<p>These functions are similar to <var class= +-"LITERAL">printf()</var> with the added capability of printing at +-any position on the screen.</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="PRINTWMVPRINTW" id= +-"PRINTWMVPRINTW">6.3.1. printw() and mvprintw</a></h4> +-<p>These two functions work much like <var class= +-"LITERAL">printf()</var>. <var class="LITERAL">mvprintw()</var> can +-be used to move the cursor to a position and then print. If you +-want to move the cursor first and then print using <var class= +-"LITERAL">printw()</var> function, use <var class= +-"LITERAL">move()</var> first and then use <var class= +-"LITERAL">printw()</var> though I see no point why one should avoid +-using <var class="LITERAL">mvprintw()</var>, you have the +-flexibility to manipulate.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="WPRINTWMVWPRINTW" id= +-"WPRINTWMVWPRINTW">6.3.2. wprintw() and mvwprintw</a></h4> +-<p>These two functions are similar to above two except that they +-print in the corresponding window given as argument.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="VWPRINTW" id="VWPRINTW">6.3.3. +-vwprintw()</a></h4> +-<p>This function is similar to <var class= +-"LITERAL">vprintf()</var>. This can be used when variable number of +-arguments are to be printed.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="SIMPLEPRINTWEX" id= +-"SIMPLEPRINTWEX">6.3.4. A Simple printw example</a></h4> +-<div class="EXAMPLE"><a name="BPREX" id="BPREX"></a> +-<p><b>Example 3. A Simple printw example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */ +-#include &lt;string.h&gt; ++<PRE ++CLASS="PROGRAMLISTING" ++> mvaddch(row,col,ch);</PRE ++></P ++><P ++><TT ++CLASS="LITERAL" ++>waddch()</TT ++> is similar to ++<TT ++CLASS="LITERAL" ++>addch()</TT ++>, except that it adds a character into ++the given window. (Note that <TT ++CLASS="LITERAL" ++>addch()</TT ++> adds a ++character into the window <TT ++CLASS="LITERAL" ++>stdscr</TT ++>.)</P ++><P ++>In a similar fashion <TT ++CLASS="LITERAL" ++>mvwaddch()</TT ++> function is ++used to add a character into the given window at the given coordinates.</P ++><P ++>Now, we are familiar with the basic output function ++<TT ++CLASS="LITERAL" ++>addch()</TT ++>. But, if we want to print a string, it ++would be very annoying to print it character by character. Fortunately, ++<TT ++CLASS="LITERAL" ++>ncurses</TT ++> provides <TT ++CLASS="LITERAL" ++>printf</TT ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>-like</I ++></SPAN ++> or ++<TT ++CLASS="LITERAL" ++>puts</TT ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>-like</I ++></SPAN ++> functions.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PRINTWCLASS" ++>6.3. printw() class of functions</A ++></H3 ++><P ++>These functions are similar to <TT ++CLASS="LITERAL" ++>printf()</TT ++> with ++the added capability of printing at any position on the screen. </P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="PRINTWMVPRINTW" ++>6.3.1. printw() and mvprintw</A ++></H4 ++><P ++>These two functions work much like <TT ++CLASS="LITERAL" ++>printf()</TT ++>. ++<TT ++CLASS="LITERAL" ++>mvprintw()</TT ++> can be used to move the cursor to a ++position and then print. If you want to move the cursor first and then print ++using <TT ++CLASS="LITERAL" ++>printw()</TT ++> function, use ++<TT ++CLASS="LITERAL" ++>move() </TT ++> first and then use ++<TT ++CLASS="LITERAL" ++>printw()</TT ++> though I see no point why one should ++avoid using <TT ++CLASS="LITERAL" ++>mvprintw()</TT ++>, you have the ++flexibility to manipulate. </P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="WPRINTWMVWPRINTW" ++>6.3.2. wprintw() and mvwprintw</A ++></H4 ++><P ++>These two functions are similar to above two except that they print in the ++corresponding window given as argument. </P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="VWPRINTW" ++>6.3.3. vwprintw()</A ++></H4 ++><P ++>This function is similar to <TT ++CLASS="LITERAL" ++>vprintf()</TT ++>. This can ++be used when variable number of arguments are to be printed.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="SIMPLEPRINTWEX" ++>6.3.4. A Simple printw example</A ++></H4 ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BPREX" ++></A ++><P ++><B ++>Example 3. A Simple printw example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; /* ncurses.h includes stdio.h */ ++#include &#60;string.h&#62; + + int main() + { +- char mesg[]="Just a string"; /* message to be appeared on the screen */ +- int row,col; /* to store the number of rows and * +- * the number of colums of the screen */ +- initscr(); /* start the curses mode */ +- getmaxyx(stdscr,row,col); /* get the number of rows and columns */ ++ char mesg[]="Just a string"; /* message to be appeared on the screen */ ++ int row,col; /* to store the number of rows and * ++ * the number of colums of the screen */ ++ initscr(); /* start the curses mode */ ++ getmaxyx(stdscr,row,col); /* get the number of rows and columns */ + mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg); +- /* print the message at the center of the screen */ ++ /* print the message at the center of the screen */ + mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col); + printw("Try resizing your window(if possible) and then run this program again"); + refresh(); +@@ -1268,192 +2327,302 @@ + endwin(); + + return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Above program demonstrates how easy it is to use <var class= +-"LITERAL">printw</var>. You just feed the coordinates and the +-message to be appeared on the screen, then it does what you +-want.</p> +-<p>The above program introduces us to a new function <var class= +-"LITERAL">getmaxyx()</var>, a macro defined in <var class= +-"LITERAL">ncurses.h</var>. It gives the number of columns and the +-number of rows in a given window. <var class= +-"LITERAL">getmaxyx()</var> does this by updating the variables +-given to it. Since <var class="LITERAL">getmaxyx()</var> is not a +-function we don't pass pointers to it, we just give two integer +-variables.</p> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ADDSTRCLASS" id="ADDSTRCLASS">6.4. +-addstr() class of functions</a></h3> +-<p><var class="LITERAL">addstr()</var> is used to put a character +-string into a given window. This function is similar to calling +-<var class="LITERAL">addch()</var> once for each character in a +-given string. This is true for all output functions. There are +-other functions from this family such as <var class= +-"LITERAL">mvaddstr(),mvwaddstr()</var> and <var class= +-"LITERAL">waddstr()</var>, which obey the naming convention of +-curses.(e.g. mvaddstr() is similar to the respective calls move() +-and then addstr().) Another function of this family is addnstr(), +-which takes an integer parameter(say n) additionally. This function +-puts at most n characters into the screen. If n is negative, then +-the entire string will be added.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ACAUTION" id="ACAUTION">6.5. A word of +-caution</a></h3> +-<p>All these functions take y co-ordinate first and then x in their +-arguments. A common mistake by beginners is to pass x,y in that +-order. If you are doing too many manipulations of (y,x) +-co-ordinates, think of dividing the screen into windows and +-manipulate each one separately. Windows are explained in the +-<a href="#WINDOWS">windows</a> section.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="SCANW" id="SCANW">7. Input +-functions</a></h2> +-<p>Well, printing without taking input, is boring. Let's see +-functions which allow us to get input from user. These functions +-also can be divided into three categories.</p> +-<ol type="1"> +-<li> +-<p>getch() class: Get a character</p> +-</li> +-<li> +-<p>scanw() class: Get formatted input</p> +-</li> +-<li> +-<p>getstr() class: Get strings</p> +-</li> +-</ol> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="GETCHCLASS" id="GETCHCLASS">7.1. getch() +-class of functions</a></h3> +-<p>These functions read a single character from the terminal. But +-there are several subtle facts to consider. For example if you +-don't use the function cbreak(), curses will not read your input +-characters contiguously but will begin read them only after a new +-line or an EOF is encountered. In order to avoid this, the cbreak() +-function must used so that characters are immediately available to +-your program. Another widely used function is noecho(). As the name +-suggests, when this function is set (used), the characters that are +-keyed in by the user will not show up on the screen. The two +-functions cbreak() and noecho() are typical examples of key +-management. Functions of this genre are explained in the <a href= +-"#KEYS">key management section</a> .</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="SCANWCLASS" id="SCANWCLASS">7.2. scanw() +-class of functions</a></h3> +-<p>These functions are similar to <var class= +-"LITERAL">scanf()</var> with the added capability of getting the +-input from any location on the screen.</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="SCANWMVSCANW" id="SCANWMVSCANW">7.2.1. +-scanw() and mvscanw</a></h4> +-<p>The usage of these functions is similar to that of <var class= +-"LITERAL">sscanf()</var>, where the line to be scanned is provided +-by <var class="LITERAL">wgetstr()</var> function. That is, these +-functions call to <var class="LITERAL">wgetstr()</var> +-function(explained below) and uses the resulting line for a +-scan.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="WSCANWMVWSCANW" id= +-"WSCANWMVWSCANW">7.2.2. wscanw() and mvwscanw()</a></h4> +-<p>These are similar to above two functions except that they read +-from a window, which is supplied as one of the arguments to these +-functions.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="VWSCANW" id="VWSCANW">7.2.3. +-vwscanw()</a></h4> +-<p>This function is similar to <var class="LITERAL">vscanf()</var>. +-This can be used when a variable number of arguments are to be +-scanned.</p> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="GETSTRCLASS" id="GETSTRCLASS">7.3. +-getstr() class of functions</a></h3> +-<p>These functions are used to get strings from the terminal. In +-essence, this function performs the same task as would be achieved +-by a series of calls to <var class="LITERAL">getch()</var> until a +-newline, carriage return, or end-of-file is received. The resulting +-string of characters are pointed to by <var class= +-"LITERAL">str</var>, which is a character pointer provided by the +-user.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="GETSTREX" id="GETSTREX">7.4. Some +-examples</a></h3> +-<div class="EXAMPLE"><a name="BSCEX" id="BSCEX"></a> +-<p><b>Example 4. A Simple scanw example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */ +-#include &lt;string.h&gt; ++}</SPAN ++></PRE ++></DIV ++><P ++>Above program demonstrates how easy it is to use <TT ++CLASS="LITERAL" ++>printw</TT ++>. You just feed the coordinates and the message to be appeared ++on the screen, then it does what you want.</P ++><P ++>The above program introduces us to a new function ++<TT ++CLASS="LITERAL" ++>getmaxyx()</TT ++>, a macro defined in ++<TT ++CLASS="LITERAL" ++>ncurses.h</TT ++>. It gives the number of columns and ++the number of rows in a given window. ++<TT ++CLASS="LITERAL" ++>getmaxyx()</TT ++> does this by updating the variables ++given to it. Since <TT ++CLASS="LITERAL" ++>getmaxyx()</TT ++> is not a function ++we don't pass pointers to it, we just give two integer variables. </P ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ADDSTRCLASS" ++>6.4. addstr() class of functions</A ++></H3 ++><P ++><TT ++CLASS="LITERAL" ++>addstr()</TT ++> is used to put a character string into ++a given window. This function is similar to calling ++<TT ++CLASS="LITERAL" ++>addch()</TT ++> once for each character in a given ++string. This is true for all output functions. There are other functions from ++this family such as <TT ++CLASS="LITERAL" ++>mvaddstr(),mvwaddstr()</TT ++> and ++<TT ++CLASS="LITERAL" ++>waddstr()</TT ++>, which obey the naming convention of ++curses.(e.g. mvaddstr() is similar to the respective calls move() and then ++addstr().) Another function of this family is addnstr(), which takes an integer ++parameter(say n) additionally. This function puts at most n characters into the ++screen. If n is negative, then the entire string will be added. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ACAUTION" ++>6.5. A word of caution</A ++></H3 ++><P ++>All these functions take y co-ordinate first and then x in their arguments. ++A common mistake by beginners is to pass x,y in that order. If you are ++doing too many manipulations of (y,x) co-ordinates, think of dividing the ++screen into windows and manipulate each one separately. Windows are explained ++in the <A ++HREF="#WINDOWS" ++> windows </A ++> section.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="SCANW" ++>7. Input functions</A ++></H2 ++><P ++>Well, printing without taking input, is boring. Let's see functions which ++allow us to get input from user. These functions also can be divided into ++three categories.</P ++><P ++></P ++><OL ++TYPE="1" ++><LI ++><P ++>getch() class: Get a character</P ++></LI ++><LI ++><P ++>scanw() class: Get formatted input</P ++></LI ++><LI ++><P ++>getstr() class: Get strings</P ++></LI ++></OL ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="GETCHCLASS" ++>7.1. getch() class of functions</A ++></H3 ++><P ++>These functions read a single character from the terminal. But there are several ++subtle facts to consider. For example if you don't use the function cbreak(), ++curses will not read your input characters contiguously but will begin read them ++only after a new line or an EOF is encountered. In order to avoid this, the ++cbreak() function must used so that characters are immediately available to your ++program. Another widely used function is noecho(). As the name suggests, when ++this function is set (used), the characters that are keyed in by the user will ++not show up on the screen. The two functions cbreak() and noecho() are typical ++examples of key management. Functions of this genre are explained in the ++<A ++HREF="#KEYS" ++>key management section </A ++>.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="SCANWCLASS" ++>7.2. scanw() class of functions</A ++></H3 ++><P ++>These functions are similar to <TT ++CLASS="LITERAL" ++>scanf()</TT ++> with the ++added capability of getting the input from any location on the screen.</P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="SCANWMVSCANW" ++>7.2.1. scanw() and mvscanw</A ++></H4 ++><P ++>The usage of these functions is similar to that of ++<TT ++CLASS="LITERAL" ++>sscanf()</TT ++>, where the line to be scanned is ++provided by <TT ++CLASS="LITERAL" ++>wgetstr()</TT ++> function. That is, these ++functions call to <TT ++CLASS="LITERAL" ++>wgetstr()</TT ++> function(explained ++below) and uses the resulting line for a scan. </P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="WSCANWMVWSCANW" ++>7.2.2. wscanw() and mvwscanw()</A ++></H4 ++><P ++>These are similar to above two functions except that they read from a window, ++which is supplied as one of the arguments to these functions. </P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="VWSCANW" ++>7.2.3. vwscanw()</A ++></H4 ++><P ++>This function is similar to <TT ++CLASS="LITERAL" ++>vscanf()</TT ++>. This can ++be used when a variable number of arguments are to be scanned.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="GETSTRCLASS" ++>7.3. getstr() class of functions</A ++></H3 ++><P ++>These functions are used to get strings from the terminal. In essence, this ++function performs the same task as would be achieved by a series of calls to ++<TT ++CLASS="LITERAL" ++>getch()</TT ++> until a newline, carriage return, or ++end-of-file is received. The resulting string of characters are pointed to by ++<TT ++CLASS="LITERAL" ++>str</TT ++>, which is a character pointer provided by ++the user.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="GETSTREX" ++>7.4. Some examples</A ++></H3 ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BSCEX" ++></A ++><P ++><B ++>Example 4. A Simple scanw example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; /* ncurses.h includes stdio.h */ ++#include &#60;string.h&#62; + + int main() + { +- char mesg[]="Enter a string: "; /* message to be appeared on the screen */ ++ char mesg[]="Enter a string: "; /* message to be appeared on the screen */ + char str[80]; +- int row,col; /* to store the number of rows and * +- * the number of colums of the screen */ +- initscr(); /* start the curses mode */ +- getmaxyx(stdscr,row,col); /* get the number of rows and columns */ ++ int row,col; /* to store the number of rows and * ++ * the number of colums of the screen */ ++ initscr(); /* start the curses mode */ ++ getmaxyx(stdscr,row,col); /* get the number of rows and columns */ + mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg); +- /* print the message at the center of the screen */ ++ /* print the message at the center of the screen */ + getstr(str); + mvprintw(LINES - 2, 0, "You Entered: %s", str); + getch(); + endwin(); + + return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="ATTRIB" id="ATTRIB">8. +-Attributes</a></h2> +-<p>We have seen an example of how attributes can be used to print +-characters with some special effects. Attributes, when set +-prudently, can present information in an easy, understandable +-manner. The following program takes a C file as input and prints +-the file with comments in bold. Scan through the code.</p> +-<div class="EXAMPLE"><a name="BSIAT" id="BSIAT"></a> +-<p><b>Example 5. A Simple Attributes example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">/* pager functionality by Joseph Spainhour" &lt;spainhou@bellsouth.net&gt; */ +-#include &lt;ncurses.h&gt; +-#include &lt;stdlib.h&gt; ++}</SPAN ++></PRE ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="ATTRIB" ++>8. Attributes</A ++></H2 ++><P ++>We have seen an example of how attributes can be used to print characters with ++some special effects. Attributes, when set prudently, can present information in ++an easy, understandable manner. The following program takes a C file as input ++and prints the file with comments in bold. Scan through the code. </P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BSIAT" ++></A ++><P ++><B ++>Example 5. A Simple Attributes example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>/* pager functionality by Joseph Spainhour" &#60;spainhou@bellsouth.net&#62; */ ++#include &#60;ncurses.h&#62; ++#include &#60;stdlib.h&#62; + + int main(int argc, char *argv[]) + { +@@ -1464,7 +2633,7 @@ + + if(argc != 2) + { +- printf("Usage: %s &lt;a c file name&gt;\n", argv[0]); ++ printf("Usage: %s &#60;a c file name&#62;\n", argv[0]); + exit(1); + } + fp = fopen(argv[1], "r"); +@@ -1473,77 +2642,101 @@ + perror("Cannot open input file"); + exit(1); + } +- initscr(); /* Start curses mode */ +- getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */ +- while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */ ++ initscr(); /* Start curses mode */ ++ getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */ ++ while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */ + { +- getyx(stdscr, y, x); /* get the current curser position */ +- if(y == (row - 1)) /* are we are at the end of the screen */ ++ getyx(stdscr, y, x); /* get the current curser position */ ++ if(y == (row - 1)) /* are we are at the end of the screen */ + { +- printw("&lt;-Press Any Key-&gt;"); /* tell the user to press a key */ ++ printw("&#60;-Press Any Key-&#62;"); /* tell the user to press a key */ + getch(); +- clear(); /* clear the screen */ +- move(0, 0); /* start at the beginning of the screen */ ++ clear(); /* clear the screen */ ++ move(0, 0); /* start at the beginning of the screen */ + } +- if(prev == '/' &amp;&amp; ch == '*') /* If it is / and * then only +- * switch bold on */ ++ if(prev == '/' &#38;&#38; ch == '*') /* If it is / and * then only ++ * switch bold on */ + { +- attron(A_BOLD); /* cut bold on */ +- getyx(stdscr, y, x); /* get the current curser position */ +- move(y, x - 1); /* back up one space */ +- printw("%c%c", '/', ch); /* The actual printing is done here */ ++ attron(A_BOLD); /* cut bold on */ ++ getyx(stdscr, y, x); /* get the current curser position */ ++ move(y, x - 1); /* back up one space */ ++ printw("%c%c", '/', ch); /* The actual printing is done here */ + } + else + printw("%c", ch); + refresh(); +- if(prev == '*' &amp;&amp; ch == '/') +- attroff(A_BOLD); /* Switch it off once we got * +- * and then / */ ++ if(prev == '*' &#38;&#38; ch == '/') ++ attroff(A_BOLD); /* Switch it off once we got * ++ * and then / */ + prev = ch; + } +- endwin(); /* End curses mode */ ++ endwin(); /* End curses mode */ + fclose(fp); + return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Don't worry about all those initialization and other crap. +-Concentrate on the while loop. It reads each character in the file +-and searches for the pattern /*. Once it spots the pattern, it +-switches the BOLD attribute on with <var class= +-"LITERAL">attron()</var> . When we get the pattern */ it is +-switched off by <var class="LITERAL">attroff()</var> .</p> +-<p>The above program also introduces us to two useful functions +-<var class="LITERAL">getyx()</var> and <var class= +-"LITERAL">move()</var>. The first function gets the co-ordinates of +-the present cursor into the variables y, x. Since getyx() is a ++}</SPAN ++></PRE ++></DIV ++><P ++> ++Don't worry about all those initialization and other crap. Concentrate on ++the while loop. It reads each character in the file and searches for the ++pattern /*. Once it spots the pattern, it switches the BOLD attribute on with ++<TT ++CLASS="LITERAL" ++> attron()</TT ++> . When we get the pattern */ it is ++switched off by <TT ++CLASS="LITERAL" ++> attroff()</TT ++> .</P ++><P ++> ++The above program also introduces us to two useful functions ++<TT ++CLASS="LITERAL" ++>getyx() </TT ++> and ++<TT ++CLASS="LITERAL" ++>move()</TT ++>. The first function gets the ++co-ordinates of the present cursor into the variables y, x. Since getyx() is a + macro we don't have to pass pointers to variables. The function +-<var class="LITERAL">move()</var> moves the cursor to the +-co-ordinates given to it.</p> +-<p>The above program is really a simple one which doesn't do much. +-On these lines one could write a more useful program which reads a +-C file, parses it and prints it in different colors. One could even +-extend it to other languages as well.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ATTRIBDETAILS" id="ATTRIBDETAILS">8.1. +-The details</a></h3> +-<p>Let's get into more details of attributes. The functions +-<var class="LITERAL">attron(), attroff(), attrset()</var> , and +-their sister functions <var class="LITERAL">attr_get()</var> etc.. +-can be used to switch attributes on/off , get attributes and +-produce a colorful display.</p> +-<p>The functions attron and attroff take a bit-mask of attributes +-and switch them on or off, respectively. The following video +-attributes, which are defined in &lt;curses.h&gt; can be passed to +-these functions.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> ++<TT ++CLASS="LITERAL" ++>move()</TT ++> moves the cursor to the co-ordinates ++given to it. </P ++><P ++> ++The above program is really a simple one which doesn't do much. On these lines ++one could write a more useful program which reads a C file, parses it and prints ++it in different colors. One could even extend it to other languages as well.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ATTRIBDETAILS" ++>8.1. The details</A ++></H3 ++><P ++>Let's get into more details of attributes. The functions <TT ++CLASS="LITERAL" ++>attron(), attroff(), attrset() </TT ++>, and their sister functions ++<TT ++CLASS="LITERAL" ++> attr_get()</TT ++> etc.. can be used to switch ++attributes on/off , get attributes and produce a colorful display.</P ++><P ++>The functions attron and attroff take a bit-mask of attributes and switch them ++on or off, respectively. The following video attributes, which are defined in ++&lt;curses.h&gt; can be passed to these functions. </P ++><PRE ++CLASS="PROGRAMLISTING" ++> + A_NORMAL Normal display (no highlight) + A_STANDOUT Best highlighting mode of the terminal. + A_UNDERLINE Underlining +@@ -1556,368 +2749,445 @@ + A_ALTCHARSET Alternate character set + A_CHARTEXT Bit-mask to extract a character + COLOR_PAIR(n) Color-pair number n +- </font> +-</pre></td> +-</tr> +-</table> +-<p>The last one is the most colorful one :-) Colors are explained +-in the <a href="#color" target="_top">next sections</a>.</p> +-<p>We can OR(|) any number of above attributes to get a combined +-effect. If you wanted reverse video with blinking characters you +-can use</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> attron(A_REVERSE | A_BLINK);</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ATTRONVSATTRSET" id= +-"ATTRONVSATTRSET">8.2. attron() vs attrset()</a></h3> +-<p>Then what is the difference between attron() and attrset()? +-attrset sets the attributes of window whereas attron just switches +-on the attribute given to it. So attrset() fully overrides whatever +-attributes the window previously had and sets it to the new +-attribute(s). Similarly attroff() just switches off the +-attribute(s) given to it as an argument. This gives us the +-flexibility of managing attributes easily.But if you use them +-carelessly you may loose track of what attributes the window has +-and garble the display. This is especially true while managing +-menus with colors and highlighting. So decide on a consistent +-policy and stick to it. You can always use <var class= +-"LITERAL">standend()</var> which is equivalent to <var class= +-"LITERAL">attrset(A_NORMAL)</var> which turns off all attributes +-and brings you to normal mode.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ATTR_GET" id="ATTR_GET">8.3. +-attr_get()</a></h3> +-<p>The function attr_get() gets the current attributes and color +-pair of the window. Though we might not use this as often as the +-above functions, this is useful in scanning areas of screen. Say we +-wanted to do some complex update on screen and we are not sure what +-attribute each character is associated with. Then this function can +-be used with either attrset or attron to produce the desired +-effect.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ATTR_FUNCS" id="ATTR_FUNCS">8.4. attr_ +-functions</a></h3> +-<p>There are series of functions like attr_set(), attr_on etc.. +-These are similar to above functions except that they take +-parameters of type <var class="LITERAL">attr_t</var>.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WATTRFUNCS" id="WATTRFUNCS">8.5. wattr +-functions</a></h3> +-<p>For each of the above functions we have a corresponding function +-with 'w' which operates on a particular window. The above functions +-operate on stdscr.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="CHGAT" id="CHGAT">8.6. chgat() +-functions</a></h3> +-<p>The function chgat() is listed in the end of the man page +-curs_attr. It actually is a useful one. This function can be used +-to set attributes for a group of characters without moving. I mean +-it !!! without moving the cursor :-) It changes the attributes of a +-given number of characters starting at the current cursor +-location.</p> +-<p>We can give -1 as the character count to update till end of +-line. If you want to change attributes of characters from current +-position to end of line, just use this.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> chgat(-1, A_REVERSE, 0, NULL);</font> +-</pre></td> +-</tr> +-</table> +-<p>This function is useful when changing attributes for characters +-that are already on the screen. Move to the character from which +-you want to change and change the attribute.</p> +-<p>Other functions wchgat(), mvchgat(), wchgat() behave similarly +-except that the w functions operate on the particular window. The +-mv functions first move the cursor then perform the work given to +-them. Actually chgat is a macro which is replaced by a wchgat() +-with stdscr as the window. Most of the "w-less" functions are +-macros.</p> +-<div class="EXAMPLE"><a name="BWICH" id="BWICH"></a> +-<p><b>Example 6. Chgat() Usage example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++ </PRE ++><P ++> ++The last one is the most colorful one :-) Colors are explained in the ++<A ++HREF="#color" ++TARGET="_top" ++>next sections</A ++>.</P ++><P ++>We can OR(|) any number of above attributes to get a combined effect. If you ++wanted reverse video with blinking characters you can use</P ++><PRE ++CLASS="PROGRAMLISTING" ++> attron(A_REVERSE | A_BLINK);</PRE ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ATTRONVSATTRSET" ++>8.2. attron() vs attrset()</A ++></H3 ++><P ++>Then what is the difference between attron() and attrset()? attrset sets the ++attributes of window whereas attron just switches on the attribute given to it. ++So attrset() fully overrides whatever attributes the window previously had and ++sets it to the new attribute(s). Similarly attroff() just switches off the ++attribute(s) given to it as an argument. This gives us the flexibility of ++managing attributes easily.But if you use them carelessly you may loose track of ++what attributes the window has and garble the display. This is especially true ++while managing menus with colors and highlighting. So decide on a consistent ++policy and stick to it. You can always use <TT ++CLASS="LITERAL" ++> standend()</TT ++> which is equivalent to <TT ++CLASS="LITERAL" ++> attrset(A_NORMAL)</TT ++> which turns off all attributes and brings you to normal mode.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ATTR_GET" ++>8.3. attr_get()</A ++></H3 ++><P ++>&#13;The function attr_get() gets the current attributes and color pair of the ++window. Though we might not use this as often as the above functions, this is ++useful in scanning areas of screen. Say we wanted to do some complex update on ++screen and we are not sure what attribute each character is associated with. ++Then this function can be used with either attrset or attron to produce the ++desired effect.&#13;</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ATTR_FUNCS" ++>8.4. attr_ functions</A ++></H3 ++><P ++>There are series of functions like attr_set(), attr_on etc.. These are similar ++to above functions except that they take parameters of type ++<TT ++CLASS="LITERAL" ++>attr_t</TT ++>.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WATTRFUNCS" ++>8.5. wattr functions</A ++></H3 ++><P ++>For each of the above functions we have a corresponding function with 'w' which ++operates on a particular window. The above functions operate on stdscr. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="CHGAT" ++>8.6. chgat() functions</A ++></H3 ++><P ++>The function chgat() is listed in the end of the man page curs_attr. It actually ++is a useful one. This function can be used to set attributes for a group of ++characters without moving. I mean it !!! without moving the cursor :-) It ++changes the attributes of a given number of characters starting at the current ++cursor location.</P ++><P ++>We can give -1 as the character count to update till end of line. If you want to ++change attributes of characters from current position to end of line, just use ++this.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> chgat(-1, A_REVERSE, 0, NULL);</PRE ++><P ++> ++This function is useful when changing attributes for characters that are ++already on the screen. Move to the character from which you want to change and ++change the attribute. </P ++><P ++>Other functions wchgat(), mvchgat(), wchgat() behave similarly except that the w ++functions operate on the particular window. The mv functions first move the ++cursor then perform the work given to them. Actually chgat is a macro which is ++replaced by a wchgat() with stdscr as the window. Most of the "w-less" functions ++are macros.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BWICH" ++></A ++><P ++><B ++>Example 6. Chgat() Usage example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + int main(int argc, char *argv[]) +-{ initscr(); /* Start curses mode */ +- start_color(); /* Start color functionality */ +- +- init_pair(1, COLOR_CYAN, COLOR_BLACK); +- printw("A Big string which i didn't care to type fully "); +- mvchgat(0, 0, -1, A_BLINK, 1, NULL); +- /* +- * First two parameters specify the position at which to start +- * Third parameter number of characters to update. -1 means till +- * end of line +- * Forth parameter is the normal attribute you wanted to give +- * to the charcter +- * Fifth is the color index. It is the index given during init_pair() +- * use 0 if you didn't want color +- * Sixth one is always NULL +- */ +- refresh(); +- getch(); +- endwin(); /* End curses mode */ +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>This example also introduces us to the color world of curses. +-Colors will be explained in detail later. Use 0 for no color.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="WINDOWS" id="WINDOWS">9. +-Windows</a></h2> +-<p>Windows form the most important concept in curses. You have seen +-the standard window stdscr above where all the functions implicitly +-operated on this window. Now to make design even a simplest GUI, +-you need to resort to windows. The main reason you may want to use +-windows is to manipulate parts of the screen separately, for better +-efficiency, by updating only the windows that need to be changed +-and for a better design. I would say the last reason is the most +-important in going for windows. You should always strive for a +-better and easy-to-manage design in your programs. If you are +-writing big, complex GUIs this is of pivotal importance before you +-start doing anything.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WINDOWBASICS" id="WINDOWBASICS">9.1. The +-basics</a></h3> +-<p>A Window can be created by calling the function <var class= +-"LITERAL">newwin()</var>. It doesn't create any thing on the screen +-actually. It allocates memory for a structure to manipulate the +-window and updates the structure with data regarding the window +-like it's size, beginy, beginx etc.. Hence in curses, a window is +-just an abstraction of an imaginary window, which can be +-manipulated independent of other parts of screen. The function +-newwin() returns a pointer to structure WINDOW, which can be passed +-to window related functions like wprintw() etc.. Finally the window +-can be destroyed with delwin(). It will deallocate the memory +-associated with the window structure.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="LETBEWINDOW" id="LETBEWINDOW">9.2. Let +-there be a Window !!!</a></h3> +-<p>What fun is it, if a window is created and we can't see it. So +-the fun part begins by displaying the window. The function +-<var class="LITERAL">box()</var> can be used to draw a border +-around the window. Let's explore these functions in more detail in +-this example.</p> +-<div class="EXAMPLE"><a name="BWIBO" id="BWIBO"></a> +-<p><b>Example 7. Window Border example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++{ initscr(); /* Start curses mode */ ++ start_color(); /* Start color functionality */ ++ ++ init_pair(1, COLOR_CYAN, COLOR_BLACK); ++ printw("A Big string which i didn't care to type fully "); ++ mvchgat(0, 0, -1, A_BLINK, 1, NULL); ++ /* ++ * First two parameters specify the position at which to start ++ * Third parameter number of characters to update. -1 means till ++ * end of line ++ * Forth parameter is the normal attribute you wanted to give ++ * to the charcter ++ * Fifth is the color index. It is the index given during init_pair() ++ * use 0 if you didn't want color ++ * Sixth one is always NULL ++ */ ++ refresh(); ++ getch(); ++ endwin(); /* End curses mode */ ++ return 0; ++}</SPAN ++></PRE ++></DIV ++><P ++>This example also introduces us to the color world of curses. Colors will be ++explained in detail later. Use 0 for no color.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="WINDOWS" ++>9. Windows</A ++></H2 ++><P ++>Windows form the most important concept in curses. You have seen the standard ++window stdscr above where all the functions implicitly operated on this window. ++Now to make design even a simplest GUI, you need to resort to windows. The main ++reason you may want to use windows is to manipulate parts of the screen ++separately, for better efficiency, by updating only the windows that need to be ++changed and for a better design. I would say the last reason is the most ++important in going for windows. You should always strive for a better and ++easy-to-manage design in your programs. If you are writing big, complex GUIs ++this is of pivotal importance before you start doing anything.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WINDOWBASICS" ++>9.1. The basics</A ++></H3 ++><P ++>A Window can be created by calling the function ++<TT ++CLASS="LITERAL" ++>newwin()</TT ++>. It doesn't create any thing on the ++screen actually. It allocates memory for a structure to manipulate the window ++and updates the structure with data regarding the window like it's size, beginy, ++beginx etc.. Hence in curses, a window is just an abstraction of an imaginary ++window, which can be manipulated independent of other parts of screen. The ++function newwin() returns a pointer to structure WINDOW, which can be passed to ++window related functions like wprintw() etc.. Finally the window can be ++destroyed with delwin(). It will deallocate the memory associated with the ++window structure.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="LETBEWINDOW" ++>9.2. Let there be a Window !!!</A ++></H3 ++><P ++>What fun is it, if a window is created and we can't see it. So the fun part ++begins by displaying the window. The function ++<TT ++CLASS="LITERAL" ++>box()</TT ++> can be used to draw a border around the ++window. Let's explore these functions in more detail in this example.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BWIBO" ++></A ++><P ++><B ++>Example 7. Window Border example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + + WINDOW *create_newwin(int height, int width, int starty, int startx); + void destroy_win(WINDOW *local_win); + + int main(int argc, char *argv[]) +-{ WINDOW *my_win; +- int startx, starty, width, height; +- int ch; +- +- initscr(); /* Start curses mode */ +- cbreak(); /* Line buffering disabled, Pass on +- * everty thing to me */ +- keypad(stdscr, TRUE); /* I need that nifty F1 */ +- +- height = 3; +- width = 10; +- starty = (LINES - height) / 2; /* Calculating for a center placement */ +- startx = (COLS - width) / 2; /* of the window */ +- printw("Press F1 to exit"); +- refresh(); +- my_win = create_newwin(height, width, starty, startx); +- +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case KEY_LEFT: +- destroy_win(my_win); +- my_win = create_newwin(height, width, starty,--startx); +- break; +- case KEY_RIGHT: +- destroy_win(my_win); +- my_win = create_newwin(height, width, starty,++startx); +- break; +- case KEY_UP: +- destroy_win(my_win); +- my_win = create_newwin(height, width, --starty,startx); +- break; +- case KEY_DOWN: +- destroy_win(my_win); +- my_win = create_newwin(height, width, ++starty,startx); +- break; +- } +- } +- +- endwin(); /* End curses mode */ +- return 0; ++{ WINDOW *my_win; ++ int startx, starty, width, height; ++ int ch; ++ ++ initscr(); /* Start curses mode */ ++ cbreak(); /* Line buffering disabled, Pass on ++ * everty thing to me */ ++ keypad(stdscr, TRUE); /* I need that nifty F1 */ ++ ++ height = 3; ++ width = 10; ++ starty = (LINES - height) / 2; /* Calculating for a center placement */ ++ startx = (COLS - width) / 2; /* of the window */ ++ printw("Press F1 to exit"); ++ refresh(); ++ my_win = create_newwin(height, width, starty, startx); ++ ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case KEY_LEFT: ++ destroy_win(my_win); ++ my_win = create_newwin(height, width, starty,--startx); ++ break; ++ case KEY_RIGHT: ++ destroy_win(my_win); ++ my_win = create_newwin(height, width, starty,++startx); ++ break; ++ case KEY_UP: ++ destroy_win(my_win); ++ my_win = create_newwin(height, width, --starty,startx); ++ break; ++ case KEY_DOWN: ++ destroy_win(my_win); ++ my_win = create_newwin(height, width, ++starty,startx); ++ break; ++ } ++ } ++ ++ endwin(); /* End curses mode */ ++ return 0; + } + + WINDOW *create_newwin(int height, int width, int starty, int startx) +-{ WINDOW *local_win; ++{ WINDOW *local_win; + +- local_win = newwin(height, width, starty, startx); +- box(local_win, 0 , 0); /* 0, 0 gives default characters +- * for the vertical and horizontal +- * lines */ +- wrefresh(local_win); /* Show that box */ ++ local_win = newwin(height, width, starty, startx); ++ box(local_win, 0 , 0); /* 0, 0 gives default characters ++ * for the vertical and horizontal ++ * lines */ ++ wrefresh(local_win); /* Show that box */ + +- return local_win; ++ return local_win; + } + + void destroy_win(WINDOW *local_win) +-{ +- /* box(local_win, ' ', ' '); : This won't produce the desired +- * result of erasing the window. It will leave it's four corners +- * and so an ugly remnant of window. +- */ +- wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' '); +- /* The parameters taken are +- * 1. win: the window on which to operate +- * 2. ls: character to be used for the left side of the window +- * 3. rs: character to be used for the right side of the window +- * 4. ts: character to be used for the top side of the window +- * 5. bs: character to be used for the bottom side of the window +- * 6. tl: character to be used for the top left corner of the window +- * 7. tr: character to be used for the top right corner of the window +- * 8. bl: character to be used for the bottom left corner of the window +- * 9. br: character to be used for the bottom right corner of the window +- */ +- wrefresh(local_win); +- delwin(local_win); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="BORDEREXEXPL" id="BORDEREXEXPL">9.3. +-Explanation</a></h3> +-<p>Don't scream. I know it's a big example. But I have to explain +-some important things here :-). This program creates a rectangular +-window that can be moved with left, right, up, down arrow keys. It +-repeatedly creates and destroys windows as user press a key. Don't +-go beyond the screen limits. Checking for those limits is left as +-an exercise for the reader. Let's dissect it by line by line.</p> +-<p>The <var class="LITERAL">create_newwin()</var> function creates +-a window with <var class="LITERAL">newwin()</var> and displays a +-border around it with box. The function <var class= +-"LITERAL">destroy_win()</var> first erases the window from screen +-by painting a border with ' ' character and then calling +-<var class="LITERAL">delwin()</var> to deallocate memory related to +-it. Depending on the key the user presses, starty or startx is +-changed and a new window is created.</p> +-<p>In the destroy_win, as you can see, I used wborder instead of +-box. The reason is written in the comments (You missed it. I know. +-Read the code :-)). wborder draws a border around the window with +-the characters given to it as the 4 corner points and the 4 lines. +-To put it clearly, if you have called wborder as below:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</font> +-</pre></td> +-</tr> +-</table> +-<p>it produces some thing like</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> +------------+ ++{ ++ /* box(local_win, ' ', ' '); : This won't produce the desired ++ * result of erasing the window. It will leave it's four corners ++ * and so an ugly remnant of window. ++ */ ++ wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' '); ++ /* The parameters taken are ++ * 1. win: the window on which to operate ++ * 2. ls: character to be used for the left side of the window ++ * 3. rs: character to be used for the right side of the window ++ * 4. ts: character to be used for the top side of the window ++ * 5. bs: character to be used for the bottom side of the window ++ * 6. tl: character to be used for the top left corner of the window ++ * 7. tr: character to be used for the top right corner of the window ++ * 8. bl: character to be used for the bottom left corner of the window ++ * 9. br: character to be used for the bottom right corner of the window ++ */ ++ wrefresh(local_win); ++ delwin(local_win); ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="BORDEREXEXPL" ++>9.3. Explanation</A ++></H3 ++><P ++>Don't scream. I know it's a big example. But I have to explain some important ++things here :-). This program creates a rectangular window that can be moved ++with left, right, up, down arrow keys. It repeatedly creates and destroys ++windows as user press a key. Don't go beyond the screen limits. Checking for ++those limits is left as an exercise for the reader. Let's dissect it by line by line.</P ++><P ++>The <TT ++CLASS="LITERAL" ++>create_newwin()</TT ++> function creates a window ++with <TT ++CLASS="LITERAL" ++>newwin() </TT ++> and displays a border around it ++with box. The function <TT ++CLASS="LITERAL" ++> destroy_win()</TT ++> first ++erases the window from screen by painting a border with ' ' character and then ++calling <TT ++CLASS="LITERAL" ++>delwin()</TT ++> to deallocate memory related ++to it. Depending on the key the user presses, starty or startx is changed and a ++new window is created.</P ++><P ++>In the destroy_win, as you can see, I used wborder instead of box. The reason is ++written in the comments (You missed it. I know. Read the code :-)). wborder ++draws a border around the window with the characters given to it as the 4 corner ++points and the 4 lines. To put it clearly, if you have called wborder as below: ++<PRE ++CLASS="PROGRAMLISTING" ++> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</PRE ++></P ++><P ++>it produces some thing like </P ++><PRE ++CLASS="PROGRAMLISTING" ++> +------------+ + | | + | | + | | + | | + | | + | | +- +------------+</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="OTHERSTUFF" id="OTHERSTUFF">9.4. The +-other stuff in the example</a></h3> +-<p>You can also see in the above examples, that I have used the +-variables COLS, LINES which are initialized to the screen sizes +-after initscr(). They can be useful in finding screen dimensions +-and finding the center co-ordinate of the screen as above. The +-function <var class="LITERAL">getch()</var> as usual gets the key +-from keyboard and according to the key it does the corresponding +-work. This type of switch- case is very common in any GUI based +-programs.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="OTHERBORDERFUNCS" id= +-"OTHERBORDERFUNCS">9.5. Other Border functions</a></h3> +-<p>Above program is grossly inefficient in that with each press of +-a key, a window is destroyed and another is created. So let's write +-a more efficient program which uses other border related +-functions.</p> +-<p>The following program uses <var class="LITERAL">mvhline()</var> +-and <var class="LITERAL">mvvline()</var> to achieve similar effect. +-These two functions are simple. They create a horizontal or +-vertical line of the specified length at the specified +-position.</p> +-<div class="EXAMPLE"><a name="BOTBO" id="BOTBO"></a> +-<p><b>Example 8. More border functions</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++ +------------+</PRE ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="OTHERSTUFF" ++>9.4. The other stuff in the example</A ++></H3 ++><P ++>You can also see in the above examples, that I have used the variables COLS, ++LINES which are initialized to the screen sizes after initscr(). They can be ++useful in finding screen dimensions and finding the center co-ordinate of the ++screen as above. The function <TT ++CLASS="LITERAL" ++>getch()</TT ++> as usual ++gets the key from keyboard and according to the key it does the corresponding ++work. This type of switch- case is very common in any GUI based programs.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="OTHERBORDERFUNCS" ++>9.5. Other Border functions</A ++></H3 ++><P ++>Above program is grossly inefficient in that with each press of a key, a window ++is destroyed and another is created. So let's write a more efficient program ++which uses other border related functions.</P ++><P ++>The following program uses <TT ++CLASS="LITERAL" ++>mvhline()</TT ++> and ++<TT ++CLASS="LITERAL" ++>mvvline()</TT ++> to achieve similar effect. These two ++functions are simple. They create a horizontal or vertical line of the specified ++length at the specified position.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BOTBO" ++></A ++><P ++><B ++>Example 8. More border functions</B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + typedef struct _win_border_struct { +- chtype ls, rs, ts, bs, +- tl, tr, bl, br; ++ chtype ls, rs, ts, bs, ++ tl, tr, bl, br; + }WIN_BORDER; + + typedef struct _WIN_struct { + +- int startx, starty; +- int height, width; +- WIN_BORDER border; ++ int startx, starty; ++ int height, width; ++ WIN_BORDER border; + }WIN; + + void init_win_params(WIN *p_win); +@@ -1925,319 +3195,380 @@ + void create_box(WIN *win, bool flag); + + int main(int argc, char *argv[]) +-{ WIN win; +- int ch; +- +- initscr(); /* Start curses mode */ +- start_color(); /* Start the color functionality */ +- cbreak(); /* Line buffering disabled, Pass on +- * everty thing to me */ +- keypad(stdscr, TRUE); /* I need that nifty F1 */ +- noecho(); +- init_pair(1, COLOR_CYAN, COLOR_BLACK); ++{ WIN win; ++ int ch; + +- /* Initialize the window parameters */ +- init_win_params(&amp;win); +- print_win_params(&amp;win); +- +- attron(COLOR_PAIR(1)); +- printw("Press F1 to exit"); +- refresh(); +- attroff(COLOR_PAIR(1)); +- +- create_box(&amp;win, TRUE); +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case KEY_LEFT: +- create_box(&amp;win, FALSE); +- --win.startx; +- create_box(&amp;win, TRUE); +- break; +- case KEY_RIGHT: +- create_box(&amp;win, FALSE); +- ++win.startx; +- create_box(&amp;win, TRUE); +- break; +- case KEY_UP: +- create_box(&amp;win, FALSE); +- --win.starty; +- create_box(&amp;win, TRUE); +- break; +- case KEY_DOWN: +- create_box(&amp;win, FALSE); +- ++win.starty; +- create_box(&amp;win, TRUE); +- break; +- } +- } +- endwin(); /* End curses mode */ +- return 0; ++ initscr(); /* Start curses mode */ ++ start_color(); /* Start the color functionality */ ++ cbreak(); /* Line buffering disabled, Pass on ++ * everty thing to me */ ++ keypad(stdscr, TRUE); /* I need that nifty F1 */ ++ noecho(); ++ init_pair(1, COLOR_CYAN, COLOR_BLACK); ++ ++ /* Initialize the window parameters */ ++ init_win_params(&#38;win); ++ print_win_params(&#38;win); ++ ++ attron(COLOR_PAIR(1)); ++ printw("Press F1 to exit"); ++ refresh(); ++ attroff(COLOR_PAIR(1)); ++ ++ create_box(&#38;win, TRUE); ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case KEY_LEFT: ++ create_box(&#38;win, FALSE); ++ --win.startx; ++ create_box(&#38;win, TRUE); ++ break; ++ case KEY_RIGHT: ++ create_box(&#38;win, FALSE); ++ ++win.startx; ++ create_box(&#38;win, TRUE); ++ break; ++ case KEY_UP: ++ create_box(&#38;win, FALSE); ++ --win.starty; ++ create_box(&#38;win, TRUE); ++ break; ++ case KEY_DOWN: ++ create_box(&#38;win, FALSE); ++ ++win.starty; ++ create_box(&#38;win, TRUE); ++ break; ++ } ++ } ++ endwin(); /* End curses mode */ ++ return 0; + } + void init_win_params(WIN *p_win) + { +- p_win-&gt;height = 3; +- p_win-&gt;width = 10; +- p_win-&gt;starty = (LINES - p_win-&gt;height)/2; +- p_win-&gt;startx = (COLS - p_win-&gt;width)/2; +- +- p_win-&gt;border.ls = '|'; +- p_win-&gt;border.rs = '|'; +- p_win-&gt;border.ts = '-'; +- p_win-&gt;border.bs = '-'; +- p_win-&gt;border.tl = '+'; +- p_win-&gt;border.tr = '+'; +- p_win-&gt;border.bl = '+'; +- p_win-&gt;border.br = '+'; ++ p_win-&#62;height = 3; ++ p_win-&#62;width = 10; ++ p_win-&#62;starty = (LINES - p_win-&#62;height)/2; ++ p_win-&#62;startx = (COLS - p_win-&#62;width)/2; ++ ++ p_win-&#62;border.ls = '|'; ++ p_win-&#62;border.rs = '|'; ++ p_win-&#62;border.ts = '-'; ++ p_win-&#62;border.bs = '-'; ++ p_win-&#62;border.tl = '+'; ++ p_win-&#62;border.tr = '+'; ++ p_win-&#62;border.bl = '+'; ++ p_win-&#62;border.br = '+'; + + } + void print_win_params(WIN *p_win) + { + #ifdef _DEBUG +- mvprintw(25, 0, "%d %d %d %d", p_win-&gt;startx, p_win-&gt;starty, +- p_win-&gt;width, p_win-&gt;height); +- refresh(); ++ mvprintw(25, 0, "%d %d %d %d", p_win-&#62;startx, p_win-&#62;starty, ++ p_win-&#62;width, p_win-&#62;height); ++ refresh(); + #endif + } + void create_box(WIN *p_win, bool flag) +-{ int i, j; +- int x, y, w, h; +- +- x = p_win-&gt;startx; +- y = p_win-&gt;starty; +- w = p_win-&gt;width; +- h = p_win-&gt;height; +- +- if(flag == TRUE) +- { mvaddch(y, x, p_win-&gt;border.tl); +- mvaddch(y, x + w, p_win-&gt;border.tr); +- mvaddch(y + h, x, p_win-&gt;border.bl); +- mvaddch(y + h, x + w, p_win-&gt;border.br); +- mvhline(y, x + 1, p_win-&gt;border.ts, w - 1); +- mvhline(y + h, x + 1, p_win-&gt;border.bs, w - 1); +- mvvline(y + 1, x, p_win-&gt;border.ls, h - 1); +- mvvline(y + 1, x + w, p_win-&gt;border.rs, h - 1); +- +- } +- else +- for(j = y; j &lt;= y + h; ++j) +- for(i = x; i &lt;= x + w; ++i) +- mvaddch(j, i, ' '); +- +- refresh(); ++{ int i, j; ++ int x, y, w, h; + +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="COLOR" id="COLOR">10. Colors</a></h2> +-<div class="SECT2"> +-<h3 class="SECT2"><a name="COLORBASICS" id="COLORBASICS">10.1. The +-basics</a></h3> +-<p>Life seems dull with no colors. Curses has a nice mechanism to +-handle colors. Let's get into the thick of the things with a small +-program.</p> +-<div class="EXAMPLE"><a name="BSICO" id="BSICO"></a> +-<p><b>Example 9. A Simple Color example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++ x = p_win-&#62;startx; ++ y = p_win-&#62;starty; ++ w = p_win-&#62;width; ++ h = p_win-&#62;height; ++ ++ if(flag == TRUE) ++ { mvaddch(y, x, p_win-&#62;border.tl); ++ mvaddch(y, x + w, p_win-&#62;border.tr); ++ mvaddch(y + h, x, p_win-&#62;border.bl); ++ mvaddch(y + h, x + w, p_win-&#62;border.br); ++ mvhline(y, x + 1, p_win-&#62;border.ts, w - 1); ++ mvhline(y + h, x + 1, p_win-&#62;border.bs, w - 1); ++ mvvline(y + 1, x, p_win-&#62;border.ls, h - 1); ++ mvvline(y + 1, x + w, p_win-&#62;border.rs, h - 1); ++ ++ } ++ else ++ for(j = y; j &#60;= y + h; ++j) ++ for(i = x; i &#60;= x + w; ++i) ++ mvaddch(j, i, ' '); ++ ++ refresh(); ++ ++}</SPAN ++></PRE ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="COLOR" ++>10. Colors</A ++></H2 ++><DIV ++CLASS="SECT2" ++><H3 ++CLASS="SECT2" ++><A ++NAME="COLORBASICS" ++>10.1. The basics</A ++></H3 ++><P ++>Life seems dull with no colors. Curses has a nice mechanism to handle colors. ++Let's get into the thick of the things with a small program.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BSICO" ++></A ++><P ++><B ++>Example 9. A Simple Color example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string); + int main(int argc, char *argv[]) +-{ initscr(); /* Start curses mode */ +- if(has_colors() == FALSE) +- { endwin(); +- printf("Your terminal does not support color\n"); +- exit(1); +- } +- start_color(); /* Start color */ +- init_pair(1, COLOR_RED, COLOR_BLACK); +- +- attron(COLOR_PAIR(1)); +- print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ..."); +- attroff(COLOR_PAIR(1)); +- getch(); +- endwin(); ++{ initscr(); /* Start curses mode */ ++ if(has_colors() == FALSE) ++ { endwin(); ++ printf("Your terminal does not support color\n"); ++ exit(1); ++ } ++ start_color(); /* Start color */ ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ ++ attron(COLOR_PAIR(1)); ++ print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ..."); ++ attroff(COLOR_PAIR(1)); ++ getch(); ++ endwin(); + } + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- mvwprintw(win, y, x, "%s", string); +- refresh(); ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ mvwprintw(win, y, x, "%s", string); ++ refresh(); + } +-</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>As you can see, to start using color, you should first call the +-function <var class="LITERAL">start_color()</var>. After that, you +-can use color capabilities of your terminals using various +-functions. To find out whether a terminal has color capabilities or +-not, you can use <var class="LITERAL">has_colors()</var> function, +-which returns FALSE if the terminal does not support color.</p> +-<p>Curses initializes all the colors supported by terminal when +-start_color() is called. These can be accessed by the define +-constants like <var class="LITERAL">COLOR_BLACK</var> etc. Now to +-actually start using colors, you have to define pairs. Colors are +-always used in pairs. That means you have to use the function +-<var class="LITERAL">init_pair()</var> to define the foreground and +-background for the pair number you give. After that that pair +-number can be used as a normal attribute with <var class= +-"LITERAL">COLOR_PAIR()</var>function. This may seem to be +-cumbersome at first. But this elegant solution allows us to manage +-color pairs very easily. To appreciate it, you have to look into +-the the source code of "dialog", a utility for displaying dialog +-boxes from shell scripts. The developers have defined foreground +-and background combinations for all the colors they might need and +-initialized at the beginning. This makes it very easy to set +-attributes just by accessing a pair which we already have defined +-as a constant.</p> +-<p>The following colors are defined in <var class= +-"LITERAL">curses.h</var>. You can use these as parameters for +-various color functions.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> COLOR_BLACK 0 ++</SPAN ++></PRE ++></DIV ++><P ++>As you can see, to start using color, you should first call the function ++<TT ++CLASS="LITERAL" ++> start_color()</TT ++>. After that, you can use color ++capabilities of your terminals using various functions. To find out whether a ++terminal has color capabilities or not, you can use ++<TT ++CLASS="LITERAL" ++>has_colors()</TT ++> function, which returns FALSE if ++the terminal does not support color. </P ++><P ++>Curses initializes all the colors supported by terminal when start_color() is ++called. These can be accessed by the define constants like ++<TT ++CLASS="LITERAL" ++>COLOR_BLACK </TT ++> etc. Now to actually start using ++colors, you have to define pairs. Colors are always used in pairs. That means ++you have to use the function <TT ++CLASS="LITERAL" ++>init_pair() </TT ++> to ++define the foreground and background for the pair number you give. After that ++that pair number can be used as a normal attribute with <TT ++CLASS="LITERAL" ++>COLOR_PAIR()</TT ++>function. This may seem to be cumbersome at first. ++But this elegant solution allows us to manage color pairs very easily. To ++appreciate it, you have to look into the the source code of "dialog", a utility ++for displaying dialog boxes from shell scripts. The developers have defined ++foreground and background combinations for all the colors they might need and ++initialized at the beginning. This makes it very easy to set attributes just by ++accessing a pair which we already have defined as a constant.</P ++><P ++>The following colors are defined in <TT ++CLASS="LITERAL" ++>curses.h</TT ++>. ++You can use these as parameters for various color functions. ++<PRE ++CLASS="PROGRAMLISTING" ++> COLOR_BLACK 0 + COLOR_RED 1 + COLOR_GREEN 2 + COLOR_YELLOW 3 + COLOR_BLUE 4 + COLOR_MAGENTA 5 + COLOR_CYAN 6 +- COLOR_WHITE 7</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="CHANGECOLORDEFS" id= +-"CHANGECOLORDEFS">10.2. Changing Color Definitions</a></h3> +-<p>The function <var class="LITERAL">init_color()</var>can be used +-to change the rgb values for the colors defined by curses +-initially. Say you wanted to lighten the intensity of red color by +-a minuscule. Then you can use this function as</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> init_color(COLOR_RED, 700, 0, 0); ++ COLOR_WHITE 7</PRE ++></P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="CHANGECOLORDEFS" ++>10.2. Changing Color Definitions</A ++></H3 ++><P ++>The function <TT ++CLASS="LITERAL" ++>init_color()</TT ++>can be used to change ++the rgb values for the colors defined by curses initially. Say you wanted to ++lighten the intensity of red color by a minuscule. Then you can use this ++function as</P ++><PRE ++CLASS="PROGRAMLISTING" ++> init_color(COLOR_RED, 700, 0, 0); + /* param 1 : color name +- * param 2, 3, 4 : rgb content min = 0, max = 1000 */</font> +-</pre></td> +-</tr> +-</table> +-<p>If your terminal cannot change the color definitions, the +-function returns ERR. The function <var class= +-"LITERAL">can_change_color()</var> can be used to find out whether +-the terminal has the capability of changing color content or not. +-The rgb content is scaled from 0 to 1000. Initially RED color is +-defined with content 1000(r), 0(g), 0(b).</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="COLORCONTENT" id="COLORCONTENT">10.3. +-Color Content</a></h3> +-<p>The functions <var class="LITERAL">color_content()</var> and +-<var class="LITERAL">pair_content()</var> can be used to find the +-color content and foreground, background combination for the +-pair.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="KEYS" id="KEYS">11. Interfacing with the +-key board</a></h2> +-<div class="SECT2"> +-<h3 class="SECT2"><a name="KEYSBASICS" id="KEYSBASICS">11.1. The +-Basics</a></h3> +-<p>No GUI is complete without a strong user interface and to +-interact with the user, a curses program should be sensitive to key +-presses or the mouse actions done by the user. Let's deal with the +-keys first.</p> +-<p>As you have seen in almost all of the above examples, it's very +-easy to get key input from the user. A simple way of getting key +-presses is to use <var class="LITERAL">getch()</var> function. The +-cbreak mode should be enabled to read keys when you are interested +-in reading individual key hits rather than complete lines of text +-(which usually end with a carriage return). keypad should be +-enabled to get the Functions keys, arrow keys etc. See the +-initialization section for details.</p> +-<p><var class="LITERAL">getch()</var> returns an integer +-corresponding to the key pressed. If it is a normal character, the +-integer value will be equivalent to the character. Otherwise it +-returns a number which can be matched with the constants defined in +-<var class="LITERAL">curses.h</var>. For example if the user +-presses F1, the integer returned is 265. This can be checked using +-the macro KEY_F() defined in curses.h. This makes reading keys +-portable and easy to manage.</p> +-<p>For example, if you call getch() like this</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> int ch; +- +- ch = getch();</font> +-</pre></td> +-</tr> +-</table> +-<p>getch() will wait for the user to press a key, (unless you +-specified a timeout) and when user presses a key, the corresponding +-integer is returned. Then you can check the value returned with the +-constants defined in curses.h to match against the keys you +-want.</p> +-<p>The following code piece will do that job.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> if(ch == KEY_LEFT) +- printw("Left arrow is pressed\n");</font> +-</pre></td> +-</tr> +-</table> +-<p>Let's write a small program which creates a menu which can be +-navigated by up and down arrows.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="SIMPLEKEYEX" id="SIMPLEKEYEX">11.2. A +-Simple Key Usage example</a></h3> +-<div class="EXAMPLE"><a name="BSIKE" id="BSIKE"></a> +-<p><b>Example 10. A Simple Key Usage example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;stdio.h&gt; +-#include &lt;ncurses.h&gt; ++ * param 2, 3, 4 : rgb content min = 0, max = 1000 */</PRE ++><P ++>If your terminal cannot change the color definitions, the function returns ERR. ++The function <TT ++CLASS="LITERAL" ++>can_change_color()</TT ++> can be used to ++find out whether the terminal has the capability of changing color content or ++not. The rgb content is scaled from 0 to 1000. Initially RED color is defined ++with content 1000(r), 0(g), 0(b). </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="COLORCONTENT" ++>10.3. Color Content</A ++></H3 ++><P ++>The functions <TT ++CLASS="LITERAL" ++>color_content()</TT ++> and ++<TT ++CLASS="LITERAL" ++>pair_content()</TT ++> can be used to find the color ++content and foreground, background combination for the pair. </P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="KEYS" ++>11. Interfacing with the key board</A ++></H2 ++><DIV ++CLASS="SECT2" ++><H3 ++CLASS="SECT2" ++><A ++NAME="KEYSBASICS" ++>11.1. The Basics</A ++></H3 ++><P ++>No GUI is complete without a strong user interface and to interact with the ++user, a curses program should be sensitive to key presses or the mouse actions ++done by the user. Let's deal with the keys first.</P ++><P ++>As you have seen in almost all of the above examples, it's very easy to get key ++input from the user. A simple way of getting key presses is to use ++<TT ++CLASS="LITERAL" ++>getch()</TT ++> function. The cbreak mode should be ++enabled to read keys when you are interested in reading individual key hits ++rather than complete lines of text (which usually end with a carriage return). ++keypad should be enabled to get the Functions keys, arrow keys etc. See the ++initialization section for details.</P ++><P ++><TT ++CLASS="LITERAL" ++>getch()</TT ++> returns an integer corresponding to the ++key pressed. If it is a normal character, the integer value will be equivalent ++to the character. Otherwise it returns a number which can be matched with the ++constants defined in <TT ++CLASS="LITERAL" ++>curses.h</TT ++>. For example if ++the user presses F1, the integer returned is 265. This can be checked using the ++macro KEY_F() defined in curses.h. This makes reading keys portable and easy to ++manage.</P ++><P ++>For example, if you call getch() like this</P ++><PRE ++CLASS="PROGRAMLISTING" ++> int ch; ++ ++ ch = getch();</PRE ++><P ++>getch() will wait for the user to press a key, (unless you specified a timeout) ++and when user presses a key, the corresponding integer is returned. Then you can ++check the value returned with the constants defined in curses.h to match against ++the keys you want.</P ++><P ++>The following code piece will do that job.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> if(ch == KEY_LEFT) ++ printw("Left arrow is pressed\n");</PRE ++><P ++>Let's write a small program which creates a menu which can be navigated by up ++and down arrows.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="SIMPLEKEYEX" ++>11.2. A Simple Key Usage example</A ++></H3 ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BSIKE" ++></A ++><P ++><B ++>Example 10. A Simple Key Usage example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;stdio.h&#62; ++#include &#60;ncurses.h&#62; + + #define WIDTH 30 + #define HEIGHT 10 +@@ -2246,127 +3577,132 @@ + int starty = 0; + + char *choices[] = { +- "Choice 1", +- "Choice 2", +- "Choice 3", +- "Choice 4", +- "Exit", +- }; ++ "Choice 1", ++ "Choice 2", ++ "Choice 3", ++ "Choice 4", ++ "Exit", ++ }; + int n_choices = sizeof(choices) / sizeof(char *); + void print_menu(WINDOW *menu_win, int highlight); + + int main() +-{ WINDOW *menu_win; +- int highlight = 1; +- int choice = 0; +- int c; +- +- initscr(); +- clear(); +- noecho(); +- cbreak(); /* Line buffering disabled. pass on everything */ +- startx = (80 - WIDTH) / 2; +- starty = (24 - HEIGHT) / 2; +- +- menu_win = newwin(HEIGHT, WIDTH, starty, startx); +- keypad(menu_win, TRUE); +- mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice"); +- refresh(); +- print_menu(menu_win, highlight); +- while(1) +- { c = wgetch(menu_win); +- switch(c) +- { case KEY_UP: +- if(highlight == 1) +- highlight = n_choices; +- else +- --highlight; +- break; +- case KEY_DOWN: +- if(highlight == n_choices) +- highlight = 1; +- else +- ++highlight; +- break; +- case 10: +- choice = highlight; +- break; +- default: +- mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c); +- refresh(); +- break; +- } +- print_menu(menu_win, highlight); +- if(choice != 0) /* User did a choice come out of the infinite loop */ +- break; +- } +- mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]); +- clrtoeol(); +- refresh(); +- endwin(); +- return 0; ++{ WINDOW *menu_win; ++ int highlight = 1; ++ int choice = 0; ++ int c; ++ ++ initscr(); ++ clear(); ++ noecho(); ++ cbreak(); /* Line buffering disabled. pass on everything */ ++ startx = (80 - WIDTH) / 2; ++ starty = (24 - HEIGHT) / 2; ++ ++ menu_win = newwin(HEIGHT, WIDTH, starty, startx); ++ keypad(menu_win, TRUE); ++ mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice"); ++ refresh(); ++ print_menu(menu_win, highlight); ++ while(1) ++ { c = wgetch(menu_win); ++ switch(c) ++ { case KEY_UP: ++ if(highlight == 1) ++ highlight = n_choices; ++ else ++ --highlight; ++ break; ++ case KEY_DOWN: ++ if(highlight == n_choices) ++ highlight = 1; ++ else ++ ++highlight; ++ break; ++ case 10: ++ choice = highlight; ++ break; ++ default: ++ mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c); ++ refresh(); ++ break; ++ } ++ print_menu(menu_win, highlight); ++ if(choice != 0) /* User did a choice come out of the infinite loop */ ++ break; ++ } ++ mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]); ++ clrtoeol(); ++ refresh(); ++ endwin(); ++ return 0; + } + + + void print_menu(WINDOW *menu_win, int highlight) + { +- int x, y, i; ++ int x, y, i; + +- x = 2; +- y = 2; +- box(menu_win, 0, 0); +- for(i = 0; i &lt; n_choices; ++i) +- { if(highlight == i + 1) /* High light the present choice */ +- { wattron(menu_win, A_REVERSE); +- mvwprintw(menu_win, y, x, "%s", choices[i]); +- wattroff(menu_win, A_REVERSE); +- } +- else +- mvwprintw(menu_win, y, x, "%s", choices[i]); +- ++y; +- } +- wrefresh(menu_win); ++ x = 2; ++ y = 2; ++ box(menu_win, 0, 0); ++ for(i = 0; i &#60; n_choices; ++i) ++ { if(highlight == i + 1) /* High light the present choice */ ++ { wattron(menu_win, A_REVERSE); ++ mvwprintw(menu_win, y, x, "%s", choices[i]); ++ wattroff(menu_win, A_REVERSE); ++ } ++ else ++ mvwprintw(menu_win, y, x, "%s", choices[i]); ++ ++y; ++ } ++ wrefresh(menu_win); + } +-</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="MOUSE" id="MOUSE">12. Interfacing with +-the mouse</a></h2> +-<p>Now that you have seen how to get keys, lets do the same thing +-from mouse. Usually each UI allows the user to interact with both +-keyboard and mouse.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MOUSEBASICS" id="MOUSEBASICS">12.1. The +-Basics</a></h3> +-<p>Before you do any thing else, the events you want to receive +-have to be enabled with <var class="LITERAL">mousemask()</var>.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> mousemask( mmask_t newmask, /* The events you want to listen to */ +- mmask_t *oldmask) /* The old events mask */</font> +-</pre></td> +-</tr> +-</table> +-<p>The first parameter to above function is a bit mask of events +-you would like to listen. By default, all the events are turned +-off. The bit mask <var class="LITERAL">ALL_MOUSE_EVENTS</var> can +-be used to get all the events.</p> +-<p>The following are all the event masks:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> Name Description ++</SPAN ++></PRE ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="MOUSE" ++>12. Interfacing with the mouse</A ++></H2 ++><P ++>Now that you have seen how to get keys, lets do the same thing from mouse. ++Usually each UI allows the user to interact with both keyboard and mouse. </P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MOUSEBASICS" ++>12.1. The Basics</A ++></H3 ++><P ++>Before you do any thing else, the events you want to receive have to be enabled ++with <TT ++CLASS="LITERAL" ++>mousemask()</TT ++>.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> mousemask( mmask_t newmask, /* The events you want to listen to */ ++ mmask_t *oldmask) /* The old events mask */</PRE ++><P ++>The first parameter to above function is a bit mask of events you would like to ++listen. By default, all the events are turned off. The bit mask <TT ++CLASS="LITERAL" ++> ALL_MOUSE_EVENTS</TT ++> can be used to get all the events.</P ++><P ++>The following are all the event masks:</P ++><PRE ++CLASS="PROGRAMLISTING" ++> Name Description + --------------------------------------------------------------------- + BUTTON1_PRESSED mouse button 1 down + BUTTON1_RELEASED mouse button 1 up +@@ -2392,79 +3728,85 @@ + BUTTON_CTRL control was down during button state change + BUTTON_ALT alt was down during button state change + ALL_MOUSE_EVENTS report all button state changes +- REPORT_MOUSE_POSITION report mouse movement</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="GETTINGEVENTS" id="GETTINGEVENTS">12.2. +-Getting the events</a></h3> +-<p>Once a class of mouse events have been enabled, getch() class of +-functions return KEY_MOUSE every time some mouse event happens. +-Then the mouse event can be retrieved with <var class= +-"LITERAL">getmouse()</var>.</p> +-<p>The code approximately looks like this:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> MEVENT event; ++ REPORT_MOUSE_POSITION report mouse movement</PRE ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="GETTINGEVENTS" ++>12.2. Getting the events</A ++></H3 ++><P ++>Once a class of mouse events have been enabled, getch() class of functions ++return KEY_MOUSE every time some mouse event happens. Then the mouse event can ++be retrieved with <TT ++CLASS="LITERAL" ++>getmouse()</TT ++>.</P ++><P ++>The code approximately looks like this:</P ++><PRE ++CLASS="PROGRAMLISTING" ++> MEVENT event; + + ch = getch(); + if(ch == KEY_MOUSE) + if(getmouse(&amp;event) == OK) + . /* Do some thing with the event */ + . +- .</font> +-</pre></td> +-</tr> +-</table> +-<p>getmouse() returns the event into the pointer given to it. It's +-a structure which contains</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> typedef struct ++ .</PRE ++><P ++> ++getmouse() returns the event into the pointer given to it. It's a structure ++which contains</P ++><PRE ++CLASS="PROGRAMLISTING" ++> typedef struct + { + short id; /* ID to distinguish multiple devices */ + int x, y, z; /* event coordinates */ + mmask_t bstate; /* button state bits */ +- } </font> +-</pre></td> +-</tr> +-</table> +-<p>The <var class="LITERAL">bstate</var> is the main variable we +-are interested in. It tells the button state of the mouse.</p> +-<p>Then with a code snippet like the following, we can find out +-what happened.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> if(event.bstate &amp; BUTTON1_PRESSED) +- printw("Left Button Pressed");</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MOUSETOGETHER" id="MOUSETOGETHER">12.3. +-Putting it all Together</a></h3> +-<p>That's pretty much interfacing with mouse. Let's create the same +-menu and enable mouse interaction. To make things simpler, key +-handling is removed.</p> +-<div class="EXAMPLE"><a name="BMOME" id="BMOME"></a> +-<p><b>Example 11. Access the menu with mouse !!!</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++ } </PRE ++><P ++>The <TT ++CLASS="LITERAL" ++>bstate</TT ++> is the main variable we are ++interested in. It tells the button state of the mouse.</P ++><P ++>Then with a code snippet like the following, we can find out what happened.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> if(event.bstate &amp; BUTTON1_PRESSED) ++ printw("Left Button Pressed");</PRE ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MOUSETOGETHER" ++>12.3. Putting it all Together</A ++></H3 ++><P ++>That's pretty much interfacing with mouse. Let's create the same menu and enable ++mouse interaction. To make things simpler, key handling is removed.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BMOME" ++></A ++><P ++><B ++>Example 11. Access the menu with mouse !!! </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + #define WIDTH 30 + #define HEIGHT 10 +@@ -2472,12 +3814,12 @@ + int startx = 0; + int starty = 0; + +-char *choices[] = { "Choice 1", +- "Choice 2", +- "Choice 3", +- "Choice 4", +- "Exit", +- }; ++char *choices[] = { "Choice 1", ++ "Choice 2", ++ "Choice 3", ++ "Choice 4", ++ "Exit", ++ }; + + int n_choices = sizeof(choices) / sizeof(char *); + +@@ -2485,270 +3827,338 @@ + void report_choice(int mouse_x, int mouse_y, int *p_choice); + + int main() +-{ int c, choice = 0; +- WINDOW *menu_win; +- MEVENT event; +- +- /* Initialize curses */ +- initscr(); +- clear(); +- noecho(); +- cbreak(); //Line buffering disabled. pass on everything +- +- /* Try to put the window in the middle of screen */ +- startx = (80 - WIDTH) / 2; +- starty = (24 - HEIGHT) / 2; +- +- attron(A_REVERSE); +- mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)"); +- refresh(); +- attroff(A_REVERSE); +- +- /* Print the menu for the first time */ +- menu_win = newwin(HEIGHT, WIDTH, starty, startx); +- print_menu(menu_win, 1); +- /* Get all the mouse events */ +- mousemask(ALL_MOUSE_EVENTS, NULL); +- +- while(1) +- { c = wgetch(menu_win); +- switch(c) +- { case KEY_MOUSE: +- if(getmouse(&amp;event) == OK) +- { /* When the user clicks left mouse button */ +- if(event.bstate &amp; BUTTON1_PRESSED) +- { report_choice(event.x + 1, event.y + 1, &amp;choice); +- if(choice == -1) //Exit chosen +- goto end; +- mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]); +- refresh(); +- } +- } +- print_menu(menu_win, choice); +- break; +- } +- } ++{ int c, choice = 0; ++ WINDOW *menu_win; ++ MEVENT event; ++ ++ /* Initialize curses */ ++ initscr(); ++ clear(); ++ noecho(); ++ cbreak(); //Line buffering disabled. pass on everything ++ ++ /* Try to put the window in the middle of screen */ ++ startx = (80 - WIDTH) / 2; ++ starty = (24 - HEIGHT) / 2; ++ ++ attron(A_REVERSE); ++ mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)"); ++ refresh(); ++ attroff(A_REVERSE); ++ ++ /* Print the menu for the first time */ ++ menu_win = newwin(HEIGHT, WIDTH, starty, startx); ++ print_menu(menu_win, 1); ++ /* Get all the mouse events */ ++ mousemask(ALL_MOUSE_EVENTS, NULL); ++ ++ while(1) ++ { c = wgetch(menu_win); ++ switch(c) ++ { case KEY_MOUSE: ++ if(getmouse(&#38;event) == OK) ++ { /* When the user clicks left mouse button */ ++ if(event.bstate &#38; BUTTON1_PRESSED) ++ { report_choice(event.x + 1, event.y + 1, &#38;choice); ++ if(choice == -1) //Exit chosen ++ goto end; ++ mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]); ++ refresh(); ++ } ++ } ++ print_menu(menu_win, choice); ++ break; ++ } ++ } + end: +- endwin(); +- return 0; ++ endwin(); ++ return 0; + } + + + void print_menu(WINDOW *menu_win, int highlight) + { +- int x, y, i; ++ int x, y, i; + +- x = 2; +- y = 2; +- box(menu_win, 0, 0); +- for(i = 0; i &lt; n_choices; ++i) +- { if(highlight == i + 1) +- { wattron(menu_win, A_REVERSE); +- mvwprintw(menu_win, y, x, "%s", choices[i]); +- wattroff(menu_win, A_REVERSE); +- } +- else +- mvwprintw(menu_win, y, x, "%s", choices[i]); +- ++y; +- } +- wrefresh(menu_win); ++ x = 2; ++ y = 2; ++ box(menu_win, 0, 0); ++ for(i = 0; i &#60; n_choices; ++i) ++ { if(highlight == i + 1) ++ { wattron(menu_win, A_REVERSE); ++ mvwprintw(menu_win, y, x, "%s", choices[i]); ++ wattroff(menu_win, A_REVERSE); ++ } ++ else ++ mvwprintw(menu_win, y, x, "%s", choices[i]); ++ ++y; ++ } ++ wrefresh(menu_win); + } + + /* Report the choice according to mouse position */ + void report_choice(int mouse_x, int mouse_y, int *p_choice) +-{ int i,j, choice; ++{ int i,j, choice; + +- i = startx + 2; +- j = starty + 3; +- +- for(choice = 0; choice &lt; n_choices; ++choice) +- if(mouse_y == j + choice &amp;&amp; mouse_x &gt;= i &amp;&amp; mouse_x &lt;= i + strlen(choices[choice])) +- { if(choice == n_choices - 1) +- *p_choice = -1; +- else +- *p_choice = choice + 1; +- break; +- } +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MISCMOUSEFUNCS" id= +-"MISCMOUSEFUNCS">12.4. Miscellaneous Functions</a></h3> +-<p>The functions mouse_trafo() and wmouse_trafo() can be used to +-convert to mouse co-ordinates to screen relative co-ordinates. See +-curs_mouse(3X) man page for details.</p> +-<p>The mouseinterval function sets the maximum time (in thousands +-of a second) that can elapse between press and release events in +-order for them to be recognized as a click. This function returns +-the previous interval value. The default is one fifth of a +-second.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="SCREEN" id="SCREEN">13. Screen +-Manipulation</a></h2> +-<p>In this section, we will look into some functions, which allow +-us to manage the screen efficiently and to write some fancy +-programs. This is especially important in writing games.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="GETYX" id="GETYX">13.1. getyx() +-functions</a></h3> +-<p>The function <var class="LITERAL">getyx()</var> can be used to +-find out the present cursor co-ordinates. It will fill the values +-of x and y co-ordinates in the arguments given to it. Since getyx() +-is a macro you don't have to pass the address of the variables. It +-can be called as</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> getyx(win, y, x); ++ i = startx + 2; ++ j = starty + 3; ++ ++ for(choice = 0; choice &#60; n_choices; ++choice) ++ if(mouse_y == j + choice &#38;&#38; mouse_x &#62;= i &#38;&#38; mouse_x &#60;= i + strlen(choices[choice])) ++ { if(choice == n_choices - 1) ++ *p_choice = -1; ++ else ++ *p_choice = choice + 1; ++ break; ++ } ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MISCMOUSEFUNCS" ++>12.4. Miscellaneous Functions</A ++></H3 ++><P ++>The functions mouse_trafo() and wmouse_trafo() can be used to convert to mouse ++co-ordinates to screen relative co-ordinates. See curs_mouse(3X) man page for details.</P ++><P ++>The mouseinterval function sets the maximum time (in thousands of a ++second) that can elapse between press and release events in order for ++them to be recognized as a click. This function returns the previous ++interval value. The default is one fifth of a second.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="SCREEN" ++>13. Screen Manipulation</A ++></H2 ++><P ++>In this section, we will look into some functions, which allow us to manage the ++screen efficiently and to write some fancy programs. This is especially ++important in writing games. </P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="GETYX" ++>13.1. getyx() functions</A ++></H3 ++><P ++>&#13;The function <TT ++CLASS="LITERAL" ++>getyx()</TT ++> can be used to find out ++the present cursor co-ordinates. It will fill the values of x and y co-ordinates ++in the arguments given to it. Since getyx() is a macro you don't have to pass ++the address of the variables. It can be called as</P ++><PRE ++CLASS="PROGRAMLISTING" ++> getyx(win, y, x); + /* win: window pointer + * y, x: y, x co-ordinates will be put into this variables +- */</font> +-</pre></td> +-</tr> +-</table> +-<p>The function getparyx() gets the beginning co-ordinates of the +-sub window relative to the main window. This is some times useful +-to update a sub window. When designing fancy stuff like writing +-multiple menus, it becomes difficult to store the menu positions, +-their first option co-ordinates etc. A simple solution to this +-problem, is to create menus in sub windows and later find the +-starting co-ordinates of the menus by using getparyx().</p> +-<p>The functions getbegyx() and getmaxyx() store current window's +-beginning and maximum co-ordinates. These functions are useful in +-the same way as above in managing the windows and sub windows +-effectively.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="SCREENDUMP" id="SCREENDUMP">13.2. Screen +-Dumping</a></h3> +-<p>While writing games, some times it becomes necessary to store +-the state of the screen and restore it back to the same state. The +-function scr_dump() can be used to dump the screen contents to a +-file given as an argument. Later it can be restored by scr_restore +-function. These two simple functions can be used effectively to +-maintain a fast moving game with changing scenarios.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="WINDOWDUMP" id="WINDOWDUMP">13.3. Window +-Dumping</a></h3> +-<p>To store and restore windows, the functions <var class= +-"LITERAL">putwin()</var> and <var class="LITERAL">getwin()</var> +-can be used. <var class="LITERAL">putwin()</var> puts the present +-window state into a file, which can be later restored by +-<var class="LITERAL">getwin()</var>.</p> +-<p>The function <var class="LITERAL">copywin()</var> can be used to +-copy a window completely onto another window. It takes the source +-and destination windows as parameters and according to the +-rectangle specified, it copies the rectangular region from source +-to destination window. It's last parameter specifies whether to +-overwrite or just overlay the contents on to the destination +-window. If this argument is true, then the copying is +-non-destructive.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="MISC" id="MISC">14. Miscellaneous +-features</a></h2> +-<p>Now you know enough features to write a good curses program, +-with all bells and whistles. There are some miscellaneous functions +-which are useful in various cases. Let's go headlong into some of +-those.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="CURSSET" id="CURSSET">14.1. +-curs_set()</a></h3> +-<p>This function can be used to make the cursor invisible. The +-parameter to this function should be</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> 0 : invisible or ++ */</PRE ++><P ++>The function getparyx() gets the beginning co-ordinates of the sub window ++relative to the main window. This is some times useful to update a sub window. ++When designing fancy stuff like writing multiple menus, it becomes difficult to ++store the menu positions, their first option co-ordinates etc. A simple solution ++to this problem, is to create menus in sub windows and later find the starting ++co-ordinates of the menus by using getparyx().</P ++><P ++>The functions getbegyx() and getmaxyx() store current window's beginning and ++maximum co-ordinates. These functions are useful in the same way as above in ++managing the windows and sub windows effectively.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="SCREENDUMP" ++>13.2. Screen Dumping</A ++></H3 ++><P ++>While writing games, some times it becomes necessary to store the state of the ++screen and restore it back to the same state. The function scr_dump() can be ++used to dump the screen contents to a file given as an argument. Later it can be ++restored by scr_restore function. These two simple functions can be used ++effectively to maintain a fast moving game with changing scenarios. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="WINDOWDUMP" ++>13.3. Window Dumping</A ++></H3 ++><P ++>To store and restore windows, the functions ++<TT ++CLASS="LITERAL" ++>putwin()</TT ++> and <TT ++CLASS="LITERAL" ++>getwin()</TT ++> can be used. <TT ++CLASS="LITERAL" ++>putwin()</TT ++> puts ++the present window state into a file, which can be later restored by ++<TT ++CLASS="LITERAL" ++>getwin()</TT ++>.</P ++><P ++> ++The function <TT ++CLASS="LITERAL" ++>copywin()</TT ++> can be used to copy a ++window completely onto another window. It takes the source and destination ++windows as parameters and according to the rectangle specified, it copies the ++rectangular region from source to destination window. It's last parameter ++specifies whether to overwrite or just overlay the contents on to the ++destination window. If this argument is true, then the copying is ++non-destructive.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="MISC" ++>14. Miscellaneous features</A ++></H2 ++><P ++>Now you know enough features to write a good curses program, with all bells and ++whistles. There are some miscellaneous functions which are useful in various ++cases. Let's go headlong into some of those.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="CURSSET" ++>14.1. curs_set()</A ++></H3 ++><P ++>This function can be used to make the cursor invisible. The parameter to this ++function should be </P ++><PRE ++CLASS="PROGRAMLISTING" ++> 0 : invisible or + 1 : normal or +- 2 : very visible.</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="TEMPLEAVE" id="TEMPLEAVE">14.2. +-Temporarily Leaving Curses mode</a></h3> +-<p>Some times you may want to get back to cooked mode (normal line +-buffering mode) temporarily. In such a case you will first need to +-save the tty modes with a call to <var class= +-"LITERAL">def_prog_mode()</var> and then call <var class= +-"LITERAL">endwin()</var> to end the curses mode. This will leave +-you in the original tty mode. To get back to curses once you are +-done, call <var class="LITERAL">reset_prog_mode()</var> . This +-function returns the tty to the state stored by <var class= +-"LITERAL">def_prog_mode()</var>. Then do refresh(), and you are +-back to the curses mode. Here is an example showing the sequence of +-things to be done.</p> +-<div class="EXAMPLE"><a name="BTELE" id="BTELE"></a> +-<p><b>Example 12. Temporarily Leaving Curses Mode</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++ 2 : very visible.</PRE ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="TEMPLEAVE" ++>14.2. Temporarily Leaving Curses mode</A ++></H3 ++><P ++>Some times you may want to get back to cooked mode (normal line buffering mode) ++temporarily. In such a case you will first need to save the tty modes with a ++call to <TT ++CLASS="LITERAL" ++>def_prog_mode()</TT ++> and then call ++<TT ++CLASS="LITERAL" ++>endwin()</TT ++> to end the curses mode. This will ++leave you in the original tty mode. To get back to curses once you are done, ++call <TT ++CLASS="LITERAL" ++>reset_prog_mode() </TT ++>. This function returns ++the tty to the state stored by <TT ++CLASS="LITERAL" ++>def_prog_mode()</TT ++>. Then do refresh(), and you are back to the curses mode. Here ++is an example showing the sequence of things to be done.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BTELE" ++></A ++><P ++><B ++>Example 12. Temporarily Leaving Curses Mode </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + int main() +-{ +- initscr(); /* Start curses mode */ +- printw("Hello World !!!\n"); /* Print Hello World */ +- refresh(); /* Print it on to the real screen */ +- def_prog_mode(); /* Save the tty modes */ +- endwin(); /* End curses mode temporarily */ +- system("/bin/sh"); /* Do whatever you like in cooked mode */ +- reset_prog_mode(); /* Return to the previous tty mode*/ +- /* stored by def_prog_mode() */ +- refresh(); /* Do refresh() to restore the */ +- /* Screen contents */ +- printw("Another String\n"); /* Back to curses use the full */ +- refresh(); /* capabilities of curses */ +- endwin(); /* End curses mode */ +- +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="ACSVARS" id="ACSVARS">14.3. ACS_ +-variables</a></h3> +-<p>If you have ever programmed in DOS, you know about those nifty +-characters in extended character set. They are printable only on +-some terminals. NCURSES functions like <var class= +-"LITERAL">box()</var> use these characters. All these variables +-start with ACS meaning alternative character set. You might have +-noticed me using these characters in some of the programs above. +-Here's an example showing all the characters.</p> +-<div class="EXAMPLE"><a name="BACSVARS" id="BACSVARS"></a> +-<p><b>Example 13. ACS Variables Example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; ++{ ++ initscr(); /* Start curses mode */ ++ printw("Hello World !!!\n"); /* Print Hello World */ ++ refresh(); /* Print it on to the real screen */ ++ def_prog_mode(); /* Save the tty modes */ ++ endwin(); /* End curses mode temporarily */ ++ system("/bin/sh"); /* Do whatever you like in cooked mode */ ++ reset_prog_mode(); /* Return to the previous tty mode*/ ++ /* stored by def_prog_mode() */ ++ refresh(); /* Do refresh() to restore the */ ++ /* Screen contents */ ++ printw("Another String\n"); /* Back to curses use the full */ ++ refresh(); /* capabilities of curses */ ++ endwin(); /* End curses mode */ ++ ++ return 0; ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="ACSVARS" ++>14.3. ACS_ variables</A ++></H3 ++><P ++>If you have ever programmed in DOS, you know about those nifty characters in ++extended character set. They are printable only on some terminals. NCURSES ++functions like <TT ++CLASS="LITERAL" ++>box()</TT ++> use these characters. All ++these variables start with ACS meaning alternative character set. You might have ++noticed me using these characters in some of the programs above. Here's an example ++showing all the characters.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="BACSVARS" ++></A ++><P ++><B ++>Example 13. ACS Variables Example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;ncurses.h&#62; + + int main() + { +@@ -2790,181 +4200,218 @@ + getch(); + endwin(); + +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="OTHERLIB" id="OTHERLIB">15. Other +-libraries</a></h2> +-<p>Apart from the curses library, there are few text mode +-libraries, which provide more functionality and a lot of features. +-The following sections explain three standard libraries which are +-usually distributed along with curses.</p> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="PANELS" id="PANELS">16. Panel +-Library</a></h2> +-<p>Now that you are proficient in curses, you wanted to do some +-thing big. You created a lot of overlapping windows to give a +-professional windows-type look. Unfortunately, it soon becomes +-difficult to manage these. The multiple refreshes, updates plunge +-you into a nightmare. The overlapping windows create blotches, +-whenever you forget to refresh the windows in the proper order.</p> +-<p>Don't despair. There's an elegant solution provided in panels +-library. In the words of developers of ncurses</p> +-<p><em>When your interface design is such that windows may dive +-deeper into the visibility stack or pop to the top at runtime, the +-resulting book-keeping can be tedious and difficult to get right. +-Hence the panels library.</em></p> +-<p>If you have lot of overlapping windows, then panels library is +-the way to go. It obviates the need of doing series of +-wnoutrefresh(), doupdate() and relieves the burden of doing it +-correctly(bottom up). The library maintains information about the +-order of windows, their overlapping and update the screen properly. +-So why wait? Let's take a close peek into panels.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PANELBASICS" id="PANELBASICS">16.1. The +-Basics</a></h3> +-<p>Panel object is a window that is implicitly treated as part of a +-deck including all other panel objects. The deck is treated as a +-stack with the top panel being completely visible and the other +-panels may or may not be obscured according to their positions. So +-the basic idea is to create a stack of overlapping panels and use +-panels library to display them correctly. There is a function +-similar to refresh() which, when called , displays panels in the +-correct order. Functions are provided to hide or show panels, move +-panels, change its size etc.. The overlapping problem is managed by +-the panels library during all the calls to these functions.</p> +-<p>The general flow of a panel program goes like this:</p> +-<ol type="1"> +-<li> +-<p>Create the windows (with newwin()) to be attached to the +-panels.</p> +-</li> +-<li> +-<p>Create panels with the chosen visibility order. Stack them up +-according to the desired visibility. The function new_panel() is +-used to created panels.</p> +-</li> +-<li> +-<p>Call update_panels() to write the panels to the virtual screen +-in correct visibility order. Do a doupdate() to show it on the +-screen.</p> +-</li> +-<li> +-<p>Mainpulate the panels with show_panel(), hide_panel(), +-move_panel() etc. Make use of helper functions like panel_hidden() +-and panel_window(). Make use of user pointer to store custom data +-for a panel. Use the functions set_panel_userptr() and +-panel_userptr() to set and get the user pointer for a panel.</p> +-</li> +-<li> +-<p>When you are done with the panel use del_panel() to delete the +-panel.</p> +-</li> +-</ol> +-<p>Let's make the concepts clear, with some programs. The following +-is a simple program which creates 3 overlapping panels and shows +-them on the screen.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="COMPILEPANELS" id="COMPILEPANELS">16.2. +-Compiling With the Panels Library</a></h3> +-<p>To use panels library functions, you have to include panel.h and +-to link the program with panels library the flag -lpanel should be +-added along with -lncurses in that order.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> #include &lt;panel.h&gt; ++ return 0; ++}</SPAN ++></PRE ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="OTHERLIB" ++>15. Other libraries</A ++></H2 ++><P ++>Apart from the curses library, there are few text mode libraries, which provide ++more functionality and a lot of features. The following sections explain three ++standard libraries which are usually distributed along with curses. </P ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="PANELS" ++>16. Panel Library</A ++></H2 ++><P ++>Now that you are proficient in curses, you wanted to do some thing big. You ++created a lot of overlapping windows to give a professional windows-type look. ++Unfortunately, it soon becomes difficult to manage these. The multiple ++refreshes, updates plunge you into a nightmare. The overlapping windows create ++blotches, whenever you forget to refresh the windows in the proper order. </P ++><P ++>Don't despair. There's an elegant solution provided in panels library. In the ++words of developers of ncurses </P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>When your interface design is such that windows may dive deeper into the ++visibility stack or pop to the top at runtime, the resulting book-keeping can be ++tedious and difficult to get right. Hence the panels library.</I ++></SPAN ++></P ++><P ++>If you have lot of overlapping windows, then panels library is the way to go. It ++obviates the need of doing series of wnoutrefresh(), doupdate() and relieves the ++burden of doing it correctly(bottom up). The library maintains information about ++the order of windows, their overlapping and update the screen properly. So why ++wait? Let's take a close peek into panels.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PANELBASICS" ++>16.1. The Basics</A ++></H3 ++><P ++>Panel object is a window that is implicitly treated as part of a deck including ++all other panel objects. The deck is treated as a stack with the top panel being ++completely visible and the other panels may or may not be obscured according to ++their positions. So the basic idea is to create a stack of overlapping panels ++and use panels library to display them correctly. There is a function similar to ++refresh() which, when called , displays panels in the correct order. Functions ++are provided to hide or show panels, move panels, change its size etc.. The ++overlapping problem is managed by the panels library during all the calls to ++these functions. </P ++><P ++>The general flow of a panel program goes like this: ++ ++<P ++></P ++><OL ++TYPE="1" ++><LI ++><P ++>Create the windows (with newwin()) to be attached to the panels.</P ++></LI ++><LI ++><P ++>Create panels with the chosen visibility order. Stack them up according to the ++desired visibility. The function new_panel() is used to created panels.</P ++></LI ++><LI ++><P ++>Call update_panels() to write the panels to the virtual screen in correct ++visibility order. Do a doupdate() to show it on the screen. </P ++></LI ++><LI ++><P ++>Mainpulate the panels with show_panel(), hide_panel(), move_panel() etc. Make ++use of helper functions like panel_hidden() and panel_window(). Make use of user ++pointer to store custom data for a panel. Use the functions set_panel_userptr() ++and panel_userptr() to set and get the user pointer for a panel.</P ++></LI ++><LI ++><P ++>When you are done with the panel use del_panel() to delete the panel.</P ++></LI ++></OL ++></P ++><P ++>Let's make the concepts clear, with some programs. The following is a simple ++program which creates 3 overlapping panels and shows them on the screen. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="COMPILEPANELS" ++>16.2. Compiling With the Panels Library</A ++></H3 ++><P ++>To use panels library functions, you have to include panel.h and to link the ++program with panels library the flag -lpanel should be added along with ++-lncurses in that order.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> #include &lt;panel.h&gt; + . + . + . + +- compile and link: gcc &lt;program file&gt; -lpanel -lncurses</font> +-</pre></td> +-</tr> +-</table> +-<div class="EXAMPLE"><a name="PPASI" id="PPASI"></a> +-<p><b>Example 14. Panel basics</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt; ++ compile and link: gcc &lt;program file&gt; -lpanel -lncurses</PRE ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="PPASI" ++></A ++><P ++><B ++>Example 14. Panel basics</B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;panel.h&#62; + + int main() +-{ WINDOW *my_wins[3]; +- PANEL *my_panels[3]; +- int lines = 10, cols = 40, y = 2, x = 4, i; +- +- initscr(); +- cbreak(); +- noecho(); +- +- /* Create windows for the panels */ +- my_wins[0] = newwin(lines, cols, y, x); +- my_wins[1] = newwin(lines, cols, y + 1, x + 5); +- my_wins[2] = newwin(lines, cols, y + 2, x + 10); +- +- /* +- * Create borders around the windows so that you can see the effect +- * of panels +- */ +- for(i = 0; i &lt; 3; ++i) +- box(my_wins[i], 0, 0); +- +- /* Attach a panel to each window */ /* Order is bottom up */ +- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ +- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ +- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ +- +- /* Update the stacking order. 2nd panel will be on top */ +- update_panels(); +- +- /* Show it on the screen */ +- doupdate(); +- +- getch(); +- endwin(); ++{ WINDOW *my_wins[3]; ++ PANEL *my_panels[3]; ++ int lines = 10, cols = 40, y = 2, x = 4, i; ++ ++ initscr(); ++ cbreak(); ++ noecho(); ++ ++ /* Create windows for the panels */ ++ my_wins[0] = newwin(lines, cols, y, x); ++ my_wins[1] = newwin(lines, cols, y + 1, x + 5); ++ my_wins[2] = newwin(lines, cols, y + 2, x + 10); ++ ++ /* ++ * Create borders around the windows so that you can see the effect ++ * of panels ++ */ ++ for(i = 0; i &#60; 3; ++i) ++ box(my_wins[i], 0, 0); ++ ++ /* Attach a panel to each window */ /* Order is bottom up */ ++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ ++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ ++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ ++ ++ /* Update the stacking order. 2nd panel will be on top */ ++ update_panels(); ++ ++ /* Show it on the screen */ ++ doupdate(); ++ ++ getch(); ++ endwin(); + } +-</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>As you can see, above program follows a simple flow as +-explained. The windows are created with newwin() and then they are +-attached to panels with new_panel(). As we attach one panel after +-another, the stack of panels gets updated. To put them on screen +-update_panels() and doupdate() are called.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PANELBROWSING" id="PANELBROWSING">16.3. +-Panel Window Browsing</a></h3> +-<p>A slightly complicated example is given below. This program +-creates 3 windows which can be cycled through using tab. Have a +-look at the code.</p> +-<div class="EXAMPLE"><a name="PPABR" id="PPABR"></a> +-<p><b>Example 15. Panel Window Browsing Example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt; ++</SPAN ++></PRE ++></DIV ++><P ++>As you can see, above program follows a simple flow as explained. The windows ++are created with newwin() and then they are attached to panels with new_panel(). ++As we attach one panel after another, the stack of panels gets updated. To put ++them on screen update_panels() and doupdate() are called.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PANELBROWSING" ++>16.3. Panel Window Browsing</A ++></H3 ++><P ++>A slightly complicated example is given below. This program creates 3 ++windows which can be cycled through using tab. Have a look at the code.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="PPABR" ++></A ++><P ++><B ++>Example 15. Panel Window Browsing Example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;panel.h&#62; + + #define NLINES 10 + #define NCOLS 40 +@@ -2974,172 +4421,191 @@ + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color); + + int main() +-{ WINDOW *my_wins[3]; +- PANEL *my_panels[3]; +- PANEL *top; +- int ch; +- +- /* Initialize curses */ +- initscr(); +- start_color(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize all the colors */ +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_GREEN, COLOR_BLACK); +- init_pair(3, COLOR_BLUE, COLOR_BLACK); +- init_pair(4, COLOR_CYAN, COLOR_BLACK); +- +- init_wins(my_wins, 3); +- +- /* Attach a panel to each window */ /* Order is bottom up */ +- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ +- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ +- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ +- +- /* Set up the user pointers to the next panel */ +- set_panel_userptr(my_panels[0], my_panels[1]); +- set_panel_userptr(my_panels[1], my_panels[2]); +- set_panel_userptr(my_panels[2], my_panels[0]); +- +- /* Update the stacking order. 2nd panel will be on top */ +- update_panels(); +- +- /* Show it on the screen */ +- attron(COLOR_PAIR(4)); +- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)"); +- attroff(COLOR_PAIR(4)); +- doupdate(); +- +- top = my_panels[2]; +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case 9: +- top = (PANEL *)panel_userptr(top); +- top_panel(top); +- break; +- } +- update_panels(); +- doupdate(); +- } +- endwin(); +- return 0; ++{ WINDOW *my_wins[3]; ++ PANEL *my_panels[3]; ++ PANEL *top; ++ int ch; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize all the colors */ ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_GREEN, COLOR_BLACK); ++ init_pair(3, COLOR_BLUE, COLOR_BLACK); ++ init_pair(4, COLOR_CYAN, COLOR_BLACK); ++ ++ init_wins(my_wins, 3); ++ ++ /* Attach a panel to each window */ /* Order is bottom up */ ++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ ++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ ++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ ++ ++ /* Set up the user pointers to the next panel */ ++ set_panel_userptr(my_panels[0], my_panels[1]); ++ set_panel_userptr(my_panels[1], my_panels[2]); ++ set_panel_userptr(my_panels[2], my_panels[0]); ++ ++ /* Update the stacking order. 2nd panel will be on top */ ++ update_panels(); ++ ++ /* Show it on the screen */ ++ attron(COLOR_PAIR(4)); ++ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)"); ++ attroff(COLOR_PAIR(4)); ++ doupdate(); ++ ++ top = my_panels[2]; ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case 9: ++ top = (PANEL *)panel_userptr(top); ++ top_panel(top); ++ break; ++ } ++ update_panels(); ++ doupdate(); ++ } ++ endwin(); ++ return 0; + } + + /* Put all the windows */ + void init_wins(WINDOW **wins, int n) +-{ int x, y, i; +- char label[80]; ++{ int x, y, i; ++ char label[80]; + +- y = 2; +- x = 10; +- for(i = 0; i &lt; n; ++i) +- { wins[i] = newwin(NLINES, NCOLS, y, x); +- sprintf(label, "Window Number %d", i + 1); +- win_show(wins[i], label, i + 1); +- y += 3; +- x += 7; +- } ++ y = 2; ++ x = 10; ++ for(i = 0; i &#60; n; ++i) ++ { wins[i] = newwin(NLINES, NCOLS, y, x); ++ sprintf(label, "Window Number %d", i + 1); ++ win_show(wins[i], label, i + 1); ++ y += 3; ++ x += 7; ++ } + } + + /* Show the window with a border and a label */ + void win_show(WINDOW *win, char *label, int label_color) +-{ int startx, starty, height, width; ++{ int startx, starty, height, width; + +- getbegyx(win, starty, startx); +- getmaxyx(win, height, width); ++ getbegyx(win, starty, startx); ++ getmaxyx(win, height, width); + +- box(win, 0, 0); +- mvwaddch(win, 2, 0, ACS_LTEE); +- mvwhline(win, 2, 1, ACS_HLINE, width - 2); +- mvwaddch(win, 2, width - 1, ACS_RTEE); +- +- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color)); ++ box(win, 0, 0); ++ mvwaddch(win, 2, 0, ACS_LTEE); ++ mvwhline(win, 2, 1, ACS_HLINE, width - 2); ++ mvwaddch(win, 2, width - 1, ACS_RTEE); ++ ++ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color)); + } + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- wattron(win, color); +- mvwprintw(win, y, x, "%s", string); +- wattroff(win, color); +- refresh(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="USERPTRUSING" id="USERPTRUSING">16.4. +-Using User Pointers</a></h3> +-<p>In the above example I used user pointers to find out the next +-window in the cycle. We can attach custom information to the panel +-by specifying a user pointer, which can point to any information +-you want to store. In this case I stored the pointer to the next +-panel in the cycle. User pointer for a panel can be set with the +-function <var class="LITERAL">set_panel_userptr()</var>. It can be +-accessed using the function <var class= +-"LITERAL">panel_userptr()</var> which will return the user pointer +-for the panel given as argument. After finding the next panel in +-the cycle It's brought to the top by the function top_panel(). This +-function brings the panel given as argument to the top of the panel +-stack.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PANELMOVERESIZE" id= +-"PANELMOVERESIZE">16.5. Moving and Resizing Panels</a></h3> +-<p>The function <var class="LITERAL">move_panel()</var> can be used +-to move a panel to the desired location. It does not change the +-position of the panel in the stack. Make sure that you use +-move_panel() instead mvwin() on the window associated with the +-panel.</p> +-<p>Resizing a panel is slightly complex. There is no straight +-forward function just to resize the window associated with a panel. +-A solution to resize a panel is to create a new window with the +-desired sizes, change the window associated with the panel using +-replace_panel(). Don't forget to delete the old window. The window +-associated with a panel can be found by using the function +-panel_window().</p> +-<p>The following program shows these concepts, in supposedly simple +-program. You can cycle through the window with &lt;TAB&gt; as +-usual. To resize or move the active panel press 'r' for resize 'm' +-for moving. Then use arrow keys to resize or move it to the desired +-way and press enter to end your resizing or moving. This example +-makes use of user data to get the required data to do the +-operations.</p> +-<div class="EXAMPLE"><a name="PPARE" id="PPARE"></a> +-<p><b>Example 16. Panel Moving and Resizing example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt; ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ wattron(win, color); ++ mvwprintw(win, y, x, "%s", string); ++ wattroff(win, color); ++ refresh(); ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="USERPTRUSING" ++>16.4. Using User Pointers</A ++></H3 ++><P ++>In the above example I used user pointers to find out the next window in the ++cycle. We can attach custom information to the panel by specifying a user ++pointer, which can point to any information you want to store. In this case I ++stored the pointer to the next panel in the cycle. User pointer for a panel can ++be set with the function <TT ++CLASS="LITERAL" ++> set_panel_userptr()</TT ++>. ++It can be accessed using the function <TT ++CLASS="LITERAL" ++>panel_userptr()</TT ++> which will return the user pointer for the panel given as ++argument. After finding the next panel in the cycle It's brought to the top by ++the function top_panel(). This function brings the panel given as argument to ++the top of the panel stack. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PANELMOVERESIZE" ++>16.5. Moving and Resizing Panels</A ++></H3 ++><P ++>The function <TT ++CLASS="LITERAL" ++>move_panel()</TT ++> can be used to move a ++panel to the desired location. It does not change the position of the panel in ++the stack. Make sure that you use move_panel() instead mvwin() on the window ++associated with the panel.</P ++><P ++>Resizing a panel is slightly complex. There is no straight forward function ++just to resize the window associated with a panel. A solution to resize a panel ++is to create a new window with the desired sizes, change the window associated ++with the panel using replace_panel(). Don't forget to delete the old window. The ++window associated with a panel can be found by using the function ++panel_window().</P ++><P ++>The following program shows these concepts, in supposedly simple program. You ++can cycle through the window with &lt;TAB&gt; as usual. To resize or move the ++active panel press 'r' for resize 'm' for moving. Then use arrow keys to resize ++or move it to the desired way and press enter to end your resizing or moving. ++This example makes use of user data to get the required data to do the ++operations. </P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="PPARE" ++></A ++><P ++><B ++>Example 16. Panel Moving and Resizing example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;panel.h&#62; + + typedef struct _PANEL_DATA { +- int x, y, w, h; +- char label[80]; +- int label_color; +- PANEL *next; ++ int x, y, w, h; ++ char label[80]; ++ int label_color; ++ PANEL *next; + }PANEL_DATA; + + #define NLINES 10 +@@ -3151,275 +4617,289 @@ + void set_user_ptrs(PANEL **panels, int n); + + int main() +-{ WINDOW *my_wins[3]; +- PANEL *my_panels[3]; +- PANEL_DATA *top; +- PANEL *stack_top; +- WINDOW *temp_win, *old_win; +- int ch; +- int newx, newy, neww, newh; +- int size = FALSE, move = FALSE; +- +- /* Initialize curses */ +- initscr(); +- start_color(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize all the colors */ +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_GREEN, COLOR_BLACK); +- init_pair(3, COLOR_BLUE, COLOR_BLACK); +- init_pair(4, COLOR_CYAN, COLOR_BLACK); +- +- init_wins(my_wins, 3); +- +- /* Attach a panel to each window */ /* Order is bottom up */ +- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ +- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ +- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ +- +- set_user_ptrs(my_panels, 3); +- /* Update the stacking order. 2nd panel will be on top */ +- update_panels(); +- +- /* Show it on the screen */ +- attron(COLOR_PAIR(4)); +- mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing"); +- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)"); +- attroff(COLOR_PAIR(4)); +- doupdate(); +- +- stack_top = my_panels[2]; +- top = (PANEL_DATA *)panel_userptr(stack_top); +- newx = top-&gt;x; +- newy = top-&gt;y; +- neww = top-&gt;w; +- newh = top-&gt;h; +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case 9: /* Tab */ +- top = (PANEL_DATA *)panel_userptr(stack_top); +- top_panel(top-&gt;next); +- stack_top = top-&gt;next; +- top = (PANEL_DATA *)panel_userptr(stack_top); +- newx = top-&gt;x; +- newy = top-&gt;y; +- neww = top-&gt;w; +- newh = top-&gt;h; +- break; +- case 'r': /* Re-Size*/ +- size = TRUE; +- attron(COLOR_PAIR(4)); +- mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press &lt;ENTER&gt; to end resizing"); +- refresh(); +- attroff(COLOR_PAIR(4)); +- break; +- case 'm': /* Move */ +- attron(COLOR_PAIR(4)); +- mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press &lt;ENTER&gt; to end moving"); +- refresh(); +- attroff(COLOR_PAIR(4)); +- move = TRUE; +- break; +- case KEY_LEFT: +- if(size == TRUE) +- { --newx; +- ++neww; +- } +- if(move == TRUE) +- --newx; +- break; +- case KEY_RIGHT: +- if(size == TRUE) +- { ++newx; +- --neww; +- } +- if(move == TRUE) +- ++newx; +- break; +- case KEY_UP: +- if(size == TRUE) +- { --newy; +- ++newh; +- } +- if(move == TRUE) +- --newy; +- break; +- case KEY_DOWN: +- if(size == TRUE) +- { ++newy; +- --newh; +- } +- if(move == TRUE) +- ++newy; +- break; +- case 10: /* Enter */ +- move(LINES - 4, 0); +- clrtoeol(); +- refresh(); +- if(size == TRUE) +- { old_win = panel_window(stack_top); +- temp_win = newwin(newh, neww, newy, newx); +- replace_panel(stack_top, temp_win); +- win_show(temp_win, top-&gt;label, top-&gt;label_color); +- delwin(old_win); +- size = FALSE; +- } +- if(move == TRUE) +- { move_panel(stack_top, newy, newx); +- move = FALSE; +- } +- break; +- +- } +- attron(COLOR_PAIR(4)); +- mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing"); +- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)"); +- attroff(COLOR_PAIR(4)); +- refresh(); +- update_panels(); +- doupdate(); +- } +- endwin(); +- return 0; ++{ WINDOW *my_wins[3]; ++ PANEL *my_panels[3]; ++ PANEL_DATA *top; ++ PANEL *stack_top; ++ WINDOW *temp_win, *old_win; ++ int ch; ++ int newx, newy, neww, newh; ++ int size = FALSE, move = FALSE; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize all the colors */ ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_GREEN, COLOR_BLACK); ++ init_pair(3, COLOR_BLUE, COLOR_BLACK); ++ init_pair(4, COLOR_CYAN, COLOR_BLACK); ++ ++ init_wins(my_wins, 3); ++ ++ /* Attach a panel to each window */ /* Order is bottom up */ ++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ ++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ ++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ ++ ++ set_user_ptrs(my_panels, 3); ++ /* Update the stacking order. 2nd panel will be on top */ ++ update_panels(); ++ ++ /* Show it on the screen */ ++ attron(COLOR_PAIR(4)); ++ mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing"); ++ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)"); ++ attroff(COLOR_PAIR(4)); ++ doupdate(); ++ ++ stack_top = my_panels[2]; ++ top = (PANEL_DATA *)panel_userptr(stack_top); ++ newx = top-&#62;x; ++ newy = top-&#62;y; ++ neww = top-&#62;w; ++ newh = top-&#62;h; ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case 9: /* Tab */ ++ top = (PANEL_DATA *)panel_userptr(stack_top); ++ top_panel(top-&#62;next); ++ stack_top = top-&#62;next; ++ top = (PANEL_DATA *)panel_userptr(stack_top); ++ newx = top-&#62;x; ++ newy = top-&#62;y; ++ neww = top-&#62;w; ++ newh = top-&#62;h; ++ break; ++ case 'r': /* Re-Size*/ ++ size = TRUE; ++ attron(COLOR_PAIR(4)); ++ mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press &#60;ENTER&#62; to end resizing"); ++ refresh(); ++ attroff(COLOR_PAIR(4)); ++ break; ++ case 'm': /* Move */ ++ attron(COLOR_PAIR(4)); ++ mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press &#60;ENTER&#62; to end moving"); ++ refresh(); ++ attroff(COLOR_PAIR(4)); ++ move = TRUE; ++ break; ++ case KEY_LEFT: ++ if(size == TRUE) ++ { --newx; ++ ++neww; ++ } ++ if(move == TRUE) ++ --newx; ++ break; ++ case KEY_RIGHT: ++ if(size == TRUE) ++ { ++newx; ++ --neww; ++ } ++ if(move == TRUE) ++ ++newx; ++ break; ++ case KEY_UP: ++ if(size == TRUE) ++ { --newy; ++ ++newh; ++ } ++ if(move == TRUE) ++ --newy; ++ break; ++ case KEY_DOWN: ++ if(size == TRUE) ++ { ++newy; ++ --newh; ++ } ++ if(move == TRUE) ++ ++newy; ++ break; ++ case 10: /* Enter */ ++ move(LINES - 4, 0); ++ clrtoeol(); ++ refresh(); ++ if(size == TRUE) ++ { old_win = panel_window(stack_top); ++ temp_win = newwin(newh, neww, newy, newx); ++ replace_panel(stack_top, temp_win); ++ win_show(temp_win, top-&#62;label, top-&#62;label_color); ++ delwin(old_win); ++ size = FALSE; ++ } ++ if(move == TRUE) ++ { move_panel(stack_top, newy, newx); ++ move = FALSE; ++ } ++ break; ++ ++ } ++ attron(COLOR_PAIR(4)); ++ mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing"); ++ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)"); ++ attroff(COLOR_PAIR(4)); ++ refresh(); ++ update_panels(); ++ doupdate(); ++ } ++ endwin(); ++ return 0; + } + + /* Put all the windows */ + void init_wins(WINDOW **wins, int n) +-{ int x, y, i; +- char label[80]; ++{ int x, y, i; ++ char label[80]; + +- y = 2; +- x = 10; +- for(i = 0; i &lt; n; ++i) +- { wins[i] = newwin(NLINES, NCOLS, y, x); +- sprintf(label, "Window Number %d", i + 1); +- win_show(wins[i], label, i + 1); +- y += 3; +- x += 7; +- } ++ y = 2; ++ x = 10; ++ for(i = 0; i &#60; n; ++i) ++ { wins[i] = newwin(NLINES, NCOLS, y, x); ++ sprintf(label, "Window Number %d", i + 1); ++ win_show(wins[i], label, i + 1); ++ y += 3; ++ x += 7; ++ } + } + + /* Set the PANEL_DATA structures for individual panels */ + void set_user_ptrs(PANEL **panels, int n) +-{ PANEL_DATA *ptrs; +- WINDOW *win; +- int x, y, w, h, i; +- char temp[80]; +- +- ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA)); +- +- for(i = 0;i &lt; n; ++i) +- { win = panel_window(panels[i]); +- getbegyx(win, y, x); +- getmaxyx(win, h, w); +- ptrs[i].x = x; +- ptrs[i].y = y; +- ptrs[i].w = w; +- ptrs[i].h = h; +- sprintf(temp, "Window Number %d", i + 1); +- strcpy(ptrs[i].label, temp); +- ptrs[i].label_color = i + 1; +- if(i + 1 == n) +- ptrs[i].next = panels[0]; +- else +- ptrs[i].next = panels[i + 1]; +- set_panel_userptr(panels[i], &amp;ptrs[i]); +- } ++{ PANEL_DATA *ptrs; ++ WINDOW *win; ++ int x, y, w, h, i; ++ char temp[80]; ++ ++ ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA)); ++ ++ for(i = 0;i &#60; n; ++i) ++ { win = panel_window(panels[i]); ++ getbegyx(win, y, x); ++ getmaxyx(win, h, w); ++ ptrs[i].x = x; ++ ptrs[i].y = y; ++ ptrs[i].w = w; ++ ptrs[i].h = h; ++ sprintf(temp, "Window Number %d", i + 1); ++ strcpy(ptrs[i].label, temp); ++ ptrs[i].label_color = i + 1; ++ if(i + 1 == n) ++ ptrs[i].next = panels[0]; ++ else ++ ptrs[i].next = panels[i + 1]; ++ set_panel_userptr(panels[i], &#38;ptrs[i]); ++ } + } + + /* Show the window with a border and a label */ + void win_show(WINDOW *win, char *label, int label_color) +-{ int startx, starty, height, width; ++{ int startx, starty, height, width; + +- getbegyx(win, starty, startx); +- getmaxyx(win, height, width); ++ getbegyx(win, starty, startx); ++ getmaxyx(win, height, width); + +- box(win, 0, 0); +- mvwaddch(win, 2, 0, ACS_LTEE); +- mvwhline(win, 2, 1, ACS_HLINE, width - 2); +- mvwaddch(win, 2, width - 1, ACS_RTEE); +- +- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color)); ++ box(win, 0, 0); ++ mvwaddch(win, 2, 0, ACS_LTEE); ++ mvwhline(win, 2, 1, ACS_HLINE, width - 2); ++ mvwaddch(win, 2, width - 1, ACS_RTEE); ++ ++ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color)); + } + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- wattron(win, color); +- mvwprintw(win, y, x, "%s", string); +- wattroff(win, color); +- refresh(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Concentrate on the main while loop. Once it finds out the type +-of key pressed, it takes appropriate action. If 'r' is pressed +-resizing mode is started. After this the new sizes are updated as +-the user presses the arrow keys. When the user presses +-&lt;ENTER&gt; present selection ends and panel is resized by using +-the concept explained. While in resizing mode the program doesn't +-show how the window is getting resized. It's left as an exercise to +-the reader to print a dotted border while it gets resized to a new +-position.</p> +-<p>When the user presses 'm' the move mode starts. This is a bit +-simpler than resizing. As the arrow keys are pressed the new +-position is updated and pressing of &lt;ENTER&gt; causes the panel +-to be moved by calling the function move_panel().</p> +-<p>In this program the user data which is represented as +-PANEL_DATA, plays very important role in finding the associated +-information with a panel. As written in the comments, the +-PANEL_DATA stores the panel sizes, label, label color and a pointer +-to the next panel in the cycle.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PANELSHOWHIDE" id="PANELSHOWHIDE">16.6. +-Hiding and Showing Panels</a></h3> +-<p>A Panel can be hidden by using the function hide_panel(). This +-function merely removes it form the stack of panels, thus hiding it +-on the screen once you do update_panels() and doupdate(). It +-doesn't destroy the PANEL structure associated with the hidden +-panel. It can be shown again by using the show_panel() +-function.</p> +-<p>The following program shows the hiding of panels. Press 'a' or +-'b' or 'c' to show or hide first, second and third windows +-respectively. It uses a user data with a small variable hide, which +-keeps track of whether the window is hidden or not. For some reason +-the function <var class="LITERAL">panel_hidden()</var> which tells +-whether a panel is hidden or not is not working. A bug report was +-also presented by Michael Andres <a href= +-"http://www.geocrawler.com/archives/3/344/1999/9/0/2643549/" +-target="_top">here</a></p> +-<div class="EXAMPLE"><a name="PPAHI" id="PPAHI"></a> +-<p><b>Example 17. Panel Hiding and Showing example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt; ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ wattron(win, color); ++ mvwprintw(win, y, x, "%s", string); ++ wattroff(win, color); ++ refresh(); ++}</SPAN ++></PRE ++></DIV ++><P ++>Concentrate on the main while loop. Once it finds out the type of key pressed, ++it takes appropriate action. If 'r' is pressed resizing mode is started. After ++this the new sizes are updated as the user presses the arrow keys. When the user ++presses &lt;ENTER&gt; present selection ends and panel is resized by using the ++concept explained. While in resizing mode the program doesn't show how the ++window is getting resized. It's left as an exercise to the reader to print a ++dotted border while it gets resized to a new position. </P ++><P ++>When the user presses 'm' the move mode starts. This is a bit simpler than ++resizing. As the arrow keys are pressed the new position is updated and ++pressing of &lt;ENTER&gt; causes the panel to be moved by calling the function ++move_panel().</P ++><P ++>In this program the user data which is represented as PANEL_DATA, plays very ++important role in finding the associated information with a panel. As written in ++the comments, the PANEL_DATA stores the panel sizes, label, label color and a ++pointer to the next panel in the cycle.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PANELSHOWHIDE" ++>16.6. Hiding and Showing Panels</A ++></H3 ++><P ++>A Panel can be hidden by using the function hide_panel(). This function merely ++removes it form the stack of panels, thus hiding it on the screen once you do ++update_panels() and doupdate(). It doesn't destroy the PANEL structure ++associated with the hidden panel. It can be shown again by using the ++show_panel() function.</P ++><P ++>The following program shows the hiding of panels. Press 'a' or 'b' or 'c' to ++show or hide first, second and third windows respectively. It uses a user data ++with a small variable hide, which keeps track of whether the window is hidden or ++not. For some reason the function ++<TT ++CLASS="LITERAL" ++>panel_hidden()</TT ++> which tells whether a panel is ++hidden or not is not working. A bug report was also presented by Michael Andres ++<A ++HREF="http://www.geocrawler.com/archives/3/344/1999/9/0/2643549/" ++TARGET="_top" ++> here</A ++></P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="PPAHI" ++></A ++><P ++><B ++>Example 17. Panel Hiding and Showing example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;panel.h&#62; + + typedef struct _PANEL_DATA { +- int hide; /* TRUE if panel is hidden */ ++ int hide; /* TRUE if panel is hidden */ + }PANEL_DATA; + + #define NLINES 10 +@@ -3430,257 +4910,292 @@ + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color); + + int main() +-{ WINDOW *my_wins[3]; +- PANEL *my_panels[3]; +- PANEL_DATA panel_datas[3]; +- PANEL_DATA *temp; +- int ch; +- +- /* Initialize curses */ +- initscr(); +- start_color(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize all the colors */ +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_GREEN, COLOR_BLACK); +- init_pair(3, COLOR_BLUE, COLOR_BLACK); +- init_pair(4, COLOR_CYAN, COLOR_BLACK); +- +- init_wins(my_wins, 3); +- +- /* Attach a panel to each window */ /* Order is bottom up */ +- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ +- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ +- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ +- +- /* Initialize panel datas saying that nothing is hidden */ +- panel_datas[0].hide = FALSE; +- panel_datas[1].hide = FALSE; +- panel_datas[2].hide = FALSE; +- +- set_panel_userptr(my_panels[0], &amp;panel_datas[0]); +- set_panel_userptr(my_panels[1], &amp;panel_datas[1]); +- set_panel_userptr(my_panels[2], &amp;panel_datas[2]); +- +- /* Update the stacking order. 2nd panel will be on top */ +- update_panels(); +- +- /* Show it on the screen */ +- attron(COLOR_PAIR(4)); +- mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window) 'b'(Second Window) 'c'(Third Window)"); +- mvprintw(LINES - 2, 0, "F1 to Exit"); +- +- attroff(COLOR_PAIR(4)); +- doupdate(); +- +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case 'a': +- temp = (PANEL_DATA *)panel_userptr(my_panels[0]); +- if(temp-&gt;hide == FALSE) +- { hide_panel(my_panels[0]); +- temp-&gt;hide = TRUE; +- } +- else +- { show_panel(my_panels[0]); +- temp-&gt;hide = FALSE; +- } +- break; +- case 'b': +- temp = (PANEL_DATA *)panel_userptr(my_panels[1]); +- if(temp-&gt;hide == FALSE) +- { hide_panel(my_panels[1]); +- temp-&gt;hide = TRUE; +- } +- else +- { show_panel(my_panels[1]); +- temp-&gt;hide = FALSE; +- } +- break; +- case 'c': +- temp = (PANEL_DATA *)panel_userptr(my_panels[2]); +- if(temp-&gt;hide == FALSE) +- { hide_panel(my_panels[2]); +- temp-&gt;hide = TRUE; +- } +- else +- { show_panel(my_panels[2]); +- temp-&gt;hide = FALSE; +- } +- break; +- } +- update_panels(); +- doupdate(); +- } +- endwin(); +- return 0; ++{ WINDOW *my_wins[3]; ++ PANEL *my_panels[3]; ++ PANEL_DATA panel_datas[3]; ++ PANEL_DATA *temp; ++ int ch; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize all the colors */ ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_GREEN, COLOR_BLACK); ++ init_pair(3, COLOR_BLUE, COLOR_BLACK); ++ init_pair(4, COLOR_CYAN, COLOR_BLACK); ++ ++ init_wins(my_wins, 3); ++ ++ /* Attach a panel to each window */ /* Order is bottom up */ ++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */ ++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */ ++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */ ++ ++ /* Initialize panel datas saying that nothing is hidden */ ++ panel_datas[0].hide = FALSE; ++ panel_datas[1].hide = FALSE; ++ panel_datas[2].hide = FALSE; ++ ++ set_panel_userptr(my_panels[0], &#38;panel_datas[0]); ++ set_panel_userptr(my_panels[1], &#38;panel_datas[1]); ++ set_panel_userptr(my_panels[2], &#38;panel_datas[2]); ++ ++ /* Update the stacking order. 2nd panel will be on top */ ++ update_panels(); ++ ++ /* Show it on the screen */ ++ attron(COLOR_PAIR(4)); ++ mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window) 'b'(Second Window) 'c'(Third Window)"); ++ mvprintw(LINES - 2, 0, "F1 to Exit"); ++ ++ attroff(COLOR_PAIR(4)); ++ doupdate(); ++ ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case 'a': ++ temp = (PANEL_DATA *)panel_userptr(my_panels[0]); ++ if(temp-&#62;hide == FALSE) ++ { hide_panel(my_panels[0]); ++ temp-&#62;hide = TRUE; ++ } ++ else ++ { show_panel(my_panels[0]); ++ temp-&#62;hide = FALSE; ++ } ++ break; ++ case 'b': ++ temp = (PANEL_DATA *)panel_userptr(my_panels[1]); ++ if(temp-&#62;hide == FALSE) ++ { hide_panel(my_panels[1]); ++ temp-&#62;hide = TRUE; ++ } ++ else ++ { show_panel(my_panels[1]); ++ temp-&#62;hide = FALSE; ++ } ++ break; ++ case 'c': ++ temp = (PANEL_DATA *)panel_userptr(my_panels[2]); ++ if(temp-&#62;hide == FALSE) ++ { hide_panel(my_panels[2]); ++ temp-&#62;hide = TRUE; ++ } ++ else ++ { show_panel(my_panels[2]); ++ temp-&#62;hide = FALSE; ++ } ++ break; ++ } ++ update_panels(); ++ doupdate(); ++ } ++ endwin(); ++ return 0; + } + + /* Put all the windows */ + void init_wins(WINDOW **wins, int n) +-{ int x, y, i; +- char label[80]; ++{ int x, y, i; ++ char label[80]; + +- y = 2; +- x = 10; +- for(i = 0; i &lt; n; ++i) +- { wins[i] = newwin(NLINES, NCOLS, y, x); +- sprintf(label, "Window Number %d", i + 1); +- win_show(wins[i], label, i + 1); +- y += 3; +- x += 7; +- } ++ y = 2; ++ x = 10; ++ for(i = 0; i &#60; n; ++i) ++ { wins[i] = newwin(NLINES, NCOLS, y, x); ++ sprintf(label, "Window Number %d", i + 1); ++ win_show(wins[i], label, i + 1); ++ y += 3; ++ x += 7; ++ } + } + + /* Show the window with a border and a label */ + void win_show(WINDOW *win, char *label, int label_color) +-{ int startx, starty, height, width; ++{ int startx, starty, height, width; + +- getbegyx(win, starty, startx); +- getmaxyx(win, height, width); ++ getbegyx(win, starty, startx); ++ getmaxyx(win, height, width); + +- box(win, 0, 0); +- mvwaddch(win, 2, 0, ACS_LTEE); +- mvwhline(win, 2, 1, ACS_HLINE, width - 2); +- mvwaddch(win, 2, width - 1, ACS_RTEE); +- +- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color)); ++ box(win, 0, 0); ++ mvwaddch(win, 2, 0, ACS_LTEE); ++ mvwhline(win, 2, 1, ACS_HLINE, width - 2); ++ mvwaddch(win, 2, width - 1, ACS_RTEE); ++ ++ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color)); + } + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- wattron(win, color); +- mvwprintw(win, y, x, "%s", string); +- wattroff(win, color); +- refresh(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PANELABOVE" id="PANELABOVE">16.7. +-panel_above() and panel_below() Functions</a></h3> +-<p>The functions <var class="LITERAL">panel_above()</var> and +-<var class="LITERAL">panel_below()</var> can be used to find out +-the panel above and below a panel. If the argument to these +-functions is NULL, then they return a pointer to bottom panel and +-top panel respectively.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="MENUS" id="MENUS">17. Menus +-Library</a></h2> +-<p>The menus library provides a nice extension to basic curses, +-through which you can create menus. It provides a set of functions +-to create menus. But they have to be customized to give a nicer +-look, with colors etc. Let's get into the details.</p> +-<p>A menu is a screen display that assists the user to choose some +-subset of a given set of items. To put it simple, a menu is a +-collection of items from which one or more items can be chosen. +-Some readers might not be aware of multiple item selection +-capability. Menu library provides functionality to write menus from +-which the user can chose more than one item as the preferred +-choice. This is dealt with in a later section. Now it is time for +-some rudiments.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MENUBASICS" id="MENUBASICS">17.1. The +-Basics</a></h3> +-<p>To create menus, you first create items, and then post the menu +-to the display. After that, all the processing of user responses is +-done in an elegant function menu_driver() which is the work horse +-of any menu program.</p> +-<p>The general flow of control of a menu program looks like +-this.</p> +-<ol type="1"> +-<li> +-<p>Initialize curses</p> +-</li> +-<li> +-<p>Create items using new_item(). You can specify a name and +-description for the items.</p> +-</li> +-<li> +-<p>Create the menu with new_menu() by specifying the items to be +-attached with.</p> +-</li> +-<li> +-<p>Post the menu with menu_post() and refresh the screen.</p> +-</li> +-<li> +-<p>Process the user requests with a loop and do necessary updates +-to menu with menu_driver.</p> +-</li> +-<li> +-<p>Unpost the menu with menu_unpost()</p> +-</li> +-<li> +-<p>Free the memory allocated to menu by free_menu()</p> +-</li> +-<li> +-<p>Free the memory allocated to the items with free_item()</p> +-</li> +-<li> +-<p>End curses</p> +-</li> +-</ol> +-<p>Let's see a program which prints a simple menu and updates the +-current selection with up, down arrows.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="COMPILEMENUS" id="COMPILEMENUS">17.2. +-Compiling With the Menu Library</a></h3> +-<p>To use menu library functions, you have to include menu.h and to +-link the program with menu library the flag -lmenu should be added +-along with -lncurses in that order.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> #include &lt;menu.h&gt; ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ wattron(win, color); ++ mvwprintw(win, y, x, "%s", string); ++ wattroff(win, color); ++ refresh(); ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PANELABOVE" ++>16.7. panel_above() and panel_below() Functions</A ++></H3 ++><P ++>The functions <TT ++CLASS="LITERAL" ++>panel_above()</TT ++> and ++<TT ++CLASS="LITERAL" ++>panel_below()</TT ++> can be used to find out the panel ++above and below a panel. If the argument to these functions is NULL, then they ++return a pointer to bottom panel and top panel respectively.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="MENUS" ++>17. Menus Library</A ++></H2 ++><P ++>The menus library provides a nice extension to basic curses, through which you ++can create menus. It provides a set of functions to create menus. But they have ++to be customized to give a nicer look, with colors etc. Let's get into the ++details.</P ++><P ++>A menu is a screen display that assists the user to choose some subset of a ++given set of items. To put it simple, a menu is a collection of items from which ++one or more items can be chosen. Some readers might not be aware of multiple ++item selection capability. Menu library provides functionality to write menus ++from which the user can chose more than one item as the preferred choice. This ++is dealt with in a later section. Now it is time for some rudiments.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MENUBASICS" ++>17.1. The Basics</A ++></H3 ++><P ++>To create menus, you first create items, and then post the menu to the display. ++After that, all the processing of user responses is done in an elegant function ++menu_driver() which is the work horse of any menu program. </P ++><P ++>The general flow of control of a menu program looks like this. ++<P ++></P ++><OL ++TYPE="1" ++><LI ++><P ++>Initialize curses</P ++></LI ++><LI ++><P ++>Create items using new_item(). You can specify a name and description for the ++items.</P ++></LI ++><LI ++><P ++>Create the menu with new_menu() by specifying the items to be attached with.</P ++></LI ++><LI ++><P ++>Post the menu with menu_post() and refresh the screen.</P ++></LI ++><LI ++><P ++>Process the user requests with a loop and do necessary updates to menu with ++menu_driver.</P ++></LI ++><LI ++><P ++>Unpost the menu with menu_unpost()</P ++></LI ++><LI ++><P ++>Free the memory allocated to menu by free_menu()</P ++></LI ++><LI ++><P ++>Free the memory allocated to the items with free_item() </P ++></LI ++><LI ++><P ++>End curses </P ++></LI ++></OL ++></P ++><P ++>Let's see a program which prints a simple menu and updates the current selection ++with up, down arrows. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="COMPILEMENUS" ++>17.2. Compiling With the Menu Library</A ++></H3 ++><P ++>To use menu library functions, you have to include menu.h and to link the ++program with menu library the flag -lmenu should be added along with -lncurses ++in that order.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> #include &lt;menu.h&gt; + . + . + . + +- compile and link: gcc &lt;program file&gt; -lmenu -lncurses</font> +-</pre></td> +-</tr> +-</table> +-<div class="EXAMPLE"><a name="MMESI" id="MMESI"></a> +-<p><b>Example 18. Menu Basics</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt; +-#include &lt;menu.h&gt; ++ compile and link: gcc &lt;program file&gt; -lmenu -lncurses</PRE ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMESI" ++></A ++><P ++><B ++>Example 18. Menu Basics </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;curses.h&#62; ++#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", +@@ -3691,69 +5206,64 @@ + }; + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; +- int n_choices, i; +- ITEM *cur_item; +- +- +- initscr(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- n_choices = ARRAY_SIZE(choices); +- my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *)); +- +- for(i = 0; i &lt; n_choices; ++i) +- my_items[i] = new_item(choices[i], choices[i]); +- my_items[n_choices] = (ITEM *)NULL; +- +- my_menu = new_menu((ITEM **)my_items); +- mvprintw(LINES - 2, 0, "F1 to Exit"); +- post_menu(my_menu); +- refresh(); +- +- while((c = getch()) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- } +- } +- +- free_item(my_items[0]); +- free_item(my_items[1]); +- free_menu(my_menu); +- endwin(); ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; ++ int n_choices, i; ++ ITEM *cur_item; ++ ++ ++ initscr(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ n_choices = ARRAY_SIZE(choices); ++ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *)); ++ ++ for(i = 0; i &#60; n_choices; ++i) ++ my_items[i] = new_item(choices[i], choices[i]); ++ my_items[n_choices] = (ITEM *)NULL; ++ ++ my_menu = new_menu((ITEM **)my_items); ++ mvprintw(LINES - 2, 0, "F1 to Exit"); ++ post_menu(my_menu); ++ refresh(); ++ ++ while((c = getch()) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ } ++ } ++ ++ free_item(my_items[0]); ++ free_item(my_items[1]); ++ free_menu(my_menu); ++ endwin(); + } +- </span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>This program demonstrates the basic concepts involved in +-creating a menu using menus library. First we create the items +-using new_item() and then attach them to the menu with new_menu() +-function. After posting the menu and refreshing the screen, the +-main processing loop starts. It reads user input and takes +-corresponding action. The function menu_driver() is the main work +-horse of the menu system. The second parameter to this function +-tells what's to be done with the menu. According to the parameter, +-menu_driver() does the corresponding task. The value can be either +-a menu navigational request, an ascii character, or a KEY_MOUSE +-special key associated with a mouse event.</p> +-<p>The menu_driver accepts following navigational requests.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">&#13; REQ_LEFT_ITEM Move left to an item. ++ </SPAN ++></PRE ++></DIV ++><P ++>This program demonstrates the basic concepts involved in creating a menu using ++menus library. First we create the items using new_item() and then attach them ++to the menu with new_menu() function. After posting the menu and refreshing the ++screen, the main processing loop starts. It reads user input and takes ++corresponding action. The function menu_driver() is the main work horse of the ++menu system. The second parameter to this function tells what's to be done with ++the menu. According to the parameter, menu_driver() does the corresponding task. ++The value can be either a menu navigational request, an ascii character, or a ++KEY_MOUSE special key associated with a mouse event.</P ++><P ++>The menu_driver accepts following navigational requests. ++<PRE ++CLASS="PROGRAMLISTING" ++>&#13; REQ_LEFT_ITEM Move left to an item. + REQ_RIGHT_ITEM Move right to an item. + REQ_UP_ITEM Move up to an item. + REQ_DOWN_ITEM Move down to an item. +@@ -3769,87 +5279,144 @@ + REQ_CLEAR_PATTERN Clear the menu pattern buffer. + REQ_BACK_PATTERN Delete the previous character from the pattern buffer. + REQ_NEXT_MATCH Move to the next item matching the pattern match. +- REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;</font> +-</pre></td> +-</tr> +-</table> +-<p>Don't get overwhelmed by the number of options. We will see them +-slowly one after another. The options of interest in this example +-are REQ_UP_ITEM and REQ_DOWN_ITEM. These two options when passed to +-menu_driver, menu driver updates the current item to one item up or +-down respectively.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MENUDRIVER" id="MENUDRIVER">17.3. Menu +-Driver: The work horse of the menu system</a></h3> +-<p>As you have seen in the above example, menu_driver plays an +-important role in updating the menu. It is very important to +-understand various options it takes and what they do. As explained +-above, the second parameter to menu_driver() can be either a +-navigational request, a printable character or a KEY_MOUSE key. +-Let's dissect the different navigational requests.</p> +-<ul> +-<li> +-<p><em>REQ_LEFT_ITEM and REQ_RIGHT_ITEM</em></p> +-<p>A Menu can be displayed with multiple columns for more than one +-item. This can be done by using the <var class= +-"LITERAL">menu_format()</var>function. When a multi columnar menu +-is displayed these requests cause the menu driver to move the +-current selection to left or right.</p> +-</li> +-<li> +-<p><em>REQ_UP_ITEM and REQ_DOWN_ITEM</em></p> +-<p>These two options you have seen in the above example. These +-options when given, makes the menu_driver to move the current +-selection to an item up or down.</p> +-</li> +-<li> +-<p><em>REQ_SCR_* options</em></p> +-<p>The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE, +-REQ_SCR_UPAGE are related to scrolling. If all the items in the +-menu cannot be displayed in the menu sub window, then the menu is +-scrollable. These requests can be given to the menu_driver to do +-the scrolling either one line up, down or one page down or up +-respectively.</p> +-</li> +-<li> +-<p><em>REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and +-REQ_PREV_ITEM</em></p> +-<p>These requests are self explanatory.</p> +-</li> +-<li> +-<p><em>REQ_TOGGLE_ITEM</em></p> +-<p>This request when given, toggles the present selection. This +-option is to be used only in a multi valued menu. So to use this +-request the option O_ONEVALUE must be off. This option can be made +-off or on with set_menu_opts().</p> +-</li> +-<li> +-<p><em>Pattern Requests</em></p> +-<p>Every menu has an associated pattern buffer, which is used to +-find the nearest match to the ascii characters entered by the user. +-Whenever ascii characters are given to menu_driver, it puts in to +-the pattern buffer. It also tries to find the nearest match to the +-pattern in the items list and moves current selection to that item. +-The request REQ_CLEAR_PATTERN clears the pattern buffer. The +-request REQ_BACK_PATTERN deletes the previous character in the +-pattern buffer. In case the pattern matches more than one item then +-the matched items can be cycled through REQ_NEXT_MATCH and +-REQ_PREV_MATCH which move the current selection to the next and +-previous matches respectively.</p> +-</li> +-<li> +-<p><em>Mouse Requests</em></p> +-<p>In case of KEY_MOUSE requests, according to the mouse position +-an action is taken accordingly. The action to be taken is explained +-in the man page as,</p> +-<table border="0" bgcolor="#E0E0E0" width="90%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"><em> If the second argument is the KEY_MOUSE special key, the ++ REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;</PRE ++></P ++><P ++>Don't get overwhelmed by the number of options. We will see them slowly one ++after another. The options of interest in this example are REQ_UP_ITEM and ++REQ_DOWN_ITEM. These two options when passed to menu_driver, menu driver ++updates the current item to one item up or down respectively.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MENUDRIVER" ++>17.3. Menu Driver: The work horse of the menu system</A ++></H3 ++><P ++>As you have seen in the above example, menu_driver plays an important role in ++updating the menu. It is very important to understand various options it takes ++and what they do. As explained above, the second parameter to menu_driver() can ++be either a navigational request, a printable character or a KEY_MOUSE key. ++Let's dissect the different navigational requests.</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_LEFT_ITEM and REQ_RIGHT_ITEM</I ++></SPAN ++></P ++><P ++>A Menu can be displayed with multiple columns for more than one item. This can ++be done by using the <TT ++CLASS="LITERAL" ++>menu_format()</TT ++>function. ++When a multi columnar menu is displayed these requests cause the menu driver to ++move the current selection to left or right.</P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_UP_ITEM and REQ_DOWN_ITEM </I ++></SPAN ++> </P ++><P ++>These two options you have seen in the above example. These options when given, ++makes the menu_driver to move the current selection to an item up or down.</P ++></LI ++><LI ++><P ++> <SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_* options</I ++></SPAN ++> </P ++><P ++>The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE, REQ_SCR_UPAGE are ++related to scrolling. If all the items in the menu cannot be displayed in the ++menu sub window, then the menu is scrollable. These requests can be given to the ++menu_driver to do the scrolling either one line up, down or one page down or up ++respectively. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and ++REQ_PREV_ITEM </I ++></SPAN ++> </P ++><P ++>These requests are self explanatory.</P ++></LI ++><LI ++><P ++> <SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_TOGGLE_ITEM</I ++></SPAN ++> </P ++><P ++>This request when given, toggles the present selection. This option is to be ++used only in a multi valued menu. So to use this request the option O_ONEVALUE ++must be off. This option can be made off or on with set_menu_opts().</P ++></LI ++><LI ++><P ++> <SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>Pattern Requests </I ++></SPAN ++></P ++><P ++>Every menu has an associated pattern buffer, which is used to find the nearest ++match to the ascii characters entered by the user. Whenever ascii characters are ++given to menu_driver, it puts in to the pattern buffer. It also tries to find ++the nearest match to the pattern in the items list and moves current selection ++to that item. The request REQ_CLEAR_PATTERN clears the pattern buffer. The ++request REQ_BACK_PATTERN deletes the previous character in the pattern buffer. ++In case the pattern matches more than one item then the matched items can be ++cycled through REQ_NEXT_MATCH and REQ_PREV_MATCH which move the current ++selection to the next and previous matches respectively.</P ++></LI ++><LI ++><P ++> <SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>Mouse Requests</I ++></SPAN ++></P ++><P ++>In case of KEY_MOUSE requests, according to the mouse position an action is ++taken accordingly. The action to be taken is explained in the man page as, </P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++> If the second argument is the KEY_MOUSE special key, the + associated mouse event is translated into one of the above + pre-defined requests. Currently only clicks in the user + window (e.g. inside the menu display area or the decora&shy; +@@ -3861,39 +5428,49 @@ + generated, if you doubleclick a REQ_SCR_DPAGE is generated + and if you tripleclick a REQ_LAST_ITEM is generated. If + you click at an item inside the display area of the menu, +- the menu cursor is positioned to that item.</em></font> +-</pre></td> +-</tr> +-</table> +-</li> +-</ul> +-<p>Each of the above requests will be explained in the following +-lines with several examples whenever appropriate.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MENUWINDOWS" id="MENUWINDOWS">17.4. Menu +-Windows</a></h3> +-<p>Every menu created is associated with a window and a sub window. +-The menu window displays any title or border associated with the +-menu. The menu sub window displays the menu items currently +-available for selection. But we didn't specify any window or sub +-window in the simple example. When a window is not specified, +-stdscr is taken as the main window, and then menu system calculates +-the sub window size required for the display of items. Then items +-are displayed in the calculated sub window. So let's play with +-these windows and display a menu with a border and a title.</p> +-<div class="EXAMPLE"><a name="MMEWI" id="MMEWI"></a> +-<p><b>Example 19. Menu Windows Usage example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;menu.h&gt; ++ the menu cursor is positioned to that item.</I ++></SPAN ++></PRE ++></LI ++></UL ++><P ++>Each of the above requests will be explained in the following lines with several ++examples whenever appropriate.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MENUWINDOWS" ++>17.4. Menu Windows</A ++></H3 ++><P ++>Every menu created is associated with a window and a sub window. The menu window ++displays any title or border associated with the menu. The menu sub window ++displays the menu items currently available for selection. But we didn't specify ++any window or sub window in the simple example. When a window is not specified, ++stdscr is taken as the main window, and then menu system calculates the sub ++window size required for the display of items. Then items are displayed in the ++calculated sub window. So let's play with these windows and display a menu with ++a border and a title.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMEWI" ++></A ++><P ++><B ++>Example 19. Menu Windows Usage example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", +@@ -3906,392 +5483,403 @@ + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color); + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; + WINDOW *my_menu_win; + int n_choices, i; +- +- /* Initialize curses */ +- initscr(); +- start_color(); ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); + cbreak(); + noecho(); +- keypad(stdscr, TRUE); +- init_pair(1, COLOR_RED, COLOR_BLACK); ++ keypad(stdscr, TRUE); ++ init_pair(1, COLOR_RED, COLOR_BLACK); + +- /* Create items */ ++ /* Create items */ + n_choices = ARRAY_SIZE(choices); + my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *)); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + my_items[i] = new_item(choices[i], choices[i]); + +- /* Crate menu */ +- my_menu = new_menu((ITEM **)my_items); ++ /* Crate menu */ ++ my_menu = new_menu((ITEM **)my_items); + +- /* Create the window to be associated with the menu */ ++ /* Create the window to be associated with the menu */ + my_menu_win = newwin(10, 40, 4, 4); + keypad(my_menu_win, TRUE); + +- /* Set main window and sub window */ ++ /* Set main window and sub window */ + set_menu_win(my_menu, my_menu_win); + set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1)); + +- /* Set menu mark to the string " * " */ ++ /* Set menu mark to the string " * " */ + set_menu_mark(my_menu, " * "); + +- /* Print a border around the main window and print a title */ ++ /* Print a border around the main window and print a title */ + box(my_menu_win, 0, 0); +- print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1)); +- mvwaddch(my_menu_win, 2, 0, ACS_LTEE); +- mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38); +- mvwaddch(my_menu_win, 2, 39, ACS_RTEE); +- mvprintw(LINES - 2, 0, "F1 to exit"); +- refresh(); ++ print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1)); ++ mvwaddch(my_menu_win, 2, 0, ACS_LTEE); ++ mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38); ++ mvwaddch(my_menu_win, 2, 39, ACS_RTEE); ++ mvprintw(LINES - 2, 0, "F1 to exit"); ++ refresh(); + +- /* Post the menu */ +- post_menu(my_menu); +- wrefresh(my_menu_win); +- +- while((c = wgetch(my_menu_win)) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- } ++ /* Post the menu */ ++ post_menu(my_menu); ++ wrefresh(my_menu_win); ++ ++ while((c = wgetch(my_menu_win)) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ } + wrefresh(my_menu_win); +- } ++ } + +- /* Unpost and free all the memory taken up */ ++ /* Unpost and free all the memory taken up */ + unpost_menu(my_menu); + free_menu(my_menu); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + free_item(my_items[i]); +- endwin(); ++ endwin(); + } + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- wattron(win, color); +- mvwprintw(win, y, x, "%s", string); +- wattroff(win, color); +- refresh(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>This example creates a menu with a title, border, a fancy line +-separating title and the items. As you can see, in order to attach +-a window to a menu the function set_menu_win() has to be used. Then +-we attach the sub window also. This displays the items in the sub +-window. You can also set the mark string which gets displayed to +-the left of the selected item with set_menu_mark().</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="SCROLLMENUS" id="SCROLLMENUS">17.5. +-Scrolling Menus</a></h3> +-<p>If the sub window given for a window is not big enough to show +-all the items, then the menu will be scrollable. When you are on +-the last item in the present list, if you send REQ_DOWN_ITEM, it +-gets translated into REQ_SCR_DLINE and the menu scrolls by one +-item. You can manually give REQ_SCR_ operations to do scrolling. +-Let's see how it can be done.</p> +-<div class="EXAMPLE"><a name="MMESC" id="MMESC"></a> +-<p><b>Example 20. Scrolling Menus example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt; +-#include &lt;menu.h&gt; ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ wattron(win, color); ++ mvwprintw(win, y, x, "%s", string); ++ wattroff(win, color); ++ refresh(); ++}</SPAN ++></PRE ++></DIV ++><P ++>This example creates a menu with a title, border, a fancy line separating title ++and the items. As you can see, in order to attach a window to a menu the ++function set_menu_win() has to be used. Then we attach the sub window also. This ++displays the items in the sub window. You can also set the mark string which ++gets displayed to the left of the selected item with set_menu_mark().</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="SCROLLMENUS" ++>17.5. Scrolling Menus</A ++></H3 ++><P ++>If the sub window given for a window is not big enough to show all the items, ++then the menu will be scrollable. When you are on the last item in the present ++list, if you send REQ_DOWN_ITEM, it gets translated into REQ_SCR_DLINE and the ++menu scrolls by one item. You can manually give REQ_SCR_ operations to do ++scrolling. Let's see how it can be done.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMESC" ++></A ++><P ++><B ++>Example 20. Scrolling Menus example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;curses.h&#62; ++#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", + "Choice 2", + "Choice 3", + "Choice 4", +- "Choice 5", +- "Choice 6", +- "Choice 7", +- "Choice 8", +- "Choice 9", +- "Choice 10", ++ "Choice 5", ++ "Choice 6", ++ "Choice 7", ++ "Choice 8", ++ "Choice 9", ++ "Choice 10", + "Exit", + (char *)NULL, + }; + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color); + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; + WINDOW *my_menu_win; + int n_choices, i; +- +- /* Initialize curses */ +- initscr(); +- start_color(); ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); + cbreak(); + noecho(); +- keypad(stdscr, TRUE); +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_CYAN, COLOR_BLACK); ++ keypad(stdscr, TRUE); ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_CYAN, COLOR_BLACK); + +- /* Create items */ ++ /* Create items */ + n_choices = ARRAY_SIZE(choices); + my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *)); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + my_items[i] = new_item(choices[i], choices[i]); + +- /* Crate menu */ +- my_menu = new_menu((ITEM **)my_items); ++ /* Crate menu */ ++ my_menu = new_menu((ITEM **)my_items); + +- /* Create the window to be associated with the menu */ ++ /* Create the window to be associated with the menu */ + my_menu_win = newwin(10, 40, 4, 4); + keypad(my_menu_win, TRUE); + +- /* Set main window and sub window */ ++ /* Set main window and sub window */ + set_menu_win(my_menu, my_menu_win); + set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1)); +- set_menu_format(my_menu, 5, 1); +- +- /* Set menu mark to the string " * " */ ++ set_menu_format(my_menu, 5, 1); ++ ++ /* Set menu mark to the string " * " */ + set_menu_mark(my_menu, " * "); + +- /* Print a border around the main window and print a title */ ++ /* Print a border around the main window and print a title */ + box(my_menu_win, 0, 0); +- print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1)); +- mvwaddch(my_menu_win, 2, 0, ACS_LTEE); +- mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38); +- mvwaddch(my_menu_win, 2, 39, ACS_RTEE); ++ print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1)); ++ mvwaddch(my_menu_win, 2, 0, ACS_LTEE); ++ mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38); ++ mvwaddch(my_menu_win, 2, 39, ACS_RTEE); + +- /* Post the menu */ +- post_menu(my_menu); +- wrefresh(my_menu_win); +- +- attron(COLOR_PAIR(2)); +- mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items"); +- mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)"); +- attroff(COLOR_PAIR(2)); +- refresh(); +- +- while((c = wgetch(my_menu_win)) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- case KEY_NPAGE: +- menu_driver(my_menu, REQ_SCR_DPAGE); +- break; +- case KEY_PPAGE: +- menu_driver(my_menu, REQ_SCR_UPAGE); +- break; +- } ++ /* Post the menu */ ++ post_menu(my_menu); ++ wrefresh(my_menu_win); ++ ++ attron(COLOR_PAIR(2)); ++ mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items"); ++ mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)"); ++ attroff(COLOR_PAIR(2)); ++ refresh(); ++ ++ while((c = wgetch(my_menu_win)) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ case KEY_NPAGE: ++ menu_driver(my_menu, REQ_SCR_DPAGE); ++ break; ++ case KEY_PPAGE: ++ menu_driver(my_menu, REQ_SCR_UPAGE); ++ break; ++ } + wrefresh(my_menu_win); +- } ++ } + +- /* Unpost and free all the memory taken up */ ++ /* Unpost and free all the memory taken up */ + unpost_menu(my_menu); + free_menu(my_menu); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + free_item(my_items[i]); +- endwin(); ++ endwin(); + } + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- wattron(win, color); +- mvwprintw(win, y, x, "%s", string); +- wattroff(win, color); +- refresh(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>This program is self-explanatory. In this example the number of +-choices has been increased to ten, which is larger than our sub +-window size which can hold 6 items. This message has to be +-explicitly conveyed to the menu system with the function +-set_menu_format(). In here we specify the number of rows and +-columns we want to be displayed for a single page. We can specify +-any number of items to be shown, in the rows variables, if it is +-less than the height of the sub window. If the key pressed by the +-user is a PAGE UP or PAGE DOWN, the menu is scrolled a page due to +-the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to +-menu_driver().</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MULTICOLUMN" id="MULTICOLUMN">17.6. +-Multi Columnar Menus</a></h3> +-<p>In the above example you have seen how to use the function +-set_menu_format(). I didn't mention what the cols variable (third +-parameter) does. Well, If your sub window is wide enough, you can +-opt to display more than one item per row. This can be specified in +-the cols variable. To make things simpler, the following example +-doesn't show descriptions for the items.</p> +-<div class="EXAMPLE"><a name="MMEMUCO" id="MMEMUCO"></a> +-<p><b>Example 21. Milt Columnar Menus Example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt; +-#include &lt;menu.h&gt; ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ wattron(win, color); ++ mvwprintw(win, y, x, "%s", string); ++ wattroff(win, color); ++ refresh(); ++}</SPAN ++></PRE ++></DIV ++><P ++>This program is self-explanatory. In this example the number of choices has been ++increased to ten, which is larger than our sub window size which can hold 6 ++items. This message has to be explicitly conveyed to the menu system with the ++function set_menu_format(). In here we specify the number of rows and columns we ++want to be displayed for a single page. We can specify any number of items to be ++shown, in the rows variables, if it is less than the height of the sub window. ++If the key pressed by the user is a PAGE UP or PAGE DOWN, the menu is scrolled a ++page due to the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to ++menu_driver().</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MULTICOLUMN" ++>17.6. Multi Columnar Menus</A ++></H3 ++><P ++>In the above example you have seen how to use the function set_menu_format(). I ++didn't mention what the cols variable (third parameter) does. Well, If your sub ++window is wide enough, you can opt to display more than one item per row. This ++can be specified in the cols variable. To make things simpler, the following ++example doesn't show descriptions for the items.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMEMUCO" ++></A ++><P ++><B ++>Example 21. Milt Columnar Menus Example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;curses.h&#62; ++#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", "Choice 2", "Choice 3", "Choice 4", "Choice 5", +- "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10", +- "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15", +- "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20", ++ "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10", ++ "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15", ++ "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20", + "Exit", + (char *)NULL, + }; + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; + WINDOW *my_menu_win; + int n_choices, i; +- +- /* Initialize curses */ +- initscr(); +- start_color(); ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); + cbreak(); + noecho(); +- keypad(stdscr, TRUE); +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_CYAN, COLOR_BLACK); ++ keypad(stdscr, TRUE); ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_CYAN, COLOR_BLACK); + +- /* Create items */ ++ /* Create items */ + n_choices = ARRAY_SIZE(choices); + my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *)); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + my_items[i] = new_item(choices[i], choices[i]); + +- /* Crate menu */ +- my_menu = new_menu((ITEM **)my_items); ++ /* Crate menu */ ++ my_menu = new_menu((ITEM **)my_items); + +- /* Set menu option not to show the description */ +- menu_opts_off(my_menu, O_SHOWDESC); ++ /* Set menu option not to show the description */ ++ menu_opts_off(my_menu, O_SHOWDESC); + +- /* Create the window to be associated with the menu */ ++ /* Create the window to be associated with the menu */ + my_menu_win = newwin(10, 70, 4, 4); + keypad(my_menu_win, TRUE); + +- /* Set main window and sub window */ ++ /* Set main window and sub window */ + set_menu_win(my_menu, my_menu_win); + set_menu_sub(my_menu, derwin(my_menu_win, 6, 68, 3, 1)); +- set_menu_format(my_menu, 5, 3); +- set_menu_mark(my_menu, " * "); ++ set_menu_format(my_menu, 5, 3); ++ set_menu_mark(my_menu, " * "); + +- /* Print a border around the main window and print a title */ ++ /* Print a border around the main window and print a title */ + box(my_menu_win, 0, 0); +- +- attron(COLOR_PAIR(2)); +- mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll"); +- mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)"); +- attroff(COLOR_PAIR(2)); +- refresh(); +- +- /* Post the menu */ +- post_menu(my_menu); +- wrefresh(my_menu_win); +- +- while((c = wgetch(my_menu_win)) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- case KEY_LEFT: +- menu_driver(my_menu, REQ_LEFT_ITEM); +- break; +- case KEY_RIGHT: +- menu_driver(my_menu, REQ_RIGHT_ITEM); +- break; +- case KEY_NPAGE: +- menu_driver(my_menu, REQ_SCR_DPAGE); +- break; +- case KEY_PPAGE: +- menu_driver(my_menu, REQ_SCR_UPAGE); +- break; +- } ++ ++ attron(COLOR_PAIR(2)); ++ mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll"); ++ mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)"); ++ attroff(COLOR_PAIR(2)); ++ refresh(); ++ ++ /* Post the menu */ ++ post_menu(my_menu); ++ wrefresh(my_menu_win); ++ ++ while((c = wgetch(my_menu_win)) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ case KEY_LEFT: ++ menu_driver(my_menu, REQ_LEFT_ITEM); ++ break; ++ case KEY_RIGHT: ++ menu_driver(my_menu, REQ_RIGHT_ITEM); ++ break; ++ case KEY_NPAGE: ++ menu_driver(my_menu, REQ_SCR_DPAGE); ++ break; ++ case KEY_PPAGE: ++ menu_driver(my_menu, REQ_SCR_UPAGE); ++ break; ++ } + wrefresh(my_menu_win); +- } ++ } + +- /* Unpost and free all the memory taken up */ ++ /* Unpost and free all the memory taken up */ + unpost_menu(my_menu); + free_menu(my_menu); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + free_item(my_items[i]); +- endwin(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Watch the function call to set_menu_format(). It specifies the +-number of columns to be 3, thus displaying 3 items per row. We have +-also switched off the showing descriptions with the function +-menu_opts_off(). There are couple of functions set_menu_opts(), +-menu_opts_on() and menu_opts() which can be used to manipulate menu +-options. The following menu options can be specified.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> O_ONEVALUE ++ endwin(); ++}</SPAN ++></PRE ++></DIV ++><P ++>Watch the function call to set_menu_format(). It specifies the number of columns ++to be 3, thus displaying 3 items per row. We have also switched off the showing ++descriptions with the function menu_opts_off(). There are couple of functions ++set_menu_opts(), menu_opts_on() and menu_opts() which can be used to manipulate ++menu options. The following menu options can be specified.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> O_ONEVALUE + Only one item can be selected for this menu. + + O_SHOWDESC +@@ -4310,633 +5898,684 @@ + + O_NONCYCLIC + Don't wrap around next-item and previous-item, +- requests to the other end of the menu.</font> +-</pre></td> +-</tr> +-</table> +-<p>All options are on by default. You can switch specific +-attributes on or off with menu_opts_on() and menu_opts_off() +-functions. You can also use set_menu_opts() to directly specify the +-options. The argument to this function should be a OR ed value of +-some of those above constants. The function menu_opts() can be used +-to find out a menu's present options.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MULTIVALUEMENUS" id= +-"MULTIVALUEMENUS">17.7. Multi Valued Menus</a></h3> +-<p>You might be wondering what if you switch off the option +-O_ONEVALUE. Then the menu becomes multi-valued. That means you can +-select more than one item. This brings us to the request +-REQ_TOGGLE_ITEM. Let's see it in action.</p> +-<div class="EXAMPLE"><a name="MMETO" id="MMETO"></a> +-<p><b>Example 22. Multi Valued Menus example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt; +-#include &lt;menu.h&gt; ++ requests to the other end of the menu.</PRE ++><P ++>All options are on by default. You can switch specific attributes on or off with ++menu_opts_on() and menu_opts_off() functions. You can also use set_menu_opts() ++to directly specify the options. The argument to this function should be a OR ed ++value of some of those above constants. The function menu_opts() can be used to ++find out a menu's present options. </P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MULTIVALUEMENUS" ++>17.7. Multi Valued Menus</A ++></H3 ++><P ++>You might be wondering what if you switch off the option O_ONEVALUE. Then the ++menu becomes multi-valued. That means you can select more than one item. This ++brings us to the request REQ_TOGGLE_ITEM. Let's see it in action.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMETO" ++></A ++><P ++><B ++>Example 22. Multi Valued Menus example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;curses.h&#62; ++#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", + "Choice 2", + "Choice 3", + "Choice 4", +- "Choice 5", +- "Choice 6", +- "Choice 7", ++ "Choice 5", ++ "Choice 6", ++ "Choice 7", + "Exit", + }; + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; + int n_choices, i; +- ITEM *cur_item; +- +- /* Initialize curses */ +- initscr(); ++ ITEM *cur_item; ++ ++ /* Initialize curses */ ++ initscr(); + cbreak(); + noecho(); +- keypad(stdscr, TRUE); ++ keypad(stdscr, TRUE); + +- /* Initialize items */ ++ /* Initialize items */ + n_choices = ARRAY_SIZE(choices); + my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *)); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + my_items[i] = new_item(choices[i], choices[i]); +- my_items[n_choices] = (ITEM *)NULL; ++ my_items[n_choices] = (ITEM *)NULL; + +- my_menu = new_menu((ITEM **)my_items); ++ my_menu = new_menu((ITEM **)my_items); + +- /* Make the menu multi valued */ +- menu_opts_off(my_menu, O_ONEVALUE); ++ /* Make the menu multi valued */ ++ menu_opts_off(my_menu, O_ONEVALUE); + +- mvprintw(LINES - 3, 0, "Use &lt;SPACE&gt; to select or unselect an item."); +- mvprintw(LINES - 2, 0, "&lt;ENTER&gt; to see presently selected items(F1 to Exit)"); +- post_menu(my_menu); +- refresh(); +- +- while((c = getch()) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- case ' ': +- menu_driver(my_menu, REQ_TOGGLE_ITEM); +- break; +- case 10: /* Enter */ +- { char temp[200]; +- ITEM **items; +- +- items = menu_items(my_menu); +- temp[0] = '\0'; +- for(i = 0; i &lt; item_count(my_menu); ++i) +- if(item_value(items[i]) == TRUE) +- { strcat(temp, item_name(items[i])); +- strcat(temp, " "); +- } +- move(20, 0); +- clrtoeol(); +- mvprintw(20, 0, temp); +- refresh(); +- } +- break; +- } +- } ++ mvprintw(LINES - 3, 0, "Use &#60;SPACE&#62; to select or unselect an item."); ++ mvprintw(LINES - 2, 0, "&#60;ENTER&#62; to see presently selected items(F1 to Exit)"); ++ post_menu(my_menu); ++ refresh(); ++ ++ while((c = getch()) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ case ' ': ++ menu_driver(my_menu, REQ_TOGGLE_ITEM); ++ break; ++ case 10: /* Enter */ ++ { char temp[200]; ++ ITEM **items; ++ ++ items = menu_items(my_menu); ++ temp[0] = '\0'; ++ for(i = 0; i &#60; item_count(my_menu); ++i) ++ if(item_value(items[i]) == TRUE) ++ { strcat(temp, item_name(items[i])); ++ strcat(temp, " "); ++ } ++ move(20, 0); ++ clrtoeol(); ++ mvprintw(20, 0, temp); ++ refresh(); ++ } ++ break; ++ } ++ } + +- free_item(my_items[0]); ++ free_item(my_items[0]); + free_item(my_items[1]); +- free_menu(my_menu); +- endwin(); ++ free_menu(my_menu); ++ endwin(); + } +- </span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Whew, A lot of new functions. Let's take them one after another. +-Firstly, the REQ_TOGGLE_ITEM. In a multi-valued menu, the user +-should be allowed to select or un select more than one item. The +-request REQ_TOGGLE_ITEM toggles the present selection. In this case +-when space is pressed REQ_TOGGLE_ITEM request is sent to +-menu_driver to achieve the result.</p> +-<p>Now when the user presses &lt;ENTER&gt; we show the items he +-presently selected. First we find out the items associated with the +-menu using the function menu_items(). Then we loop through the +-items to find out if the item is selected or not. The function +-item_value() returns TRUE if an item is selected. The function +-item_count() returns the number of items in the menu. The item name +-can be found with item_name(). You can also find the description +-associated with an item using item_description().</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MENUOPT" id="MENUOPT">17.8. Menu +-Options</a></h3> +-<p>Well, by this time you must be itching for some difference in +-your menu, with lots of functionality. I know. You want Colors !!!. +-You want to create nice menus similar to those text mode <a href= +-"http://www.jersey.net/~debinjoe/games/" target="_top">dos +-games</a>. The functions set_menu_fore() and set_menu_back() can be +-used to change the attribute of the selected item and unselected +-item. The names are misleading. They don't change menu's foreground +-or background which would have been useless.</p> +-<p>The function set_menu_grey() can be used to set the display +-attribute for the non-selectable items in the menu. This brings us +-to the interesting option for an item the one and only +-O_SELECTABLE. We can turn it off by the function item_opts_off() +-and after that that item is not selectable. It's like a grayed item +-in those fancy windows menus. Let's put these concepts in practice +-with this example</p> +-<div class="EXAMPLE"><a name="MMEAT" id="MMEAT"></a> +-<p><b>Example 23. Menu Options example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;menu.h&gt; ++ </SPAN ++></PRE ++></DIV ++><P ++>Whew, A lot of new functions. Let's take them one after another. Firstly, the ++REQ_TOGGLE_ITEM. In a multi-valued menu, the user should be allowed to select ++or un select more than one item. The request REQ_TOGGLE_ITEM toggles the present ++selection. In this case when space is pressed REQ_TOGGLE_ITEM request is sent to ++menu_driver to achieve the result.</P ++><P ++>Now when the user presses &lt;ENTER&gt; we show the items he presently selected. ++First we find out the items associated with the menu using the function ++menu_items(). Then we loop through the items to find out if the item is selected ++or not. The function item_value() returns TRUE if an item is selected. The ++function item_count() returns the number of items in the menu. The item name can ++be found with item_name(). You can also find the description associated with an ++item using item_description().</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MENUOPT" ++>17.8. Menu Options</A ++></H3 ++><P ++>Well, by this time you must be itching for some difference in your menu, with ++lots of functionality. I know. You want Colors !!!. You want to create nice ++menus similar to those text mode <A ++HREF="http://www.jersey.net/~debinjoe/games/" ++TARGET="_top" ++>dos games</A ++>. The functions ++set_menu_fore() and set_menu_back() can be used to change the attribute of the ++selected item and unselected item. The names are misleading. They don't change ++menu's foreground or background which would have been useless. </P ++><P ++>The function set_menu_grey() can be used to set the display attribute for the ++non-selectable items in the menu. This brings us to the interesting option for ++an item the one and only O_SELECTABLE. We can turn it off by the function ++item_opts_off() and after that that item is not selectable. It's like a grayed ++item in those fancy windows menus. Let's put these concepts in practice with ++this example</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMEAT" ++></A ++><P ++><B ++>Example 23. Menu Options example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", + "Choice 2", + "Choice 3", + "Choice 4", +- "Choice 5", +- "Choice 6", +- "Choice 7", ++ "Choice 5", ++ "Choice 6", ++ "Choice 7", + "Exit", + }; + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; + int n_choices, i; +- ITEM *cur_item; +- +- /* Initialize curses */ +- initscr(); +- start_color(); ++ ITEM *cur_item; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); + cbreak(); + noecho(); +- keypad(stdscr, TRUE); +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_GREEN, COLOR_BLACK); +- init_pair(3, COLOR_MAGENTA, COLOR_BLACK); ++ keypad(stdscr, TRUE); ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_GREEN, COLOR_BLACK); ++ init_pair(3, COLOR_MAGENTA, COLOR_BLACK); + +- /* Initialize items */ ++ /* Initialize items */ + n_choices = ARRAY_SIZE(choices); + my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *)); +- for(i = 0; i &lt; n_choices; ++i) ++ for(i = 0; i &#60; n_choices; ++i) + my_items[i] = new_item(choices[i], choices[i]); +- my_items[n_choices] = (ITEM *)NULL; +- item_opts_off(my_items[3], O_SELECTABLE); +- item_opts_off(my_items[6], O_SELECTABLE); +- +- /* Create menu */ +- my_menu = new_menu((ITEM **)my_items); +- +- /* Set fore ground and back ground of the menu */ +- set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE); +- set_menu_back(my_menu, COLOR_PAIR(2)); +- set_menu_grey(my_menu, COLOR_PAIR(3)); +- +- /* Post the menu */ +- mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected"); +- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)"); +- post_menu(my_menu); +- refresh(); +- +- while((c = getch()) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- case 10: /* Enter */ +- move(20, 0); +- clrtoeol(); +- mvprintw(20, 0, "Item selected is : %s", +- item_name(current_item(my_menu))); +- pos_menu_cursor(my_menu); +- break; +- } +- } +- unpost_menu(my_menu); +- for(i = 0; i &lt; n_choices; ++i) +- free_item(my_items[i]); +- free_menu(my_menu); +- endwin(); ++ my_items[n_choices] = (ITEM *)NULL; ++ item_opts_off(my_items[3], O_SELECTABLE); ++ item_opts_off(my_items[6], O_SELECTABLE); ++ ++ /* Create menu */ ++ my_menu = new_menu((ITEM **)my_items); ++ ++ /* Set fore ground and back ground of the menu */ ++ set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE); ++ set_menu_back(my_menu, COLOR_PAIR(2)); ++ set_menu_grey(my_menu, COLOR_PAIR(3)); ++ ++ /* Post the menu */ ++ mvprintw(LINES - 3, 0, "Press &#60;ENTER&#62; to see the option selected"); ++ mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)"); ++ post_menu(my_menu); ++ refresh(); ++ ++ while((c = getch()) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ case 10: /* Enter */ ++ move(20, 0); ++ clrtoeol(); ++ mvprintw(20, 0, "Item selected is : %s", ++ item_name(current_item(my_menu))); ++ pos_menu_cursor(my_menu); ++ break; ++ } ++ } ++ unpost_menu(my_menu); ++ for(i = 0; i &#60; n_choices; ++i) ++ free_item(my_items[i]); ++ free_menu(my_menu); ++ endwin(); + } +- </span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MENUUSERPTR" id="MENUUSERPTR">17.9. The +-useful User Pointer</a></h3> +-<p>We can associate a user pointer with each item in the menu. It +-works the same way as user pointer in panels. It's not touched by +-menu system. You can store any thing you like in that. I usually +-use it to store the function to be executed when the menu option is +-chosen (It's selected and may be the user pressed +-&lt;ENTER&gt;);</p> +-<div class="EXAMPLE"><a name="MMEUS" id="MMEUS"></a> +-<p><b>Example 24. Menu User Pointer Usage</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt; +-#include &lt;menu.h&gt; ++ </SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MENUUSERPTR" ++>17.9. The useful User Pointer</A ++></H3 ++><P ++>We can associate a user pointer with each item in the menu. It works the same ++way as user pointer in panels. It's not touched by menu system. You can store ++any thing you like in that. I usually use it to store the function to be ++executed when the menu option is chosen (It's selected and may be the user ++pressed &lt;ENTER&gt;);</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="MMEUS" ++></A ++><P ++><B ++>Example 24. Menu User Pointer Usage </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;curses.h&#62; ++#include &#60;menu.h&#62; + + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +-#define CTRLD 4 ++#define CTRLD 4 + + char *choices[] = { + "Choice 1", + "Choice 2", + "Choice 3", + "Choice 4", +- "Choice 5", +- "Choice 6", +- "Choice 7", ++ "Choice 5", ++ "Choice 6", ++ "Choice 7", + "Exit", + }; + void func(char *name); + + int main() +-{ ITEM **my_items; +- int c; +- MENU *my_menu; ++{ ITEM **my_items; ++ int c; ++ MENU *my_menu; + int n_choices, i; +- ITEM *cur_item; +- +- /* Initialize curses */ +- initscr(); +- start_color(); ++ ITEM *cur_item; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); + cbreak(); + noecho(); +- keypad(stdscr, TRUE); +- init_pair(1, COLOR_RED, COLOR_BLACK); +- init_pair(2, COLOR_GREEN, COLOR_BLACK); +- init_pair(3, COLOR_MAGENTA, COLOR_BLACK); ++ keypad(stdscr, TRUE); ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ init_pair(2, COLOR_GREEN, COLOR_BLACK); ++ init_pair(3, COLOR_MAGENTA, COLOR_BLACK); + +- /* Initialize items */ ++ /* Initialize items */ + n_choices = ARRAY_SIZE(choices); + my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *)); +- for(i = 0; i &lt; n_choices; ++i) +- { my_items[i] = new_item(choices[i], choices[i]); +- /* Set the user pointer */ +- set_item_userptr(my_items[i], func); +- } +- my_items[n_choices] = (ITEM *)NULL; +- +- /* Create menu */ +- my_menu = new_menu((ITEM **)my_items); +- +- /* Post the menu */ +- mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected"); +- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)"); +- post_menu(my_menu); +- refresh(); +- +- while((c = getch()) != KEY_F(1)) +- { switch(c) +- { case KEY_DOWN: +- menu_driver(my_menu, REQ_DOWN_ITEM); +- break; +- case KEY_UP: +- menu_driver(my_menu, REQ_UP_ITEM); +- break; +- case 10: /* Enter */ +- { ITEM *cur; +- void (*p)(char *); +- +- cur = current_item(my_menu); +- p = item_userptr(cur); +- p((char *)item_name(cur)); +- pos_menu_cursor(my_menu); +- break; +- } +- break; +- } +- } +- unpost_menu(my_menu); +- for(i = 0; i &lt; n_choices; ++i) +- free_item(my_items[i]); +- free_menu(my_menu); +- endwin(); ++ for(i = 0; i &#60; n_choices; ++i) ++ { my_items[i] = new_item(choices[i], choices[i]); ++ /* Set the user pointer */ ++ set_item_userptr(my_items[i], func); ++ } ++ my_items[n_choices] = (ITEM *)NULL; ++ ++ /* Create menu */ ++ my_menu = new_menu((ITEM **)my_items); ++ ++ /* Post the menu */ ++ mvprintw(LINES - 3, 0, "Press &#60;ENTER&#62; to see the option selected"); ++ mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)"); ++ post_menu(my_menu); ++ refresh(); ++ ++ while((c = getch()) != KEY_F(1)) ++ { switch(c) ++ { case KEY_DOWN: ++ menu_driver(my_menu, REQ_DOWN_ITEM); ++ break; ++ case KEY_UP: ++ menu_driver(my_menu, REQ_UP_ITEM); ++ break; ++ case 10: /* Enter */ ++ { ITEM *cur; ++ void (*p)(char *); ++ ++ cur = current_item(my_menu); ++ p = item_userptr(cur); ++ p((char *)item_name(cur)); ++ pos_menu_cursor(my_menu); ++ break; ++ } ++ break; ++ } ++ } ++ unpost_menu(my_menu); ++ for(i = 0; i &#60; n_choices; ++i) ++ free_item(my_items[i]); ++ free_menu(my_menu); ++ endwin(); + } + + void func(char *name) +-{ move(20, 0); +- clrtoeol(); +- mvprintw(20, 0, "Item selected is : %s", name); +-} </span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="FORMS" id="FORMS">18. Forms +-Library</a></h2> +-<p>Well. If you have seen those forms on web pages which take input +-from users and do various kinds of things, you might be wondering +-how would any one create such forms in text mode display. It's +-quite difficult to write those nifty forms in plain ncurses. Forms +-library tries to provide a basic frame work to build and maintain +-forms with ease. It has lot of features(functions) which manage +-validation, dynamic expansion of fields etc.. Let's see it in full +-flow.</p> +-<p>A form is a collection of fields; each field can be either a +-label(static text) or a data-entry location. The forms also library +-provides functions to divide forms into multiple pages.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="FORMBASICS" id="FORMBASICS">18.1. The +-Basics</a></h3> +-<p>Forms are created in much the same way as menus. First the +-fields related to the form are created with new_field(). You can +-set options for the fields, so that they can be displayed with some +-fancy attributes, validated before the field looses focus etc.. +-Then the fields are attached to form. After this, the form can be +-posted to display and is ready to receive inputs. On the similar +-lines to menu_driver(), the form is manipulated with form_driver(). +-We can send requests to form_driver to move focus to a certain +-field, move cursor to end of the field etc.. After the user enters +-values in the fields and validation done, form can be unposted and +-memory allocated can be freed.</p> +-<p>The general flow of control of a forms program looks like +-this.</p> +-<ol type="1"> +-<li> +-<p>Initialize curses</p> +-</li> +-<li> +-<p>Create fields using new_field(). You can specify the height and +-width of the field, and its position on the form.</p> +-</li> +-<li> +-<p>Create the forms with new_form() by specifying the fields to be +-attached with.</p> +-</li> +-<li> +-<p>Post the form with form_post() and refresh the screen.</p> +-</li> +-<li> +-<p>Process the user requests with a loop and do necessary updates +-to form with form_driver.</p> +-</li> +-<li> +-<p>Unpost the menu with form_unpost()</p> +-</li> +-<li> +-<p>Free the memory allocated to menu by free_form()</p> +-</li> +-<li> +-<p>Free the memory allocated to the items with free_field()</p> +-</li> +-<li> +-<p>End curses</p> +-</li> +-</ol> +-<p>As you can see, working with forms library is much similar to +-handling menu library. The following examples will explore various +-aspects of form processing. Let's start the journey with a simple +-example. first.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="COMPILEFORMS" id="COMPILEFORMS">18.2. +-Compiling With the Forms Library</a></h3> +-<p>To use forms library functions, you have to include form.h and +-to link the program with forms library the flag -lform should be +-added along with -lncurses in that order.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"> #include &lt;form.h&gt; ++{ move(20, 0); ++ clrtoeol(); ++ mvprintw(20, 0, "Item selected is : %s", name); ++} </SPAN ++></PRE ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="FORMS" ++>18. Forms Library</A ++></H2 ++><P ++>Well. If you have seen those forms on web pages which take input from users and ++do various kinds of things, you might be wondering how would any one create such ++forms in text mode display. It's quite difficult to write those nifty forms in ++plain ncurses. Forms library tries to provide a basic frame work to build and ++maintain forms with ease. It has lot of features(functions) which manage ++validation, dynamic expansion of fields etc.. Let's see it in full flow.</P ++><P ++>A form is a collection of fields; each field can be either a label(static text) ++or a data-entry location. The forms also library provides functions to divide ++forms into multiple pages. </P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="FORMBASICS" ++>18.1. The Basics</A ++></H3 ++><P ++>Forms are created in much the same way as menus. First the fields related to the ++form are created with new_field(). You can set options for the fields, so that ++they can be displayed with some fancy attributes, validated before the field ++looses focus etc.. Then the fields are attached to form. After this, the form ++can be posted to display and is ready to receive inputs. On the similar lines to ++menu_driver(), the form is manipulated with form_driver(). We can send requests ++to form_driver to move focus to a certain field, move cursor to end of the field ++etc.. After the user enters values in the fields and validation done, form can ++be unposted and memory allocated can be freed.</P ++><P ++>The general flow of control of a forms program looks like this. ++ ++<P ++></P ++><OL ++TYPE="1" ++><LI ++><P ++>Initialize curses</P ++></LI ++><LI ++><P ++>Create fields using new_field(). You can specify the height and ++width of the field, and its position on the form.</P ++></LI ++><LI ++><P ++>Create the forms with new_form() by specifying the fields to be ++attached with.</P ++></LI ++><LI ++><P ++>Post the form with form_post() and refresh the screen.</P ++></LI ++><LI ++><P ++>Process the user requests with a loop and do necessary updates ++to form with form_driver.</P ++></LI ++><LI ++><P ++>Unpost the menu with form_unpost()</P ++></LI ++><LI ++><P ++>Free the memory allocated to menu by free_form()</P ++></LI ++><LI ++><P ++>Free the memory allocated to the items with free_field()</P ++></LI ++><LI ++><P ++>End curses</P ++></LI ++></OL ++></P ++><P ++>As you can see, working with forms library is much similar to handling menu ++library. The following examples will explore various aspects of form ++processing. Let's start the journey with a simple example. first.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="COMPILEFORMS" ++>18.2. Compiling With the Forms Library</A ++></H3 ++><P ++>To use forms library functions, you have to include form.h and to link the ++program with forms library the flag -lform should be added along with -lncurses ++in that order.</P ++><PRE ++CLASS="PROGRAMLISTING" ++> #include &lt;form.h&gt; + . + . + . + +- compile and link: gcc &lt;program file&gt; -lform -lncurses</font> +-</pre></td> +-</tr> +-</table> +-<div class="EXAMPLE"><a name="FFOSI" id="FFOSI"></a> +-<p><b>Example 25. Forms Basics</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;form.h&gt; ++ compile and link: gcc &lt;program file&gt; -lform -lncurses</PRE ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="FFOSI" ++></A ++><P ++><B ++>Example 25. Forms Basics </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;form.h&#62; + + int main() +-{ FIELD *field[3]; +- FORM *my_form; +- int ch; +- +- /* Initialize curses */ +- initscr(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize the fields */ +- field[0] = new_field(1, 10, 4, 18, 0, 0); +- field[1] = new_field(1, 10, 6, 18, 0, 0); +- field[2] = NULL; +- +- /* Set field options */ +- set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */ +- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ +- /* Field is filled up */ +- set_field_back(field[1], A_UNDERLINE); +- field_opts_off(field[1], O_AUTOSKIP); +- +- /* Create the form and post it */ +- my_form = new_form(field); +- post_form(my_form); +- refresh(); +- +- mvprintw(4, 10, "Value 1:"); +- mvprintw(6, 10, "Value 2:"); +- refresh(); +- +- /* Loop through to get user requests */ +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case KEY_DOWN: +- /* Go to next field */ +- form_driver(my_form, REQ_NEXT_FIELD); +- /* Go to the end of the present buffer */ +- /* Leaves nicely at the last character */ +- form_driver(my_form, REQ_END_LINE); +- break; +- case KEY_UP: +- /* Go to previous field */ +- form_driver(my_form, REQ_PREV_FIELD); +- form_driver(my_form, REQ_END_LINE); +- break; +- default: +- /* If this is a normal character, it gets */ +- /* Printed */ +- form_driver(my_form, ch); +- break; +- } +- } +- +- /* Un post form and free the memory */ +- unpost_form(my_form); +- free_form(my_form); +- free_field(field[0]); +- free_field(field[1]); +- +- endwin(); +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Above example is pretty straight forward. It creates two fields +-with <var class="LITERAL">new_field()</var>. new_field() takes +-height, width, starty, startx, number of offscreen rows and number +-of additional working buffers. The fifth argument number of +-offscreen rows specifies how much of the field to be shown. If it +-is zero, the entire field is always displayed otherwise the form +-will be scrollable when the user accesses not displayed parts of +-the field. The forms library allocates one buffer per field to +-store the data user enters. Using the last parameter to new_field() +-we can specify it to allocate some additional buffers. These can be +-used for any purpose you like.</p> +-<p>After creating the fields, back ground attribute of both of them +-is set to an underscore with set_field_back(). The AUTOSKIP option +-is turned off using field_opts_off(). If this option is turned on, +-focus will move to the next field in the form once the active field +-is filled up completely.</p> +-<p>After attaching the fields to the form, it is posted. Here on, +-user inputs are processed in the while loop, by making +-corresponding requests to form_driver. The details of all the +-requests to the form_driver() are explained later.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PLAYFIELDS" id="PLAYFIELDS">18.3. +-Playing with Fields</a></h3> +-<p>Each form field is associated with a lot of attributes. They can +-be manipulated to get the required effect and to have fun !!!. So +-why wait?</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="FETCHINFO" id="FETCHINFO">18.3.1. +-Fetching Size and Location of Field</a></h4> +-<p>The parameters we have given at the time of creation of a field +-can be retrieved with field_info(). It returns height, width, +-starty, startx, number of offscreen rows, and number of additional +-buffers into the parameters given to it. It is a sort of inverse of +-new_field().</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int field_info( FIELD *field, /* field from which to fetch */ ++{ FIELD *field[3]; ++ FORM *my_form; ++ int ch; ++ ++ /* Initialize curses */ ++ initscr(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize the fields */ ++ field[0] = new_field(1, 10, 4, 18, 0, 0); ++ field[1] = new_field(1, 10, 6, 18, 0, 0); ++ field[2] = NULL; ++ ++ /* Set field options */ ++ set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */ ++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ ++ /* Field is filled up */ ++ set_field_back(field[1], A_UNDERLINE); ++ field_opts_off(field[1], O_AUTOSKIP); ++ ++ /* Create the form and post it */ ++ my_form = new_form(field); ++ post_form(my_form); ++ refresh(); ++ ++ mvprintw(4, 10, "Value 1:"); ++ mvprintw(6, 10, "Value 2:"); ++ refresh(); ++ ++ /* Loop through to get user requests */ ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case KEY_DOWN: ++ /* Go to next field */ ++ form_driver(my_form, REQ_NEXT_FIELD); ++ /* Go to the end of the present buffer */ ++ /* Leaves nicely at the last character */ ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ case KEY_UP: ++ /* Go to previous field */ ++ form_driver(my_form, REQ_PREV_FIELD); ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ default: ++ /* If this is a normal character, it gets */ ++ /* Printed */ ++ form_driver(my_form, ch); ++ break; ++ } ++ } ++ ++ /* Un post form and free the memory */ ++ unpost_form(my_form); ++ free_form(my_form); ++ free_field(field[0]); ++ free_field(field[1]); ++ ++ endwin(); ++ return 0; ++}</SPAN ++></PRE ++></DIV ++><P ++>Above example is pretty straight forward. It creates two fields with ++<TT ++CLASS="LITERAL" ++>new_field()</TT ++>. new_field() takes height, width, ++starty, startx, number of offscreen rows and number of additional working ++buffers. The fifth argument number of offscreen rows specifies how much of the ++field to be shown. If it is zero, the entire field is always displayed otherwise ++the form will be scrollable when the user accesses not displayed parts of the ++field. The forms library allocates one buffer per field to store the data user ++enters. Using the last parameter to new_field() we can specify it to allocate ++some additional buffers. These can be used for any purpose you like.</P ++><P ++>After creating the fields, back ground attribute of both of them is set to an ++underscore with set_field_back(). The AUTOSKIP option is turned off using ++field_opts_off(). If this option is turned on, focus will move to the next ++field in the form once the active field is filled up completely.</P ++><P ++>After attaching the fields to the form, it is posted. Here on, user inputs are ++processed in the while loop, by making corresponding requests to form_driver. ++The details of all the requests to the form_driver() are explained later.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PLAYFIELDS" ++>18.3. Playing with Fields</A ++></H3 ++><P ++>Each form field is associated with a lot of attributes. They can be manipulated ++to get the required effect and to have fun !!!. So why wait? </P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="FETCHINFO" ++>18.3.1. Fetching Size and Location of Field</A ++></H4 ++><P ++>The parameters we have given at the time of creation of a field can be retrieved ++with field_info(). It returns height, width, starty, startx, number of offscreen ++rows, and number of additional buffers into the parameters given to it. It is a ++sort of inverse of new_field().</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int field_info( FIELD *field, /* field from which to fetch */ + int *height, *int width, /* field size */ + int *top, int *left, /* upper left corner */ + int *offscreen, /* number of offscreen rows */ +- int *nbuf); /* number of working buffers */</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="MOVEFIELD" id="MOVEFIELD">18.3.2. Moving +-the field</a></h4> +-<p>The location of the field can be moved to a different position +-with move_field().</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int move_field( FIELD *field, /* field to alter */ +- int top, int left); /* new upper-left corner */</font> +-</pre></td> +-</tr> +-</table> +-<p>As usual, the changed position can be queried with +-field_infor().</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="JUSTIFYFIELD" id="JUSTIFYFIELD">18.3.3. +-Field Justification</a></h4> +-<p>The justification to be done for the field can be fixed using +-the function set_field_just().</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> int set_field_just(FIELD *field, /* field to alter */ ++ int *nbuf); /* number of working buffers */</PRE ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="MOVEFIELD" ++>18.3.2. Moving the field</A ++></H4 ++><P ++>The location of the field can be moved to a different position with ++move_field().</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int move_field( FIELD *field, /* field to alter */ ++ int top, int left); /* new upper-left corner */</PRE ++><P ++>As usual, the changed position can be queried with field_infor().</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="JUSTIFYFIELD" ++>18.3.3. Field Justification</A ++></H4 ++><P ++>The justification to be done for the field can be fixed using the function ++set_field_just().</P ++><PRE ++CLASS="PROGRAMLISTING" ++> int set_field_just(FIELD *field, /* field to alter */ + int justmode); /* mode to set */ +- int field_just(FIELD *field); /* fetch justify mode of field */</font> +-</pre></td> +-</tr> +-</table> +-<p>The justification mode valued accepted and returned by these +-functions are NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or +-JUSTIFY_CENTER.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="FIELDDISPATTRIB" id= +-"FIELDDISPATTRIB">18.3.4. Field Display Attributes</a></h4> +-<p>As you have seen, in the above example, display attribute for +-the fields can be set with set_field_fore() and setfield_back(). +-These functions set foreground and background attribute of the +-fields. You can also specify a pad character which will be filled +-in the unfilled portion of the field. The pad character is set with +-a call to set_field_pad(). Default pad value is a space. The +-functions field_fore(), field_back, field_pad() can be used to +-query the present foreground, background attributes and pad +-character for the field. The following list gives the usage of +-functions.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">&#13;int set_field_fore(FIELD *field, /* field to alter */ ++ int field_just(FIELD *field); /* fetch justify mode of field */</PRE ++><P ++>The justification mode valued accepted and returned by these functions are ++NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="FIELDDISPATTRIB" ++>18.3.4. Field Display Attributes</A ++></H4 ++><P ++>As you have seen, in the above example, display attribute for the fields can be ++set with set_field_fore() and setfield_back(). These functions set foreground ++and background attribute of the fields. You can also specify a pad character ++which will be filled in the unfilled portion of the field. The pad character is ++set with a call to set_field_pad(). Default pad value is a space. The functions ++field_fore(), field_back, field_pad() can be used to query the present ++foreground, background attributes and pad character for the field. The following ++list gives the usage of functions.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>&#13;int set_field_fore(FIELD *field, /* field to alter */ + chtype attr); /* attribute to set */ + + chtype field_fore(FIELD *field); /* field to query */ +@@ -4952,124 +6591,127 @@ + int pad); /* pad character to set */ + + chtype field_pad(FIELD *field); /* field to query */ +- /* returns present pad character */&#13;</font> +-</pre></td> +-</tr> +-</table> +-<p>Though above functions seem quite simple, using colors with +-set_field_fore() may be frustrating in the beginning. Let me first +-explain about foreground and background attributes of a field. The +-foreground attribute is associated with the character. That means a +-character in the field is printed with the attribute you have set +-with set_field_fore(). Background attribute is the attribute used +-to fill background of field, whether any character is there or not. +-So what about colors? Since colors are always defined in pairs, +-what is the right way to display colored fields? Here's an example +-clarifying color attributes.</p> +-<div class="EXAMPLE"><a name="FFOAT" id="FFOAT"></a> +-<p><b>Example 26. Form Attributes example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;form.h&gt; ++ /* returns present pad character */&#13;</PRE ++><P ++>Though above functions seem quite simple, using colors with set_field_fore() may ++be frustrating in the beginning. Let me first explain about foreground and ++background attributes of a field. The foreground attribute is associated with ++the character. That means a character in the field is printed with the attribute ++you have set with set_field_fore(). Background attribute is the attribute used ++to fill background of field, whether any character is there or not. So what ++about colors? Since colors are always defined in pairs, what is the right way to ++display colored fields? Here's an example clarifying color attributes.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="FFOAT" ++></A ++><P ++><B ++>Example 26. Form Attributes example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;form.h&#62; + + int main() +-{ FIELD *field[3]; +- FORM *my_form; +- int ch; +- +- /* Initialize curses */ +- initscr(); +- start_color(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize few color pairs */ +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- init_pair(2, COLOR_WHITE, COLOR_BLUE); +- +- /* Initialize the fields */ +- field[0] = new_field(1, 10, 4, 18, 0, 0); +- field[1] = new_field(1, 10, 6, 18, 0, 0); +- field[2] = NULL; +- +- /* Set field options */ +- set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */ +- set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */ +- /* are printed in white */ +- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ +- /* Field is filled up */ +- set_field_back(field[1], A_UNDERLINE); +- field_opts_off(field[1], O_AUTOSKIP); +- +- /* Create the form and post it */ +- my_form = new_form(field); +- post_form(my_form); +- refresh(); +- +- set_current_field(my_form, field[0]); /* Set focus to the colored field */ +- mvprintw(4, 10, "Value 1:"); +- mvprintw(6, 10, "Value 2:"); +- mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields"); +- refresh(); +- +- /* Loop through to get user requests */ +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case KEY_DOWN: +- /* Go to next field */ +- form_driver(my_form, REQ_NEXT_FIELD); +- /* Go to the end of the present buffer */ +- /* Leaves nicely at the last character */ +- form_driver(my_form, REQ_END_LINE); +- break; +- case KEY_UP: +- /* Go to previous field */ +- form_driver(my_form, REQ_PREV_FIELD); +- form_driver(my_form, REQ_END_LINE); +- break; +- default: +- /* If this is a normal character, it gets */ +- /* Printed */ +- form_driver(my_form, ch); +- break; +- } +- } +- +- /* Un post form and free the memory */ +- unpost_form(my_form); +- free_form(my_form); +- free_field(field[0]); +- free_field(field[1]); +- +- endwin(); +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>Play with the color pairs and try to understand the foreground +-and background attributes. In my programs using color attributes, I +-usually set only the background with set_field_back(). Curses +-simply doesn't allow defining individual color attributes.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="FIELDOPTIONBITS" id= +-"FIELDOPTIONBITS">18.3.5. Field Option Bits</a></h4> +-<p>There is also a large collection of field option bits you can +-set to control various aspects of forms processing. You can +-manipulate them with these functions:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_opts(FIELD *field, /* field to alter */ ++{ FIELD *field[3]; ++ FORM *my_form; ++ int ch; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize few color pairs */ ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ init_pair(2, COLOR_WHITE, COLOR_BLUE); ++ ++ /* Initialize the fields */ ++ field[0] = new_field(1, 10, 4, 18, 0, 0); ++ field[1] = new_field(1, 10, 6, 18, 0, 0); ++ field[2] = NULL; ++ ++ /* Set field options */ ++ set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */ ++ set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */ ++ /* are printed in white */ ++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ ++ /* Field is filled up */ ++ set_field_back(field[1], A_UNDERLINE); ++ field_opts_off(field[1], O_AUTOSKIP); ++ ++ /* Create the form and post it */ ++ my_form = new_form(field); ++ post_form(my_form); ++ refresh(); ++ ++ set_current_field(my_form, field[0]); /* Set focus to the colored field */ ++ mvprintw(4, 10, "Value 1:"); ++ mvprintw(6, 10, "Value 2:"); ++ mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields"); ++ refresh(); ++ ++ /* Loop through to get user requests */ ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case KEY_DOWN: ++ /* Go to next field */ ++ form_driver(my_form, REQ_NEXT_FIELD); ++ /* Go to the end of the present buffer */ ++ /* Leaves nicely at the last character */ ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ case KEY_UP: ++ /* Go to previous field */ ++ form_driver(my_form, REQ_PREV_FIELD); ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ default: ++ /* If this is a normal character, it gets */ ++ /* Printed */ ++ form_driver(my_form, ch); ++ break; ++ } ++ } ++ ++ /* Un post form and free the memory */ ++ unpost_form(my_form); ++ free_form(my_form); ++ free_field(field[0]); ++ free_field(field[1]); ++ ++ endwin(); ++ return 0; ++}</SPAN ++></PRE ++></DIV ++><P ++>Play with the color pairs and try to understand the foreground and background ++attributes. In my programs using color attributes, I usually set only the ++background with set_field_back(). Curses simply doesn't allow defining ++individual color attributes. </P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="FIELDOPTIONBITS" ++>18.3.5. Field Option Bits</A ++></H4 ++><P ++>There is also a large collection of field option bits you can set to control ++various aspects of forms processing. You can manipulate them with these ++functions:</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_opts(FIELD *field, /* field to alter */ + int attr); /* attribute to set */ + + int field_opts_on(FIELD *field, /* field to alter */ +@@ -5078,108 +6720,134 @@ + int field_opts_off(FIELD *field, /* field to alter */ + int attr); /* attributes to turn off */ + +-int field_opts(FIELD *field); /* field to query */ </font> +-</pre></td> +-</tr> +-</table> +-<p>The function set_field_opts() can be used to directly set +-attributes of a field or you can choose to switch a few attributes +-on and off with field_opts_on() and field_opts_off() selectively. +-Anytime you can query the attributes of a field with field_opts(). +-The following is the list of available options. By default, all +-options are on.</p> +-<div class="VARIABLELIST"> +-<dl> +-<dt>O_VISIBLE</dt> +-<dd> +-<p>Controls whether the field is visible on the screen. Can be used +-during form processing to hide or pop up fields depending on the +-value of parent fields.</p> +-</dd> +-<dt>O_ACTIVE</dt> +-<dd> +-<p>Controls whether the field is active during forms processing +-(i.e. visited by form navigation keys). Can be used to make labels +-or derived fields with buffer values alterable by the forms +-application, not the user.</p> +-</dd> +-<dt>O_PUBLIC</dt> +-<dd> +-<p>Controls whether data is displayed during field entry. If this +-option is turned off on a field, the library will accept and edit +-data in that field, but it will not be displayed and the visible +-field cursor will not move. You can turn off the O_PUBLIC bit to +-define password fields.</p> +-</dd> +-<dt>O_EDIT</dt> +-<dd> +-<p>Controls whether the field's data can be modified. When this +-option is off, all editing requests except <var class= +-"LITERAL">REQ_PREV_CHOICE</var> and <var class= +-"LITERAL">REQ_NEXT_CHOICE</var>will fail. Such read-only fields may +-be useful for help messages.</p> +-</dd> +-<dt>O_WRAP</dt> +-<dd> +-<p>Controls word-wrapping in multi-line fields. Normally, when any +-character of a (blank-separated) word reaches the end of the +-current line, the entire word is wrapped to the next line (assuming +-there is one). When this option is off, the word will be split +-across the line break.</p> +-</dd> +-<dt>O_BLANK</dt> +-<dd> +-<p>Controls field blanking. When this option is on, entering a +-character at the first field position erases the entire field +-(except for the just-entered character).</p> +-</dd> +-<dt>O_AUTOSKIP</dt> +-<dd> +-<p>Controls automatic skip to next field when this one fills. +-Normally, when the forms user tries to type more data into a field +-than will fit, the editing location jumps to next field. When this +-option is off, the user's cursor will hang at the end of the field. +-This option is ignored in dynamic fields that have not reached +-their size limit.</p> +-</dd> +-<dt>O_NULLOK</dt> +-<dd> +-<p>Controls whether validation is applied to blank fields. +-Normally, it is not; the user can leave a field blank without +-invoking the usual validation check on exit. If this option is off +-on a field, exit from it will invoke a validation check.</p> +-</dd> +-<dt>O_PASSOK</dt> +-<dd> +-<p>Controls whether validation occurs on every exit, or only after +-the field is modified. Normally the latter is true. Setting +-O_PASSOK may be useful if your field's validation function may +-change during forms processing.</p> +-</dd> +-<dt>O_STATIC</dt> +-<dd> +-<p>Controls whether the field is fixed to its initial dimensions. +-If you turn this off, the field becomes dynamic and will stretch to +-fit entered data.</p> +-</dd> +-</dl> +-</div> +-<p>A field's options cannot be changed while the field is currently +-selected. However, options may be changed on posted fields that are +-not current.</p> +-<p>The option values are bit-masks and can be composed with +-logical-or in the obvious way. You have seen the usage of switching +-off O_AUTOSKIP option. The following example clarifies usage of +-some more options. Other options are explained where +-appropriate.</p> +-<div class="EXAMPLE"><a name="FFOOP" id="FFOOP"></a> +-<p><b>Example 27. Field Options Usage example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;form.h&gt; ++int field_opts(FIELD *field); /* field to query */ </PRE ++><P ++>The function set_field_opts() can be used to directly set attributes of a field ++or you can choose to switch a few attributes on and off with field_opts_on() and ++field_opts_off() selectively. Anytime you can query the attributes of a field ++with field_opts(). The following is the list of available options. By default, ++all options are on.</P ++><P ++></P ++><DIV ++CLASS="VARIABLELIST" ++><DL ++><DT ++>O_VISIBLE</DT ++><DD ++><P ++>Controls whether the field is visible on the screen. Can be used ++during form processing to hide or pop up fields depending on the value ++of parent fields.</P ++></DD ++><DT ++>O_ACTIVE</DT ++><DD ++><P ++>Controls whether the field is active during forms processing (i.e. ++visited by form navigation keys). Can be used to make labels or derived ++fields with buffer values alterable by the forms application, not the user.</P ++></DD ++><DT ++>O_PUBLIC</DT ++><DD ++><P ++>Controls whether data is displayed during field entry. If this option is ++turned off on a field, the library will accept and edit data in that field, ++but it will not be displayed and the visible field cursor will not move. ++You can turn off the O_PUBLIC bit to define password fields.</P ++></DD ++><DT ++>O_EDIT</DT ++><DD ++><P ++>Controls whether the field's data can be modified. When this option is ++off, all editing requests except <TT ++CLASS="LITERAL" ++>REQ_PREV_CHOICE</TT ++> and <TT ++CLASS="LITERAL" ++>REQ_NEXT_CHOICE</TT ++>will ++fail. Such read-only fields may be useful for help messages.</P ++></DD ++><DT ++>O_WRAP</DT ++><DD ++><P ++>Controls word-wrapping in multi-line fields. Normally, when any ++character of a (blank-separated) word reaches the end of the current line, the ++entire word is wrapped to the next line (assuming there is one). When this ++option is off, the word will be split across the line break.</P ++></DD ++><DT ++>O_BLANK</DT ++><DD ++><P ++>Controls field blanking. When this option is on, entering a character at ++the first field position erases the entire field (except for the just-entered ++character).</P ++></DD ++><DT ++>O_AUTOSKIP</DT ++><DD ++><P ++>Controls automatic skip to next field when this one fills. Normally, ++when the forms user tries to type more data into a field than will fit, ++the editing location jumps to next field. When this option is off, the ++user's cursor will hang at the end of the field. This option is ignored ++in dynamic fields that have not reached their size limit.</P ++></DD ++><DT ++>O_NULLOK</DT ++><DD ++><P ++>Controls whether validation is applied to ++blank fields. Normally, it is not; the user can leave a field blank ++without invoking the usual validation check on exit. If this option is ++off on a field, exit from it will invoke a validation check.</P ++></DD ++><DT ++>O_PASSOK</DT ++><DD ++><P ++>Controls whether validation occurs on every exit, or only after ++the field is modified. Normally the latter is true. Setting O_PASSOK ++may be useful if your field's validation function may change during ++forms processing.</P ++></DD ++><DT ++>O_STATIC</DT ++><DD ++><P ++>Controls whether the field is fixed to its initial dimensions. If you ++turn this off, the field becomes dynamic and will ++stretch to fit entered data.</P ++></DD ++></DL ++></DIV ++><P ++>A field's options cannot be changed while the field is currently selected. ++However, options may be changed on posted fields that are not current. </P ++><P ++>The option values are bit-masks and can be composed with logical-or in ++the obvious way. You have seen the usage of switching off O_AUTOSKIP option. ++The following example clarifies usage of some more options. Other options ++are explained where appropriate.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="FFOOP" ++></A ++><P ++><B ++>Example 27. Field Options Usage example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;form.h&#62; + + #define STARTX 15 + #define STARTY 4 +@@ -5188,975 +6856,1476 @@ + #define N_FIELDS 3 + + int main() +-{ FIELD *field[N_FIELDS]; +- FORM *my_form; +- int ch, i; +- +- /* Initialize curses */ +- initscr(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize the fields */ +- for(i = 0; i &lt; N_FIELDS - 1; ++i) +- field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0); +- field[N_FIELDS - 1] = NULL; +- +- /* Set field options */ +- set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */ +- +- field_opts_off(field[0], O_ACTIVE); /* This field is a static label */ +- field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/ +- field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */ +- /* after last character is entered */ +- +- /* Create the form and post it */ +- my_form = new_form(field); +- post_form(my_form); +- refresh(); +- +- set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */ +- set_field_buffer(field[0], 0, "This is a static Field"); +- /* Initialize the field */ +- mvprintw(STARTY, STARTX - 10, "Field 1:"); +- mvprintw(STARTY + 2, STARTX - 10, "Field 2:"); +- refresh(); +- +- /* Loop through to get user requests */ +- while((ch = getch()) != KEY_F(1)) +- { switch(ch) +- { case KEY_DOWN: +- /* Go to next field */ +- form_driver(my_form, REQ_NEXT_FIELD); +- /* Go to the end of the present buffer */ +- /* Leaves nicely at the last character */ +- form_driver(my_form, REQ_END_LINE); +- break; +- case KEY_UP: +- /* Go to previous field */ +- form_driver(my_form, REQ_PREV_FIELD); +- form_driver(my_form, REQ_END_LINE); +- break; +- default: +- /* If this is a normal character, it gets */ +- /* Printed */ +- form_driver(my_form, ch); +- break; +- } +- } +- +- /* Un post form and free the memory */ +- unpost_form(my_form); +- free_form(my_form); +- free_field(field[0]); +- free_field(field[1]); +- +- endwin(); +- return 0; +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-<p>This example, though useless, shows the usage of options. If +-used properly, they can present information very effectively in a +-form. The second field being not O_PUBLIC, does not show the +-characters you are typing.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="FIELDSTATUS" id="FIELDSTATUS">18.3.6. +-Field Status</a></h4> +-<p>The field status specifies whether the field has got edited or +-not. It is initially set to FALSE and when user enters something +-and the data buffer gets modified it becomes TRUE. So a field's +-status can be queried to find out whether it has been modified or +-not. The following functions can assist in those operations.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_status(FIELD *field, /* field to alter */ ++{ FIELD *field[N_FIELDS]; ++ FORM *my_form; ++ int ch, i; ++ ++ /* Initialize curses */ ++ initscr(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize the fields */ ++ for(i = 0; i &#60; N_FIELDS - 1; ++i) ++ field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0); ++ field[N_FIELDS - 1] = NULL; ++ ++ /* Set field options */ ++ set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */ ++ ++ field_opts_off(field[0], O_ACTIVE); /* This field is a static label */ ++ field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/ ++ field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */ ++ /* after last character is entered */ ++ ++ /* Create the form and post it */ ++ my_form = new_form(field); ++ post_form(my_form); ++ refresh(); ++ ++ set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */ ++ set_field_buffer(field[0], 0, "This is a static Field"); ++ /* Initialize the field */ ++ mvprintw(STARTY, STARTX - 10, "Field 1:"); ++ mvprintw(STARTY + 2, STARTX - 10, "Field 2:"); ++ refresh(); ++ ++ /* Loop through to get user requests */ ++ while((ch = getch()) != KEY_F(1)) ++ { switch(ch) ++ { case KEY_DOWN: ++ /* Go to next field */ ++ form_driver(my_form, REQ_NEXT_FIELD); ++ /* Go to the end of the present buffer */ ++ /* Leaves nicely at the last character */ ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ case KEY_UP: ++ /* Go to previous field */ ++ form_driver(my_form, REQ_PREV_FIELD); ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ default: ++ /* If this is a normal character, it gets */ ++ /* Printed */ ++ form_driver(my_form, ch); ++ break; ++ } ++ } ++ ++ /* Un post form and free the memory */ ++ unpost_form(my_form); ++ free_form(my_form); ++ free_field(field[0]); ++ free_field(field[1]); ++ ++ endwin(); ++ return 0; ++}</SPAN ++></PRE ++></DIV ++><P ++>This example, though useless, shows the usage of options. If used properly, they ++can present information very effectively in a form. The second field being not ++O_PUBLIC, does not show the characters you are typing.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="FIELDSTATUS" ++>18.3.6. Field Status</A ++></H4 ++><P ++>The field status specifies whether the field has got edited or not. It is ++initially set to FALSE and when user enters something and the data buffer gets ++modified it becomes TRUE. So a field's status can be queried to find out whether ++it has been modified or not. The following functions can assist in those ++operations.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_status(FIELD *field, /* field to alter */ + int status); /* status to set */ + +-int field_status(FIELD *field); /* fetch status of field */</font> +-</pre></td> +-</tr> +-</table> +-<p>It's better to check the field's status only after after leaving +-the field, as data buffer might not have been updated yet as the +-validation is still due. To guarantee that right status is +-returned, call field_status() either (1) in the field's exit +-validation check routine, (2) from the field's or form's +-initialization or termination hooks, or (3) just after a +-REQ_VALIDATION request has been processed by the forms driver</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="FIELDUSERPTR" id="FIELDUSERPTR">18.3.7. +-Field User Pointer</a></h4> +-<p>Every field structure contains one pointer that can be used by +-the user for various purposes. It is not touched by forms library +-and can be used for any purpose by the user. The following +-functions set and fetch user pointer.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000">int set_field_userptr(FIELD *field, ++int field_status(FIELD *field); /* fetch status of field */</PRE ++><P ++>It's better to check the field's status only after after leaving the field, as ++data buffer might not have been updated yet as the validation is still due. To ++guarantee that right status is returned, call field_status() either (1) in the ++field's exit validation check routine, (2) from the field's or form's ++initialization or termination hooks, or (3) just after a REQ_VALIDATION request ++has been processed by the forms driver</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="FIELDUSERPTR" ++>18.3.7. Field User Pointer</A ++></H4 ++><P ++>Every field structure contains one pointer that can be used by the user for ++various purposes. It is not touched by forms library and can be used for any ++purpose by the user. The following functions set and fetch user pointer.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_userptr(FIELD *field, + char *userptr); /* the user pointer you wish to associate */ + /* with the field */ + +-char *field_userptr(FIELD *field); /* fetch user pointer of the field */</font> +-</pre></td> +-</tr> +-</table> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="VARIABLESIZEFIELDS" id= +-"VARIABLESIZEFIELDS">18.3.8. Variable-Sized Fields</a></h4> +-<p>If you want a dynamically changing field with variable width, +-this is the feature you want to put to full use. This will allow +-the user to enter more data than the original size of the field and +-let the field grow. According to the field orientation it will +-scroll horizontally or vertically to incorporate the new data.</p> +-<p>To make a field dynamically growable, the option O_STATIC should +-be turned off. This can be done with a</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"> field_opts_off(field_pointer, O_STATIC);</font> +-</pre></td> +-</tr> +-</table> +-<p>But it's usually not advisable to allow a field to grow +-infinitely. You can set a maximum limit to the growth of the field +-with</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_max_field(FIELD *field, /* Field on which to operate */ +- int max_growth); /* maximum growth allowed for the field */</font> +-</pre></td> +-</tr> +-</table> +-<p>The field info for a dynamically growable field can be retrieved +-by</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int dynamic_field_info( FIELD *field, /* Field on which to operate */ ++char *field_userptr(FIELD *field); /* fetch user pointer of the field */</PRE ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="VARIABLESIZEFIELDS" ++>18.3.8. Variable-Sized Fields</A ++></H4 ++><P ++>If you want a dynamically changing field with variable width, this is the ++feature you want to put to full use. This will allow the user to enter more data ++than the original size of the field and let the field grow. According to the ++field orientation it will scroll horizontally or vertically to incorporate the ++new data.</P ++><P ++>To make a field dynamically growable, the option O_STATIC should be turned off. ++This can be done with a ++<PRE ++CLASS="PROGRAMLISTING" ++> field_opts_off(field_pointer, O_STATIC);</PRE ++></P ++><P ++>But it's usually not advisable to allow a field to grow infinitely. You can set ++a maximum limit to the growth of the field with ++<PRE ++CLASS="PROGRAMLISTING" ++>int set_max_field(FIELD *field, /* Field on which to operate */ ++ int max_growth); /* maximum growth allowed for the field */</PRE ++></P ++><P ++>The field info for a dynamically growable field can be retrieved by ++<PRE ++CLASS="PROGRAMLISTING" ++>int dynamic_field_info( FIELD *field, /* Field on which to operate */ + int *prows, /* number of rows will be filled in this */ + int *pcols, /* number of columns will be filled in this*/ + int *pmax) /* maximum allowable growth will be filled */ +- /* in this */</font> +-</pre></td> +-</tr> +-</table> +-Though field_info work as usual, it is advisable to use this +-function to get the proper attributes of a dynamically growable +-field. +-<p>Recall the library routine new_field; a new field created with +-height set to one will be defined to be a one line field. A new +-field created with height greater than one will be defined to be a +-multi line field.</p> +-<p>A one line field with O_STATIC turned off (dynamically growable +-field) will contain a single fixed row, but the number of columns +-can increase if the user enters more data than the initial field +-will hold. The number of columns displayed will remain fixed and +-the additional data will scroll horizontally.</p> +-<p>A multi line field with O_STATIC turned off (dynamically +-growable field) will contain a fixed number of columns, but the +-number of rows can increase if the user enters more data than the +-initial field will hold. The number of rows displayed will remain +-fixed and the additional data will scroll vertically.</p> +-<p>The above two paragraphs pretty much describe a dynamically +-growable field's behavior. The way other parts of forms library +-behaves is described below:</p> +-<ol type="1"> +-<li> +-<p>The field option O_AUTOSKIP will be ignored if the option +-O_STATIC is off and there is no maximum growth specified for the +-field. Currently, O_AUTOSKIP generates an automatic REQ_NEXT_FIELD +-form driver request when the user types in the last character +-position of a field. On a growable field with no maximum growth +-specified, there is no last character position. If a maximum growth +-is specified, the O_AUTOSKIP option will work as normal if the +-field has grown to its maximum size.</p> +-</li> +-<li> +-<p>The field justification will be ignored if the option O_STATIC +-is off. Currently, set_field_just can be used to JUSTIFY_LEFT, +-JUSTIFY_RIGHT, JUSTIFY_CENTER the contents of a one line field. A +-growable one line field will, by definition, grow and scroll +-horizontally and may contain more data than can be justified. The +-return from field_just will be unchanged.</p> +-</li> +-<li> +-<p>The overloaded form driver request REQ_NEW_LINE will operate the +-same way regardless of the O_NL_OVERLOAD form option if the field +-option O_STATIC is off and there is no maximum growth specified for +-the field. Currently, if the form option O_NL_OVERLOAD is on, +-REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD if called from +-the last line of a field. If a field can grow without bound, there +-is no last line, so REQ_NEW_LINE will never implicitly generate a +-REQ_NEXT_FIELD. If a maximum growth limit is specified and the +-O_NL_OVERLOAD form option is on, REQ_NEW_LINE will only implicitly +-generate REQ_NEXT_FIELD if the field has grown to its maximum size +-and the user is on the last line.</p> +-</li> +-<li> +-<p>The library call dup_field will work as usual; it will duplicate +-the field, including the current buffer size and contents of the +-field being duplicated. Any specified maximum growth will also be +-duplicated.</p> +-</li> +-<li> +-<p>The library call link_field will work as usual; it will +-duplicate all field attributes and share buffers with the field +-being linked. If the O_STATIC field option is subsequently changed +-by a field sharing buffers, how the system reacts to an attempt to +-enter more data into the field than the buffer will currently hold +-will depend on the setting of the option in the current field.</p> +-</li> +-<li> +-<p>The library call field_info will work as usual; the variable +-nrow will contain the value of the original call to new_field. The +-user should use dynamic_field_info, described above, to query the +-current size of the buffer.</p> +-</li> +-</ol> +-<p>Some of the above points make sense only after explaining form +-driver. We will be looking into that in next few sections.</p> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="FORMWINDOWS" id="FORMWINDOWS">18.4. Form +-Windows</a></h3> +-<p>The form windows concept is pretty much similar to menu windows. +-Every form is associated with a main window and a sub window. The +-form main window displays any title or border associated or +-whatever the user wishes. Then the sub window contains all the +-fields and displays them according to their position. This gives +-the flexibility of manipulating fancy form displaying very +-easily.</p> +-<p>Since this is pretty much similar to menu windows, I am +-providing an example with out much explanation. The functions are +-similar and they work the same way.</p> +-<div class="EXAMPLE"><a name="FFOWI" id="FFOWI"></a> +-<p><b>Example 28. Form Windows Example</b></p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000"><span class= +-"INLINEMEDIAOBJECT">#include &lt;form.h&gt; ++ /* in this */</PRE ++> ++Though field_info work as usual, it is advisable to use this function to get the ++proper attributes of a dynamically growable field.</P ++><P ++>Recall the library routine new_field; a new field created with height set to one ++will be defined to be a one line field. A new field created with height greater ++than one will be defined to be a multi line field. </P ++><P ++>A one line field with O_STATIC turned off (dynamically growable field) will ++contain a single fixed row, but the number of columns can increase if the user ++enters more data than the initial field will hold. The number of columns ++displayed will remain fixed and the additional data will scroll horizontally. </P ++><P ++>A multi line field with O_STATIC turned off (dynamically growable field) will ++contain a fixed number of columns, but the number of rows can increase if the ++user enters more data than the initial field will hold. The number of rows ++displayed will remain fixed and the additional data will scroll vertically.</P ++><P ++>The above two paragraphs pretty much describe a dynamically growable field's ++behavior. The way other parts of forms library behaves is described below:</P ++><P ++></P ++><OL ++TYPE="1" ++><LI ++><P ++>The field option O_AUTOSKIP will be ignored if the option O_STATIC is off and ++there is no maximum growth specified for the field. Currently, O_AUTOSKIP ++generates an automatic REQ_NEXT_FIELD form driver request when the user types in ++the last character position of a field. On a growable field with no maximum ++growth specified, there is no last character position. If a maximum growth is ++specified, the O_AUTOSKIP option will work as normal if the field has grown to ++its maximum size. </P ++></LI ++><LI ++><P ++>The field justification will be ignored if the option O_STATIC is off. ++Currently, set_field_just can be used to JUSTIFY_LEFT, JUSTIFY_RIGHT, ++JUSTIFY_CENTER the contents of a one line field. A growable one line field will, ++by definition, grow and scroll horizontally and may contain more data than can ++be justified. The return from field_just will be unchanged. </P ++></LI ++><LI ++><P ++>The overloaded form driver request REQ_NEW_LINE will operate the same way ++regardless of the O_NL_OVERLOAD form option if the field option O_STATIC is off ++and there is no maximum growth specified for the field. Currently, if the form ++option O_NL_OVERLOAD is on, REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD ++if called from the last line of a field. If a field can grow without bound, ++there is no last line, so REQ_NEW_LINE will never implicitly generate a ++REQ_NEXT_FIELD. If a maximum growth limit is specified and the O_NL_OVERLOAD ++form option is on, REQ_NEW_LINE will only implicitly generate REQ_NEXT_FIELD if ++the field has grown to its maximum size and the user is on the last line. </P ++></LI ++><LI ++><P ++>The library call dup_field will work as usual; it will duplicate the field, ++including the current buffer size and contents of the field being duplicated. ++Any specified maximum growth will also be duplicated. </P ++></LI ++><LI ++><P ++>The library call link_field will work as usual; it will duplicate all field ++attributes and share buffers with the field being linked. If the O_STATIC field ++option is subsequently changed by a field sharing buffers, how the system reacts ++to an attempt to enter more data into the field than the buffer will currently ++hold will depend on the setting of the option in the current field. </P ++></LI ++><LI ++><P ++>The library call field_info will work as usual; the variable nrow will contain ++the value of the original call to new_field. The user should use ++dynamic_field_info, described above, to query the current size of the buffer.</P ++></LI ++></OL ++><P ++>Some of the above points make sense only after explaining form driver. We will ++be looking into that in next few sections.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="FORMWINDOWS" ++>18.4. Form Windows</A ++></H3 ++><P ++>The form windows concept is pretty much similar to menu windows. Every form is ++associated with a main window and a sub window. The form main window displays ++any title or border associated or whatever the user wishes. Then the sub window ++contains all the fields and displays them according to their position. This ++gives the flexibility of manipulating fancy form displaying very easily. </P ++><P ++>Since this is pretty much similar to menu windows, I am providing an example ++with out much explanation. The functions are similar and they work the same way.</P ++><DIV ++CLASS="EXAMPLE" ++><A ++NAME="FFOWI" ++></A ++><P ++><B ++>Example 28. Form Windows Example </B ++></P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="INLINEMEDIAOBJECT" ++>#include &#60;form.h&#62; + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color); + + int main() + { +- FIELD *field[3]; +- FORM *my_form; +- WINDOW *my_form_win; +- int ch, rows, cols; +- +- /* Initialize curses */ +- initscr(); +- start_color(); +- cbreak(); +- noecho(); +- keypad(stdscr, TRUE); +- +- /* Initialize few color pairs */ +- init_pair(1, COLOR_RED, COLOR_BLACK); +- +- /* Initialize the fields */ +- field[0] = new_field(1, 10, 6, 1, 0, 0); +- field[1] = new_field(1, 10, 8, 1, 0, 0); +- field[2] = NULL; +- +- /* Set field options */ +- set_field_back(field[0], A_UNDERLINE); +- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ +- /* Field is filled up */ +- set_field_back(field[1], A_UNDERLINE); +- field_opts_off(field[1], O_AUTOSKIP); +- +- /* Create the form and post it */ +- my_form = new_form(field); +- +- /* Calculate the area required for the form */ +- scale_form(my_form, &amp;rows, &amp;cols); ++ FIELD *field[3]; ++ FORM *my_form; ++ WINDOW *my_form_win; ++ int ch, rows, cols; ++ ++ /* Initialize curses */ ++ initscr(); ++ start_color(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize few color pairs */ ++ init_pair(1, COLOR_RED, COLOR_BLACK); ++ ++ /* Initialize the fields */ ++ field[0] = new_field(1, 10, 6, 1, 0, 0); ++ field[1] = new_field(1, 10, 8, 1, 0, 0); ++ field[2] = NULL; ++ ++ /* Set field options */ ++ set_field_back(field[0], A_UNDERLINE); ++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ ++ /* Field is filled up */ ++ set_field_back(field[1], A_UNDERLINE); ++ field_opts_off(field[1], O_AUTOSKIP); ++ ++ /* Create the form and post it */ ++ my_form = new_form(field); ++ ++ /* Calculate the area required for the form */ ++ scale_form(my_form, &#38;rows, &#38;cols); + +- /* Create the window to be associated with the form */ ++ /* Create the window to be associated with the form */ + my_form_win = newwin(rows + 4, cols + 4, 4, 4); + keypad(my_form_win, TRUE); + +- /* Set main window and sub window */ ++ /* Set main window and sub window */ + set_form_win(my_form, my_form_win); + set_form_sub(my_form, derwin(my_form_win, rows, cols, 2, 2)); + +- /* Print a border around the main window and print a title */ ++ /* Print a border around the main window and print a title */ + box(my_form_win, 0, 0); +- print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1)); +- +- post_form(my_form); +- wrefresh(my_form_win); +- +- mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields"); +- refresh(); ++ print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1)); ++ ++ post_form(my_form); ++ wrefresh(my_form_win); ++ ++ mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields"); ++ refresh(); ++ ++ /* Loop through to get user requests */ ++ while((ch = wgetch(my_form_win)) != KEY_F(1)) ++ { switch(ch) ++ { case KEY_DOWN: ++ /* Go to next field */ ++ form_driver(my_form, REQ_NEXT_FIELD); ++ /* Go to the end of the present buffer */ ++ /* Leaves nicely at the last character */ ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ case KEY_UP: ++ /* Go to previous field */ ++ form_driver(my_form, REQ_PREV_FIELD); ++ form_driver(my_form, REQ_END_LINE); ++ break; ++ default: ++ /* If this is a normal character, it gets */ ++ /* Printed */ ++ form_driver(my_form, ch); ++ break; ++ } ++ } ++ ++ /* Un post form and free the memory */ ++ unpost_form(my_form); ++ free_form(my_form); ++ free_field(field[0]); ++ free_field(field[1]); + +- /* Loop through to get user requests */ +- while((ch = wgetch(my_form_win)) != KEY_F(1)) +- { switch(ch) +- { case KEY_DOWN: +- /* Go to next field */ +- form_driver(my_form, REQ_NEXT_FIELD); +- /* Go to the end of the present buffer */ +- /* Leaves nicely at the last character */ +- form_driver(my_form, REQ_END_LINE); +- break; +- case KEY_UP: +- /* Go to previous field */ +- form_driver(my_form, REQ_PREV_FIELD); +- form_driver(my_form, REQ_END_LINE); +- break; +- default: +- /* If this is a normal character, it gets */ +- /* Printed */ +- form_driver(my_form, ch); +- break; +- } +- } +- +- /* Un post form and free the memory */ +- unpost_form(my_form); +- free_form(my_form); +- free_field(field[0]); +- free_field(field[1]); +- +- endwin(); +- return 0; ++ endwin(); ++ return 0; + } + + void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color) +-{ int length, x, y; +- float temp; ++{ int length, x, y; ++ float temp; + +- if(win == NULL) +- win = stdscr; +- getyx(win, y, x); +- if(startx != 0) +- x = startx; +- if(starty != 0) +- y = starty; +- if(width == 0) +- width = 80; +- +- length = strlen(string); +- temp = (width - length)/ 2; +- x = startx + (int)temp; +- wattron(win, color); +- mvwprintw(win, y, x, "%s", string); +- wattroff(win, color); +- refresh(); +-}</span></font> +-</pre></td> +-</tr> +-</table> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="FILEDVALIDATE" id="FILEDVALIDATE">18.5. +-Field Validation</a></h3> +-<p>By default, a field will accept any data input by the user. It +-is possible to attach validation to the field. Then any attempt by +-the user to leave the field, while it contains data that doesn't +-match the validation type will fail. Some validation types also +-have a character-validity check for each time a character is +-entered in the field.</p> +-<p>Validation can be attached to a field with the following +-function.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++ if(win == NULL) ++ win = stdscr; ++ getyx(win, y, x); ++ if(startx != 0) ++ x = startx; ++ if(starty != 0) ++ y = starty; ++ if(width == 0) ++ width = 80; ++ ++ length = strlen(string); ++ temp = (width - length)/ 2; ++ x = startx + (int)temp; ++ wattron(win, color); ++ mvwprintw(win, y, x, "%s", string); ++ wattroff(win, color); ++ refresh(); ++}</SPAN ++></PRE ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="FILEDVALIDATE" ++>18.5. Field Validation</A ++></H3 ++><P ++>By default, a field will accept any data input by the user. It is possible to ++attach validation to the field. Then any attempt by the user to leave the field, ++while it contains data that doesn't match the validation type will fail. Some ++validation types also have a character-validity check for each time a character ++is entered in the field.</P ++><P ++>Validation can be attached to a field with the following function. ++<PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + FIELDTYPE *ftype, /* type to associate */ +- ...); /* additional arguments*/</font> +-</pre></td> +-</tr> +-</table> ++ ...); /* additional arguments*/</PRE ++> + Once set, the validation type for a field can be queried with +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">FIELDTYPE *field_type(FIELD *field); /* field to query */</font> +-</pre></td> +-</tr> +-</table> +-<p>The form driver validates the data in a field only when data is +-entered by the end-user. Validation does not occur when</p> +-<ul> +-<li> +-<p>the application program changes the field value by calling +-set_field_buffer.</p> +-</li> +-<li> +-<p>linked field values are changed indirectly -- by changing the +-field to which they are linked</p> +-</li> +-</ul> +-<p>The following are the pre-defined validation types. You can also +-specify custom validation, though it's a bit tricky and +-cumbersome.</p> +-<h1 class="BRIDGEHEAD"><a name="AEN1069" id= +-"AEN1069"></a>TYPE_ALPHA</h1> +-<p>This field type accepts alphabetic data; no blanks, no digits, +-no special characters (this is checked at character-entry time). It +-is set up with:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++<PRE ++CLASS="PROGRAMLISTING" ++>FIELDTYPE *field_type(FIELD *field); /* field to query */</PRE ++></P ++><P ++>The form driver validates the data in a field only when data is entered by the ++end-user. Validation does not occur when </P ++><P ++></P ++><UL ++><LI ++><P ++>the application program changes the field value by calling set_field_buffer. </P ++></LI ++><LI ++><P ++>linked field values are changed indirectly -- by changing the field to which ++they are linked</P ++></LI ++></UL ++><P ++>The following are the pre-defined validation types. You can also specify custom ++validation, though it's a bit tricky and cumbersome.</P ++><H1 ++CLASS="BRIDGEHEAD" ++><A ++NAME="AEN1069" ++></A ++>TYPE_ALPHA</H1 ++><P ++>This field type accepts alphabetic data; no blanks, no digits, no special ++characters (this is checked at character-entry time). It is set up with: </P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + TYPE_ALPHA, /* type to associate */ +- int width); /* maximum width of field */</font> +-</pre></td> +-</tr> +-</table> +-<p>The width argument sets a minimum width of data. The user has to +-enter at-least width number of characters before he can leave the +-field. Typically you'll want to set this to the field width; if +-it's greater than the field width, the validation check will always +-fail. A minimum width of zero makes field completion optional.</p> +-<h1 class="BRIDGEHEAD"><a name="AEN1073" id= +-"AEN1073"></a>TYPE_ALNUM</h1> +-<p>This field type accepts alphabetic data and digits; no blanks, +-no special characters (this is checked at character-entry time). It +-is set up with:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++ int width); /* maximum width of field */</PRE ++><P ++>The width argument sets a minimum width of data. The user has to enter at-least ++width number of characters before he can leave the field. Typically ++you'll want to set this to the field width; if it's greater than the ++field width, the validation check will always fail. A minimum width ++of zero makes field completion optional. </P ++><H1 ++CLASS="BRIDGEHEAD" ++><A ++NAME="AEN1073" ++></A ++>TYPE_ALNUM</H1 ++><P ++>This field type accepts alphabetic data and digits; no blanks, no special ++characters (this is checked at character-entry time). It is set up with: </P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + TYPE_ALNUM, /* type to associate */ +- int width); /* maximum width of field */</font> +-</pre></td> +-</tr> +-</table> +-<p>The width argument sets a minimum width of data. As with +-TYPE_ALPHA, typically you'll want to set this to the field width; +-if it's greater than the field width, the validation check will +-always fail. A minimum width of zero makes field completion +-optional.</p> +-<h1 class="BRIDGEHEAD"><a name="AEN1077" id= +-"AEN1077"></a>TYPE_ENUM</h1> +-<p>This type allows you to restrict a field's values to be among a +-specified set of string values (for example, the two-letter postal +-codes for U.S. states). It is set up with:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++ int width); /* maximum width of field */</PRE ++><P ++>The width argument sets a minimum width of data. As with ++TYPE_ALPHA, typically you'll want to set this to the field width; if it's ++greater than the field width, the validation check will always fail. A ++minimum width of zero makes field completion optional. </P ++><H1 ++CLASS="BRIDGEHEAD" ++><A ++NAME="AEN1077" ++></A ++>TYPE_ENUM</H1 ++><P ++>This type allows you to restrict a field's values to be among a specified ++set of string values (for example, the two-letter postal codes for U.S. ++states). It is set up with: </P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + TYPE_ENUM, /* type to associate */ + char **valuelist; /* list of possible values */ + int checkcase; /* case-sensitive? */ +- int checkunique); /* must specify uniquely? */</font> +-</pre></td> +-</tr> +-</table> +-<p>The valuelist parameter must point at a NULL-terminated list of +-valid strings. The checkcase argument, if true, makes comparison +-with the string case-sensitive.</p> +-<p>When the user exits a TYPE_ENUM field, the validation procedure +-tries to complete the data in the buffer to a valid entry. If a +-complete choice string has been entered, it is of course valid. But +-it is also possible to enter a prefix of a valid string and have it +-completed for you.</p> +-<p>By default, if you enter such a prefix and it matches more than +-one value in the string list, the prefix will be completed to the +-first matching value. But the checkunique argument, if true, +-requires prefix matches to be unique in order to be valid.</p> +-<p>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be +-particularly useful with these fields.</p> +-<h1 class="BRIDGEHEAD"><a name="AEN1084" id= +-"AEN1084"></a>TYPE_INTEGER</h1> +-<p>This field type accepts an integer. It is set up as follows:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++ int checkunique); /* must specify uniquely? */</PRE ++><P ++>The valuelist parameter must point at a NULL-terminated list of ++valid strings. The checkcase argument, if true, makes comparison ++with the string case-sensitive. </P ++><P ++>When the user exits a TYPE_ENUM field, the validation procedure tries to ++complete the data in the buffer to a valid entry. If a complete choice string ++has been entered, it is of course valid. But it is also possible to enter a ++prefix of a valid string and have it completed for you. </P ++><P ++>By default, if you enter such a prefix and it matches more than one value ++in the string list, the prefix will be completed to the first matching ++value. But the checkunique argument, if true, requires prefix ++matches to be unique in order to be valid. </P ++><P ++>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be particularly ++useful with these fields. </P ++><H1 ++CLASS="BRIDGEHEAD" ++><A ++NAME="AEN1084" ++></A ++>TYPE_INTEGER</H1 ++><P ++>This field type accepts an integer. It is set up as follows: </P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + TYPE_INTEGER, /* type to associate */ + int padding, /* # places to zero-pad to */ +- int vmin, int vmax); /* valid range */</font> +-</pre></td> +-</tr> +-</table> +-<p>Valid characters consist of an optional leading minus and +-digits. The range check is performed on exit. If the range maximum +-is less than or equal to the minimum, the range is ignored.</p> +-<p>If the value passes its range check, it is padded with as many +-leading zero digits as necessary to meet the padding argument.</p> +-<p>A TYPE_INTEGER value buffer can conveniently be interpreted with +-the C library function atoi(3).</p> +-<h1 class="BRIDGEHEAD"><a name="AEN1090" id= +-"AEN1090"></a>TYPE_NUMERIC</h1> +-<p>This field type accepts a decimal number. It is set up as +-follows:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++ int vmin, int vmax); /* valid range */</PRE ++><P ++>Valid characters consist of an optional leading minus and digits. ++The range check is performed on exit. If the range maximum is less ++than or equal to the minimum, the range is ignored. </P ++><P ++>If the value passes its range check, it is padded with as many leading ++zero digits as necessary to meet the padding argument. </P ++><P ++>A TYPE_INTEGER value buffer can conveniently be interpreted with the C library ++function atoi(3).</P ++><H1 ++CLASS="BRIDGEHEAD" ++><A ++NAME="AEN1090" ++></A ++>TYPE_NUMERIC</H1 ++><P ++>This field type accepts a decimal number. It is set up as follows: </P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + TYPE_NUMERIC, /* type to associate */ + int padding, /* # places of precision */ +- int vmin, int vmax); /* valid range */</font> +-</pre></td> +-</tr> +-</table> +-<p>Valid characters consist of an optional leading minus and +-digits. possibly including a decimal point. The range check is +-performed on exit. If the range maximum is less than or equal to +-the minimum, the range is ignored.</p> +-<p>If the value passes its range check, it is padded with as many +-trailing zero digits as necessary to meet the padding argument.</p> +-<p>A TYPE_NUMERIC value buffer can conveniently be interpreted with +-the C library function atof(3).</p> +-<h1 class="BRIDGEHEAD"><a name="AEN1096" id= +-"AEN1096"></a>TYPE_REGEXP</h1> +-<p>This field type accepts data matching a regular expression. It +-is set up as follows:</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_field_type(FIELD *field, /* field to alter */ ++ int vmin, int vmax); /* valid range */</PRE ++><P ++>Valid characters consist of an optional leading minus and digits. possibly ++including a decimal point. The range check is performed on exit. If the ++range maximum is less than or equal to the minimum, the range is ++ignored. </P ++><P ++>If the value passes its range check, it is padded with as many trailing ++zero digits as necessary to meet the padding argument. </P ++><P ++>A TYPE_NUMERIC value buffer can conveniently be interpreted with the C library ++function atof(3).</P ++><H1 ++CLASS="BRIDGEHEAD" ++><A ++NAME="AEN1096" ++></A ++>TYPE_REGEXP</H1 ++><P ++>This field type accepts data matching a regular expression. It is set up ++as follows: </P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_field_type(FIELD *field, /* field to alter */ + TYPE_REGEXP, /* type to associate */ +- char *regexp); /* expression to match */</font> +-</pre></td> +-</tr> +-</table> +-<p>The syntax for regular expressions is that of regcomp(3). The +-check for regular-expression match is performed on exit.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="FORMDRIVER" id="FORMDRIVER">18.6. Form +-Driver: The work horse of the forms system</a></h3> +-<p>As in the menu system, form_driver() plays a very important role +-in forms system. All types of requests to forms system should be +-funneled through form_driver().</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int form_driver(FORM *form, /* form on which to operate */ +- int request) /* form request code */</font> +-</pre></td> +-</tr> +-</table> +-<p>As you have seen some of the examples above, you have to be in a +-loop looking for user input and then decide whether it's a field +-data or a form request. The form requests are then passed to +-form_driver() to do the work.</p> +-<p>The requests roughly can be divided into following categories. +-Different requests and their usage is explained below:</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="PAGENAVREQ" id="PAGENAVREQ">18.6.1. Page +-Navigation Requests</a></h4> +-<p>These requests cause page-level moves through the form, +-triggering display of a new form screen. A form can be made of +-multiple pages. If you have a big form with lot of fields and +-logical sections, then you can divide the form into pages. The +-function set_new_page() to set a new page at the field +-specified.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">int set_new_page(FIELD *field,/* Field at which page break to be set or unset */ +- bool new_page_flag); /* should be TRUE to put a break */</font> +-</pre></td> +-</tr> +-</table> +-<p>The following requests allow you to move to different pages</p> +-<ul> +-<li> +-<p><em>REQ_NEXT_PAGE</em> Move to the next form page.</p> +-</li> +-<li> +-<p><em>REQ_PREV_PAGE</em> Move to the previous form page.</p> +-</li> +-<li> +-<p><em>REQ_FIRST_PAGE</em> Move to the first form page.</p> +-</li> +-<li> +-<p><em>REQ_LAST_PAGE</em> Move to the last form page.</p> +-</li> +-</ul> +-<p>These requests treat the list as cyclic; that is, REQ_NEXT_PAGE +-from the last page goes to the first, and REQ_PREV_PAGE from the +-first page goes to the last.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="INTERFIELDNAVREQ" id= +-"INTERFIELDNAVREQ">18.6.2. Inter-Field Navigation Requests</a></h4> +-<p>These requests handle navigation between fields on the same +-page.</p> +-<ul> +-<li> +-<p><em>REQ_NEXT_FIELD</em> Move to next field.</p> +-</li> +-<li> +-<p><em>REQ_PREV_FIELD</em> Move to previous field.</p> +-</li> +-<li> +-<p><em>REQ_FIRST_FIELD</em> Move to the first field.</p> +-</li> +-<li> +-<p><em>REQ_LAST_FIELD</em> Move to the last field.</p> +-</li> +-<li> +-<p><em>REQ_SNEXT_FIELD</em> Move to sorted next field.</p> +-</li> +-<li> +-<p><em>REQ_SPREV_FIELD</em> Move to sorted previous field.</p> +-</li> +-<li> +-<p><em>REQ_SFIRST_FIELD</em> Move to the sorted first field.</p> +-</li> +-<li> +-<p><em>REQ_SLAST_FIELD</em> Move to the sorted last field.</p> +-</li> +-<li> +-<p><em>REQ_LEFT_FIELD</em> Move left to field.</p> +-</li> +-<li> +-<p><em>REQ_RIGHT_FIELD</em> Move right to field.</p> +-</li> +-<li> +-<p><em>REQ_UP_FIELD</em> Move up to field.</p> +-</li> +-<li> +-<p><em>REQ_DOWN_FIELD</em> Move down to field.</p> +-</li> +-</ul> +-<p>These requests treat the list of fields on a page as cyclic; +-that is, REQ_NEXT_FIELD from the last field goes to the first, and +-REQ_PREV_FIELD from the first field goes to the last. The order of +-the fields for these (and the REQ_FIRST_FIELD and REQ_LAST_FIELD +-requests) is simply the order of the field pointers in the form +-array (as set up by new_form() or set_form_fields()</p> +-<p>It is also possible to traverse the fields as if they had been +-sorted in screen-position order, so the sequence goes left-to-right +-and top-to-bottom. To do this, use the second group of four +-sorted-movement requests.</p> +-<p>Finally, it is possible to move between fields using visual +-directions up, down, right, and left. To accomplish this, use the +-third group of four requests. Note, however, that the position of a +-form for purposes of these requests is its upper-left corner.</p> +-<p>For example, suppose you have a multi-line field B, and two +-single-line fields A and C on the same line with B, with A to the +-left of B and C to the right of B. A REQ_MOVE_RIGHT from A will go +-to B only if A, B, and C all share the same first line; otherwise +-it will skip over B to C.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="INTRAFIELDNAVREQ" id= +-"INTRAFIELDNAVREQ">18.6.3. Intra-Field Navigation Requests</a></h4> +-<p>These requests drive movement of the edit cursor within the +-currently selected field.</p> +-<ul> +-<li> +-<p><em>REQ_NEXT_CHAR</em> Move to next character.</p> +-</li> +-<li> +-<p><em>REQ_PREV_CHAR</em> Move to previous character.</p> +-</li> +-<li> +-<p><em>REQ_NEXT_LINE</em> Move to next line.</p> +-</li> +-<li> +-<p><em>REQ_PREV_LINE</em> Move to previous line.</p> +-</li> +-<li> +-<p><em>REQ_NEXT_WORD</em> Move to next word.</p> +-</li> +-<li> +-<p><em>REQ_PREV_WORD</em> Move to previous word.</p> +-</li> +-<li> +-<p><em>REQ_BEG_FIELD</em> Move to beginning of field.</p> +-</li> +-<li> +-<p><em>REQ_END_FIELD</em> Move to end of field.</p> +-</li> +-<li> +-<p><em>REQ_BEG_LINE</em> Move to beginning of line.</p> +-</li> +-<li> +-<p><em>REQ_END_LINE</em> Move to end of line.</p> +-</li> +-<li> +-<p><em>REQ_LEFT_CHAR</em> Move left in field.</p> +-</li> +-<li> +-<p><em>REQ_RIGHT_CHAR</em> Move right in field.</p> +-</li> +-<li> +-<p><em>REQ_UP_CHAR</em> Move up in field.</p> +-</li> +-<li> +-<p><em>REQ_DOWN_CHAR</em> Move down in field.</p> +-</li> +-</ul> +-<p>Each word is separated from the previous and next characters by +-whitespace. The commands to move to beginning and end of line or +-field look for the first or last non-pad character in their +-ranges.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="SCROLLREQ" id="SCROLLREQ">18.6.4. +-Scrolling Requests</a></h4> +-<p>Fields that are dynamic and have grown and fields explicitly +-created with offscreen rows are scrollable. One-line fields scroll +-horizontally; multi-line fields scroll vertically. Most scrolling +-is triggered by editing and intra-field movement (the library +-scrolls the field to keep the cursor visible). It is possible to +-explicitly request scrolling with the following requests:</p> +-<ul> +-<li> +-<p><em>REQ_SCR_FLINE</em> Scroll vertically forward a line.</p> +-</li> +-<li> +-<p><em>REQ_SCR_BLINE</em> Scroll vertically backward a line.</p> +-</li> +-<li> +-<p><em>REQ_SCR_FPAGE</em> Scroll vertically forward a page.</p> +-</li> +-<li> +-<p><em>REQ_SCR_BPAGE</em> Scroll vertically backward a page.</p> +-</li> +-<li> +-<p><em>REQ_SCR_FHPAGE</em> Scroll vertically forward half a +-page.</p> +-</li> +-<li> +-<p><em>REQ_SCR_BHPAGE</em> Scroll vertically backward half a +-page.</p> +-</li> +-<li> +-<p><em>REQ_SCR_FCHAR</em> Scroll horizontally forward a +-character.</p> +-</li> +-<li> +-<p><em>REQ_SCR_BCHAR</em> Scroll horizontally backward a +-character.</p> +-</li> +-<li> +-<p><em>REQ_SCR_HFLINE</em> Scroll horizontally one field width +-forward.</p> +-</li> +-<li> +-<p><em>REQ_SCR_HBLINE</em> Scroll horizontally one field width +-backward.</p> +-</li> +-<li> +-<p><em>REQ_SCR_HFHALF</em> Scroll horizontally one half field width +-forward.</p> +-</li> +-<li> +-<p><em>REQ_SCR_HBHALF</em> Scroll horizontally one half field width +-backward.</p> +-</li> +-</ul> +-<p>For scrolling purposes, a page of a field is the height of its +-visible part.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="EDITREQ" id="EDITREQ">18.6.5. Editing +-Requests</a></h4> +-<p>When you pass the forms driver an ASCII character, it is treated +-as a request to add the character to the field's data buffer. +-Whether this is an insertion or a replacement depends on the +-field's edit mode (insertion is the default.</p> +-<p>The following requests support editing the field and changing +-the edit mode:</p> +-<ul> +-<li> +-<p><em>REQ_INS_MODE</em> Set insertion mode.</p> +-</li> +-<li> +-<p><em>REQ_OVL_MODE</em> Set overlay mode.</p> +-</li> +-<li> +-<p><em>REQ_NEW_LINE</em> New line request (see below for +-explanation).</p> +-</li> +-<li> +-<p><em>REQ_INS_CHAR</em> Insert space at character location.</p> +-</li> +-<li> +-<p><em>REQ_INS_LINE</em> Insert blank line at character +-location.</p> +-</li> +-<li> +-<p><em>REQ_DEL_CHAR</em> Delete character at cursor.</p> +-</li> +-<li> +-<p><em>REQ_DEL_PREV</em> Delete previous word at cursor.</p> +-</li> +-<li> +-<p><em>REQ_DEL_LINE</em> Delete line at cursor.</p> +-</li> +-<li> +-<p><em>REQ_DEL_WORD</em> Delete word at cursor.</p> +-</li> +-<li> +-<p><em>REQ_CLR_EOL</em> Clear to end of line.</p> +-</li> +-<li> +-<p><em>REQ_CLR_EOF</em> Clear to end of field.</p> +-</li> +-<li> +-<p><em>REQ_CLR_FIELD</em> Clear entire field.</p> +-</li> +-</ul> +-<p>The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is +-complicated and partly controlled by a pair of forms options. The +-special cases are triggered when the cursor is at the beginning of +-a field, or on the last line of the field.</p> +-<p>First, we consider REQ_NEW_LINE:</p> +-<p>The normal behavior of REQ_NEW_LINE in insert mode is to break +-the current line at the position of the edit cursor, inserting the +-portion of the current line after the cursor as a new line +-following the current and moving the cursor to the beginning of +-that new line (you may think of this as inserting a newline in the +-field buffer).</p> +-<p>The normal behavior of REQ_NEW_LINE in overlay mode is to clear +-the current line from the position of the edit cursor to end of +-line. The cursor is then moved to the beginning of the next +-line.</p> +-<p>However, REQ_NEW_LINE at the beginning of a field, or on the +-last line of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD +-option is off, this special action is disabled.</p> +-<p>Now, let us consider REQ_DEL_PREV:</p> +-<p>The normal behavior of REQ_DEL_PREV is to delete the previous +-character. If insert mode is on, and the cursor is at the start of +-a line, and the text on that line will fit on the previous one, it +-instead appends the contents of the current line to the previous +-one and deletes the current line (you may think of this as deleting +-a newline from the field buffer).</p> +-<p>However, REQ_DEL_PREV at the beginning of a field is instead +-treated as a REQ_PREV_FIELD.</p> +-<p>If the O_BS_OVERLOAD option is off, this special action is +-disabled and the forms driver just returns E_REQUEST_DENIED.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="ORDERREQ" id="ORDERREQ">18.6.6. Order +-Requests</a></h4> +-<p>If the type of your field is ordered, and has associated +-functions for getting the next and previous values of the type from +-a given value, there are requests that can fetch that value into +-the field buffer:</p> +-<ul> +-<li> +-<p><em>REQ_NEXT_CHOICE</em> Place the successor value of the +-current value in the buffer.</p> +-</li> +-<li> +-<p><em>REQ_PREV_CHOICE</em> Place the predecessor value of the +-current value in the buffer.</p> +-</li> +-</ul> +-<p>Of the built-in field types, only TYPE_ENUM has built-in +-successor and predecessor functions. When you define a field type +-of your own (see Custom Validation Types), you can associate our +-own ordering functions.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="APPLICCOMMANDS" id= +-"APPLICCOMMANDS">18.6.7. Application Commands</a></h4> +-<p>Form requests are represented as integers above the curses value +-greater than KEY_MAX and less than or equal to the constant +-MAX_COMMAND. A value within this range gets ignored by +-form_driver(). So this can be used for any purpose by the +-application. It can be treated as an application specific action +-and take corresponding action.</p> +-</div> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="TOOLS" id="TOOLS">19. Tools and Widget +-Libraries</a></h2> +-<p>Now that you have seen the capabilities of ncurses and its +-sister libraries, you are rolling your sleeves up and gearing for a +-project that heavily manipulates screen. But wait.. It can be +-pretty difficult to write and maintain complex GUI widgets in plain +-ncurses or even with the additional libraries. There are some +-ready-to-use tools and widget libraries that can be used instead of +-writing your own widgets. You can use some of them, get ideas from +-the code, or even extend them.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="CDK" id="CDK">19.1. CDK (Curses +-Development Kit)</a></h3> +-<p>In the author's words</p> +-<p><em>CDK stands for 'Curses Development Kit' and it currently +-contains 21 ready to use widgets which facilitate the speedy +-development of full screen curses programs.</em></p> +-<p>The kit provides some useful widgets, which can be used in your +-programs directly. It's pretty well written and the documentation +-is very good. The examples in the examples directory can be a good +-place to start for beginners. The CDK can be downloaded from +-<a href="http://invisible-island.net/cdk/" target= +-"_top">http://invisible-island.net/cdk/</a> . Follow the +-instructions in README file to install it.</p> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="WIDGETLIST" id="WIDGETLIST">19.1.1. +-Widget List</a></h4> +-<p>The following is the list of widgets provided with cdk and their +-description.</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color="#000000">Widget Type Quick Description ++ char *regexp); /* expression to match */</PRE ++><P ++>The syntax for regular expressions is that of regcomp(3). ++The check for regular-expression match is performed on exit.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="FORMDRIVER" ++>18.6. Form Driver: The work horse of the forms system</A ++></H3 ++><P ++>As in the menu system, form_driver() plays a very important role in forms ++system. All types of requests to forms system should be funneled through ++form_driver().</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int form_driver(FORM *form, /* form on which to operate */ ++ int request) /* form request code */</PRE ++><P ++>As you have seen some of the examples above, you have to be in a loop looking ++for user input and then decide whether it's a field data or a form request. The ++form requests are then passed to form_driver() to do the work.</P ++><P ++>The requests roughly can be divided into following categories. Different ++requests and their usage is explained below:</P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="PAGENAVREQ" ++>18.6.1. Page Navigation Requests</A ++></H4 ++><P ++>These requests cause page-level moves through the form, triggering display of a ++new form screen. A form can be made of multiple pages. If you have a big form ++with lot of fields and logical sections, then you can divide the form into ++pages. The function set_new_page() to set a new page at the field specified.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>int set_new_page(FIELD *field,/* Field at which page break to be set or unset */ ++ bool new_page_flag); /* should be TRUE to put a break */</PRE ++><P ++>The following requests allow you to move to different pages</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEXT_PAGE</I ++></SPAN ++> Move to the next form page.</P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_PREV_PAGE</I ++></SPAN ++> Move to the previous ++form page.</P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_FIRST_PAGE</I ++></SPAN ++> Move to the first form page.</P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_LAST_PAGE</I ++></SPAN ++> Move to the last form page. </P ++></LI ++></UL ++><P ++>These requests treat the list as cyclic; that is, REQ_NEXT_PAGE from the ++last page goes to the first, and REQ_PREV_PAGE from the first page goes to ++the last.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="INTERFIELDNAVREQ" ++>18.6.2. Inter-Field Navigation Requests</A ++></H4 ++><P ++>These requests handle navigation between fields on the same page.</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEXT_FIELD</I ++></SPAN ++> ++ Move to next field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_PREV_FIELD</I ++></SPAN ++> ++ Move to previous field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_FIRST_FIELD</I ++></SPAN ++> ++ Move to the first field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_LAST_FIELD</I ++></SPAN ++> ++ Move to the last field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SNEXT_FIELD</I ++></SPAN ++> ++ Move to sorted next field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SPREV_FIELD</I ++></SPAN ++> ++ Move to sorted previous field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SFIRST_FIELD</I ++></SPAN ++> ++ Move to the sorted first field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SLAST_FIELD</I ++></SPAN ++> ++ Move to the sorted last field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_LEFT_FIELD</I ++></SPAN ++> ++ Move left to field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_RIGHT_FIELD</I ++></SPAN ++> ++ Move right to field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_UP_FIELD</I ++></SPAN ++> ++ Move up to field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_DOWN_FIELD</I ++></SPAN ++> ++ Move down to field. </P ++></LI ++></UL ++><P ++>These requests treat the list of fields on a page as cyclic; that is, ++REQ_NEXT_FIELD from the last field goes to the first, and REQ_PREV_FIELD ++from the first field goes to the last. The order of the fields for these ++(and the REQ_FIRST_FIELD and REQ_LAST_FIELD requests) is simply the order of ++the field pointers in the form array (as set up by new_form() or ++set_form_fields()</P ++><P ++>It is also possible to traverse the fields as if they had been sorted in ++screen-position order, so the sequence goes left-to-right and top-to-bottom. ++To do this, use the second group of four sorted-movement requests.</P ++><P ++>Finally, it is possible to move between fields using visual directions up, ++down, right, and left. To accomplish this, use the third group of four ++requests. Note, however, that the position of a form for purposes of these ++requests is its upper-left corner.</P ++><P ++>For example, suppose you have a multi-line field B, and two single-line ++fields A and C on the same line with B, with A to the left of B and C to the ++right of B. A REQ_MOVE_RIGHT from A will go to B only if A, B, and C all ++share the same first line; otherwise it will skip over B to C.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="INTRAFIELDNAVREQ" ++>18.6.3. Intra-Field Navigation Requests</A ++></H4 ++><P ++>These requests drive movement of the edit cursor within the currently ++selected field.</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEXT_CHAR</I ++></SPAN ++> ++ Move to next character. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_PREV_CHAR</I ++></SPAN ++> ++ Move to previous character. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEXT_LINE</I ++></SPAN ++> ++ Move to next line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_PREV_LINE</I ++></SPAN ++> ++ Move to previous line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEXT_WORD</I ++></SPAN ++> ++ Move to next word. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_PREV_WORD</I ++></SPAN ++> ++ Move to previous word. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_BEG_FIELD</I ++></SPAN ++> ++ Move to beginning of field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_END_FIELD</I ++></SPAN ++> ++ Move to end of field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_BEG_LINE</I ++></SPAN ++> ++ Move to beginning of line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_END_LINE</I ++></SPAN ++> ++ Move to end of line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_LEFT_CHAR</I ++></SPAN ++> ++ Move left in field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_RIGHT_CHAR</I ++></SPAN ++> ++ Move right in field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_UP_CHAR</I ++></SPAN ++> ++ Move up in field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_DOWN_CHAR</I ++></SPAN ++> ++ Move down in field. </P ++></LI ++></UL ++><P ++>Each word is separated from the previous and next characters by whitespace. ++The commands to move to beginning and end of line or field look for the ++first or last non-pad character in their ranges.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="SCROLLREQ" ++>18.6.4. Scrolling Requests</A ++></H4 ++><P ++>Fields that are dynamic and have grown and fields explicitly created with ++offscreen rows are scrollable. One-line fields scroll horizontally; ++multi-line fields scroll vertically. Most scrolling is triggered by editing ++and intra-field movement (the library scrolls the field to keep the cursor ++visible). It is possible to explicitly request scrolling with the following ++requests:</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_FLINE</I ++></SPAN ++> ++ Scroll vertically forward a line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_BLINE</I ++></SPAN ++> ++ Scroll vertically backward a line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_FPAGE</I ++></SPAN ++> ++ Scroll vertically forward a page. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_BPAGE</I ++></SPAN ++> ++ Scroll vertically backward a page. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_FHPAGE</I ++></SPAN ++> ++ Scroll vertically forward half a page. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_BHPAGE</I ++></SPAN ++> ++ Scroll vertically backward half a page. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_FCHAR</I ++></SPAN ++> ++ Scroll horizontally forward a character. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_BCHAR</I ++></SPAN ++> ++ Scroll horizontally backward a character. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_HFLINE</I ++></SPAN ++> ++ Scroll horizontally one field width forward. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_HBLINE</I ++></SPAN ++> ++ Scroll horizontally one field width backward. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_HFHALF</I ++></SPAN ++> ++ Scroll horizontally one half field width forward. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_SCR_HBHALF</I ++></SPAN ++> ++ Scroll horizontally one half field width backward. </P ++></LI ++></UL ++><P ++>For scrolling purposes, a page of a field is the height of its visible part.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="EDITREQ" ++>18.6.5. Editing Requests</A ++></H4 ++><P ++>When you pass the forms driver an ASCII character, it is treated as a ++request to add the character to the field's data buffer. Whether this is an ++insertion or a replacement depends on the field's edit mode (insertion is ++the default.</P ++><P ++>The following requests support editing the field and changing the edit mode:</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_INS_MODE</I ++></SPAN ++> ++ Set insertion mode. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_OVL_MODE</I ++></SPAN ++> ++ Set overlay mode. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEW_LINE</I ++></SPAN ++> ++ New line request (see below for explanation). </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_INS_CHAR</I ++></SPAN ++> ++ Insert space at character location. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_INS_LINE</I ++></SPAN ++> ++ Insert blank line at character location. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_DEL_CHAR</I ++></SPAN ++> ++ Delete character at cursor. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_DEL_PREV</I ++></SPAN ++> ++ Delete previous word at cursor. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_DEL_LINE</I ++></SPAN ++> ++ Delete line at cursor. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_DEL_WORD</I ++></SPAN ++> ++ Delete word at cursor. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_CLR_EOL</I ++></SPAN ++> ++ Clear to end of line. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_CLR_EOF</I ++></SPAN ++> ++ Clear to end of field. </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_CLR_FIELD</I ++></SPAN ++> ++ Clear entire field. </P ++></LI ++></UL ++><P ++>The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is complicated ++and partly controlled by a pair of forms options. The special cases are ++triggered when the cursor is at the beginning of a field, or on the last ++line of the field.</P ++><P ++>First, we consider REQ_NEW_LINE:</P ++><P ++>The normal behavior of REQ_NEW_LINE in insert mode is to break the current ++line at the position of the edit cursor, inserting the portion of the ++current line after the cursor as a new line following the current and moving ++the cursor to the beginning of that new line (you may think of this as ++inserting a newline in the field buffer).</P ++><P ++>The normal behavior of REQ_NEW_LINE in overlay mode is to clear the current ++line from the position of the edit cursor to end of line. The cursor is then ++moved to the beginning of the next line.</P ++><P ++>However, REQ_NEW_LINE at the beginning of a field, or on the last line of a ++field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD option is off, this ++special action is disabled.</P ++><P ++>Now, let us consider REQ_DEL_PREV:</P ++><P ++>The normal behavior of REQ_DEL_PREV is to delete the previous character. If ++insert mode is on, and the cursor is at the start of a line, and the text on ++that line will fit on the previous one, it instead appends the contents of ++the current line to the previous one and deletes the current line (you may ++think of this as deleting a newline from the field buffer).</P ++><P ++>However, REQ_DEL_PREV at the beginning of a field is instead treated as a ++REQ_PREV_FIELD.</P ++><P ++>If the O_BS_OVERLOAD option is off, this special action is disabled and the ++forms driver just returns E_REQUEST_DENIED.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="ORDERREQ" ++>18.6.6. Order Requests</A ++></H4 ++><P ++>If the type of your field is ordered, and has associated functions for ++getting the next and previous values of the type from a given value, there ++are requests that can fetch that value into the field buffer:</P ++><P ++></P ++><UL ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_NEXT_CHOICE</I ++></SPAN ++> ++ Place the successor value of the current value in the buffer. ++ </P ++></LI ++><LI ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>REQ_PREV_CHOICE</I ++></SPAN ++> ++ Place the predecessor value of the current value in the buffer. ++ </P ++></LI ++></UL ++><P ++>Of the built-in field types, only TYPE_ENUM has built-in successor and ++predecessor functions. When you define a field type of your own (see Custom ++Validation Types), you can associate our own ordering functions.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="APPLICCOMMANDS" ++>18.6.7. Application Commands</A ++></H4 ++><P ++>Form requests are represented as integers above the curses value greater than ++KEY_MAX and less than or equal to the constant MAX_COMMAND. A value within this ++range gets ignored by form_driver(). So this can be used for any purpose by the ++application. It can be treated as an application specific action and take ++corresponding action.</P ++></DIV ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="TOOLS" ++>19. Tools and Widget Libraries</A ++></H2 ++><P ++> ++Now that you have seen the capabilities of ncurses and its sister libraries, you ++are rolling your sleeves up and gearing for a project that heavily manipulates ++screen. But wait.. It can be pretty difficult to write and maintain complex GUI ++widgets in plain ncurses or even with the additional libraries. There are some ++ready-to-use tools and widget libraries that can be used instead of writing your ++own widgets. You can use some of them, get ideas from the code, or even extend ++them.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="CDK" ++>19.1. CDK (Curses Development Kit)</A ++></H3 ++><P ++>In the author's words </P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++> ++CDK stands for 'Curses Development Kit' and it currently contains 21 ready ++to use widgets which facilitate the speedy development of full screen ++curses programs. </I ++></SPAN ++></P ++><P ++>The kit provides some useful widgets, which can be used in your programs ++directly. It's pretty well written and the documentation is very good. The ++examples in the examples directory can be a good place to start for beginners. ++The CDK can be downloaded from <A ++HREF="http://invisible-island.net/cdk/" ++TARGET="_top" ++>http://invisible-island.net/cdk/</A ++> ++. Follow the instructions in ++README file to install it.</P ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="WIDGETLIST" ++>19.1.1. Widget List</A ++></H4 ++><P ++>The following is the list of widgets provided with cdk and their description.</P ++><PRE ++CLASS="PROGRAMLISTING" ++>Widget Type Quick Description + =========================================================================== + Alphalist Allows a user to select from a list of words, with + the ability to narrow the search list by typing in a +@@ -6199,215 +8368,346 @@ + dates and phone numbers. + Viewer This is a file/information viewer. Very useful + when you need to display loads of information. +-===========================================================================</font> +-</pre></td> +-</tr> +-</table> +-<p>A few of the widgets are modified by Thomas Dickey in recent +-versions.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="CDKATTRACT" id="CDKATTRACT">19.1.2. Some +-Attractive Features</a></h4> +-<p>Apart from making our life easier with readily usable widgets, +-cdk solves one frustrating problem with printing multi colored +-strings, justified strings elegantly. Special formatting tags can +-be embedded in the strings which are passed to CDK functions. For +-Example</p> +-<p>If the string</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000">"&lt;/B/1&gt;This line should have a yellow foreground and a blue +-background.&lt;!1&gt;"</font> +-</pre></td> +-</tr> +-</table> +-<p>given as a parameter to newCDKLabel(), it prints the line with +-yellow foreground and blue background. There are other tags +-available for justifying string, embedding special drawing +-characters etc.. Please refer to the man page cdk_display(3X) for +-details. The man page explains the usage with nice examples.</p> +-</div> +-<div class="SECT3"> +-<hr> +-<h4 class="SECT3"><a name="CDKCONCLUSION" id= +-"CDKCONCLUSION">19.1.3. Conclusion</a></h4> +-<p>All in all, CDK is a well-written package of widgets, which if +-used properly can form a strong frame work for developing complex +-GUI.</p> +-</div> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="DIALOG" id="DIALOG">19.2. The +-dialog</a></h3> +-<p>Long long ago, in September 1994, when few people knew linux, +-Jeff Tranter wrote an <a href= +-"http://www2.linuxjournal.com/lj-issues/issue5/2807.html" target= +-"_top">article</a> on dialog in Linux Journal. He starts the +-article with these words..</p> +-<p><em>Linux is based on the Unix operating system, but also +-features a number of unique and useful kernel features and +-application programs that often go beyond what is available under +-Unix. One little-known gem is "dialog", a utility for creating +-professional-looking dialog boxes from within shell scripts. This +-article presents a tutorial introduction to the dialog utility, and +-shows examples of how and where it can be used</em></p> +-<p>As he explains, dialog is a real gem in making +-professional-looking dialog boxes with ease. It creates a variety +-of dialog boxes, menus, check lists etc.. It is usually installed +-by default. If not, you can download it from <a href= +-"http://invisible-island.net/dialog/" target="_top">Thomas +-Dickey</a>'s site.</p> +-<p>The above-mentioned article gives a very good overview of its +-uses and capabilites. The man page has more details. It can be used +-in variety of situations. One good example is building of linux +-kernel in text mode. Linux kernel uses a modified version of dialog +-tailored for its needs.</p> +-<p>dialog was initially designed to be used with shell scripts. If +-you want to use its functionality in a c program, then you can use +-libdialog. The documentation regarding this is sparse. Definitive +-reference is the dialog.h header file which comes with the library. +-You may need to hack here and there to get the required output. The +-source is easily customizable. I have used it on a number of +-occasions by modifying the code.</p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="PERLCURSES" id="PERLCURSES">19.3. Perl +-Curses Modules CURSES::FORM and CURSES::WIDGETS</a></h3> +-<p>The perl module Curses, Curses::Form and Curses::Widgets give +-access to curses from perl. If you have curses and basic perl is +-installed, you can get these modules from <a href= +-"http://www.cpan.org/modules/01modules.index.html" target= +-"_top">CPAN All Modules page</a>. Get the three zipped modules in +-the Curses category. Once installed you can use these modules from +-perl scripts like any other module. For more information on perl +-modules see perlmod man page. The above modules come with good +-documentation and they have some demo scripts to test the +-functionality. Though the widgets provided are very rudimentary, +-these modules provide good access to curses library from perl.</p> +-<p>Some of my code examples are converted to perl by Anuradha +-Ratnaweera and they are available in the <var class= +-"LITERAL">perl</var> directory.</p> +-<p>For more information see man pages Curses(3) , Curses::Form(3) +-and Curses::Widgets(3). These pages are installed only when the +-above modules are acquired and installed.</p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="JUSTFORFUN" id="JUSTFORFUN">20. Just For +-Fun !!!</a></h2> +-<p>This section contains few programs written by me just for fun. +-They don't signify a better programming practice or the best way of +-using ncurses. They are provided here so as to allow beginners to +-get ideas and add more programs to this section. If you have +-written a couple of nice, simple programs in curses and want them +-to included here, contact <a href="mailto:ppadala@gmail.com" +-target="_top">me</a>.</p> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="GAMEOFLIFE" id="GAMEOFLIFE">20.1. The +-Game of Life</a></h3> +-<p>Game of life is a wonder of math. In <a href= +-"http://www.math.com/students/wonders/life/life.html" target= +-"_top">Paul Callahan</a>'s words</p> +-<table border="0" bgcolor="#E0E0E0" width="100%"> +-<tr> +-<td> +-<pre class="PROGRAMLISTING"> +-<font color= +-"#000000"><em>The Game of Life (or simply Life) is not a game in the conventional sense. There ++===========================================================================</PRE ++><P ++>A few of the widgets are modified by Thomas Dickey in recent versions.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="CDKATTRACT" ++>19.1.2. Some Attractive Features</A ++></H4 ++><P ++>Apart from making our life easier with readily usable widgets, cdk solves one ++frustrating problem with printing multi colored strings, justified strings ++elegantly. Special formatting tags can be embedded in the strings which are ++passed to CDK functions. For Example</P ++><P ++>If the string</P ++><PRE ++CLASS="PROGRAMLISTING" ++>"&lt;/B/1&gt;This line should have a yellow foreground and a blue ++background.&lt;!1&gt;"</PRE ++><P ++>given as a parameter to newCDKLabel(), it prints the line with yellow foreground ++and blue background. There are other tags available for justifying string, ++embedding special drawing characters etc.. Please refer to the man page ++cdk_display(3X) for details. The man page explains the usage with nice examples.</P ++></DIV ++><DIV ++CLASS="SECT3" ++><HR><H4 ++CLASS="SECT3" ++><A ++NAME="CDKCONCLUSION" ++>19.1.3. Conclusion</A ++></H4 ++><P ++>All in all, CDK is a well-written package of widgets, which if used properly can ++form a strong frame work for developing complex GUI.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="DIALOG" ++>19.2. The dialog</A ++></H3 ++><P ++>Long long ago, in September 1994, when few people knew linux, Jeff Tranter wrote ++an <A ++HREF="http://www2.linuxjournal.com/lj-issues/issue5/2807.html" ++TARGET="_top" ++>article</A ++> on dialog in Linux Journal. He starts the article with these words..</P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>Linux is based on the Unix operating system, but also features a number of ++unique and useful kernel features and application programs that often go beyond ++what is available under Unix. One little-known gem is "dialog", a utility for ++creating professional-looking dialog boxes from within shell scripts. This ++article presents a tutorial introduction to the dialog utility, and shows ++examples of how and where it can be used</I ++></SPAN ++></P ++><P ++> ++As he explains, dialog is a real gem in making professional-looking dialog boxes ++with ease. It creates a variety of dialog boxes, menus, check lists etc.. It is ++usually installed by default. If not, you can download it from <A ++HREF="http://invisible-island.net/dialog/" ++TARGET="_top" ++>Thomas Dickey</A ++>'s site. </P ++><P ++>The above-mentioned article gives a very good overview of its uses and ++capabilites. The man page has more details. It can be used in variety of ++situations. One good example is building of linux kernel in text mode. Linux ++kernel uses a modified version of dialog tailored for its needs. </P ++><P ++>dialog was initially designed to be used with shell scripts. If you want to use ++its functionality in a c program, then you can use libdialog. The documentation ++regarding this is sparse. Definitive reference is the dialog.h header file which ++comes with the library. You may need to hack here and there to get the required ++output. The source is easily customizable. I have used it on a number of ++occasions by modifying the code.</P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="PERLCURSES" ++>19.3. Perl Curses Modules CURSES::FORM and CURSES::WIDGETS</A ++></H3 ++><P ++>The perl module Curses, Curses::Form and Curses::Widgets give access to curses ++from perl. If you have curses and basic perl is installed, you can get these ++modules from <A ++HREF="http://www.cpan.org/modules/01modules.index.html" ++TARGET="_top" ++> CPAN ++All Modules page</A ++>. Get the three zipped modules in the Curses category. ++Once installed you can use these modules from perl scripts like any other ++module. For more information on perl modules see perlmod man page. The above ++modules come with good documentation and they have some demo scripts to test the ++functionality. Though the widgets provided are very rudimentary, these modules ++provide good access to curses library from perl.</P ++><P ++>Some of my code examples are converted to perl by Anuradha Ratnaweera and they ++are available in the <TT ++CLASS="LITERAL" ++>perl</TT ++> directory.</P ++><P ++> ++For more information see man pages Curses(3) , Curses::Form(3) and ++Curses::Widgets(3). These pages are installed only when the above modules are ++acquired and installed.</P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="JUSTFORFUN" ++>20. Just For Fun !!!</A ++></H2 ++><P ++>This section contains few programs written by me just for fun. They don't ++signify a better programming practice or the best way of using ncurses. They are ++provided here so as to allow beginners to get ideas and add more programs to ++this section. If you have written a couple of nice, simple programs in curses ++and want them to included here, contact <A ++HREF="mailto:ppadala@gmail.com" ++TARGET="_top" ++>me</A ++>.</P ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="GAMEOFLIFE" ++>20.1. The Game of Life</A ++></H3 ++><P ++>Game of life is a wonder of math. In ++<A ++HREF="http://www.math.com/students/wonders/life/life.html" ++TARGET="_top" ++>Paul Callahan</A ++>'s words</P ++><PRE ++CLASS="PROGRAMLISTING" ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>The Game of Life (or simply Life) is not a game in the conventional sense. There + are no players, and no winning or losing. Once the "pieces" are placed in the + starting position, the rules determine everything that happens later. + Nevertheless, Life is full of surprises! In most cases, it is impossible to look + at a starting position (or pattern) and see what will happen in the future. The +-only way to find out is to follow the rules of the game.</em></font> +-</pre></td> +-</tr> +-</table> +-<p>This program starts with a simple inverted U pattern and shows +-how wonderful life works. There is a lot of room for improvement in +-the program. You can let the user enter pattern of his choice or +-even take input from a file. You can also change rules and play +-with a lot of variations. Search on <a href="http://www.google.com" +-target="_top">google</a> for interesting information on game of +-life.</p> +-<p><em>File Path: JustForFun/life.c</em></p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="MAGIC" id="MAGIC">20.2. Magic +-Square</a></h3> +-<p>Magic Square, another wonder of math, is very simple to +-understand but very difficult to make. In a magic square sum of the +-numbers in each row, each column is equal. Even diagnol sum can be +-equal. There are many variations which have special properties.</p> +-<p>This program creates a simple magic square of odd order.</p> +-<p><em>File Path: JustForFun/magic.c</em></p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="HANOI" id="HANOI">20.3. Towers of +-Hanoi</a></h3> +-<p>The famous towers of hanoi solver. The aim of the game is to +-move the disks on the first peg to last peg, using middle peg as a +-temporary stay. The catch is not to place a larger disk over a +-small disk at any time.</p> +-<p><em>File Path: JustForFun/hanoi.c</em></p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="QUEENS" id="QUEENS">20.4. Queens +-Puzzle</a></h3> +-<p>The objective of the famous N-Queen puzzle is to put N queens on +-a N X N chess board without attacking each other.</p> +-<p>This program solves it with a simple backtracking technique.</p> +-<p><em>File Path: JustForFun/queens.c</em></p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="SHUFFLE" id="SHUFFLE">20.5. +-Shuffle</a></h3> +-<p>A fun game, if you have time to kill.</p> +-<p><em>File Path: JustForFun/shuffle.c</em></p> +-</div> +-<div class="SECT2"> +-<hr> +-<h3 class="SECT2"><a name="TT" id="TT">20.6. Typing Tutor</a></h3> +-<p>A simple typing tutor, I created more out of need than for ease +-of use. If you know how to put your fingers correctly on the +-keyboard, but lack practice, this can be helpful.</p> +-<p><em>File Path: JustForFun/tt.c</em></p> +-</div> +-</div> +-<div class="SECT1"> +-<hr> +-<h2 class="SECT1"><a name="REF" id="REF">21. References</a></h2> +-<ul> +-<li> +-<p>NCURSES man pages</p> +-</li> +-<li> +-<p>NCURSES FAQ at <a href= +-"http://invisible-island.net/ncurses/ncurses.faq.html" target= +-"_top">http://invisible-island.net/ncurses/ncurses.faq.html</a></p> +-</li> +-<li> +-<p>Writing programs with NCURSES by Eric Raymond and Zeyd M. +-Ben-Halim at <a href= +-"http://invisible-island.net/ncurses/ncurses-intro.html" target= +-"_top">http://invisible-island.net/ncurses/ncurses-intro.html</a> - +-somewhat obsolete. I was inspired by this document and the +-structure of this HOWTO follows from the original document</p> +-</li> +-</ul> +-</div> +-</div> +-</body> +-</html> ++only way to find out is to follow the rules of the game.</I ++></SPAN ++></PRE ++><P ++>This program starts with a simple inverted U pattern and shows how wonderful ++life works. There is a lot of room for improvement in the program. You can let ++the user enter pattern of his choice or even take input from a file. You can ++also change rules and play with a lot of variations. Search on <A ++HREF="http://www.google.com" ++TARGET="_top" ++>google</A ++> for interesting information on game ++of life.</P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>File Path: JustForFun/life.c</I ++></SPAN ++></P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="MAGIC" ++>20.2. Magic Square</A ++></H3 ++><P ++>Magic Square, another wonder of math, is very simple to understand but very ++difficult to make. In a magic square sum of the numbers in each row, each column ++is equal. Even diagnol sum can be equal. There are many variations which have ++special properties.</P ++><P ++>This program creates a simple magic square of odd order.</P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>File Path: JustForFun/magic.c</I ++></SPAN ++></P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="HANOI" ++>20.3. Towers of Hanoi</A ++></H3 ++><P ++>The famous towers of hanoi solver. The aim of the game is to move the disks on ++the first peg to last peg, using middle peg as a temporary stay. The catch is ++not to place a larger disk over a small disk at any time.</P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>File Path: JustForFun/hanoi.c</I ++></SPAN ++></P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="QUEENS" ++>20.4. Queens Puzzle</A ++></H3 ++><P ++>The objective of the famous N-Queen puzzle is to put N queens on a N X N chess ++board without attacking each other. </P ++><P ++>This program solves it with a simple backtracking technique.</P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>File Path: JustForFun/queens.c</I ++></SPAN ++></P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="SHUFFLE" ++>20.5. Shuffle</A ++></H3 ++><P ++>A fun game, if you have time to kill. </P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>File Path: JustForFun/shuffle.c</I ++></SPAN ++></P ++></DIV ++><DIV ++CLASS="SECT2" ++><HR><H3 ++CLASS="SECT2" ++><A ++NAME="TT" ++>20.6. Typing Tutor</A ++></H3 ++><P ++>A simple typing tutor, I created more out of need than for ease of use. If you ++know how to put your fingers correctly on the keyboard, but lack practice, this ++can be helpful. </P ++><P ++><SPAN ++CLASS="emphasis" ++><I ++CLASS="EMPHASIS" ++>File Path: JustForFun/tt.c</I ++></SPAN ++></P ++></DIV ++></DIV ++><DIV ++CLASS="SECT1" ++><HR><H2 ++CLASS="SECT1" ++><A ++NAME="REF" ++>21. References</A ++></H2 ++><P ++></P ++><UL ++><LI ++><P ++>NCURSES man pages </P ++></LI ++><LI ++><P ++>NCURSES FAQ at <A ++HREF="http://invisible-island.net/ncurses/ncurses.faq.html" ++TARGET="_top" ++>http://invisible-island.net/ncurses/ncurses.faq.html</A ++> ++ </P ++></LI ++><LI ++><P ++>Writing programs with NCURSES by Eric Raymond and Zeyd M. ++Ben-Halim at ++<A ++HREF="http://invisible-island.net/ncurses/ncurses-intro.html" ++TARGET="_top" ++>http://invisible-island.net/ncurses/ncurses-intro.html</A ++> - somewhat ++obsolete. I was inspired by this document and the structure of this HOWTO ++follows from the original document</P ++></LI ++></UL ++></DIV ++></DIV ++></BODY ++></HTML ++> +\ Kein Zeilenumbruch am Dateiende. +diff -Naur ncurses-5.9/doc/ncurses-intro.doc ncurses-5.9.patch/doc/ncurses-intro.doc +--- ncurses-5.9/doc/ncurses-intro.doc 2007-03-04 00:45:04.000000000 +0100 ++++ ncurses-5.9.patch/doc/ncurses-intro.doc 2014-09-01 16:33:22.337792091 +0200 +@@ -333,6 +333,7 @@ + + Here is a sample program to motivate the discussion: + #include <curses.h> ++#include <curses.h> + #include <signal.h> + + static void finish(int sig); +diff -Naur ncurses-5.9/form/fld_arg.c ncurses-5.9.patch/form/fld_arg.c +--- ncurses-5.9/form/fld_arg.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_arg.c 2014-09-01 16:33:22.337792091 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_arg.c,v 1.12 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_arg.c,v 1.13 2012/06/10 00:27:49 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -71,7 +71,7 @@ + + if (typ != 0 && make_arg != (void *)0) + { +- typ->status |= _HAS_ARGS; ++ SetStatus(typ, _HAS_ARGS); + typ->makearg = make_arg; + typ->copyarg = copy_arg; + typ->freearg = free_arg; +diff -Naur ncurses-5.9/form/fld_def.c ncurses-5.9.patch/form/fld_def.c +--- ncurses-5.9/form/fld_def.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_def.c 2014-09-01 16:33:22.337792091 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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: fld_def.c,v 1.38 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_def.c,v 1.40 2012/03/11 00:37:16 tom Exp $") + + /* this can't be readonly */ + static FIELD default_field = +@@ -65,8 +65,7 @@ + NCURSES_FIELD_EXTENSION + }; + +-NCURSES_EXPORT_VAR(FIELD *) +-_nc_Default_Field = &default_field; ++NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field; + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -186,10 +185,12 @@ + { + if ((typ->status & _LINKED_TYPE) != 0) + { +- assert(argp != 0); +- _nc_Free_Argument(typ->left, argp->left); +- _nc_Free_Argument(typ->right, argp->right); +- free(argp); ++ if (argp != 0) ++ { ++ _nc_Free_Argument(typ->left, argp->left); ++ _nc_Free_Argument(typ->right, argp->right); ++ free(argp); ++ } + } + else + { +@@ -293,14 +294,14 @@ + { + T((T_CREATE("field %p"), (void *)New_Field)); + *New_Field = default_field; +- New_Field->rows = rows; +- New_Field->cols = cols; ++ New_Field->rows = (short) rows; ++ New_Field->cols = (short) cols; + New_Field->drows = rows + nrow; + New_Field->dcols = cols; +- New_Field->frow = frow; +- New_Field->fcol = fcol; ++ New_Field->frow = (short) frow; ++ New_Field->fcol = (short) fcol; + New_Field->nrow = nrow; +- New_Field->nbuf = nbuf; ++ New_Field->nbuf = (short) nbuf; + New_Field->link = New_Field; + + #if USE_WIDEC_SUPPORT +diff -Naur ncurses-5.9/form/fld_dup.c ncurses-5.9.patch/form/fld_dup.c +--- ncurses-5.9/form/fld_dup.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_dup.c 2014-09-01 16:33:22.337792091 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_dup.c,v 1.13 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_dup.c,v 1.14 2012/03/11 00:37:16 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -60,8 +60,8 @@ + { + T((T_CREATE("field %p"), (void *)New_Field)); + *New_Field = *_nc_Default_Field; +- New_Field->frow = frow; +- New_Field->fcol = fcol; ++ New_Field->frow = (short) frow; ++ New_Field->fcol = (short) fcol; + New_Field->link = New_Field; + New_Field->rows = field->rows; + New_Field->cols = field->cols; +diff -Naur ncurses-5.9/form/fld_ftchoice.c ncurses-5.9.patch/form/fld_ftchoice.c +--- ncurses-5.9/form/fld_ftchoice.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_ftchoice.c 2014-09-01 16:33:22.337792091 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_ftchoice.c,v 1.12 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_ftchoice.c,v 1.13 2012/06/10 00:27:49 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -56,7 +56,7 @@ + if (!typ || !next_choice || !prev_choice) + RETURN(E_BAD_ARGUMENT); + +- typ->status |= _HAS_CHOICE; ++ SetStatus(typ, _HAS_CHOICE); + #if NCURSES_INTEROP_FUNCS + typ->enum_next.onext = next_choice; + typ->enum_prev.oprev = prev_choice; +diff -Naur ncurses-5.9/form/fld_ftlink.c ncurses-5.9.patch/form/fld_ftlink.c +--- ncurses-5.9/form/fld_ftlink.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_ftlink.c 2014-09-01 16:33:22.337792091 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_ftlink.c,v 1.14 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_ftlink.c,v 1.15 2012/06/10 00:27:49 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -62,11 +62,11 @@ + { + T((T_CREATE("fieldtype %p"), (void *)nftyp)); + *nftyp = *_nc_Default_FieldType; +- nftyp->status |= _LINKED_TYPE; ++ SetStatus(nftyp, _LINKED_TYPE); + if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS)) +- nftyp->status |= _HAS_ARGS; ++ SetStatus(nftyp, _HAS_ARGS); + if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE)) +- nftyp->status |= _HAS_CHOICE; ++ SetStatus(nftyp, _HAS_CHOICE); + nftyp->left = type1; + nftyp->right = type2; + type1->ref++; +diff -Naur ncurses-5.9/form/fld_just.c ncurses-5.9.patch/form/fld_just.c +--- ncurses-5.9/form/fld_just.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_just.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_just.c,v 1.12 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_just.c,v 1.13 2012/03/11 00:37:16 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -59,7 +59,7 @@ + Normalize_Field(field); + if (field->just != just) + { +- field->just = just; ++ field->just = (short) just; + res = _nc_Synchronize_Attributes(field); + } + else +diff -Naur ncurses-5.9/form/fld_link.c ncurses-5.9.patch/form/fld_link.c +--- ncurses-5.9/form/fld_link.c 2010-01-23 22:14:35.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_link.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_link.c,v 1.12 2010/01/23 21:14:35 tom Exp $") ++MODULE_ID("$Id: fld_link.c,v 1.13 2012/03/11 00:37:16 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -61,8 +61,8 @@ + { + T((T_CREATE("field %p"), (void *)New_Field)); + *New_Field = *_nc_Default_Field; +- New_Field->frow = frow; +- New_Field->fcol = fcol; ++ New_Field->frow = (short) frow; ++ New_Field->fcol = (short) fcol; + + New_Field->link = field->link; + field->link = New_Field; +diff -Naur ncurses-5.9/form/fld_max.c ncurses-5.9.patch/form/fld_max.c +--- ncurses-5.9/form/fld_max.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_max.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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: fld_max.c,v 1.10 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fld_max.c,v 1.13 2013/08/24 22:59:28 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -62,13 +62,13 @@ + RETURN(E_BAD_ARGUMENT); + } + field->maxgrow = maxgrow; +- field->status &= ~_MAY_GROW; +- if (!(field->opts & O_STATIC)) ++ ClrStatus(field, _MAY_GROW); ++ if (!((unsigned)field->opts & O_STATIC)) + { + if ((maxgrow == 0) || + (single_line_field && (field->dcols < maxgrow)) || + (!single_line_field && (field->drows < maxgrow))) +- field->status |= _MAY_GROW; ++ SetStatus(field, _MAY_GROW); + } + } + RETURN(E_OK); +diff -Naur ncurses-5.9/form/fld_move.c ncurses-5.9.patch/form/fld_move.c +--- ncurses-5.9/form/fld_move.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_move.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_move.c,v 1.10 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fld_move.c,v 1.11 2012/03/11 00:37:16 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -56,8 +56,8 @@ + if (field->form) + RETURN(E_CONNECTED); + +- field->frow = frow; +- field->fcol = fcol; ++ field->frow = (short) frow; ++ field->fcol = (short) fcol; + RETURN(E_OK); + } + +diff -Naur ncurses-5.9/form/fld_page.c ncurses-5.9.patch/form/fld_page.c +--- ncurses-5.9/form/fld_page.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_page.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_page.c,v 1.10 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fld_page.c,v 1.12 2012/06/10 00:12:47 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -54,9 +54,9 @@ + RETURN(E_CONNECTED); + + if (new_page_flag) +- field->status |= _NEWPAGE; ++ SetStatus(field, _NEWPAGE); + else +- field->status &= ~_NEWPAGE; ++ ClrStatus(field, _NEWPAGE); + + RETURN(E_OK); + } +diff -Naur ncurses-5.9/form/fld_stat.c ncurses-5.9.patch/form/fld_stat.c +--- ncurses-5.9/form/fld_stat.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fld_stat.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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: fld_stat.c,v 1.12 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fld_stat.c,v 1.14 2012/06/10 00:13:09 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -51,9 +51,9 @@ + Normalize_Field(field); + + if (status) +- field->status |= _CHANGED; ++ SetStatus(field, _CHANGED); + else +- field->status &= ~_CHANGED; ++ ClrStatus(field, _CHANGED); + + RETURN(E_OK); + } +diff -Naur ncurses-5.9/form/form.h ncurses-5.9.patch/form/form.h +--- ncurses-5.9/form/form.h 2009-11-07 20:31:11.000000000 +0100 ++++ ncurses-5.9.patch/form/form.h 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2013 Free 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.h,v 0.21 2009/11/07 19:31:11 tom Exp $ */ ++/* $Id: form.h,v 0.23 2013/12/07 17:57:32 tom Exp $ */ + + #ifndef FORM_H + #define FORM_H +@@ -396,6 +396,9 @@ + extern NCURSES_EXPORT(int) unpost_form (FORM *); + extern NCURSES_EXPORT(int) pos_form_cursor (FORM *); + extern NCURSES_EXPORT(int) form_driver (FORM *,int); ++# if NCURSES_WIDECHAR ++extern NCURSES_EXPORT(int) form_driver_w (FORM *,int,wchar_t); ++# endif + extern NCURSES_EXPORT(int) set_form_userptr (FORM *,void *); + extern NCURSES_EXPORT(int) set_form_opts (FORM *,Form_Options); + extern NCURSES_EXPORT(int) form_opts_on (FORM *,Form_Options); +diff -Naur ncurses-5.9/form/form.priv.h ncurses-5.9.patch/form/form.priv.h +--- ncurses-5.9/form/form.priv.h 2009-11-07 22:26:43.000000000 +0100 ++++ ncurses-5.9.patch/form/form.priv.h 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free 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,11 @@ + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +-/* $Id: form.priv.h,v 0.32 2009/11/07 21:26:43 tom Exp $ */ ++/* $Id: form.priv.h,v 0.33 2012/03/11 00:37:46 tom Exp $ */ + + #ifndef FORM_PRIV_H + #define FORM_PRIV_H 1 +- ++/* *INDENT-OFF*/ + #include "curses.priv.h" + #include "mf_common.h" + +@@ -119,7 +119,7 @@ + + /* Calculate the total size of all buffers for this field */ + #define Total_Buffer_Size(field) \ +- ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) * sizeof(FIELD_CELL) ) ++ ( (size_t)(Buffer_Length(field) + 1) * (size_t)(1+(field)->nbuf) * sizeof(FIELD_CELL) ) + + /* Logic to determine whether or not a field is single lined */ + #define Single_Line_Field(field) \ +@@ -293,5 +293,6 @@ + result = ((*buffer || (l < width)) ? FALSE : TRUE); \ + } + #endif ++/* *INDENT-ON*/ + + #endif /* FORM_PRIV_H */ +diff -Naur ncurses-5.9/form/frm_data.c ncurses-5.9.patch/form/frm_data.c +--- ncurses-5.9/form/frm_data.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/frm_data.c 2014-09-01 16:33:22.338792092 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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_data.c,v 1.15 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: frm_data.c,v 1.16 2013/08/24 22:44:05 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -103,7 +103,7 @@ + } + } + #else +- cell = winch(w); ++ cell = (FIELD_CELL) winch(w); + if (ChCharOf(cell) != ChCharOf(pad)) + { + result = FALSE; +diff -Naur ncurses-5.9/form/frm_def.c ncurses-5.9.patch/form/frm_def.c +--- ncurses-5.9/form/frm_def.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/frm_def.c 2014-09-01 16:33:22.339792094 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_def.c,v 1.25 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: frm_def.c,v 1.26 2012/03/11 00:37:16 tom Exp $") + + /* this can't be readonly */ + static FORM default_form = +@@ -199,14 +199,14 @@ + for (j = 0; j < field_cnt; j++) + { + if (j == 0) +- pg->pmin = j; ++ pg->pmin = (short) j; + else + { + if (fields[j]->status & _NEWPAGE) + { +- pg->pmax = j - 1; ++ pg->pmax = (short) (j - 1); + pg++; +- pg->pmin = j; ++ pg->pmin = (short) j; + } + } + +@@ -214,14 +214,14 @@ + maximum_col_in_field = fields[j]->fcol + fields[j]->cols; + + if (form->rows < maximum_row_in_field) +- form->rows = maximum_row_in_field; ++ form->rows = (short) maximum_row_in_field; + if (form->cols < maximum_col_in_field) +- form->cols = maximum_col_in_field; ++ form->cols = (short) maximum_col_in_field; + } + +- pg->pmax = field_cnt - 1; +- form->maxfield = field_cnt; +- form->maxpage = page_nr; ++ pg->pmax = (short) (field_cnt - 1); ++ form->maxfield = (short) field_cnt; ++ form->maxpage = (short) page_nr; + + /* Sort fields on form pages */ + for (page_nr = 0; page_nr < form->maxpage; page_nr++) +@@ -230,8 +230,8 @@ + + for (j = form->page[page_nr].pmin; j <= form->page[page_nr].pmax; j++) + { +- fields[j]->index = j; +- fields[j]->page = page_nr; ++ fields[j]->index = (short) j; ++ fields[j]->page = (short) page_nr; + fld = Insert_Field_By_Position(fields[j], fld); + } + if (fld) +diff -Naur ncurses-5.9/form/frm_driver.c ncurses-5.9.patch/form/frm_driver.c +--- ncurses-5.9/form/frm_driver.c 2010-05-01 23:11:43.000000000 +0200 ++++ ncurses-5.9.patch/form/frm_driver.c 2014-09-01 16:33:22.339792094 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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.98 2010/05/01 21:11:43 tom Exp $") ++MODULE_ID("$Id: frm_driver.c,v 1.111 2014/03/08 22:08:20 Xin.Li Exp $") + + /*---------------------------------------------------------------------------- + This is the core module of the form library. It contains the majority +@@ -172,7 +172,7 @@ + instead of a derived window because it contains invisible parts. + This is true for non-public fields and for scrollable fields. */ + #define Has_Invisible_Parts(field) \ +- (!((field)->opts & O_PUBLIC) || \ ++ (!((unsigned)(field)->opts & O_PUBLIC) || \ + Is_Scroll_Field(field)) + + /* Logic to decide whether or not a field needs justification */ +@@ -180,21 +180,21 @@ + (((field)->just != NO_JUSTIFICATION) && \ + (Single_Line_Field(field)) && \ + (((field)->dcols == (field)->cols) && \ +- ((field)->opts & O_STATIC)) ) ++ ((unsigned)(field)->opts & O_STATIC))) + + /* Logic to determine whether or not a dynamic field may still grow */ + #define Growable(field) ((field)->status & _MAY_GROW) + + /* Macro to set the attributes for a fields window */ + #define Set_Field_Window_Attributes(field,win) \ +-( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \ +- (void) wattrset((win),(field)->fore) ) ++( wbkgdset((win),(chtype)((chtype)((field)->pad) | (field)->back)), \ ++ (void) wattrset((win), (int)(field)->fore) ) + + /* Logic to decide whether or not a field really appears on the form */ + #define Field_Really_Appears(field) \ + ((field->form) &&\ + (field->form->status & _POSTED) &&\ +- (field->opts & O_VISIBLE) &&\ ++ ((unsigned)field->opts & O_VISIBLE) &&\ + (field->page == field->form->curpage)) + + /* Logic to determine whether or not we are on the first position in the +@@ -601,8 +601,8 @@ + { + if (form->status & _WINDOW_MODIFIED) + { +- form->status &= ~_WINDOW_MODIFIED; +- form->status |= _FCHECK_REQUIRED; ++ ClrStatus(form, _WINDOW_MODIFIED); ++ SetStatus(form, _FCHECK_REQUIRED); + Window_To_Buffer(form, form->current); + wmove(form->w, form->currow, form->curcol); + } +@@ -653,7 +653,7 @@ + growth = Minimum(field->maxgrow - field->dcols, growth); + field->dcols += growth; + if (field->dcols == field->maxgrow) +- field->status &= ~_MAY_GROW; ++ ClrStatus(field, _MAY_GROW); + } + else + { +@@ -662,7 +662,7 @@ + growth = Minimum(field->maxgrow - field->drows, growth); + field->drows += growth; + if (field->drows == field->maxgrow) +- field->status &= ~_MAY_GROW; ++ ClrStatus(field, _MAY_GROW); + } + /* drows, dcols changed, so we get really the new buffer length */ + new_buflen = Buffer_Length(field); +@@ -674,7 +674,7 @@ + field->drows = old_drows; + if ((single_line_field && (field->dcols != field->maxgrow)) || + (!single_line_field && (field->drows != field->maxgrow))) +- field->status |= _MAY_GROW; ++ SetStatus(field, _MAY_GROW); + } + else + { +@@ -753,7 +753,7 @@ + (field->dcols != field->maxgrow)) || + (!single_line_field && + (field->drows != field->maxgrow))) +- field->status |= _MAY_GROW; ++ SetStatus(field, _MAY_GROW); + free(newbuf); + } + } +@@ -860,7 +860,7 @@ + field = form->current; + formwin = Get_Form_Window(form); + +- if (field->opts & O_PUBLIC) ++ if ((unsigned)field->opts & O_PUBLIC) + { + if (Is_Scroll_Field(field)) + { +@@ -897,19 +897,19 @@ + if (form->currow < form->toprow) + { + form->toprow = form->currow; +- field->status |= _NEWTOP; ++ SetStatus(field, _NEWTOP); + } + if (form->currow >= row_after_bottom) + { + form->toprow = form->currow - field->rows + 1; +- field->status |= _NEWTOP; ++ SetStatus(field, _NEWTOP); + } + if (field->status & _NEWTOP) + { + /* means we have to copy whole range */ + first_modified_row = form->toprow; + first_unmodified_row = first_modified_row + field->rows; +- field->status &= ~_NEWTOP; ++ ClrStatus(field, _NEWTOP); + } + else + { +@@ -1111,27 +1111,27 @@ + return E_SYSTEM_ERROR; + else + { +- if (field->opts & O_VISIBLE) ++ if ((unsigned)field->opts & O_VISIBLE) + { + Set_Field_Window_Attributes(field, win); + } + else + { +- (void)wattrset(win, WINDOW_ATTRS(fwin)); ++ (void)wattrset(win, (int)WINDOW_ATTRS(fwin)); + } + werase(win); + } + + if (!bEraseFlag) + { +- if (field->opts & O_PUBLIC) ++ if ((unsigned)field->opts & O_PUBLIC) + { + if (Justification_Allowed(field)) + Perform_Justification(field, win); + else + Buffer_To_Window(field, win); + } +- field->status &= ~_NEWTOP; ++ ClrStatus(field, _NEWTOP); + } + wsyncup(win); + delwin(win); +@@ -1170,18 +1170,18 @@ + form->currow = form->curcol = form->toprow = form->begincol = 0; + werase(form->w); + +- if ((field->opts & O_PUBLIC) && Justification_Allowed(field)) ++ if (((unsigned)field->opts & O_PUBLIC) && Justification_Allowed(field)) + Undo_Justification(field, form->w); + else + Buffer_To_Window(field, form->w); + +- field->status |= _NEWTOP; ++ SetStatus(field, _NEWTOP); + res = _nc_Refresh_Current_Field(form); + } + else + res = Display_Field(field); + } +- field->status |= _CHANGED; ++ SetStatus(field, _CHANGED); + return (res); + } + +@@ -1211,7 +1211,7 @@ + return (E_SYSTEM_ERROR); + + for (linked_field = field->link; +- linked_field != field; ++ (linked_field != field) && (linked_field != 0); + linked_field = linked_field->link) + { + if (((syncres = Synchronize_Field(linked_field)) != E_OK) && +@@ -1256,7 +1256,7 @@ + werase(form->w); + wmove(form->w, form->currow, form->curcol); + +- if (field->opts & O_PUBLIC) ++ if ((unsigned)field->opts & O_PUBLIC) + { + if (Justification_Allowed(field)) + Undo_Justification(field, form->w); +@@ -1272,7 +1272,7 @@ + field->rows - 1, field->cols - 1, 0); + wsyncup(formwin); + Buffer_To_Window(field, form->w); +- field->status |= _NEWTOP; /* fake refresh to paint all */ ++ SetStatus(field, _NEWTOP); /* fake refresh to paint all */ + _nc_Refresh_Current_Field(form); + } + } +@@ -1326,34 +1326,34 @@ + field->opts = oldopts; + returnCode(E_CURRENT); + } +- if ((form->curpage == field->page)) ++ if (form->curpage == field->page) + { +- if (changed_opts & O_VISIBLE) ++ if ((unsigned)changed_opts & O_VISIBLE) + { +- if (newopts & O_VISIBLE) ++ if ((unsigned)newopts & O_VISIBLE) + res = Display_Field(field); + else + res = Erase_Field(field); + } + else + { +- if ((changed_opts & O_PUBLIC) && +- (newopts & O_VISIBLE)) ++ if (((unsigned)changed_opts & O_PUBLIC) && ++ ((unsigned)newopts & O_VISIBLE)) + res = Display_Field(field); + } + } + } + } + +- if (changed_opts & O_STATIC) ++ if ((unsigned)changed_opts & O_STATIC) + { + bool single_line_field = Single_Line_Field(field); + int res2 = E_OK; + +- if (newopts & O_STATIC) ++ if ((unsigned)newopts & O_STATIC) + { + /* the field becomes now static */ +- field->status &= ~_MAY_GROW; ++ ClrStatus(field, _MAY_GROW); + /* if actually we have no hidden columns, justification may + occur again */ + if (single_line_field && +@@ -1371,7 +1371,7 @@ + (single_line_field && (field->dcols < field->maxgrow)) || + (!single_line_field && (field->drows < field->maxgrow))) + { +- field->status |= _MAY_GROW; ++ SetStatus(field, _MAY_GROW); + /* a field with justification now changes its behavior, + so we must redisplay it */ + if (single_line_field && +@@ -1424,18 +1424,18 @@ + !(form->status & _POSTED)) + { + if ((form->w) && +- (field->opts & O_VISIBLE) && ++ ((unsigned)field->opts & O_VISIBLE) && + (field->form->curpage == field->page)) + { + _nc_Refresh_Current_Field(form); +- if (field->opts & O_PUBLIC) ++ if ((unsigned)field->opts & O_PUBLIC) + { + if (field->drows > field->rows) + { + if (form->toprow == 0) +- field->status &= ~_NEWTOP; ++ ClrStatus(field, _NEWTOP); + else +- field->status |= _NEWTOP; ++ SetStatus(field, _NEWTOP); + } + else + { +@@ -1469,7 +1469,7 @@ + delwin(form->w); + form->w = new_window; + +- form->status &= ~_WINDOW_MODIFIED; ++ ClrStatus(form, _WINDOW_MODIFIED); + Set_Field_Window_Attributes(field, form->w); + + if (Has_Invisible_Parts(field)) +@@ -1998,7 +1998,7 @@ + { + res = fct(form); + if (res == E_OK) +- form->current->status |= _NEWTOP; ++ SetStatus(form, _NEWTOP); + } + return (res); + } +@@ -2430,7 +2430,7 @@ + int result = E_REQUEST_DENIED; + bool Last_Row = ((field->drows - 1) == form->currow); + +- if ((field->opts & O_WRAP) && /* wrapping wanted */ ++ if (((unsigned)field->opts & O_WRAP) && /* wrapping wanted */ + (!Single_Line_Field(field)) && /* must be multi-line */ + (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */ + (!Last_Row || Growable(field))) /* there are more lines */ +@@ -2513,7 +2513,7 @@ + editable fields. + */ + if ((fct == FE_Delete_Previous) && +- (form->opts & O_BS_OVERLOAD) && ++ ((unsigned)form->opts & O_BS_OVERLOAD) && + First_Position_In_Current_Field(form)) + { + res = Inter_Field_Navigation(FN_Previous_Field, form); +@@ -2522,7 +2522,7 @@ + { + if (fct == FE_New_Line) + { +- if ((form->opts & O_NL_OVERLOAD) && ++ if (((unsigned)form->opts & O_NL_OVERLOAD) && + First_Position_In_Current_Field(form)) + { + res = Inter_Field_Navigation(FN_Next_Field, form); +@@ -2534,11 +2534,11 @@ + else + { + /* From now on, everything must be editable */ +- if (form->current->opts & O_EDIT) ++ if ((unsigned)form->current->opts & O_EDIT) + { + res = fct(form); + if (res == E_OK) +- form->status |= _WINDOW_MODIFIED; ++ SetStatus(form, _WINDOW_MODIFIED); + } + } + } +@@ -2571,7 +2571,7 @@ + if (Last_Row && + (!(Growable(field) && !Single_Line_Field(field)))) + { +- if (!(form->opts & O_NL_OVERLOAD)) ++ if (!((unsigned)form->opts & O_NL_OVERLOAD)) + returnCode(E_REQUEST_DENIED); + wmove(form->w, form->currow, form->curcol); + wclrtoeol(form->w); +@@ -2579,7 +2579,7 @@ + handled in the generic routine. The reason is, + that FN_Next_Field may fail, but the form is + definitively changed */ +- form->status |= _WINDOW_MODIFIED; ++ SetStatus(form, _WINDOW_MODIFIED); + returnCode(Inter_Field_Navigation(FN_Next_Field, form)); + } + else +@@ -2595,7 +2595,7 @@ + wclrtoeol(form->w); + form->currow++; + form->curcol = 0; +- form->status |= _WINDOW_MODIFIED; ++ SetStatus(form, _WINDOW_MODIFIED); + returnCode(E_OK); + } + } +@@ -2605,7 +2605,7 @@ + if (Last_Row && + !(Growable(field) && !Single_Line_Field(field))) + { +- if (!(form->opts & O_NL_OVERLOAD)) ++ if (!((unsigned)form->opts & O_NL_OVERLOAD)) + returnCode(E_REQUEST_DENIED); + returnCode(Inter_Field_Navigation(FN_Next_Field, form)); + } +@@ -2627,7 +2627,7 @@ + wmove(form->w, form->currow, form->curcol); + winsertln(form->w); + myADDNSTR(form->w, bp, (int)(t - bp)); +- form->status |= _WINDOW_MODIFIED; ++ SetStatus(form, _WINDOW_MODIFIED); + returnCode(E_OK); + } + } +@@ -2926,7 +2926,7 @@ + EM_Overlay_Mode(FORM *form) + { + T((T_CALLED("EM_Overlay_Mode(%p)"), (void *)form)); +- form->status |= _OVLMODE; ++ SetStatus(form, _OVLMODE); + returnCode(E_OK); + } + +@@ -2942,7 +2942,7 @@ + EM_Insert_Mode(FORM *form) + { + T((T_CALLED("EM_Insert_Mode(%p)"), (void *)form)); +- form->status &= ~_OVLMODE; ++ ClrStatus(form, _OVLMODE); + returnCode(E_OK); + } + +@@ -3111,7 +3111,7 @@ + { + if (typ) + { +- if (field->opts & O_NULLOK) ++ if ((unsigned)field->opts & O_NULLOK) + { + FIELD_CELL *bp = field->buf; + +@@ -3168,12 +3168,12 @@ + + Synchronize_Buffer(form); + if ((form->status & _FCHECK_REQUIRED) || +- (!(field->opts & O_PASSOK))) ++ (!((unsigned)field->opts & O_PASSOK))) + { + if (!Check_Field(form, field->type, field, (TypeArgument *)(field->arg))) + return FALSE; +- form->status &= ~_FCHECK_REQUIRED; +- field->status |= _CHANGED; ++ ClrStatus(form, _FCHECK_REQUIRED); ++ SetStatus(field, _CHANGED); + Synchronize_Linked_Fields(field); + } + return TRUE; +@@ -3273,14 +3273,15 @@ + do + { + field = (field == last_on_page) ? first : field + 1; +- if (((*field)->opts & O_VISIBLE)) ++ if (((unsigned)(*field)->opts & O_VISIBLE)) + break; + } + while (proposed != (*field)); + + proposed = *field; + +- if ((proposed == *last_on_page) && !(proposed->opts & O_VISIBLE)) ++ if ((proposed == *last_on_page) && ++ !((unsigned)proposed->opts & O_VISIBLE)) + { + /* This means, there is also no visible field on the page. + So we propose the first one and hope the very best... +@@ -3816,11 +3817,11 @@ + FIELD *last_field, *field_on_page; + + werase(Get_Form_Window(form)); +- form->curpage = page; ++ form->curpage = (short)page; + last_field = field_on_page = form->field[form->page[page].smin]; + do + { +- if (field_on_page->opts & O_VISIBLE) ++ if ((unsigned)field_on_page->opts & O_VISIBLE) + if ((res = Display_Field(field_on_page)) != E_OK) + return (res); + field_on_page = field_on_page->snext; +@@ -3981,6 +3982,94 @@ + Helper routines for the core form driver. + --------------------------------------------------------------------------*/ + ++# if USE_WIDEC_SUPPORT ++/*--------------------------------------------------------------------------- ++| Facility : libnform ++| Function : static int Data_Entry_w(FORM * form, wchar_t c) ++| ++| Description : Enter the wide character c into at the current ++| position of the current field of the form. ++| ++| Return Values : E_OK - success ++| E_REQUEST_DENIED - driver could not process the request ++| E_SYSTEM_ERROR - +++--------------------------------------------------------------------------*/ ++static int ++Data_Entry_w(FORM *form, wchar_t c) ++{ ++ FIELD *field = form->current; ++ int result = E_REQUEST_DENIED; ++ ++ T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c))); ++ if (((unsigned)field->opts & O_EDIT) ++#if FIX_FORM_INACTIVE_BUG ++ && ((unsigned)field->opts & O_ACTIVE) ++#endif ++ ) ++ { ++ wchar_t given[2]; ++ cchar_t temp_ch; ++ ++ given[0] = c; ++ given[1] = 1; ++ setcchar(&temp_ch, given, 0, 0, (void *)0); ++ if (((unsigned)field->opts & O_BLANK) && ++ First_Position_In_Current_Field(form) && ++ !(form->status & _FCHECK_REQUIRED) && ++ !(form->status & _WINDOW_MODIFIED)) ++ werase(form->w); ++ ++ if (form->status & _OVLMODE) ++ { ++ wadd_wch(form->w, &temp_ch); ++ } ++ else ++ /* no _OVLMODE */ ++ { ++ bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); ++ ++ if (!(There_Is_Room || ++ ((Single_Line_Field(field) && Growable(field))))) ++ RETURN(E_REQUEST_DENIED); ++ ++ if (!There_Is_Room && !Field_Grown(field, 1)) ++ RETURN(E_SYSTEM_ERROR); ++ ++ wins_wch(form->w, &temp_ch); ++ } ++ ++ if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK) ++ { ++ bool End_Of_Field = (((field->drows - 1) == form->currow) && ++ ((field->dcols - 1) == form->curcol)); ++ ++ form->status |= _WINDOW_MODIFIED; ++ if (End_Of_Field && !Growable(field) && ((unsigned)field->opts & O_AUTOSKIP)) ++ result = Inter_Field_Navigation(FN_Next_Field, form); ++ else ++ { ++ if (End_Of_Field && Growable(field) && !Field_Grown(field, 1)) ++ result = E_SYSTEM_ERROR; ++ else ++ { ++ /* ++ * We have just added a byte to the form field. It may have ++ * been part of a multibyte character. If it was, the ++ * addch_used field is nonzero and we should not try to move ++ * to a new column. ++ */ ++ if (WINDOW_EXT(form->w, addch_used) == 0) ++ IFN_Next_Character(form); ++ ++ result = E_OK; ++ } ++ } ++ } ++ } ++ RETURN(result); ++} ++# endif ++ + /*--------------------------------------------------------------------------- + | Facility : libnform + | Function : static int Data_Entry(FORM * form,int c) +@@ -3999,13 +4088,13 @@ + int result = E_REQUEST_DENIED; + + T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c))); +- if ((field->opts & O_EDIT) ++ if (((unsigned)field->opts & O_EDIT) + #if FIX_FORM_INACTIVE_BUG +- && (field->opts & O_ACTIVE) ++ && ((unsigned)field->opts & O_ACTIVE) + #endif + ) + { +- if ((field->opts & O_BLANK) && ++ if (((unsigned)field->opts & O_BLANK) && + First_Position_In_Current_Field(form) && + !(form->status & _FCHECK_REQUIRED) && + !(form->status & _WINDOW_MODIFIED)) +@@ -4035,8 +4124,8 @@ + bool End_Of_Field = (((field->drows - 1) == form->currow) && + ((field->dcols - 1) == form->curcol)); + +- form->status |= _WINDOW_MODIFIED; +- if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP)) ++ SetStatus(form, _WINDOW_MODIFIED); ++ if (End_Of_Field && !Growable(field) && ((unsigned)field->opts & O_AUTOSKIP)) + result = Inter_Field_Navigation(FN_Next_Field, form); + else + { +@@ -4228,7 +4317,10 @@ + + if ((c >= MIN_FORM_COMMAND && c <= MAX_FORM_COMMAND) && + ((bindings[c - MIN_FORM_COMMAND].keycode & Key_Mask) == c)) +- BI = &(bindings[c - MIN_FORM_COMMAND]); ++ { ++ TR(TRACE_CALLS, ("form_request %s", form_request_name(c))); ++ BI = &(bindings[c - MIN_FORM_COMMAND]); ++ } + + if (BI) + { +@@ -4246,7 +4338,7 @@ + NULL /* Choice Request is generic */ + }; + size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0])); +- size_t method = (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */ ++ size_t method = (size_t) ((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */ + + if ((method >= nMethods) || !(BI->cmd)) + res = E_SYSTEM_ERROR; +@@ -4255,9 +4347,13 @@ + Generic_Method fct = Generic_Methods[method]; + + if (fct) +- res = fct(BI->cmd, form); ++ { ++ res = fct(BI->cmd, form); ++ } + else +- res = (BI->cmd) (form); ++ { ++ res = (BI->cmd) (form); ++ } + } + } + #ifdef NCURSES_MOUSE_VERSION +@@ -4360,6 +4456,195 @@ + RETURN(res); + } + ++# if USE_WIDEC_SUPPORT ++/*--------------------------------------------------------------------------- ++| Facility : libnform ++| Function : int form_driver_w(FORM * form,int type,wchar_t c) ++| ++| Description : This is the workhorse of the forms system. ++| ++| Input is either a key code (request) or a wide char ++| returned by e.g. get_wch (). The type must be passed ++| as well,so that we are able to determine whether the char ++| is a multibyte char or a request. ++ ++| If it is a request, the form driver executes ++| the request and returns the result. If it is data ++| (printable character), it enters the data into the ++| current position in the current field. If it is not ++| recognized, the form driver assumes it is an application ++| defined command and returns E_UNKNOWN_COMMAND. ++| Application defined command should be defined relative ++| to MAX_FORM_COMMAND, the maximum value of a request. ++| ++| Return Values : E_OK - success ++| E_SYSTEM_ERROR - system error ++| E_BAD_ARGUMENT - an argument is incorrect ++| E_NOT_POSTED - form is not posted ++| E_INVALID_FIELD - field contents are invalid ++| E_BAD_STATE - called from inside a hook routine ++| E_REQUEST_DENIED - request failed ++| E_NOT_CONNECTED - no fields are connected to the form ++| E_UNKNOWN_COMMAND - command not known +++--------------------------------------------------------------------------*/ ++NCURSES_EXPORT(int) ++form_driver_w(FORM *form, int type, wchar_t c) ++{ ++ const Binding_Info *BI = (Binding_Info *) 0; ++ int res = E_UNKNOWN_COMMAND; ++ ++ T((T_CALLED("form_driver(%p,%d)"), (void *)form, (int)c)); ++ ++ if (!form) ++ RETURN(E_BAD_ARGUMENT); ++ ++ if (!(form->field)) ++ RETURN(E_NOT_CONNECTED); ++ ++ assert(form->page); ++ ++ if (c == (wchar_t)FIRST_ACTIVE_MAGIC) ++ { ++ form->current = _nc_First_Active_Field(form); ++ RETURN(E_OK); ++ } ++ ++ assert(form->current && ++ form->current->buf && ++ (form->current->form == form) ++ ); ++ ++ if (form->status & _IN_DRIVER) ++ RETURN(E_BAD_STATE); ++ ++ if (!(form->status & _POSTED)) ++ RETURN(E_NOT_POSTED); ++ ++ /* check if this is a keycode or a (wide) char */ ++ if (type == KEY_CODE_YES) ++ { ++ if ((c >= MIN_FORM_COMMAND && c <= MAX_FORM_COMMAND) && ++ ((bindings[c - MIN_FORM_COMMAND].keycode & Key_Mask) == c)) ++ BI = &(bindings[c - MIN_FORM_COMMAND]); ++ } ++ ++ if (BI) ++ { ++ typedef int (*Generic_Method) (int (*const) (FORM *), FORM *); ++ static const Generic_Method Generic_Methods[] = ++ { ++ Page_Navigation, /* overloaded to call field&form hooks */ ++ Inter_Field_Navigation, /* overloaded to call field hooks */ ++ NULL, /* Intra-Field is generic */ ++ Vertical_Scrolling, /* Overloaded to check multi-line */ ++ Horizontal_Scrolling, /* Overloaded to check single-line */ ++ Field_Editing, /* Overloaded to mark modification */ ++ NULL, /* Edit Mode is generic */ ++ NULL, /* Field Validation is generic */ ++ NULL /* Choice Request is generic */ ++ }; ++ size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0])); ++ size_t method = (size_t) (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */ ++ ++ if ((method >= nMethods) || !(BI->cmd)) ++ res = E_SYSTEM_ERROR; ++ else ++ { ++ Generic_Method fct = Generic_Methods[method]; ++ ++ if (fct) ++ res = fct(BI->cmd, form); ++ else ++ res = (BI->cmd) (form); ++ } ++ } ++#ifdef NCURSES_MOUSE_VERSION ++ else if (KEY_MOUSE == c) ++ { ++ MEVENT event; ++ WINDOW *win = form->win ? form->win : StdScreen(Get_Form_Screen(form)); ++ WINDOW *sub = form->sub ? form->sub : win; ++ ++ getmouse(&event); ++ if ((event.bstate & (BUTTON1_CLICKED | ++ BUTTON1_DOUBLE_CLICKED | ++ BUTTON1_TRIPLE_CLICKED)) ++ && wenclose(win, event.y, event.x)) ++ { /* we react only if the click was in the userwin, that means ++ * inside the form display area or at the decoration window. ++ */ ++ int ry = event.y, rx = event.x; /* screen coordinates */ ++ ++ res = E_REQUEST_DENIED; ++ if (mouse_trafo(&ry, &rx, FALSE)) ++ { /* rx, ry are now "curses" coordinates */ ++ if (ry < sub->_begy) ++ { /* we clicked above the display region; this is ++ * interpreted as "scroll up" request ++ */ ++ if (event.bstate & BUTTON1_CLICKED) ++ res = form_driver(form, REQ_PREV_FIELD); ++ else if (event.bstate & BUTTON1_DOUBLE_CLICKED) ++ res = form_driver(form, REQ_PREV_PAGE); ++ else if (event.bstate & BUTTON1_TRIPLE_CLICKED) ++ res = form_driver(form, REQ_FIRST_FIELD); ++ } ++ else if (ry > sub->_begy + sub->_maxy) ++ { /* we clicked below the display region; this is ++ * interpreted as "scroll down" request ++ */ ++ if (event.bstate & BUTTON1_CLICKED) ++ res = form_driver(form, REQ_NEXT_FIELD); ++ else if (event.bstate & BUTTON1_DOUBLE_CLICKED) ++ res = form_driver(form, REQ_NEXT_PAGE); ++ else if (event.bstate & BUTTON1_TRIPLE_CLICKED) ++ res = form_driver(form, REQ_LAST_FIELD); ++ } ++ else if (wenclose(sub, event.y, event.x)) ++ { /* Inside the area we try to find the hit item */ ++ int i; ++ ++ ry = event.y; ++ rx = event.x; ++ if (wmouse_trafo(sub, &ry, &rx, FALSE)) ++ { ++ int min_field = form->page[form->curpage].pmin; ++ int max_field = form->page[form->curpage].pmax; ++ ++ for (i = min_field; i <= max_field; ++i) ++ { ++ FIELD *field = form->field[i]; ++ ++ if (Field_Is_Selectable(field) ++ && Field_encloses(field, ry, rx) == E_OK) ++ { ++ res = _nc_Set_Current_Field(form, field); ++ if (res == E_OK) ++ res = _nc_Position_Form_Cursor(form); ++ if (res == E_OK ++ && (event.bstate & BUTTON1_DOUBLE_CLICKED)) ++ res = E_UNKNOWN_COMMAND; ++ break; ++ } ++ } ++ } ++ } ++ } ++ } ++ else ++ res = E_REQUEST_DENIED; ++ } ++#endif /* NCURSES_MOUSE_VERSION */ ++ else if (type == OK) ++ { ++ res = Data_Entry_w(form, c); ++ } ++ ++ _nc_Refresh_Current_Field(form); ++ RETURN(res); ++} ++# endif /* USE_WIDEC_SUPPORT */ ++ + /*---------------------------------------------------------------------------- + Field-Buffer manipulation routines. + The effects of setting a buffer are tightly coupled to the core of the form +@@ -4389,8 +4674,8 @@ + { + FIELD_CELL *p; + int res = E_OK; +- unsigned int i; +- unsigned int len; ++ int i; ++ int len; + + #if USE_WIDEC_SUPPORT + FIELD_CELL *widevalue = 0; +@@ -4408,7 +4693,7 @@ + /* for a growable field we must assume zero terminated strings, because + somehow we have to detect the length of what should be copied. + */ +- unsigned int vlen = strlen(value); ++ int vlen = (int)strlen(value); + + if (vlen > len) + { +@@ -4448,10 +4733,10 @@ + } + else + { +- for (i = 0; i < (unsigned)field->drows; ++i) ++ for (i = 0; i < field->drows; ++i) + { +- (void)mvwin_wchnstr(field->working, 0, i * field->dcols, +- widevalue + (i * field->dcols), ++ (void)mvwin_wchnstr(field->working, 0, (int)i * field->dcols, ++ widevalue + ((int)i * field->dcols), + field->dcols); + } + for (i = 0; i < len; ++i) +@@ -4512,7 +4797,7 @@ + { + #if USE_WIDEC_SUPPORT + FIELD_CELL *data = Address_Of_Nth_Buffer(field, buffer); +- unsigned need = 0; ++ size_t need = 0; + int size = Buffer_Length(field); + int n; + +@@ -4526,7 +4811,7 @@ + + init_mb(state); + next = _nc_wcrtomb(0, data[n].chars[0], &state); +- if (!isEILSEQ(next)) ++ if (next > 0) + need += next; + } + } +@@ -4613,7 +4898,7 @@ + { + result[need] = wch; + } +- passed += status; ++ passed += (size_t) status; + ++need; + } + else +@@ -4633,7 +4918,7 @@ + break; + result = typeCalloc(wchar_t, need); + +- *lengthp = need; ++ *lengthp = (int)need; + if (result == 0) + break; + } +diff -Naur ncurses-5.9/form/frm_hook.c ncurses-5.9.patch/form/frm_hook.c +--- ncurses-5.9/form/frm_hook.c 2010-01-23 22:12:08.000000000 +0100 ++++ ncurses-5.9.patch/form/frm_hook.c 2014-09-01 16:33:22.339792094 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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,13 +32,13 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: frm_hook.c,v 1.15 2010/01/23 21:12:08 tom Exp $") ++MODULE_ID("$Id: frm_hook.c,v 1.16 2012/03/11 00:37:16 tom Exp $") + + /* "Template" macro to generate function to set application specific hook */ + #define GEN_HOOK_SET_FUNCTION( typ, name ) \ + NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\ + {\ +- T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), form, func));\ ++ T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), (void *) form, func));\ + (Normalize_Form( form ) -> typ ## name) = func ;\ + RETURN(E_OK);\ + } +diff -Naur ncurses-5.9/form/frm_opts.c ncurses-5.9.patch/form/frm_opts.c +--- ncurses-5.9/form/frm_opts.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/frm_opts.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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_opts.c,v 1.15 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: frm_opts.c,v 1.17 2013/08/24 22:58:47 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -49,8 +49,8 @@ + { + T((T_CALLED("set_form_opts(%p,%d)"), (void *)form, opts)); + +- opts &= ALL_FORM_OPTS; +- if (opts & ~ALL_FORM_OPTS) ++ opts &= (Form_Options) ALL_FORM_OPTS; ++ if ((unsigned)opts & ~ALL_FORM_OPTS) + RETURN(E_BAD_ARGUMENT); + else + { +@@ -71,7 +71,7 @@ + form_opts(const FORM *form) + { + T((T_CALLED("form_opts(%p)"), (const void *)form)); +- returnCode((int)(Normalize_Form(form)->opts & ALL_FORM_OPTS)); ++ returnCode((Form_Options) ((unsigned)Normalize_Form(form)->opts & ALL_FORM_OPTS)); + } + + /*--------------------------------------------------------------------------- +@@ -89,8 +89,8 @@ + { + T((T_CALLED("form_opts_on(%p,%d)"), (void *)form, opts)); + +- opts &= ALL_FORM_OPTS; +- if (opts & ~ALL_FORM_OPTS) ++ opts &= (Form_Options) ALL_FORM_OPTS; ++ if ((unsigned)opts & ~ALL_FORM_OPTS) + RETURN(E_BAD_ARGUMENT); + else + { +@@ -114,8 +114,8 @@ + { + T((T_CALLED("form_opts_off(%p,%d)"), (void *)form, opts)); + +- opts &= ALL_FORM_OPTS; +- if (opts & ~ALL_FORM_OPTS) ++ opts &= (Form_Options) ALL_FORM_OPTS; ++ if ((unsigned)opts & ~ALL_FORM_OPTS) + RETURN(E_BAD_ARGUMENT); + else + { +diff -Naur ncurses-5.9/form/frm_page.c ncurses-5.9.patch/form/frm_page.c +--- ncurses-5.9/form/frm_page.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/frm_page.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_page.c,v 1.11 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: frm_page.c,v 1.12 2012/06/10 00:28:04 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -58,7 +58,7 @@ + + if (!(form->status & _POSTED)) + { +- form->curpage = page; ++ form->curpage = (short)page; + form->current = _nc_First_Active_Field(form); + } + else +diff -Naur ncurses-5.9/form/frm_post.c ncurses-5.9.patch/form/frm_post.c +--- ncurses-5.9/form/frm_post.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/frm_post.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_post.c,v 1.10 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: frm_post.c,v 1.11 2012/06/10 00:27:49 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -77,7 +77,7 @@ + if ((err = _nc_Set_Form_Page(form, page, form->current)) != E_OK) + RETURN(err); + +- form->status |= _POSTED; ++ SetStatus(form, _POSTED); + + Call_Hook(form, forminit); + Call_Hook(form, fieldinit); +@@ -117,7 +117,7 @@ + werase(Get_Form_Window(form)); + delwin(form->w); + form->w = (WINDOW *)0; +- form->status &= ~_POSTED; ++ ClrStatus(form, _POSTED); + RETURN(E_OK); + } + +diff -Naur ncurses-5.9/form/frm_req_name.c ncurses-5.9.patch/form/frm_req_name.c +--- ncurses-5.9/form/frm_req_name.c 2009-10-10 18:17:01.000000000 +0200 ++++ ncurses-5.9.patch/form/frm_req_name.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free 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 "form.priv.h" + +-MODULE_ID("$Id: frm_req_name.c,v 1.17 2009/10/10 16:17:01 tom Exp $") ++MODULE_ID("$Id: frm_req_name.c,v 1.18 2012/07/21 23:17:23 tom Exp $") + + static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] = + { +@@ -144,23 +144,26 @@ + /* because the table is so small, it doesn't really hurt + to run sequentially through it. + */ +- unsigned int i = 0; +- char buf[16]; ++ size_t i = 0; ++ char buf[16]; /* longest name is 10 chars */ + + T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str))); + +- if (str) ++ if (str != 0 && (i = strlen(str)) != 0) + { +- strncpy(buf, str, sizeof(buf)); +- while ((i < sizeof(buf)) && (buf[i] != '\0')) ++ if (i > sizeof(buf) - 2) ++ i = sizeof(buf) - 2; ++ memcpy(buf, str, i); ++ buf[i] = '\0'; ++ ++ for (i = 0; buf[i] != '\0'; ++i) + { + buf[i] = (char)toupper(UChar(buf[i])); +- i++; + } + + for (i = 0; i < A_SIZE; i++) + { +- if (strncmp(request_names[i], buf, sizeof(buf)) == 0) ++ if (strcmp(request_names[i], buf) == 0) + returnCode(MIN_FORM_COMMAND + (int)i); + } + } +diff -Naur ncurses-5.9/form/fty_generic.c ncurses-5.9.patch/form/fty_generic.c +--- ncurses-5.9/form/fty_generic.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fty_generic.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2010,2012 Free 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 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_generic.c,v 1.5 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fty_generic.c,v 1.6 2012/06/10 00:27:49 tom Exp $") + + /* + * This is not a full implementation of a field type, but adds some +@@ -119,7 +119,7 @@ + if (res) + { + *res = *_nc_Default_FieldType; +- res->status |= (_HAS_ARGS | _GENERIC); ++ SetStatus(res, (_HAS_ARGS | _GENERIC)); + res->fieldcheck.gfcheck = field_check; + res->charcheck.gccheck = char_check; + res->genericarg = Generic_This_Type; +diff -Naur ncurses-5.9/form/fty_int.c ncurses-5.9.patch/form/fty_int.c +--- ncurses-5.9/form/fty_int.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fty_int.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_int.c,v 1.25 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fty_int.c,v 1.26 2012/02/23 10:02:15 tom Exp $") + + #if USE_WIDEC_SUPPORT + #define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c))) +@@ -233,7 +233,8 @@ + } + if (result) + { +- sprintf(buf, "%.*ld", (prec > 0 ? prec : 0), val); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%.*ld", (prec > 0 ? prec : 0), val); + set_field_buffer(field, 0, buf); + } + } +diff -Naur ncurses-5.9/form/fty_num.c ncurses-5.9.patch/form/fty_num.c +--- ncurses-5.9/form/fty_num.c 2010-01-23 22:14:36.000000000 +0100 ++++ ncurses-5.9.patch/form/fty_num.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_num.c,v 1.28 2010/01/23 21:14:36 tom Exp $") ++MODULE_ID("$Id: fty_num.c,v 1.29 2012/02/23 10:02:15 tom Exp $") + + #if HAVE_LOCALE_H + #include <locale.h> +@@ -271,7 +271,8 @@ + } + if (result) + { +- sprintf(buf, "%.*f", (prec > 0 ? prec : 0), val); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%.*f", (prec > 0 ? prec : 0), val); + set_field_buffer(field, 0, buf); + } + } +diff -Naur ncurses-5.9/form/fty_regex.c ncurses-5.9.patch/form/fty_regex.c +--- ncurses-5.9/form/fty_regex.c 2010-01-23 22:14:37.000000000 +0100 ++++ ncurses-5.9.patch/form/fty_regex.c 2014-09-01 16:33:22.340792096 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_regex.c,v 1.24 2010/01/23 21:14:37 tom Exp $") ++MODULE_ID("$Id: fty_regex.c,v 1.25 2012/10/27 20:12:53 tom Exp $") + + #if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */ + #include <regex.h> +@@ -123,9 +123,8 @@ + (REG_EXTENDED | REG_NOSUB | REG_NEWLINE))) + { + T((T_CREATE("regex_t %p"), (void *)preg->pRegExp)); +- preg->refCount = typeMalloc(unsigned long, 1); +- +- *(preg->refCount) = 1; ++ if ((preg->refCount = typeMalloc(unsigned long, 1)) != 0) ++ *(preg->refCount) = 1; + } + else + { +@@ -151,9 +150,8 @@ + + T((T_CREATE("RegExp_Arg %p"), pArg)); + pArg->compiled_expression = NULL; +- pArg->refCount = typeMalloc(unsigned long, 1); +- +- *(pArg->refCount) = 1; ++ if ((pArg->refCount = typeMalloc(unsigned long, 1)) != 0) ++ *(pArg->refCount) = 1; + + do + { +diff -Naur ncurses-5.9/form/llib-lformtw ncurses-5.9.patch/form/llib-lformtw +--- ncurses-5.9/form/llib-lformtw 2010-01-09 23:01:40.000000000 +0100 ++++ ncurses-5.9.patch/form/llib-lformtw 2014-09-01 16:33:22.341792098 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2010,2013 Free 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 2010 * ++ * Author: Thomas E. Dickey 2010-on * + ****************************************************************************/ + /* LINTLIBRARY */ + +@@ -494,6 +494,13 @@ + int c) + { return(*(int *)0); } + ++#undef form_driver_w ++int form_driver_w( ++ FORM *form, ++ int type, ++ wchar_t c) ++ { return(*(int *)0); } ++ + #undef set_field_buffer + int set_field_buffer( + FIELD *field, +diff -Naur ncurses-5.9/form/llib-lformw ncurses-5.9.patch/form/llib-lformw +--- ncurses-5.9/form/llib-lformw 2010-01-09 22:54:33.000000000 +0100 ++++ ncurses-5.9.patch/form/llib-lformw 2014-09-01 16:33:22.341792098 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2013 Free 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 2002-2005,2010 * ++ * Author: Thomas E. Dickey 2002-on * + ****************************************************************************/ + /* LINTLIBRARY */ + +@@ -494,6 +494,13 @@ + int c) + { return(*(int *)0); } + ++#undef form_driver_w ++int form_driver_w( ++ FORM *form, ++ int type, ++ wchar_t c) ++ { return(*(int *)0); } ++ + #undef set_field_buffer + int set_field_buffer( + FIELD *field, +diff -Naur ncurses-5.9/form/Makefile.in ncurses-5.9.patch/form/Makefile.in +--- ncurses-5.9/form/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/form/Makefile.in 2014-09-01 16:33:22.337792091 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.53 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.56 2013/08/04 20:23:20 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -57,6 +57,9 @@ + bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -102,6 +105,7 @@ + SHLIB_DIRS = -L../lib + SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@ + ++RPATH_LIST = @RPATH_LIST@ + MK_SHARED_LIB = @MK_SHARED_LIB@ + + NCURSES_MAJOR = @NCURSES_MAJOR@ +@@ -111,7 +115,7 @@ + + RANLIB = @LIB_PREP@ + +-LIBRARIES = @LIBS_TO_MAKE@ ++LIBRARIES = @Libs_To_Make@ + + LINT = @LINT@ + LINT_OPTS = @LINT_OPTS@ +diff -Naur ncurses-5.9/include/Caps ncurses-5.9.patch/include/Caps +--- ncurses-5.9/include/Caps 2010-12-04 19:47:13.000000000 +0100 ++++ ncurses-5.9.patch/include/Caps 2014-09-01 16:33:22.341792098 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -29,7 +29,7 @@ + # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 + # and: Eric S. Raymond <esr@snark.thyrsus.com> + # +-# $Id: Caps,v 1.37 2010/12/04 18:47:13 tom Exp $ ++# $Id: Caps,v 1.38 2011/10/15 23:10:18 tom Exp $ + # + # This is the master termcap/terminfo capability table. + # +@@ -738,11 +738,13 @@ + #%.ad + #% + #%.in .8i +-#%The XSI Curses standard added these. They are some post-4.1 +-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. +-#%The \fBncurses\fR termcap names for them are invented; according to the +-#%XSI Curses standard, they have no termcap names. If your compiled terminfo +-#%entries use these, they may not be binary-compatible with System V terminfo ++#%The XSI Curses standard added these hardcopy capabilities. ++#%They were used in some post-4.1 versions of System V curses, ++#%e.g., Solaris 2.5 and IRIX 6.x. ++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. ++#%According to the XSI Curses standard, they have no termcap names. ++#%If your compiled terminfo entries use these, ++#%they may not be binary-compatible with System V terminfo + #%entries after SVr4.1; beware! + #% + #%.na +@@ -760,7 +762,7 @@ + enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode + enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode + set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 +-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch ++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). + #%.TE + #%.ad + # +diff -Naur ncurses-5.9/include/Caps.aix4 ncurses-5.9.patch/include/Caps.aix4 +--- ncurses-5.9/include/Caps.aix4 2010-12-04 19:47:13.000000000 +0100 ++++ ncurses-5.9.patch/include/Caps.aix4 2014-09-01 16:33:22.341792098 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 2001-2006,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -28,7 +28,7 @@ + # + # Author: Thomas Dickey + # +-# $Id: Caps.aix4,v 1.8 2010/12/04 18:47:13 tom Exp $ ++# $Id: Caps.aix4,v 1.9 2011/10/15 23:19:16 tom Exp $ + # + # This is an adaptation of ncurses' termcap/terminfo capability table, which + # is designed to align with AIX 4.x's terminfo. +@@ -840,11 +840,13 @@ + #%.ad + #% + #%.in .8i +-#%The XSI Curses standard added these. They are some post-4.1 +-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. +-#%The \fBncurses\fR termcap names for them are invented; according to the +-#%XSI Curses standard, they have no termcap names. If your compiled terminfo +-#%entries use these, they may not be binary-compatible with System V terminfo ++#%The XSI Curses standard added these hardcopy capabilities. ++#%They were used in some post-4.1 versions of System V curses, ++#%e.g., Solaris 2.5 and IRIX 6.x. ++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. ++#%According to the XSI Curses standard, they have no termcap names. ++#%If your compiled terminfo entries use these, ++#%they may not be binary-compatible with System V terminfo + #%entries after SVr4.1; beware! + #% + #%.na +@@ -862,7 +864,7 @@ + enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode + enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode + set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 +-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch ++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). + #%.TE + #%.ad + # +diff -Naur ncurses-5.9/include/Caps.hpux11 ncurses-5.9.patch/include/Caps.hpux11 +--- ncurses-5.9/include/Caps.hpux11 2010-12-04 19:47:13.000000000 +0100 ++++ ncurses-5.9.patch/include/Caps.hpux11 2014-09-01 16:33:22.341792098 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -28,7 +28,7 @@ + # + # Author: Thomas Dickey + # +-# $Id: Caps.hpux11,v 1.5 2010/12/04 18:47:13 tom Exp $ ++# $Id: Caps.hpux11,v 1.6 2011/10/15 23:20:04 tom Exp $ + # + # This is an adaptation of ncurses' termcap/terminfo capability table, which + # is designed to align with HPUX 11.x's terminfo. +@@ -746,11 +746,13 @@ + #%.ad + #% + #%.in .8i +-#%The XSI Curses standard added these. They are some post-4.1 +-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. +-#%The \fBncurses\fR termcap names for them are invented; according to the +-#%XSI Curses standard, they have no termcap names. If your compiled terminfo +-#%entries use these, they may not be binary-compatible with System V terminfo ++#%The XSI Curses standard added these hardcopy capabilities. ++#%They were used in some post-4.1 versions of System V curses, ++#%e.g., Solaris 2.5 and IRIX 6.x. ++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. ++#%According to the XSI Curses standard, they have no termcap names. ++#%If your compiled terminfo entries use these, ++#%they may not be binary-compatible with System V terminfo + #%entries after SVr4.1; beware! + #% + #%.na +@@ -761,7 +763,7 @@ + #%lw25 lw6 lw2 lw20. + #%\fBVariable Cap- TCap Description\fR + #%\fBString name Code\fR +-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch ++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). + enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode + enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode + enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode +diff -Naur ncurses-5.9/include/Caps.keys ncurses-5.9.patch/include/Caps.keys +--- ncurses-5.9/include/Caps.keys 2010-12-04 19:47:13.000000000 +0100 ++++ ncurses-5.9.patch/include/Caps.keys 2014-09-01 16:33:22.342792099 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 2001-2006,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2001-2011,2013 Free 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"), # +@@ -29,7 +29,7 @@ + # Author: Thomas Dickey + # and: Ilya Zakharevich + # +-# $Id: Caps.keys,v 1.4 2010/12/04 18:47:13 tom Exp $ ++# $Id: Caps.keys,v 1.7 2013/07/20 17:59:24 tom Exp $ + # + # This is an adaptation of ncurses' termcap/terminfo capability table, which + # is illustrates an experimental extension to describe alt-, shift- and +@@ -229,11 +229,11 @@ + over_strike os bool os - - YBCG- terminal can overstrike + status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line + dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) +-tilde_glitch hz bool hz - - YB-GE can't print ~'s (hazeltine) ++tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine) + transparent_underline ul bool ul - - YBCGE underline character overstrikes + xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking +-needs_xon_xoff nxon bool nx - - ----- padding won't work, xon/xoff required +-prtr_silent mc5i bool 5i - - ----- printer won't echo on screen ++needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required ++prtr_silent mc5i bool 5i - - ----- printer will not echo on screen + hard_cursor chts bool HC - - ----- cursor is hard to see + non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup + no_pad_char npc bool NP - - ----- pad character does not exist +@@ -277,7 +277,7 @@ + # These came in with SVr4's color support + max_colors colors num Co - - ----- maximum number of colors on screen + max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen +-no_color_video ncv num NC - - ----- video attributes that can't be used with colors ++no_color_video ncv num NC - - ----- video attributes that cannot be used with colors + #%.TE + #%.ad + #% +@@ -828,11 +828,13 @@ + #%.ad + #% + #%.in .8i +-#%The XSI Curses standard added these. They are some post-4.1 +-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. +-#%The \fBncurses\fR termcap names for them are invented; according to the +-#%XSI Curses standard, they have no termcap names. If your compiled terminfo +-#%entries use these, they may not be binary-compatible with System V terminfo ++#%The XSI Curses standard added these hardcopy capabilities. ++#%They were used in some post-4.1 versions of System V curses, ++#%e.g., Solaris 2.5 and IRIX 6.x. ++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. ++#%According to the XSI Curses standard, they have no termcap names. ++#%If your compiled terminfo entries use these, ++#%they may not be binary-compatible with System V terminfo + #%entries after SVr4.1; beware! + #% + #%.na +@@ -850,7 +852,7 @@ + enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode + enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode + set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 +-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch ++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). + #%.TE + #%.ad + # +diff -Naur ncurses-5.9/include/Caps.osf1r5 ncurses-5.9.patch/include/Caps.osf1r5 +--- ncurses-5.9/include/Caps.osf1r5 2010-12-04 19:47:13.000000000 +0100 ++++ ncurses-5.9.patch/include/Caps.osf1r5 2014-09-01 16:33:22.342792099 +0200 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -28,7 +28,7 @@ + # + # Author: Thomas Dickey + # +-# $Id: Caps.osf1r5,v 1.5 2010/12/04 18:47:13 tom Exp $ ++# $Id: Caps.osf1r5,v 1.6 2011/10/15 22:52:09 tom Exp $ + # + # This is an adaptation of ncurses' termcap/terminfo capability table, which + # is designed to align with OSF/1 version 5 (Tru64) terminfo. +@@ -769,7 +769,7 @@ + xoff_character xoffc str XF - - ----- XOFF character + xon_character xonc str XN - - ----- XON character + zero_motion zerom str Zx - - ----- No motion for subsequent character +-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch ++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). + enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode + enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode + enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode +diff -Naur ncurses-5.9/include/curses.h.in ncurses-5.9.patch/include/curses.h.in +--- ncurses-5.9/include/curses.h.in 2011-01-22 20:47:20.000000000 +0100 ++++ ncurses-5.9.patch/include/curses.h.in 2014-09-01 16:34:19.469887090 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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.220 2011/01/22 19:47:20 tom Exp $ */ ++/* $Id: curses.h.in,v 1.239 2014/03/22 22:57:35 tom Exp $ */ + + #ifndef __NCURSES_H + #define __NCURSES_H +@@ -59,6 +59,10 @@ + */ + #include <ncurses_dll.h> + ++#if @HAVE_STDINT_H@ ++#include <stdint.h> ++#endif ++ + /* + * User-definable tweak to disable the include of <stdbool.h>. + */ +@@ -91,11 +95,20 @@ + #define NCURSES_INLINE @NCURSES_INLINE@ + + /* +- * The internal type used for color values ++ * The internal type used for color values, and for color-pairs. The latter ++ * allows the curses library to enumerate the combinations of foreground and ++ * background colors used by an application, and is normally the product of the ++ * total foreground and background colors. ++ * ++ * X/Open uses "short" for both of these types, ultimately because they are ++ * numbers from the terminal database, which uses 16-bit signed values. + */ + #undef NCURSES_COLOR_T + #define NCURSES_COLOR_T short + ++#undef NCURSES_PAIRS_T ++#define NCURSES_PAIRS_T short ++ + /* + * Definition used to make WINDOW and similar structs opaque. + */ +@@ -129,6 +142,13 @@ + #define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@ + + /* ++ * Control type used for tparm's arguments. While X/Open equates long and ++ * char* values, this is not always workable for 64-bit platforms. ++ */ ++#undef NCURSES_TPARM_ARG ++#define NCURSES_TPARM_ARG @NCURSES_TPARM_ARG@ ++ ++/* + * NCURSES_CH_T is used in building the library, but not used otherwise in + * this header file, since that would make the normal/wide-character versions + * of the header incompatible. +@@ -140,8 +160,8 @@ + typedef unsigned chtype; + typedef unsigned mmask_t; + #else +-typedef unsigned @cf_cv_typeof_chtype@ chtype; +-typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t; ++typedef @cf_cv_typeof_chtype@ chtype; ++typedef @cf_cv_typeof_mmask_t@ mmask_t; + #endif + + /* +@@ -151,15 +171,21 @@ + + /* + * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or +- * conflicting) when _XOPEN_SOURCE is 500 or greater. ++ * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is ++ * not already defined, e.g., if the platform relies upon nonstandard feature ++ * test macros, define it at this point if the standard feature test macros ++ * indicate that it should be defined. + */ +-#undef NCURSES_WIDECHAR +-#if defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5) +-#define NCURSES_WIDECHAR ++#ifndef NCURSES_WIDECHAR ++#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) ++#define NCURSES_WIDECHAR 1 ++#else ++#define NCURSES_WIDECHAR 0 + #endif ++#endif /* NCURSES_WIDECHAR */ + + #include <stdarg.h> /* we need va_list */ +-#ifdef NCURSES_WIDECHAR ++#if NCURSES_WIDECHAR + #include <stddef.h> /* we want wchar_t */ + #endif + +@@ -231,6 +257,10 @@ + #define WA_TOP A_TOP + #define WA_VERTICAL A_VERTICAL + ++#if @NCURSES_EXT_FUNCS@ ++#define WA_ITALIC A_ITALIC /* ncurses extension */ ++#endif ++ + /* colors */ + #define COLOR_BLACK 0 + #define COLOR_RED 1 +@@ -250,7 +280,7 @@ + extern NCURSES_EXPORT_VAR(chtype) acs_map[]; + #endif + +-#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)]) ++#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) + + /* VT100 symbols begin here */ + #define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ +@@ -342,7 +372,7 @@ + + typedef chtype attr_t; /* ...must be at least as wide as chtype */ + +-#ifdef NCURSES_WIDECHAR ++#if NCURSES_WIDECHAR + + #if @NCURSES_LIBUTF8@ + #ifdef mblen /* libutf8.h defines it w/o undefining first */ +@@ -366,7 +396,7 @@ + /* + * 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. ++ * (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@ +@@ -434,7 +464,7 @@ + + NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ + +-#ifdef NCURSES_WIDECHAR ++#if NCURSES_WIDECHAR + cchar_t _bkgrnd; /* current background char/attribute pair */ + #if @NCURSES_EXT_COLORS@ + int _color; /* current color-pair for non-space character */ +@@ -556,10 +586,10 @@ + extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ + extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ + extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ +-extern NCURSES_EXPORT(int) attr_get (attr_t *, short *, void *); /* generated */ ++extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ + extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ + extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ +-extern NCURSES_EXPORT(int) attr_set (attr_t, short, void *); /* generated */ ++extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ + extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ + extern NCURSES_EXPORT(int) beep (void); /* implemented */ + extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ +@@ -568,13 +598,13 @@ + extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ + extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ + extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ +-extern NCURSES_EXPORT(int) chgat (int, attr_t, short, const void *); /* generated */ ++extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ + extern NCURSES_EXPORT(int) clear (void); /* generated */ + extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ + extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ + extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ +-extern NCURSES_EXPORT(int) color_content (short,short*,short*,short*); /* implemented */ +-extern NCURSES_EXPORT(int) color_set (short,void*); /* generated */ ++extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ ++extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ + extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ + extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ + extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ +@@ -613,8 +643,8 @@ + extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ + extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ + extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ +-extern NCURSES_EXPORT(int) init_color (short,short,short,short); /* implemented */ +-extern NCURSES_EXPORT(int) init_pair (short,short,short); /* implemented */ ++extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ ++extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ + extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ + extern NCURSES_EXPORT(int) insch (chtype); /* generated */ + extern NCURSES_EXPORT(int) insdelln (int); /* generated */ +@@ -638,7 +668,7 @@ + extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ + extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ + extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ +-extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, short, const void *); /* generated */ ++extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ + extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ + extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ + extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ +@@ -664,7 +694,7 @@ + extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ + extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ + extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ +-extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, short, const void *);/* generated */ ++extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ + extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ + extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ + extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ +@@ -698,7 +728,7 @@ + extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ + extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ + extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ +-extern NCURSES_EXPORT(int) pair_content (short,short*,short*); /* implemented */ ++extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ + extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ + extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ + extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ +@@ -732,9 +762,9 @@ + extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ + extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ +-extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,short,void*); /* implemented */ ++extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ + extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ +-extern NCURSES_EXPORT(int) slk_color (short); /* implemented */ ++extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ + extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ + extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ + extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ +@@ -757,6 +787,7 @@ + extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ + extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ + extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ ++extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ + extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ + extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ + extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ +@@ -772,18 +803,18 @@ + extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ + extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ + extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ +-extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, short *, void *); /* generated */ ++extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ + extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ + extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ +-extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, short, void *); /* generated */ ++extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ + extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ + extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ + extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ +-extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, short, const void *);/* implemented */ ++extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ + extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ + extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ + extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ +-extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,short,void*); /* implemented */ ++extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ + extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ + extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ + extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ +@@ -832,7 +863,7 @@ + #if NCURSES_TPARM_VARARGS + extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */ + #else +-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */ ++extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ + extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */ + #endif + +@@ -854,7 +885,7 @@ + /* + * vid_attr() was implemented originally based on a draft of X/Open curses. + */ +-#ifndef NCURSES_WIDECHAR ++#if !NCURSES_WIDECHAR + #define vid_attr(a,pair,opts) vidattr(a) + #endif + +@@ -903,6 +934,7 @@ + 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) wgetdelay (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ + extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* @GENERATED_EXT_FUNCS@ */ + + #else +@@ -929,7 +961,7 @@ + extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, short, short*, short*, short*); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ +@@ -945,8 +977,8 @@ + extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, short, short, short, short); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, short, short, short); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ +@@ -963,7 +995,7 @@ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, short, short*, short*); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +@@ -978,9 +1010,9 @@ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, short, void*); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, short); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ +@@ -994,6 +1026,7 @@ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ + #if @NCURSES_EXT_FUNCS@ +@@ -1022,7 +1055,7 @@ + /* attributes */ + + #define NCURSES_ATTR_SHIFT 8 +-#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT)) ++#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) + + #define A_NORMAL (@cf_cv_1UL@ - @cf_cv_1UL@) + #define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0) +@@ -1044,6 +1077,10 @@ + #define A_TOP NCURSES_BITS(@cf_cv_1UL@,21) + #define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22) + ++#if @NCURSES_EXT_FUNCS@ ++#define A_ITALIC NCURSES_BITS(@cf_cv_1UL@,23) /* ncurses extension */ ++#endif ++ + /* + * Most of the pseudo functions are macros that either provide compatibility + * with older versions of curses, or provide inline functionality to improve +@@ -1084,7 +1121,7 @@ + */ + + #define wgetstr(w, s) wgetnstr(w, s, -1) +-#define getnstr(s, n) wgetnstr(stdscr, s, n) ++#define getnstr(s, n) wgetnstr(stdscr, s, (n)) + + #define setterm(term) setupterm(term, 1, (int *)0) + +@@ -1115,7 +1152,7 @@ + #define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) + + #if !NCURSES_OPAQUE +-#if defined(NCURSES_WIDECHAR) && @NCURSES_EXT_COLORS@ ++#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@ + #define wattrset(win,at) ((win) \ + ? ((win)->_color = PAIR_NUMBER(at), \ + (win)->_attrs = NCURSES_CAST(attr_t, at), \ +@@ -1137,15 +1174,15 @@ + + #define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) + #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) +-#define hline(ch, n) whline(stdscr, ch, n) +-#define vline(ch, n) wvline(stdscr, ch, n) ++#define hline(ch, n) whline(stdscr, ch, (n)) ++#define vline(ch, n) wvline(stdscr, ch, (n)) + + #define winstr(w, s) winnstr(w, s, -1) + #define winchstr(w, s) winchnstr(w, s, -1) + #define winsstr(w, s) winsnstr(w, s, -1) + + #if !NCURSES_OPAQUE +-#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1) ++#define redrawwin(win) wredrawln(win, 0, ((win) ? (win)->_maxy+1 : -1)) + #endif /* NCURSES_OPAQUE */ + + #define waddstr(win,str) waddnstr(win,str,-1) +@@ -1154,55 +1191,55 @@ + /* + * These apply to the first 256 color pairs. + */ +-#define COLOR_PAIR(n) NCURSES_BITS(n, 0) +-#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,a) & A_COLOR) >> NCURSES_ATTR_SHIFT))) ++#define COLOR_PAIR(n) NCURSES_BITS((n), 0) ++#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) + + /* + * pseudo functions for standard screen + */ + +-#define addch(ch) waddch(stdscr,ch) +-#define addchnstr(str,n) waddchnstr(stdscr,str,n) +-#define addchstr(str) waddchstr(stdscr,str) +-#define addnstr(str,n) waddnstr(stdscr,str,n) +-#define addstr(str) waddnstr(stdscr,str,-1) +-#define attroff(at) wattroff(stdscr,at) +-#define attron(at) wattron(stdscr,at) +-#define attrset(at) wattrset(stdscr,at) +-#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o) +-#define attr_off(a,o) wattr_off(stdscr,a,o) +-#define attr_on(a,o) wattr_on(stdscr,a,o) +-#define attr_set(a,c,o) wattr_set(stdscr,a,c,o) +-#define bkgd(ch) wbkgd(stdscr,ch) +-#define bkgdset(ch) wbkgdset(stdscr,ch) +-#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o) ++#define addch(ch) waddch(stdscr,(ch)) ++#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) ++#define addchstr(str) waddchstr(stdscr,(str)) ++#define addnstr(str,n) waddnstr(stdscr,(str),(n)) ++#define addstr(str) waddnstr(stdscr,(str),-1) ++#define attroff(at) wattroff(stdscr,(at)) ++#define attron(at) wattron(stdscr,(at)) ++#define attrset(at) wattrset(stdscr,(at)) ++#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) ++#define attr_off(a,o) wattr_off(stdscr,(a),(o)) ++#define attr_on(a,o) wattr_on(stdscr,(a),(o)) ++#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) ++#define bkgd(ch) wbkgd(stdscr,(ch)) ++#define bkgdset(ch) wbkgdset(stdscr,(ch)) ++#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) + #define clear() wclear(stdscr) + #define clrtobot() wclrtobot(stdscr) + #define clrtoeol() wclrtoeol(stdscr) +-#define color_set(c,o) wcolor_set(stdscr,c,o) ++#define color_set(c,o) wcolor_set(stdscr,(c),(o)) + #define delch() wdelch(stdscr) + #define deleteln() winsdelln(stdscr,-1) +-#define echochar(c) wechochar(stdscr,c) ++#define echochar(c) wechochar(stdscr,(c)) + #define erase() werase(stdscr) + #define getch() wgetch(stdscr) +-#define getstr(str) wgetstr(stdscr,str) ++#define getstr(str) wgetstr(stdscr,(str)) + #define inch() winch(stdscr) +-#define inchnstr(s,n) winchnstr(stdscr,s,n) +-#define inchstr(s) winchstr(stdscr,s) +-#define innstr(s,n) winnstr(stdscr,s,n) +-#define insch(c) winsch(stdscr,c) +-#define insdelln(n) winsdelln(stdscr,n) ++#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) ++#define inchstr(s) winchstr(stdscr,(s)) ++#define innstr(s,n) winnstr(stdscr,(s),(n)) ++#define insch(c) winsch(stdscr,(c)) ++#define insdelln(n) winsdelln(stdscr,(n)) + #define insertln() winsdelln(stdscr,1) +-#define insnstr(s,n) winsnstr(stdscr,s,n) +-#define insstr(s) winsstr(stdscr,s) +-#define instr(s) winstr(stdscr,s) +-#define move(y,x) wmove(stdscr,y,x) ++#define insnstr(s,n) winsnstr(stdscr,(s),(n)) ++#define insstr(s) winsstr(stdscr,(s)) ++#define instr(s) winstr(stdscr,(s)) ++#define move(y,x) wmove(stdscr,(y),(x)) + #define refresh() wrefresh(stdscr) +-#define scrl(n) wscrl(stdscr,n) +-#define setscrreg(t,b) wsetscrreg(stdscr,t,b) ++#define scrl(n) wscrl(stdscr,(n)) ++#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) + #define standend() wstandend(stdscr) + #define standout() wstandout(stdscr) +-#define timeout(delay) wtimeout(stdscr,delay) ++#define timeout(delay) wtimeout(stdscr,(delay)) + #define wdeleteln(win) winsdelln(win,-1) + #define winsertln(win) winsdelln(win,1) + +@@ -1210,70 +1247,75 @@ + * mv functions + */ + +-#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch)) +-#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n)) +-#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1)) +-#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n)) +-#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1)) +-#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win)) +-#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o)) +-#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win)) +-#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n)) +-#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str)) +-#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n)) +-#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) +-#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n)) +-#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s)) +-#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n)) +-#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c)) +-#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n)) +-#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s)) +-#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s)) +-#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n)) +- +-#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch) +-#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n) +-#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str) +-#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n) +-#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str) +-#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o) +-#define mvdelch(y,x) mvwdelch(stdscr,y,x) +-#define mvgetch(y,x) mvwgetch(stdscr,y,x) +-#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n) +-#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str) +-#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n) +-#define mvinch(y,x) mvwinch(stdscr,y,x) +-#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n) +-#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s) +-#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n) +-#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c) +-#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n) +-#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s) +-#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s) +-#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n) ++#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) ++#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) ++#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) ++#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) ++#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) ++#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) ++#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) ++#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) ++#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) ++#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) ++#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) ++#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) ++#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) ++#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) ++#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) ++#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) ++#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) ++#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) ++#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) ++#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) ++ ++#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) ++#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) ++#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) ++#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) ++#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) ++#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) ++#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) ++#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) ++#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) ++#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) ++#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) ++#define mvinch(y,x) mvwinch(stdscr,(y),(x)) ++#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) ++#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) ++#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) ++#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) ++#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) ++#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) ++#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) ++#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) + + /* + * Some wide-character functions can be implemented without the extensions. + */ + #if !NCURSES_OPAQUE +-#define getbkgd(win) ((win)->_bkgd) ++#define getbkgd(win) ((win) ? ((win)->_bkgd) : 0) + #endif /* NCURSES_OPAQUE */ + + #define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) + #define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) + + #if !NCURSES_OPAQUE +-#if defined(NCURSES_WIDECHAR) && @NCURSES_EXT_COLORS@ +-#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \ +- (win)->_color = (p), \ ++#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@ ++#define wattr_set(win,a,p,opts) (((win) \ ++ ? ((win)->_attrs = ((a) & ~A_COLOR), \ ++ (win)->_color = (p)) \ ++ : OK), \ + OK) +-#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \ +- (void)((p) != (void *)0 && (*(p) = (short)(win)->_color)), \ ++#define wattr_get(win,a,p,opts) ((void)(((a) != (void *)0) ? (*(a) = (win) ? (win)->_attrs : 0) : OK), \ ++ (void)(((p) != (void *)0) ? (*(p) = (NCURSES_PAIRS_T) ((win) ? (win)->_color : 0)) : OK), \ + OK) + #else +-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p)), OK) +-#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \ +- (void)((p) != (void *)0 && (*(p) = (short)PAIR_NUMBER((win)->_attrs))), \ ++#define wattr_set(win,a,p,opts) (((win) \ ++ ? ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p))) \ ++ : OK), \ ++ OK) ++#define wattr_get(win,a,p,opts) ((void)(((a) != (void *)0) ? (*(a) = (win) ? (win)->_attrs : 0) : OK), \ ++ (void)(((p) != (void *)0) ? (*(p) = (NCURSES_PAIRS_T) ((win) ? PAIR_NUMBER((win)->_attrs) : 0)) : OK), \ + OK) + #endif + #endif /* NCURSES_OPAQUE */ +@@ -1312,6 +1354,7 @@ + #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 wgetdelay(win) ((win) ? (win)->_delay : 0) + #define wgetparent(win) ((win) ? (win)->_parent : 0) + #define wgetscrreg(win,t,b) ((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) + #endif +diff -Naur ncurses-5.9/include/curses.tail ncurses-5.9.patch/include/curses.tail +--- ncurses-5.9/include/curses.tail 2010-03-28 21:10:55.000000000 +0200 ++++ ncurses-5.9.patch/include/curses.tail 2014-09-01 16:33:22.343792101 +0200 +@@ -1,4 +1,4 @@ +-/* $Id: curses.tail,v 1.20 2010/03/28 19:10:55 tom Exp $ */ ++/* $Id: curses.tail,v 1.21 2011/10/29 20:03:22 tom Exp $ */ + /* + * vile:cmode: + * This file is part of ncurses, designed to be appended after curses.h.in +@@ -133,7 +133,7 @@ + extern NCURSES_EXPORT(char *) _tracechar (int); + extern NCURSES_EXPORT(char *) _tracechtype (chtype); + extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); +-#ifdef NCURSES_WIDECHAR ++#if NCURSES_WIDECHAR + #define _tracech_t _tracecchar_t + extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); + #define _tracech_t2 _tracecchar_t2 +diff -Naur ncurses-5.9/include/curses.wide ncurses-5.9.patch/include/curses.wide +--- ncurses-5.9/include/curses.wide 2010-03-30 02:39:41.000000000 +0200 ++++ ncurses-5.9.patch/include/curses.wide 2014-09-01 16:33:22.343792101 +0200 +@@ -1,4 +1,4 @@ +-/* $Id: curses.wide,v 1.42 2010/03/30 00:39:41 tom Exp $ */ ++/* $Id: curses.wide,v 1.46 2014/02/01 22:00:32 tom Exp $ */ + /* + * vile:cmode: + * This file is part of ncurses, designed to be appended after curses.h.in +@@ -6,11 +6,11 @@ + */ + #define _XOPEN_CURSES 1 + +-#ifdef NCURSES_WIDECHAR ++#if NCURSES_WIDECHAR + + extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs; + +-#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c]) ++#define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))]) + + #define WACS_BSSB NCURSES_WACS('l') + #define WACS_SSBB NCURSES_WACS('m') +@@ -135,7 +135,7 @@ + extern NCURSES_EXPORT(int) get_wch (wint_t *); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* generated:WIDEC */ +-extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*); /* implemented */ ++extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*); /* implemented */ + extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) in_wch (cchar_t *); /* generated:WIDEC */ +@@ -185,12 +185,12 @@ + extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */ + extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* implemented */ +-extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* implemented */ ++extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *); /* implemented */ + extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* implemented */ + 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 *, NCURSES_OUTC); /* implemented */ ++extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *); /* implemented */ ++extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, 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 */ +@@ -221,8 +221,8 @@ + extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t); /* implemented:SP_FUNC */ + extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, short, void *); /* implemented:SP_FUNC */ +-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, short, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *); /* implemented:SP_FUNC */ ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ + #endif + + #ifndef NCURSES_NOMACROS +@@ -230,77 +230,77 @@ + /* + * XSI curses macros for XPG4 conformance. + */ +-#define add_wch(c) wadd_wch(stdscr,c) +-#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n) +-#define add_wchstr(str) wadd_wchstr(stdscr,str) +-#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n) +-#define addwstr(wstr) waddwstr(stdscr,wstr) +-#define bkgrnd(c) wbkgrnd(stdscr,c) +-#define bkgrndset(c) wbkgrndset(stdscr,c) +-#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br) +-#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0) +-#define echo_wchar(c) wecho_wchar(stdscr,c) +-#define get_wch(c) wget_wch(stdscr,c) +-#define get_wstr(t) wget_wstr(stdscr,t) +-#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch) +-#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n) +-#define hline_set(c,n) whline_set(stdscr,c,n) +-#define in_wch(c) win_wch(stdscr,c) +-#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n) +-#define in_wchstr(c) win_wchstr(stdscr,c) +-#define innwstr(c,n) winnwstr(stdscr,c,n) +-#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n) +-#define ins_wch(c) wins_wch(stdscr,c) +-#define ins_wstr(t) wins_wstr(stdscr,t) +-#define inwstr(c) winwstr(stdscr,c) +-#define vline_set(c,n) wvline_set(stdscr,c,n) +-#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1) +-#define waddwstr(win,wstr) waddnwstr(win,wstr,-1) +-#define wget_wstr(w,t) wgetn_wstr(w,t,-1) +-#define win_wchstr(w,c) win_wchnstr(w,c,-1) +-#define wins_wstr(w,t) wins_nwstr(w,t,-1) ++#define add_wch(c) wadd_wch(stdscr,(c)) ++#define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n)) ++#define add_wchstr(str) wadd_wchstr(stdscr,(str)) ++#define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n)) ++#define addwstr(wstr) waddwstr(stdscr,(wstr)) ++#define bkgrnd(c) wbkgrnd(stdscr,(c)) ++#define bkgrndset(c) wbkgrndset(stdscr,(c)) ++#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br) ++#define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),0,0,0,0) ++#define echo_wchar(c) wecho_wchar(stdscr,(c)) ++#define get_wch(c) wget_wch(stdscr,(c)) ++#define get_wstr(t) wget_wstr(stdscr,(t)) ++#define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch)) ++#define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n)) ++#define hline_set(c,n) whline_set(stdscr,(c),(n)) ++#define in_wch(c) win_wch(stdscr,(c)) ++#define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n)) ++#define in_wchstr(c) win_wchstr(stdscr,(c)) ++#define innwstr(c,n) winnwstr(stdscr,(c),(n)) ++#define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n)) ++#define ins_wch(c) wins_wch(stdscr,(c)) ++#define ins_wstr(t) wins_wstr(stdscr,(t)) ++#define inwstr(c) winwstr(stdscr,(c)) ++#define vline_set(c,n) wvline_set(stdscr,(c),(n)) ++#define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1) ++#define waddwstr(win,wstr) waddnwstr((win),(wstr),-1) ++#define wget_wstr(w,t) wgetn_wstr((w),(t),-1) ++#define win_wchstr(w,c) win_wchnstr((w),(c),-1) ++#define wins_wstr(w,t) wins_nwstr((w),(t),-1) + + #if !NCURSES_OPAQUE +-#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK) ++#define wgetbkgrnd(win,wch) ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK) + #endif + +-#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c) +-#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n) +-#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s) +-#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n) +-#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr) +-#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c) +-#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t) +-#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n) +-#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n) +-#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c) +-#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n) +-#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c) +-#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n) +-#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n) +-#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c) +-#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t) +-#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c) +-#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n) +- +-#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c)) +-#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n)) +-#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s)) +-#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n)) +-#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr)) +-#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c)) +-#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t)) +-#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n)) +-#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n)) +-#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c)) +-#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n)) +-#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c)) +-#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n)) +-#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n)) +-#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c)) +-#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t)) +-#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c)) +-#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n)) ++#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c)) ++#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n)) ++#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s)) ++#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n)) ++#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr)) ++#define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c)) ++#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t)) ++#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n)) ++#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n)) ++#define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c)) ++#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n)) ++#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c)) ++#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n)) ++#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n)) ++#define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c)) ++#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t)) ++#define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c)) ++#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n)) ++ ++#define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c))) ++#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n))) ++#define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s))) ++#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n))) ++#define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr))) ++#define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c))) ++#define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t))) ++#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n))) ++#define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n))) ++#define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c))) ++#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n))) ++#define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c))) ++#define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n))) ++#define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n))) ++#define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c))) ++#define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t))) ++#define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c))) ++#define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n))) + + #endif /* NCURSES_NOMACROS */ + +diff -Naur ncurses-5.9/include/headers ncurses-5.9.patch/include/headers +--- ncurses-5.9/include/headers 2009-09-05 19:46:30.000000000 +0200 ++++ ncurses-5.9.patch/include/headers 2014-09-01 16:33:22.343792101 +0200 +@@ -1,6 +1,6 @@ +-# $Id: headers,v 1.10 2009/09/05 17:46:30 tom Exp $ ++# $Id: headers,v 1.13 2013/10/20 00:32:21 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -29,14 +29,24 @@ + # + # Author: Thomas E. Dickey 1996-on + # +-term.h + curses.h + unctrl.h +-termcap.h + ncurses_dll.h ++ ++# Support for termcap (and tic, etc.), which can be a separate library ++@ termlib ++term.h ++termcap.h ++ ++# Headers used only for tic, other programs using internal interfaces + @ ticlib + $(srcdir)/tic.h + $(srcdir)/term_entry.h + $(srcdir)/nc_tparm.h + ++# Porting ++@ port_win32con ++$(srcdir)/ncurses_mingw.h ++$(srcdir)/nc_mingw.h ++ + # vile:makemode +diff -Naur ncurses-5.9/include/Makefile.in ncurses-5.9.patch/include/Makefile.in +--- ncurses-5.9/include/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/include/Makefile.in 2014-09-01 16:33:22.342792099 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.40 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.41 2013/08/03 23:10:51 tom Exp $ + ############################################################################## +-# Copyright (c) 1998,2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2010,2013 Free 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"), # +@@ -48,6 +48,9 @@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ + includedir = @includedir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +diff -Naur ncurses-5.9/include/MKkey_defs.sh ncurses-5.9.patch/include/MKkey_defs.sh +--- ncurses-5.9/include/MKkey_defs.sh 2003-12-06 18:10:09.000000000 +0100 ++++ ncurses-5.9.patch/include/MKkey_defs.sh 2014-09-01 16:33:22.342792099 +0200 +@@ -1,7 +1,7 @@ + #! /bin/sh +-# $Id: MKkey_defs.sh,v 1.14 2003/12/06 17:10:09 tom Exp $ ++# $Id: MKkey_defs.sh,v 1.15 2013/03/09 16:32:01 tom Exp $ + ############################################################################## +-# Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. # ++# Copyright (c) 2001-2003,2013 Free 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"), # +@@ -65,9 +65,12 @@ + key_event kv1 str V1 KEY_EVENT + ----- We were interrupted by an event + EOF + ++THIS=./`basename $0` ++PARM=./`basename $DATA` ++ + cat <<EOF + /* +- * These definitions were generated by $0 $DATA ++ * These definitions were generated by $THIS $PARM + */ + EOF + +diff -Naur ncurses-5.9/include/MKterm.h.awk.in ncurses-5.9.patch/include/MKterm.h.awk.in +--- ncurses-5.9/include/MKterm.h.awk.in 2010-01-09 20:53:26.000000000 +0100 ++++ ncurses-5.9.patch/include/MKterm.h.awk.in 2014-09-01 16:33:22.342792099 +0200 +@@ -1,7 +1,7 @@ + # vile:awkmode + BEGIN { + print "/****************************************************************************" +- print " * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *" ++ print " * Copyright (c) 1998-2011,2013 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.58 2010/01/09 19:53:26 tom Exp $ */" ++ print "/* $Id: MKterm.h.awk.in,v 1.62 2013/08/17 19:21:56 tom Exp $ */" + print "" + print "/*" + print "** term.h -- Definition of struct term" +@@ -62,6 +62,12 @@ + print "#undef NCURSES_SBOOL" + print "#define NCURSES_SBOOL @NCURSES_SBOOL@" + print "" ++ print "#undef NCURSES_USE_DATABASE" ++ print "#define NCURSES_USE_DATABASE @NCURSES_USE_DATABASE@" ++ print "" ++ print "#undef NCURSES_USE_TERMCAP" ++ print "#define NCURSES_USE_TERMCAP @NCURSES_USE_TERMCAP@" ++ print "" + print "#undef NCURSES_XNAMES" + print "#define NCURSES_XNAMES @NCURSES_XNAMES@" + print "" +@@ -93,41 +99,6 @@ + print "#include <termio.h>" + print "#define TTY struct termio" + print "" +- print "/* Add definitions to make termio look like termios." +- print " * But ifdef it, since there are some implementations" +- print " * that try to do this for us in a fake <termio.h>." +- print " */" +- print "#ifndef TCSANOW" +- print "#define TCSANOW TCSETA" +- print "#endif" +- print "#ifndef TCSADRAIN" +- print "#define TCSADRAIN TCSETAW" +- print "#endif" +- print "#ifndef TCSAFLUSH" +- print "#define TCSAFLUSH TCSETAF" +- print "#endif" +- print "#ifndef tcsetattr" +- print "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)" +- print "#endif" +- print "#ifndef tcgetattr" +- print "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)" +- print "#endif" +- print "#ifndef cfgetospeed" +- print "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)" +- print "#endif" +- print "#ifndef TCIFLUSH " +- print "#define TCIFLUSH 0" +- print "#endif" +- print "#ifndef TCOFLUSH " +- print "#define TCOFLUSH 1" +- print "#endif" +- print "#ifndef TCIOFLUSH " +- print "#define TCIOFLUSH 2" +- print "#endif" +- print "#ifndef tcflush" +- print "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)" +- print "#endif" +- print "" + print "#else /* !HAVE_TERMIO_H */" + print "" + print "#if __MINGW32__" +@@ -281,6 +252,7 @@ + print "extern NCURSES_EXPORT(int) _nc_get_tty_mode (TTY *buf);" + print "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);" + print "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);" ++ print "extern NCURSES_EXPORT(void) _nc_init_termtype (TERMTYPE *const);" + print "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE *, char *, int);" + print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);" + print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);" +diff -Naur ncurses-5.9/include/nc_alloc.h ncurses-5.9.patch/include/nc_alloc.h +--- ncurses-5.9/include/nc_alloc.h 2010-11-20 23:59:49.000000000 +0100 ++++ ncurses-5.9.patch/include/nc_alloc.h 2014-09-01 16:33:22.343792101 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,10 +29,11 @@ + /**************************************************************************** + * Author: Thomas E. Dickey 1996-on * + ****************************************************************************/ +-/* $Id: nc_alloc.h,v 1.18 2010/11/20 22:59:49 tom Exp $ */ ++/* $Id: nc_alloc.h,v 1.22 2013/01/26 21:56:51 tom Exp $ */ + + #ifndef NC_ALLOC_included + #define NC_ALLOC_included 1 ++/* *INDENT-OFF* */ + + #ifdef __cplusplus + extern "C" { +@@ -94,6 +95,7 @@ + /* doalloc.c */ + extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t); + #if !HAVE_STRDUP ++#undef strdup + #define strdup _nc_strdup + extern NCURSES_EXPORT(char *) _nc_strdup(const char *); + #endif +@@ -101,12 +103,14 @@ + /* entries.c */ + extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void); + +-#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type)) +-#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type)) +-#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type)) ++#define typeMalloc(type,elts) (type *)malloc((size_t)(elts)*sizeof(type)) ++#define typeCalloc(type,elts) (type *)calloc((size_t)(elts),sizeof(type)) ++#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (size_t)(elts)*sizeof(type)) + + #ifdef __cplusplus + } + #endif + ++/* *INDENT-ON* */ ++ + #endif /* NC_ALLOC_included */ +diff -Naur ncurses-5.9/include/nc_string.h ncurses-5.9.patch/include/nc_string.h +--- ncurses-5.9/include/nc_string.h 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/include/nc_string.h 2014-09-01 16:33:22.344792103 +0200 +@@ -0,0 +1,77 @@ ++/**************************************************************************** ++ * Copyright (c) 2012,2013 Free 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 2012 * ++ ****************************************************************************/ ++ ++#ifndef STRING_HACKS_H ++#define STRING_HACKS_H 1 ++ ++#include <ncurses_cfg.h> ++ ++/* ++ * $Id: nc_string.h,v 1.4 2013/12/15 01:09:19 tom Exp $ ++ * ++ * String-hacks. Use these macros to stifle warnings on (presumably) correct ++ * uses of strcat, strcpy and sprintf. ++ * ++ * By the way - ++ * A fundamental limitation of the interfaces (and frequent issue in bug ++ * reports using these functions) is that sizes are passed as unsigned values ++ * (with associated sign-extension problems), limiting their effectiveness ++ * when checking for buffer overflow. ++ */ ++ ++#ifdef __cplusplus ++#define NCURSES_VOID /* nothing */ ++#else ++#define NCURSES_VOID (void) ++#endif ++ ++#if USE_STRING_HACKS && HAVE_STRLCAT ++#define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,n)) ++#else ++#define _nc_STRCAT(d,s,n) NCURSES_VOID strcat((d),(s)) ++#endif ++ ++#if USE_STRING_HACKS && HAVE_STRLCPY ++#define _nc_STRCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) ++#else ++#define _nc_STRCPY(d,s,n) NCURSES_VOID strcpy((d),(s)) ++#endif ++ ++#if USE_STRING_HACKS && HAVE_SNPRINTF ++#define _nc_SPRINTF NCURSES_VOID snprintf ++#define _nc_SLIMIT(n) NCURSES_CAST(size_t,n), ++#else ++#define _nc_SPRINTF NCURSES_VOID sprintf ++#define _nc_SLIMIT(n) /* nothing */ ++#endif ++ ++#endif /* STRING_HACKS_H */ +diff -Naur ncurses-5.9/include/nc_termios.h ncurses-5.9.patch/include/nc_termios.h +--- ncurses-5.9/include/nc_termios.h 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/include/nc_termios.h 2014-09-01 16:33:22.344792103 +0200 +@@ -0,0 +1,171 @@ ++/**************************************************************************** ++ * Copyright (c) 2011 Free Software Foundation, Inc. * ++ * * ++ * Permission is hereby granted, free of charge, to any person obtaining a * ++ * copy of this software and associated documentation files (the * ++ * "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 2011 * ++ ****************************************************************************/ ++ ++/* $Id: nc_termios.h,v 1.2 2011/06/25 20:44:05 tom Exp $ */ ++ ++#ifndef NC_TERMIOS_included ++#define NC_TERMIOS_included 1 ++ ++#if HAVE_TERMIOS_H && HAVE_TCGETATTR ++ ++#else /* !HAVE_TERMIOS_H */ ++ ++#if HAVE_TERMIO_H ++ ++/* Add definitions to make termio look like termios. ++ * But ifdef it, since there are some implementations ++ * that try to do this for us in a fake <termio.h>. ++ */ ++#ifndef TCSADRAIN ++#define TCSADRAIN TCSETAW ++#endif ++#ifndef TCSAFLUSH ++#define TCSAFLUSH TCSETAF ++#endif ++#ifndef tcsetattr ++#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg) ++#endif ++#ifndef tcgetattr ++#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg) ++#endif ++#ifndef cfgetospeed ++#define cfgetospeed(t) ((t)->c_cflag & CBAUD) ++#endif ++#ifndef TCIFLUSH ++#define TCIFLUSH 0 ++#endif ++#ifndef tcflush ++#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg) ++#endif ++ ++#else /* !HAVE_TERMIO_H */ ++ ++#if __MINGW32__ ++ ++/* 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 ++ ++#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 ++ ++#else ++ ++#endif /* __MINGW32__ */ ++#endif /* HAVE_TERMIO_H */ ++ ++#endif /* HAVE_TERMIOS_H */ ++ ++#endif /* NC_TERMIOS_included */ +diff -Naur ncurses-5.9/include/nc_tparm.h ncurses-5.9.patch/include/nc_tparm.h +--- ncurses-5.9/include/nc_tparm.h 2010-12-25 21:27:22.000000000 +0100 ++++ ncurses-5.9.patch/include/nc_tparm.h 2014-09-01 16:33:22.344792103 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2010,2012 Free 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: Thomas E. Dickey 2006 * + ****************************************************************************/ + +-/* $Id: nc_tparm.h,v 1.5 2010/12/25 20:27:22 tom Exp $ */ ++/* $Id: nc_tparm.h,v 1.6 2012/02/18 21:34:42 tom Exp $ */ + + #ifndef NC_TPARM_included + #define NC_TPARM_included 1 +@@ -40,8 +40,12 @@ + * assumption of the varargs code. + */ + #ifndef TPARM_ARG ++#ifdef NCURSES_TPARM_ARG ++#define TPARM_ARG NCURSES_TPARM_ARG ++#else + #define TPARM_ARG long + #endif ++#endif /* TPARAM_ARG */ + + #define TPARM_N(n) (TPARM_ARG)(n) + +diff -Naur ncurses-5.9/include/ncurses_defs ncurses-5.9.patch/include/ncurses_defs +--- ncurses-5.9/include/ncurses_defs 2011-03-22 10:17:59.000000000 +0100 ++++ ncurses-5.9.patch/include/ncurses_defs 2014-09-01 16:33:22.344792103 +0200 +@@ -1,6 +1,6 @@ +-# $Id: ncurses_defs,v 1.46 2011/03/22 09:17:59 tom Exp $ ++# $Id: ncurses_defs,v 1.62 2013/12/14 23:52:07 tom Exp $ + ############################################################################## +-# Copyright (c) 2000-2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 2000-2012,2013 Free 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 @@ + + BROKEN_LINKER + BSD_TPUTS +-CC_HAS_PROTOS ++CGETENT_CONST /* nothing */ + CPP_HAS_PARAM_INIT + CURSES_ACS_ARRAY acs_map + CURSES_WACS_ARRAY _nc_wacs +@@ -41,6 +41,7 @@ + ETIP_NEEDS_MATH_H + GCC_NORETURN /* nothing */ + GCC_UNUSED /* nothing */ ++HAVE_ASSUME_DEFAULT_COLORS + HAVE_BIG_CORE + HAVE_BSD_CGETENT + HAVE_BSD_SIGNAL_H +@@ -69,6 +70,7 @@ + HAVE_GPP_BUILTIN_H + HAVE_GXX_BUILTIN_H + HAVE_HAS_KEY ++HAVE_INTTYPES_H + HAVE_IOSTREAM + HAVE_ISASCII + HAVE_ISSETUGID +@@ -102,6 +104,7 @@ + HAVE_POLL + HAVE_POLL_H + HAVE_PURIFY ++HAVE_PUTENV + HAVE_PUTWC + HAVE_PUTWIN 1 + HAVE_REGEXPR_H_FUNCS +@@ -115,6 +118,7 @@ + HAVE_SELECT + HAVE_SETBUF + HAVE_SETBUFFER ++HAVE_SETENV + HAVE_SETUPTERM 1 + HAVE_SETVBUF + HAVE_SGTTY_H +@@ -123,7 +127,11 @@ + HAVE_SIZECHANGE + HAVE_SLK_COLOR + HAVE_SLK_INIT 1 ++HAVE_SNPRINTF ++HAVE_STDINT_H + HAVE_STRDUP ++HAVE_STRLCAT ++HAVE_STRLCPY + HAVE_STRSTR + HAVE_SYMLINK + HAVE_SYS_BSDTYPES_H +@@ -153,9 +161,12 @@ + HAVE_TYPEINFO + HAVE_TYPE_ATTR_T + HAVE_TYPE_SIGACTION ++HAVE_UNCTRL_H 1 + HAVE_UNISTD_H + HAVE_UNLINK + HAVE_USE_DEFAULT_COLORS ++HAVE_USE_SCREEN ++HAVE_USE_WINDOW + HAVE_VFSCANF + HAVE_VSNPRINTF + HAVE_VSSCANF +@@ -175,11 +186,12 @@ + NCURSES_EXT_COLORS + NCURSES_EXT_FUNCS + NCURSES_NO_PADDING ++NCURSES_OSPEED_COMPAT + NCURSES_PATHSEP ':' ++NCURSES_WIDECHAR + NEED_PTEM_H + NO_LEAKS + PURE_TERMINFO +-RETSIGTYPE + STDC_HEADERS + SVR4_ACTION + SVR4_TERMIO +@@ -189,7 +201,6 @@ + TIME_WITH_SYS_TIME + TYPEOF_CHTYPE + USE_COLORFGBG +-USE_DATABASE + USE_GETCAP + USE_GETCAP_CACHE + USE_HARD_TABS +@@ -205,9 +216,9 @@ + USE_SAFE_SPRINTF + USE_SCROLL_HINTS + USE_SIGWINCH ++USE_STRING_HACKS + USE_SYMLINKS + USE_SYSMOUSE +-USE_TERMCAP + USE_WEAK_SYMBOLS + USE_WIDEC_SUPPORT + USE_XMC_SUPPORT +diff -Naur ncurses-5.9/include/ncurses_mingw.h ncurses-5.9.patch/include/ncurses_mingw.h +--- ncurses-5.9/include/ncurses_mingw.h 2008-12-14 20:22:16.000000000 +0100 ++++ ncurses-5.9.patch/include/ncurses_mingw.h 2014-09-01 16:33:22.344792103 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -31,10 +31,10 @@ + * * + ****************************************************************************/ + +-/* $Id: ncurses_mingw.h,v 1.1 2008/12/14 19:22:16 juergen Exp $ */ ++/* $Id: ncurses_mingw.h,v 1.2 2011/06/25 20:51:00 tom Exp $ */ + + /* +- * This is a placholder up to now and describes what needs to be implemented ++ * This is a placeholder up to now and describes what needs to be implemented + * to support I/O to external terminals with ncurses on the Windows OS. + */ + +@@ -67,98 +67,8 @@ + 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 ++#endif /* _NC_MINGWH */ ++#endif /* __MINGW32__ */ +diff -Naur ncurses-5.9/include/term_entry.h ncurses-5.9.patch/include/term_entry.h +--- ncurses-5.9/include/term_entry.h 2009-07-11 18:52:29.000000000 +0200 ++++ ncurses-5.9.patch/include/term_entry.h 2014-09-01 16:33:22.344792103 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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.37 2009/07/11 16:52:29 tom Exp $ */ ++/* $Id: term_entry.h,v 1.44 2013/05/25 20:13:38 tom Exp $ */ + + /* + * term_entry.h -- interface to entry-manipulation code +@@ -47,28 +47,46 @@ + + #include <term.h> + ++ /* ++ * see db_iterator.c - this enumeration lists the places searched for a ++ * terminal description and defines the order in which they are searched. ++ */ ++ typedef enum { ++ dbdTIC = 0, /* special, used by tic when writing entry */ ++#if NCURSES_USE_DATABASE ++ dbdEnvOnce, /* the $TERMINFO environment variable */ ++ dbdHome, /* $HOME/.terminfo */ ++ dbdEnvList, /* the $TERMINFO_DIRS environment variable */ ++ dbdCfgList, /* the compiled-in TERMINFO_DIRS value */ ++ dbdCfgOnce, /* the compiled-in TERMINFO value */ ++#endif ++#if NCURSES_USE_TERMCAP ++ dbdEnvOnce2, /* the $TERMCAP environment variable */ ++ dbdEnvList2, /* the $TERMPATH environment variable */ ++ dbdCfgList2, /* the compiled-in TERMPATH */ ++#endif ++ dbdLAST ++ } DBDIRS; ++ + #define MAX_USES 32 + #define MAX_CROSSLINKS 16 + +-typedef struct entry { +- TERMTYPE tterm; +- unsigned nuses; +- struct +- { +- char *name; +- struct entry *link; +- long line; +- } +- uses[MAX_USES]; +- int ncrosslinks; +- struct entry *crosslinks[MAX_CROSSLINKS]; +- long cstart, cend; +- long startline; +- struct entry *next; +- struct entry *last; +-} +-ENTRY; +- ++ typedef struct entry { ++ TERMTYPE tterm; ++ unsigned nuses; ++ struct { ++ char *name; ++ struct entry *link; ++ long line; ++ } uses[MAX_USES]; ++ int ncrosslinks; ++ struct entry *crosslinks[MAX_CROSSLINKS]; ++ long cstart, cend; ++ long startline; ++ struct entry *next; ++ struct entry *last; ++ } ENTRY; ++/* *INDENT-OFF* */ + #if NCURSES_XNAMES + #define NUM_BOOLEANS(tp) (tp)->num_Booleans + #define NUM_NUMBERS(tp) (tp)->num_Numbers +@@ -132,7 +150,7 @@ + + /* alloc_ttype.c: elementary allocation code */ + extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *); +-extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *); ++extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *); + + /* free_ttype.c: elementary allocation code */ + extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *); +@@ -166,9 +184,9 @@ + + /* trace_xnames.c */ + extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *); ++/* *INDENT-ON* */ + + #ifdef __cplusplus + } + #endif +- +-#endif /* NCURSES_TERM_ENTRY_H_incl */ ++#endif /* NCURSES_TERM_ENTRY_H_incl */ +diff -Naur ncurses-5.9/include/tic.h ncurses-5.9.patch/include/tic.h +--- ncurses-5.9/include/tic.h 2009-08-08 19:52:46.000000000 +0200 ++++ ncurses-5.9.patch/include/tic.h 2014-09-01 16:33:22.344792103 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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,14 +33,14 @@ + ****************************************************************************/ + + /* +- * $Id: tic.h,v 1.65 2009/08/08 17:52:46 tom Exp $ ++ * $Id: tic.h,v 1.69 2012/03/17 18:22:10 tom Exp $ + * tic.h - Global variables and structures for the terminfo + * compiler. + */ + + #ifndef __TIC_H + #define __TIC_H +- ++/* *INDENT-OFF* */ + #ifdef __cplusplus + extern "C" { + #endif +@@ -224,6 +224,12 @@ + + #define NOTFOUND ((struct name_table_entry *) 0) + ++/* ++ * The casts are required for correct sign-propagation with systems such as ++ * AIX, IRIX64, Solaris which default to unsigned characters. The C standard ++ * leaves this detail unspecified. ++ */ ++ + /* out-of-band values for representing absent capabilities */ + #define ABSENT_BOOLEAN ((signed char)-1) /* 255 */ + #define ABSENT_NUMERIC (-1) +@@ -248,6 +254,8 @@ + #define TERMINFO "/usr/share/terminfo" + #endif + ++#ifdef NCURSES_TERM_ENTRY_H_incl ++ + /* access.c */ + extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *); + extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *); +@@ -270,6 +278,7 @@ + extern NCURSES_EXPORT_VAR(int) _nc_curr_col; + extern NCURSES_EXPORT_VAR(int) _nc_curr_line; + extern NCURSES_EXPORT_VAR(int) _nc_syntax; ++extern NCURSES_EXPORT_VAR(int) _nc_strict_bsd; + extern NCURSES_EXPORT_VAR(long) _nc_comment_end; + extern NCURSES_EXPORT_VAR(long) _nc_comment_start; + extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos; +@@ -314,23 +323,6 @@ + extern const char * _nc_progname; + + /* db_iterator.c */ +-typedef enum { +- dbdTIC = 0, +-#if USE_DATABASE +- dbdEnvOnce, +- dbdHome, +- dbdEnvList, +- dbdCfgList, +- dbdCfgOnce, +-#endif +-#if USE_TERMCAP +- dbdEnvOnce2, +- dbdEnvList2, +- dbdCfgList2, +-#endif +- dbdLAST +-} DBDIRS; +- + extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *); + extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *); + extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *); +@@ -339,8 +331,11 @@ + /* write_entry.c */ + extern NCURSES_EXPORT(int) _nc_tic_written (void); + ++#endif /* NCURSES_TERM_ENTRY_H_incl */ ++ + #ifdef __cplusplus + } + #endif + ++/* *INDENT-ON* */ + #endif /* __TIC_H */ +diff -Naur ncurses-5.9/INSTALL ncurses-5.9.patch/INSTALL +--- ncurses-5.9/INSTALL 2011-03-31 10:27:24.000000000 +0200 ++++ ncurses-5.9.patch/INSTALL 2014-09-01 16:33:22.227791908 +0200 +@@ -1,5 +1,5 @@ + ------------------------------------------------------------------------------- +--- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. -- ++-- Copyright (c) 1998-2012,2013 Free 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.155 2011/03/31 08:27:24 tom Exp $ ++-- $Id: INSTALL,v 1.168 2013/08/03 23:15:23 tom Exp $ + --------------------------------------------------------------------- + How to install Ncurses/Terminfo on your system + --------------------------------------------------------------------- +@@ -315,6 +315,10 @@ + programs are useful in this configuration, e.g., reset and tput versus + infocmp and tic. + ++ --disable-db-install ++ Do not install the terminal database. This is used to omit features ++ for packages, as done with --without-progs. ++ + --disable-ext-funcs + Disable function-extensions. Configure ncurses without the functions + that are not specified by XSI. See ncurses/modules for the exact +@@ -407,13 +411,14 @@ + + --disable-tic-depends + When building shared libraries, normally the tic library is linked to +- depend upon the ncurses library (and in turn, on the term-library if +- the --with-termlib option was given). The tic- and term-libraries +- ABI does not depend on the --enable-widec option. Some packagers have +- used this to reduce the number of library files which are packaged +- by using only one copy of those libraries. To make this work properly, ++ depend upon the ncurses library (or equivalently, on the tinfo-library ++ if the --with-termlib option was given). The tic- and tinfo-library ++ ABIs do not depend on the --enable-widec option. Some packagers have ++ used this to reduce the number of library files which are packaged by ++ using only one copy of those libraries. To make this work properly, + the tic library must be built without an explicit dependency on the +- ncurses (or ncursesw) library. Use this configure option to do that. ++ underlying library (ncurses vs ncursesw, tinfo vs tinfow). Use this ++ configure option to do that. + For example + configure --with-ticlib --with-shared --disable-tic-depends + +@@ -555,6 +560,9 @@ + library by reducing global and static variables. This option is also + set if --with-pthread is used. + ++ Enabling this option adds a "t" to the library names, except for the ++ special case when --enable-weak-symbols is also used. ++ + --enable-rpath + Use rpath option when generating shared libraries, and (with some + restrictions) when linking the corresponding programs. This originally +@@ -595,6 +603,14 @@ + reducing the need for juggling the global SP value with set_term() and + delscreen(). + ++ --enable-string-hacks ++ Controls whether strlcat and strlcpy may be used. The same issue ++ applies to OpenBSD's warnings about snprintf, noting that this function ++ is weakly standardized. ++ ++ Aside from stifling these warnings, there is no functional improvement ++ in ncurses. ++ + --enable-symlinks + If your system supports symbolic links, make tic use symbolic links + rather than hard links to save diskspace when writing aliases in the +@@ -616,6 +632,12 @@ + match is found in the terminfo database. See also the --enable-getcap + and --enable-getcap-cache options. + ++ Termcap support requires run-time parsing rather than loading ++ predigested data. If you have specified --with-ticlib, then you ++ cannot have termcap support since run-time parsing is done in the ++ tic library, which is intentionally not part of normal linkage ++ dependencies. ++ + --enable-warnings + Turn on GCC compiler warnings. There should be only a few. + +@@ -740,6 +762,12 @@ + executables, e.g., by setting "--with-chtype=long" (the configure + script supplies "unsigned"). + ++ --with-cxx-shared ++ When --with-shared is set, build libncurses++ as a shared library. ++ This implicitly relies upon building with gcc/g++, since other ++ compiler suites may have differences in the way shared libraries are ++ built. libtool by the way has similar limitations. ++ + --with-database=XXX + Specify the terminfo source file to install. Usually you will wish + to install ncurses' default (misc/terminfo.src). Certain systems +@@ -824,7 +852,17 @@ + NOTE: a few systems build shared libraries with fixed pathnames; this + option probably will not work for those configurations. + +- --with-libtool[=XXX] ++ --with-lib-prefix=XXX ++ OS/2 EMX used a different naming convention from most Unix-like ++ platforms. It required that the "lib" part of a library name was ++ omitted. Newer EMX as part of eComStation does not follow that ++ convention. Use this option to override the configure script's ++ assumptions about the library-prefix. If this option is omitted, it ++ uses the original OS/2 EMX convention for that platform. Use ++ "--with-lib-prefix=lib" for the newer EMX in eComStation. Use ++ "--without-lib-prefix" to suppress it for other odd platforms. ++ ++ --with-libtool[=XXX] + Generate libraries with libtool. If this option is selected, then it + overrides all other library model specifications. Note that libtool + must already be installed, uses makefile rules dependent on GNU make, +@@ -904,6 +942,10 @@ + --with-pkg-config=[DIR] + Check for pkg-config, optionally specifying its path. + ++ --with-pkg-config-libdir=[DIR] ++ If pkg-config was found, override the automatic check for its library ++ path. ++ + --with-profile + Generate profile-libraries These are named by adding "_p" to the root, + e.g., libncurses_p.a +@@ -996,10 +1038,27 @@ + library dependencies for tic and other programs built with the tic + library. + ++ --with-tparm-arg[=XXX] ++ Override the type used for tparm() arguments, which normally is a ++ "long". However the function must assume that its arguments can hold a ++ pointer to char's which is not always workable for 64-bit platforms. A ++ better choice would be intptr_t, which was not available at the time ++ tparm's interface was defined. ++ ++ If the option is not given, this defaults to "long". ++ + --with-trace + Configure the trace() function as part of the all models of the ncurses + library. Normally it is part of the debug (libncurses_g) library only. + ++ --with-xterm-kbs=XXX ++ Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII ++ backspace) or DEL (^?, or 127). XXX can be BS (or bs, 8) or DEL ++ (or del, 127). ++ ++ During installation, the makefile and scripts modifies the "xterm+kbs" ++ terminfo entry to use this setting. ++ + --with-valgrind + For testing, compile with debug option. + This also sets the --disable-leaks option. +@@ -1024,6 +1083,8 @@ + install as "ncurses.h" and modify the installed headers and manpages + accordingly. + ++ Likewise, do not install an alias "curses" for the ncurses manpage. ++ + --without-cxx + XSI curses declares "bool" as part of the interface. C++ also declares + "bool". Neither specifies the size and type of booleans, but both +@@ -1726,20 +1787,37 @@ + By default, there are no entries on the fallback list. After you have + built the ncurses suite for the first time, you can change the list + (the process needs infocmp(1)). To do so, use the script +- ncurses/tinfo/MKfallback.sh. A configure script option ++ ncurses/tinfo/MKfallback.sh. The configure script option + --with-fallbacks does this (it accepts a comma-separated list of the + names you wish, and does not require a rebuild). + + If you wanted (say) to have linux, vt100, and xterm fallbacks, you +- would use the commands ++ might use the commands + + cd ncurses; +- tinfo/MKfallback.sh linux vt100 xterm >fallback.c ++ tinfo/MKfallback.sh \ ++ $TERMINFO \ ++ ../misc/terminfo.src \ ++ `which tic` \ ++ linux vt100 xterm >fallback.c ++ ++ The first three parameters of the script are normally supplied by ++ the configured makefiles via the "--with-fallbacks" option. They ++ are ++ ++ 1) the location of the terminfo database ++ 2) the source for the terminfo entries ++ 3) the location of the tic program, used to create a terminfo ++ database. + + Then just rebuild and reinstall the library as you would normally. + You can restore the default empty fallback list with + +- tinfo/MKfallback.sh >fallback.c ++ tinfo/MKfallback.sh \ ++ $TERMINFO \ ++ ../misc/terminfo.src \ ++ `which tic` \ ++ >fallback.c + + The overhead for an empty fallback list is one trivial stub function. + Any non-empty fallback list is const-ed and therefore lives in sharable +diff -Naur ncurses-5.9/Makefile.in ncurses-5.9.patch/Makefile.in +--- ncurses-5.9/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/Makefile.in 2014-09-01 16:33:22.228791910 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.30 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.38 2014/01/18 20:19:45 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2013,2014 Free 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,7 +27,7 @@ + # authorization. # + ############################################################################## + # +-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 ++# Author: Thomas E. Dickey 1996-on + # + # Master Makefile for ncurses library. + +@@ -35,7 +35,8 @@ + VPATH = @srcdir@ + + DESTDIR=@DESTDIR@ +-CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" ++RPATH_LIST=@RPATH_LIST@ ++TOP_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)" + + @SET_MAKE@ + +@@ -48,13 +49,17 @@ + + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++datarootdir = @datarootdir@ + + bindir = @bindir@ + ticdir = @TERMINFO@ + includedir = @includedir@ ++includesubdir = @includesubdir@ + libdir = @libdir@ + mandir = @mandir@ + ++include_dir = ${includedir}${includesubdir} ++ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + +@@ -74,25 +79,22 @@ + @ echo '' + @ echo ' bin directory: '$(bindir) + @ echo ' lib directory: '$(libdir) +- @ echo ' include directory: '$(includedir) ++ @ echo ' include directory: '$(include_dir) + @ echo ' man directory: '$(mandir) + @MAKE_TERMINFO@ @ echo ' terminfo directory: '$(ticdir) + @ echo '' +- @ test "$(includedir)" = "$(prefix)/include" || \ ++ @ test "$(include_dir)" = "$(prefix)/include" || \ + echo '** Include-directory is not in a standard location' +- @ test ! -f $(includedir)/termcap.h || \ +- fgrep NCURSES_VERSION $(includedir)/termcap.h >/dev/null || \ ++ @ test ! -f $(include_dir)/termcap.h || \ ++ fgrep NCURSES_VERSION $(include_dir)/termcap.h >/dev/null || \ + echo '** Will overwrite non-ncurses termcap.h' +- @ test ! -f $(includedir)/curses.h || \ +- fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \ ++ @ test ! -f $(include_dir)/curses.h || \ ++ fgrep NCURSES_VERSION $(include_dir)/curses.h >/dev/null || \ + echo '** Will overwrite non-ncurses curses.h' + +-dlls: libs +- $(SHELL) $(srcdir)/mk-dlls.sh +- + distclean \ + realclean :: +- -rm -f mk-dlls.sh mingw_arch ++ + + # Put the common rules here so that we can easily construct the list of + # directories to visit. +diff -Naur ncurses-5.9/man/clear.1 ncurses-5.9.patch/man/clear.1 +--- ncurses-5.9/man/clear.1 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/clear.1 2014-09-01 16:33:22.345792104 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2013 Free 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: clear.1,v 1.8 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: clear.1,v 1.10 2013/06/22 22:22:11 tom Exp $ + .TH @CLEAR@ 1 "" + .ds n 5 + .SH NAME +@@ -35,9 +35,10 @@ + \fB@CLEAR@\fR + .br + .SH DESCRIPTION +-\fB@CLEAR@\fR clears your screen if this is possible. It looks in the +-environment for the terminal type and then in the \fBterminfo\fR database to +-figure out how to clear the screen. ++\fB@CLEAR@\fR clears your screen if this is possible, ++including its scrollback buffer (if the extended "E3" capability is defined). ++\fB@CLEAR@\fR looks in the environment for the terminal type and then in the ++\fBterminfo\fR database to determine how to clear the screen. + .PP + \fB@CLEAR@\fR ignores any command-line parameters that may be present. + .SH SEE ALSO +diff -Naur ncurses-5.9/man/curs_addchstr.3x ncurses-5.9.patch/man/curs_addchstr.3x +--- ncurses-5.9/man/curs_addchstr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_addchstr.3x 2014-09-01 16:33:22.345792104 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2012 Free 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,11 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_addchstr.3x,v 1.15 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp $ + .TH curs_addchstr 3X "" ++.de bP ++.IP \(bu 4 ++.. + .na + .hy 0 + .SH NAME +@@ -42,6 +45,7 @@ + .ad + .hy + .SH SYNOPSIS ++.nf + \fB#include <curses.h>\fR + .PP + \fBint addchstr(const chtype *chstr);\fR +@@ -59,24 +63,33 @@ + \fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR + .br + \fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR ++.fi + .SH DESCRIPTION +-These routines copy \fIchstr\fR into the window image structure at and after +-the current cursor position. The four routines with \fIn\fR as the last +-argument copy at most \fIn\fR elements, but no more than will fit on the line. +-If \fBn\fR=\fB\-1\fR then the whole string is copied, to the maximum number of +-characters that will fit on the line. ++These functions copy the (null-terminated) ++\fIchstr\fR array ++into the window image structure ++starting at the current cursor position. ++The four functions with \fIn\fR as the last ++argument copy at most \fIn\fR elements, ++but no more than will fit on the line. ++If \fBn\fR=\fB\-1\fR then the whole array is copied, ++to the maximum number of characters that will fit on the line. + .PP +-The window cursor is \fInot\fR advanced, and these routines work faster than +-\fBwaddnstr\fR. On the other hand, they do not perform any kind of checking +-(such as for the newline, backspace, or carriage return characters), they do not +-advance the current cursor position, they do not expand other control characters +-to ^-escapes, and they truncate the string if it crosses the right margin, ++The window cursor is \fInot\fR advanced. ++These functions work faster than \fBwaddnstr\fR. ++On the other hand: ++.bP ++they do not perform checking ++(such as for the newline, backspace, or carriage return characters), ++.bP ++they do not advance the current cursor position, ++.bP ++they do not expand other control characters to ^-escapes, and ++.bP ++they truncate the string if it crosses the right margin, + rather than wrapping it around to the new line. +-.SH RETURN VALUES +-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success +-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon +-successful completion, unless otherwise noted in the preceding routine +-descriptions. ++.SH RETURN VALUE ++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success. + .PP + X/Open does not define any error conditions. + This implementation returns an error +@@ -86,10 +99,11 @@ + \fBwmove\fP, and return an error if the position is outside the window, + or if the window pointer is null. + .SH NOTES +-Note that all routines except \fBwaddchnstr\fR may be macros. ++All functions except \fBwaddchnstr\fR may be macros. + .SH PORTABILITY + These entry points are described in the XSI Curses standard, Issue 4. + .SH SEE ALSO ++\fBcurs_addstr\fR(3X), + \fBcurses\fR(3X). + .PP + Comparable functions in the wide-character (ncursesw) library are +diff -Naur ncurses-5.9/man/curs_addstr.3x ncurses-5.9.patch/man/curs_addstr.3x +--- ncurses-5.9/man/curs_addstr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_addstr.3x 2014-09-01 16:33:22.345792104 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2012 Free 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,11 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_addstr.3x,v 1.16 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp $ + .TH curs_addstr 3X "" ++.de bP ++.IP \(bu 4 ++.. + .na + .hy 0 + .SH NAME +@@ -62,34 +65,37 @@ + \fBint mvwaddnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr, int \fR\fIn\fR\fB);\fR + .fi + .SH DESCRIPTION +-These routines write the characters of the (null-terminated) character string ++These functions write the (null-terminated) character string + \fIstr\fR on the given window. + It is similar to calling \fBwaddch\fR once for each character in the string. +-The four routines with \fIn\fR as the last argument +-write at most \fIn\fR characters. +-If \fIn\fR is \-1, then the entire string will be added, +-up to the maximum number of characters that will fit on the line, ++.PP ++The \fImv\fR functions perform cursor movement once, before writing any ++characters. ++Thereafter, the cursor is advanced as a side-effect of writing to the window. ++.PP ++The four functions with \fIn\fR as the last argument ++write at most \fIn\fR characters, + or until a terminating null is reached. ++If \fIn\fR is \-1, then the entire string will be added. + .SH RETURN VALUE +-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success +-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon +-successful completion. ++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success. + .PP + X/Open does not define any error conditions. + This implementation returns an error ++.bP + if the window pointer is null or ++.bP + if the string pointer is null or ++.bP + if the corresponding calls to \fBwaddch\fP return an error. + .PP + Functions with a "mv" prefix first perform a cursor movement using + \fBwmove\fP, and return an error if the position is outside the window, + or if the window pointer is null. + .SH NOTES +-Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be +-macros. ++All of these functions except \fBwaddnstr\fR may be macros. + .SH PORTABILITY +-All these entry points are described in the XSI Curses standard, Issue 4. The +-XSI errors EILSEQ and EOVERFLOW, associated with extended-level conformance, +-are not yet detected. ++These functions are described in the XSI Curses standard, Issue 4. + .SH SEE ALSO +-\fBcurses\fR(3X), \fBcurs_addch\fR(3X). ++\fBcurses\fR(3X), ++\fBcurs_addch\fR(3X). +diff -Naur ncurses-5.9/man/curs_add_wch.3x ncurses-5.9.patch/man/curs_add_wch.3x +--- ncurses-5.9/man/curs_add_wch.3x 2011-01-15 16:27:43.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_add_wch.3x 2014-09-01 16:33:22.345792104 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. * ++.\" Copyright (c) 2001-2011,2012 Free 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_add_wch.3x,v 1.14 2011/01/15 15:27:43 tom Exp $ ++.\" $Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp $ + .TH curs_add_wch 3X "" + .de bP + .IP \(bu 4 +@@ -176,7 +176,7 @@ + WACS_D_VLINE 0x2551 | double vertical line + WACS_D_PLUS 0x256c + double large plus or crossover + .TE +-.SH RETURN VALUES ++.SH RETURN VALUE + .PP + All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success. + .PP +diff -Naur ncurses-5.9/man/curs_add_wchstr.3x ncurses-5.9.patch/man/curs_add_wchstr.3x +--- ncurses-5.9/man/curs_add_wchstr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_add_wchstr.3x 2014-09-01 16:33:22.345792104 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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,13 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_add_wchstr.3x,v 1.9 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp $ + .TH curs_add_wchstr 3X "" ++.de bP ++.IP \(bu 4 ++.. ++.na ++.hy 0 + .SH NAME + \fBadd_wchstr\fR, + \fBadd_wchnstr\fR, +@@ -37,10 +42,12 @@ + \fBmvadd_wchnstr\fR, + \fBmvwadd_wchstr\fR, + \fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window ++.ad ++.hy + .SH SYNOPSIS +-.B #include <curses.h> +-.PP + .nf ++\fB#include <curses.h>\fR ++.PP + \fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR + .br + \fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR +@@ -58,38 +65,53 @@ + \fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR + .fi + .SH DESCRIPTION +-These routines copy the array of complex characters \fIwchstr\fR +-into the window image structure at and after the current cursor position. +-The four routines with \fIn\fR as the last +-argument copy at most \fIn\fR elements, but no more than will fit on the line. ++These functions copy the (null-terminated) ++array of complex characters \fIwchstr\fR ++into the window image structure ++starting at the current cursor position. ++The four functions with \fIn\fR as the last ++argument copy at most \fIn\fR elements, ++but no more than will fit on the line. + If \fBn\fR=\fB\-1\fR then the whole array is copied, + to the maximum number of characters that will fit on the line. + .PP + The window cursor is \fInot\fR advanced. +-These routines work faster than \fBwaddnstr\fR. +-On the other hand, they do not perform checking ++These functions work faster than \fBwaddnstr\fR. ++On the other hand: ++.bP ++they do not perform checking + (such as for the newline, backspace, or carriage return characters), ++.bP + they do not advance the current cursor position, +-they do not expand other control characters to ^-escapes, +-and they truncate the string if it crosses the right margin, ++.bP ++they do not expand other control characters to ^-escapes, and ++.bP ++they truncate the string if it crosses the right margin, + rather than wrapping it around to the new line. + .PP +-These routines end successfully ++These functions end successfully + on encountering a null \fIcchar_t\fR, or + when they have filled the current line. + If a complex character cannot completely fit at the end of the current line, + the remaining columns are filled with the background character and rendition. +-.SH NOTES +-All functions except \fBwadd_wchnstr\fR may be macros. +-.SH RETURN VALUES +-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success. ++.SH RETURN VALUE ++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success. ++.PP ++X/Open does not define any error conditions. ++This implementation returns an error ++if the window pointer is null. + .PP + Functions with a "mv" prefix first perform a cursor movement using + \fBwmove\fP, and return an error if the position is outside the window, + or if the window pointer is null. ++.SH NOTES ++All functions except \fBwadd_wchnstr\fR may be macros. + .SH PORTABILITY +-All these entry points are described in the XSI Curses standard, Issue 4. ++These entry points are described in the XSI Curses standard, Issue 4. + .SH SEE ALSO +-\fBcurses\fR(3X), +-\fBcurs_addchstr\fR(3X), +-\fBcurs_addwstr\fR(3X) ++\fBcurs_addwstr\fR(3X), ++\fBcurses\fR(3X). ++.PP ++Comparable functions in the narrow-character (ncurses) library are ++described in ++\fBcurs_addchstr\fR(3X). +diff -Naur ncurses-5.9/man/curs_addwstr.3x ncurses-5.9.patch/man/curs_addwstr.3x +--- ncurses-5.9/man/curs_addwstr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_addwstr.3x 2014-09-01 16:33:22.345792104 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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,11 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_addwstr.3x,v 1.10 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp $ + .TH curs_addwstr 3X "" ++.de bP ++.IP \(bu 4 ++.. + .na + .hy 0 + .SH NAME +@@ -62,31 +65,39 @@ + \fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR + .fi + .SH DESCRIPTION +-These routines write the characters of the ++These functions write the characters of the + (null-terminated) \fBwchar_t\fR character string + \fIwstr\fR on the given window. + It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string, + then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR. + .PP +-The \fImv\fR routines perform cursor movement once, before writing any ++The \fImv\fR functions perform cursor movement once, before writing any + characters. + Thereafter, the cursor is advanced as a side-effect of writing to the window. + .PP +-The four routines with \fIn\fR as the last argument +-write at most \fIn\fR \fBwchar_t\fR characters. +-If \fIn\fR is \-1, then the entire string will be added, +-up to the maximum number of characters that will fit on the line, ++The four functions with \fIn\fR as the last argument ++write at most \fIn\fR \fBwchar_t\fR characters, + or until a terminating null is reached. +-.SH RETURN VALUES +-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success. ++If \fIn\fR is \-1, then the entire string will be added. ++.SH RETURN VALUE ++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success. ++.PP ++X/Open does not define any error conditions. ++This implementation returns an error ++.bP ++if the window pointer is null or ++.bP ++if the string pointer is null or ++.bP ++if the corresponding calls to \fBwadd_wch\fP return an error. + .PP + Functions with a "mv" prefix first perform a cursor movement using + \fBwmove\fP, and return an error if the position is outside the window, + or if the window pointer is null. + .SH NOTES +-Note that all of these routines except \fBwaddnwstr\fR may be macros. ++All of these functions except \fBwaddnwstr\fR may be macros. + .SH PORTABILITY +-All these entry points are described in the XSI Curses standard, Issue 4. ++These functions are described in the XSI Curses standard, Issue 4. + .SH SEE ALSO + \fBcurses\fR(3X), + \fBcurs_add_wch\fR(3X) +diff -Naur ncurses-5.9/man/curs_attr.3x ncurses-5.9.patch/man/curs_attr.3x +--- ncurses-5.9/man/curs_attr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_attr.3x 2014-09-01 16:33:22.345792104 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2013 Free 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 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_attr.3x,v 1.36 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_attr.3x,v 1.39 2013/09/21 20:39:49 Sven.Joachim Exp $ + .TH curs_attr 3X "" + .na + .hy 0 +@@ -164,9 +164,12 @@ + the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'd with the + characters passed to \fBaddch\fR. + .PP ++.RS + .TS +-center ; ++l l ++_ _ _ + l l . ++\fIName\fR \fIDescription\fR + \fBA_NORMAL\fR Normal display (no highlight) + \fBA_STANDOUT\fR Best highlighting mode of the terminal. + \fBA_UNDERLINE\fR Underlining +@@ -177,9 +180,30 @@ + \fBA_PROTECT\fR Protected mode + \fBA_INVIS\fR Invisible or blank mode + \fBA_ALTCHARSET\fR Alternate character set ++\fBA_ITALIC\fR Italics (non-X/Open extension) + \fBA_CHARTEXT\fR Bit-mask to extract a character + \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR Color-pair number \fIn\fR + .TE ++.RE ++.PP ++These video attributes are supported by \fBattr_on\fP and related functions ++(which also support the attributes recognized by \fBattron\fP, etc.): ++.RS ++.TS ++l l ++_ _ _ ++l l . ++\fIName\fR \fIDescription\fR ++\fBWA_HORIZONTAL\fR Horizontal highlight ++\fBWA_LEFT\fR Left highlight ++\fBWA_LOW\fR Low highlight ++\fBWA_RIGHT\fR Right highlight ++\fBWA_TOP\fR Top highlight ++\fBWA_VERTICAL\fR Vertical highlight ++.TE ++.RE ++.PP ++For consistency + .PP + The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR: + .PP +@@ -214,19 +238,27 @@ + SVr4 curses, these functions correctly manipulate all other highlights + (specifically, \fBA_ALTCHARSET\fR, \fBA_PROTECT\fR, and \fBA_INVIS\fR). + .PP ++This implementation provides the \fBA_ITALIC\fP attribute for terminals ++which have the \fIenter_italics_mode\fP (sitm) and \fIexit_italics_mode\fP (ritm) capabilities. ++Italics are not mentioned in X/Open Curses. ++Unlike the other video attributes, \fBI_ITALIC\fP is unrelated ++to the \fIset_attributes\fP capabilities. ++This implementation makes the assumption that ++\fIexit_attribute_mode\fP may also reset italics. ++.PP + XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR, + \fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR, + \fBwattr_get\fR, \fBwattr_set\fR. These are intended to work with + a new series of highlight macros prefixed with \fBWA_\fR. ++The older macros have direct counterparts in the newer set of names: + .PP +-Older versions of this library did not force an update of the screen +-when changing the attributes. +-Use \fBtouchwin\fR to force the screen to match the updated attributes. +-.PP ++.RS + .ne 9 + .TS +-center ; ++l l ++_ _ _ + l l . ++\fIName\fR \fIDescription\fR + \fBWA_NORMAL\fR Normal display (no highlight) + \fBWA_STANDOUT\fR Best highlighting mode of the terminal. + \fBWA_UNDERLINE\fR Underlining +@@ -236,6 +268,11 @@ + \fBWA_BOLD\fR Extra bright or bold + \fBWA_ALTCHARSET\fR Alternate character set + .TE ++.RE ++.PP ++Older versions of this library did not force an update of the screen ++when changing the attributes. ++Use \fBtouchwin\fR to force the screen to match the updated attributes. + .PP + The XSI curses standard specifies that each pair of corresponding \fBA_\fR + and \fBWA_\fR-using functions operates on the same current-highlight +@@ -243,8 +280,10 @@ + .PP + The XSI standard extended conformance level adds new highlights + \fBA_HORIZONTAL\fR, \fBA_LEFT\fR, \fBA_LOW\fR, \fBA_RIGHT\fR, \fBA_TOP\fR, +-\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each) which this +-implementation does not yet support. ++\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each). ++As of August 2013, ++no known terminal provides these highlights ++(i.e., via the \fBsgr1\fP capability). + .SH RETURN VALUE + All routines return the integer \fBOK\fR on success, or \fBERR\fP on failure. + .PP +diff -Naur ncurses-5.9/man/curs_bkgrnd.3x ncurses-5.9.patch/man/curs_bkgrnd.3x +--- ncurses-5.9/man/curs_bkgrnd.3x 2010-12-04 19:49:20.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_bkgrnd.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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_bkgrnd.3x,v 1.4 2010/12/04 18:49:20 tom Exp $ ++.\" $Id: curs_bkgrnd.3x,v 1.5 2012/11/03 23:03:59 tom Exp $ + .TH curs_bkgrnd 3X "" + .SH NAME + \fBbkgrnd\fR, +@@ -89,7 +89,7 @@ + \fBbkgrndset\fR, and + \fBgetbkgrnd\fR + may be macros. +-.SH RETURN VALUES ++.SH RETURN VALUE + The \fBbkgrndset\fR and \fBwbkgrndset\fR routines do not return a value. + .PP + Upon successful completion, the other functions return \fBOK\fR. +diff -Naur ncurses-5.9/man/curs_border_set.3x ncurses-5.9.patch/man/curs_border_set.3x +--- ncurses-5.9/man/curs_border_set.3x 2011-01-15 13:56:18.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_border_set.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2011,2012 Free 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_border_set.3x,v 1.10 2011/01/15 12:56:18 tom Exp $ ++.\" $Id: curs_border_set.3x,v 1.11 2012/11/03 23:03:59 tom Exp $ + .TH curs_border_set 3X "" + .na + .hy 0 +@@ -187,7 +187,7 @@ + \fBvline_set\fR + may be macros. + .br +-.SH RETURN VALUES ++.SH RETURN VALUE + .PP + Upon successful completion, these functions return + \fBOK\fR. +diff -Naur ncurses-5.9/man/curs_getcchar.3x ncurses-5.9.patch/man/curs_getcchar.3x +--- ncurses-5.9/man/curs_getcchar.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_getcchar.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2001-2010,2012 Free 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.15 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_getcchar.3x,v 1.16 2012/11/03 23:03:59 tom Exp $ + .TH curs_getcchar 3X "" + .de bP + .IP \(bu 4 +@@ -116,7 +116,7 @@ + The \fIwcval\fP argument may be a value generated by a call to + \fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument. + If \fIwcval\fP is constructed by any other means, the effect is unspecified. +-.SH RETURN VALUES ++.SH RETURN VALUE + .PP + When \fIwch\fP is a null pointer, + \fBgetcchar\fP returns the number of wide characters referenced by +diff -Naur ncurses-5.9/man/curs_getch.3x ncurses-5.9.patch/man/curs_getch.3x +--- ncurses-5.9/man/curs_getch.3x 2011-01-22 20:38:51.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_getch.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2011,2012 Free 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 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_getch.3x,v 1.36 2011/01/22 19:38:51 tom Exp $ ++.\" $Id: curs_getch.3x,v 1.37 2012/07/07 20:04:56 tom Exp $ + .TH curs_getch 3X "" + .na + .hy 0 +@@ -237,14 +237,14 @@ + All routines return the integer \fBERR\fR upon failure and an integer value + other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful + completion. +-.RS ++.RS 3 + .TP 5 + \fBungetch\fP +-returns an error ++returns ERR + if there is no more room in the FIFO. +-.TP 5 ++.TP + \fBwgetch\fP +-returns an error ++returns ERR + if the window pointer is null, or + if its timeout expires without having any data. + .RE +diff -Naur ncurses-5.9/man/curs_get_wch.3x ncurses-5.9.patch/man/curs_get_wch.3x +--- ncurses-5.9/man/curs_get_wch.3x 2010-08-15 01:31:42.000000000 +0200 ++++ ncurses-5.9.patch/man/curs_get_wch.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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_get_wch.3x,v 1.7 2010/08/14 23:31:42 tom Exp $ ++.\" $Id: curs_get_wch.3x,v 1.8 2012/11/03 23:03:59 tom Exp $ + .TH curs_get_wch 3X "" + .SH NAME + \fBget_wch\fR, +@@ -132,7 +132,7 @@ + .PP + All functions except \fBwget_wch\fR and \fBunget_wch\fR + may be macros. +-.SH RETURN VALUES ++.SH RETURN VALUE + When + \fBget_wch\fR, + \fBwget_wch\fR, +diff -Naur ncurses-5.9/man/curs_get_wstr.3x ncurses-5.9.patch/man/curs_get_wstr.3x +--- ncurses-5.9/man/curs_get_wstr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_get_wstr.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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_get_wstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_get_wstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp $ + .TH curs_get_wstr 3X "" + .na + .hy 0 +@@ -144,7 +144,7 @@ + is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value. + .PP + All of these routines except \fBwgetn_wstr\fR may be macros. +-.SH RETURN VALUES ++.SH RETURN VALUE + All of these functions return \fBOK\fR upon successful completion. + Otherwise, they return \fBERR\fR. + .PP +diff -Naur ncurses-5.9/man/curs_initscr.3x ncurses-5.9.patch/man/curs_initscr.3x +--- ncurses-5.9/man/curs_initscr.3x 2010-12-04 19:36:58.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_initscr.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2013,2014 Free 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,15 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_initscr.3x,v 1.17 2010/12/04 18:36:58 tom Exp $ ++.\" $Id: curs_initscr.3x,v 1.20 2014/03/01 22:31:22 tom Exp $ + .TH curs_initscr 3X "" ++.de bP ++.IP \(bu 4 ++.. ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .na + .hy 0 + .SH NAME +@@ -56,49 +63,71 @@ + .br + .SH DESCRIPTION + \fBinitscr\fR is normally the first \fBcurses\fR routine to call when +-initializing a program. A few special routines sometimes need to be +-called before it; these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR, +-\fBuse_env\fR. For multiple-terminal applications, \fBnewterm\fR may be +-called before \fBinitscr\fR. ++initializing a program. ++A few special routines sometimes need to be called before it; ++these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR, ++\fBuse_env\fR. ++For multiple-terminal applications, ++\fBnewterm\fR may be called before \fBinitscr\fR. + .PP + The initscr code determines the terminal type and initializes all \fBcurses\fR +-data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to +-clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error +-message to standard error and exits; otherwise, a pointer is returned to +-\fBstdscr\fR. ++data structures. ++\fBinitscr\fR also causes the first call to \fBrefresh\fR to clear the screen. ++If errors occur, \fBinitscr\fR writes an appropriate error ++message to standard error and exits; ++otherwise, a pointer is returned to \fBstdscr\fR. + .PP + A program that outputs to more than one terminal should use the \fBnewterm\fR +-routine for each terminal instead of \fBinitscr\fR. A program that needs to +-inspect capabilities, so it can continue to run in a line-oriented mode if the ++routine for each terminal instead of \fBinitscr\fR. ++A program that needs to inspect capabilities, ++so it can continue to run in a line-oriented mode if the + terminal cannot support a screen-oriented program, would also use +-\fBnewterm\fR. The routine \fBnewterm\fR should be called once for each +-terminal. It returns a variable of type \fBSCREEN *\fR which should be saved +-as a reference to that terminal. The arguments are the \fItype\fR of the +-terminal to be used in place of \fB$TERM\fR, a file pointer for output to the +-terminal, and another file pointer for input from the terminal (if \fItype\fR +-is \fBNULL\fR, \fB$TERM\fR will be used). The program must also call ++\fBnewterm\fR. ++The routine \fBnewterm\fR should be called once for each terminal. ++It returns a variable of type \fBSCREEN *\fR which should be saved ++as a reference to that terminal. ++\fBnewterm\fP's arguments are ++.bP ++the \fItype\fR of the terminal to be used in place of \fB$TERM\fR, ++.bP ++a file pointer for output to the terminal, and ++.bP ++another file pointer for input from the terminal ++.PP ++If the \fItype\fR parameter is \fBNULL\fR, \fB$TERM\fR will be used. ++.PP ++The program must also call + \fBendwin\fR for each terminal being used before exiting from \fBcurses\fR. + If \fBnewterm\fR is called more than once for the same terminal, the first + terminal referred to must be the last one for which \fBendwin\fR is called. + .PP + A program should always call \fBendwin\fR before exiting or escaping from +-\fBcurses\fR mode temporarily. This routine restores tty modes, moves the +-cursor to the lower left-hand corner of the screen and resets the terminal into +-the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a ++\fBcurses\fR mode temporarily. ++This routine ++.bP ++restores tty modes, ++.bP ++moves the cursor to the lower left-hand corner of the screen and ++.bP ++resets the terminal into ++the proper non-visual mode. ++.PP ++Calling \fBrefresh\fR or \fBdoupdate\fR after a + temporary escape causes the program to resume visual mode. + .PP + The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been +-called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR +-otherwise. ++called without any subsequent calls to \fBwrefresh\fR, ++and \fBFALSE\fR otherwise. + .PP +-The \fBset_term\fR routine is used to switch between different +-terminals. The screen reference \fBnew\fR becomes the new current +-terminal. The previous terminal is returned by the routine. This is +-the only routine which manipulates \fBSCREEN\fR pointers; all other +-routines affect only the current terminal. ++The \fBset_term\fR routine is used to switch between different terminals. ++The screen reference \fBnew\fR becomes the new current terminal. ++The previous terminal is returned by the routine. ++This is the only routine which manipulates \fBSCREEN\fR pointers; ++all other routines affect only the current terminal. + .PP + The \fBdelscreen\fR routine frees storage associated with the +-\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do ++\fBSCREEN\fR data structure. ++The \fBendwin\fR routine does not do + this, so \fBdelscreen\fR should be called after \fBendwin\fR if a + particular \fBSCREEN\fR is no longer needed. + .SH RETURN VALUE +@@ -109,22 +138,41 @@ + .PP + X/Open defines no error conditions. + In this implementation ++.bP + \fBendwin\fP returns an error if the terminal was not initialized. ++.bP ++\fBnewterm\fP ++returns an error if it cannot allocate the data structures for the screen, ++or for the top-level windows within the screen, ++i.e., ++\fBcurscr\fP, \fBnewscr\fP, or \fBstdscr\fP. ++.bP ++\fBset_term\fP ++returns no error. + .SH NOTES + Note that \fBinitscr\fR and \fBnewterm\fR may be macros. + .SH PORTABILITY +-These functions are described in the XSI Curses standard, Issue 4. It +-specifies that portable applications must not call \fBinitscr\fR more than +-once. ++These functions are described in the XSI Curses standard, Issue 4. ++It specifies that portable applications must not ++call \fBinitscr\fR more than once. + .PP + Old versions of curses, e.g., BSD 4.4, may have returned a null pointer + from \fBinitscr\fR when an error is detected, rather than exiting. + It is safe but redundant to check the return value of \fBinitscr\fR + in XSI Curses. ++.PP ++If the TERM variable is missing or empty, \fBinitscr\fP uses the ++value \*(``unknown\*('', ++which normally corresponds to a terminal entry with the \fIgeneric\fP ++(\fIgn\fP) capability. ++Generic entries are detected by \fBsetupterm\fP(3X) and cannot be ++used for full-screen operation. ++Other implementations may handle a missing/empty TERM variable differently. + .SH SEE ALSO + \fBcurses\fR(3X), + \fBcurs_kernel\fR(3X), + \fBcurs_refresh\fR(3X), + \fBcurs_slk\fR(3X), ++\fBcurs_terminfo\fR(3X), + \fBcurs_util\fR(3X), + \fBcurs_variables\fR(3X). +diff -Naur ncurses-5.9/man/curs_inopts.3x ncurses-5.9.patch/man/curs_inopts.3x +--- ncurses-5.9/man/curs_inopts.3x 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_inopts.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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,12 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: curs_inopts.3x,v 1.18 2013/07/20 19:42:02 tom Exp $ + .TH curs_inopts 3X "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .na + .hy 0 + .SH NAME +@@ -188,11 +192,13 @@ + plus the additional capability of being able to block for only + \fIdelay\fR milliseconds (where \fIdelay\fR is positive). + .PP +-The \fBcurses\fR library does ``line-breakout optimization'' by looking for +-typeahead periodically while updating the screen. If input is found, +-and it is coming from a tty, the current update is postponed until +-\fBrefresh\fR or \fBdoupdate\fR is called again. This allows faster +-response to commands typed in advance. Normally, the input FILE ++The \fBcurses\fR library does \*(``line-breakout optimization\*('' ++by looking for typeahead periodically while updating the screen. ++If input is found, and it is coming from a tty, ++the current update is postponed until ++\fBrefresh\fR or \fBdoupdate\fR is called again. ++This allows faster response to commands typed in advance. ++Normally, the input FILE + pointer passed to \fBnewterm\fR, or \fBstdin\fR in the case that + \fBinitscr\fR was used, will be used to do this typeahead checking. + The \fBtypeahead\fR routine specifies that the file descriptor +@@ -223,6 +229,42 @@ + left the echo bit on at initialization, but the BSD \fBraw\fR call turned it + off as a side-effect. For best portability, set echo or noecho explicitly + just after initialization, even if your program remains in cooked mode. ++.PP ++When \fBkeypad\fP is first enabled, ++ncurses loads the key-definitions for the current terminal description. ++If the terminal description includes extended string capabilities, ++e.g., from using the \fB\-x\fP option of @TIC@, ++then ncurses also defines keys for the capabilities whose names ++begin with "k". ++The corresponding keycodes are generated and (depending on previous ++loads of terminal descriptions) may differ from one execution of a ++program to the next. ++The generated keycodes are recognized by the \fBkeyname\fP function ++(which will then return a name beginning with "k" denoting the ++terminfo capability name rather than "K", used for curses key-names). ++On the other hand, an application can use \fBdefine_key\fP to establish ++a specific keycode for a given string. ++This makes it possible for an application to check for an extended ++capability's presence with \fItigetstr\fP, ++and reassign the keycode to match its own needs. ++.PP ++Low-level applications can use \fBtigetstr\fP to obtain the definition ++of any particular string capability. ++Higher-level applications which use the curses \fBwgetch\fP ++and similar functions to return keycodes rely upon the order in which ++the strings are loaded. ++If more than one key definition has the same string value, ++then \fBwgetch\fP can return only one keycode. ++Most curses implementations (including ncurses) ++load key definitions in the order ++defined by the array of string capability names. ++The last key to be loaded determines the keycode which will be returned. ++In ncurses, you may also have extended capabilities interpreted as ++key definitions. ++These are loaded after the predefined keys, ++and if a capability's value is the same as a previously-loaded ++key definition, ++the later definition is the one used. + .SH NOTES + Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, + \fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR, +@@ -233,4 +275,9 @@ + respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver + control states that are hard to predict or understand; it is not recommended. + .SH SEE ALSO +-\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7) ++\fBcurses\fR(3X), ++\fBcurs_getch\fR(3X), ++\fBcurs_initscr\fR(3X), ++\fBcurs_util\fR(3X), ++\fBdefine_key\fR(3X), ++\fBtermio\fR(7) +diff -Naur ncurses-5.9/man/curs_ins_wstr.3x ncurses-5.9.patch/man/curs_ins_wstr.3x +--- ncurses-5.9/man/curs_ins_wstr.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_ins_wstr.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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_ins_wstr.3x,v 1.6 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_ins_wstr.3x,v 1.7 2012/11/03 23:03:59 tom Exp $ + .TH curs_ins_wstr 3X "" + .na + .hy 0 +@@ -92,7 +92,7 @@ + functions will fail. + XSI does not define what will happen if a nonspacing character follows + a control character. +-.SH RETURN VALUES ++.SH RETURN VALUE + Upon successful completion, these functions return OK. + Otherwise, they return ERR. + .PP +diff -Naur ncurses-5.9/man/curs_in_wchstr.3x ncurses-5.9.patch/man/curs_in_wchstr.3x +--- ncurses-5.9/man/curs_in_wchstr.3x 2010-12-04 19:36:44.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_in_wchstr.3x 2014-09-01 16:33:22.346792106 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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_in_wchstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp $ ++.\" $Id: curs_in_wchstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp $ + .TH curs_in_wchstr 3X "" + .na + .hy 0 +@@ -98,7 +98,7 @@ + \fBmvwin_wchnstr\fR, or + \fBwin_wchnstr\fR + is recommended. +-.SH RETURN VALUES ++.SH RETURN VALUE + Upon successful completion, these functions return + \fBOK\fR. + Otherwise, they return +diff -Naur ncurses-5.9/man/curs_inwstr.3x ncurses-5.9.patch/man/curs_inwstr.3x +--- ncurses-5.9/man/curs_inwstr.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_inwstr.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2002-2010,2012 Free 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_inwstr.3x,v 1.7 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_inwstr.3x,v 1.8 2012/11/03 23:03:59 tom Exp $ + .TH curs_inwstr 3X "" + .SH NAME + \fBinwstr\fR, +@@ -72,7 +72,7 @@ + Note that all routines except + \fBwinnwstr\fR + may be macros. +-.SH RETURN VALUES ++.SH RETURN VALUE + All routines return + \fBERR\fR + upon failure. Upon +diff -Naur ncurses-5.9/man/curs_mouse.3x ncurses-5.9.patch/man/curs_mouse.3x +--- ncurses-5.9/man/curs_mouse.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_mouse.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2013 Free 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 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_mouse.3x,v 1.38 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_mouse.3x,v 1.39 2013/06/22 18:09:42 tom Exp $ + .TH curs_mouse 3X "" + .na + .hy 0 +@@ -40,20 +40,18 @@ + .ad + .hy + .SH SYNOPSIS +-.nf +-\fB#include <curses.h> ++\fB#include <curses.h>\fR + .PP +-\fBtypedef unsigned long mmask_t; ++\fBtypedef unsigned long mmask_t;\fR + .PP +-typedef struct +-{ +- short id; \fI/* ID to distinguish multiple devices */\fB +- int x, y, z; \fI/* event coordinates */\fB +- mmask_t bstate; \fI/* button state bits */\fB +-} +-MEVENT;\fR ++.nf ++\fBtypedef struct {\fR ++\fB short id; \fR\fI/* ID to distinguish multiple devices */\fR ++\fB int x, y, z; \fR\fI/* event coordinates */\fR ++\fB mmask_t bstate; \fR\fI/* button state bits */\fR ++\fB} MEVENT;\fR + .fi +-.br ++.PP + \fBbool has_mouse(void);\fR + .br + \fBint getmouse(MEVENT *event);\fR +diff -Naur ncurses-5.9/man/curs_opaque.3x ncurses-5.9.patch/man/curs_opaque.3x +--- ncurses-5.9/man/curs_opaque.3x 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_opaque.3x 2014-09-01 16:34:19.462887222 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2007-2013,2014 Free 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,12 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_opaque.3x,v 1.9 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: curs_opaque.3x,v 1.11 2014/03/15 19:24:23 tom Exp $ + .TH curs_opaque 3X "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .na + .hy 0 + .SH NAME +@@ -74,11 +78,13 @@ + .br + \fBWINDOW * wgetparent(const WINDOW *win);\fR + .br ++\fBint wgetdelay(const WINDOW *win);\fR ++.br + \fBint wgetscrreg(const WINDOW *win, int *top, int *bottom);\fR + .br + .SH DESCRIPTION + This implementation provides functions which return properties +-set in the WINDOW structure, allowing it to be ``opaque'' if ++set in the WINDOW structure, allowing it to be \*(``opaque\*('' if + the symbol \fBNCURSES_OPAQUE\fR is defined: + .TP 5 + \fBis_cleared\fR +@@ -119,12 +125,16 @@ + \fBis_syncok\fR + returns the value set in \fBsyncok\fR + .TP 5 ++\fBwgetdelay\fR ++returns the delay timeout as set in \fBwtimeout\fP. ++.TP 5 + \fBwgetparent\fR + returns the parent WINDOW pointer for subwindows, + or NULL for windows having no parent. + .TP 5 + \fBwgetscrreg\fR +-returns the top and bottom rows for the scrolling margin as set in \fBwsetscrreg\fP. ++returns the top and bottom rows for the scrolling margin ++as set in \fBwsetscrreg\fP. + .SH RETURN VALUE + These functions all return TRUE or FALSE, except as noted. + .SH NOTES +diff -Naur ncurses-5.9/man/curs_overlay.3x ncurses-5.9.patch/man/curs_overlay.3x +--- ncurses-5.9/man/curs_overlay.3x 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_overlay.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2013 Free 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_overlay.3x,v 1.16 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: curs_overlay.3x,v 1.17 2013/04/06 23:48:51 tom Exp $ + .TH curs_overlay 3X "" + .na + .hy 0 +@@ -48,18 +48,21 @@ + \fBint dmaxcol, int overlay);\fR + .SH DESCRIPTION + The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on +-top of \fIdstwin\fR. \fIscrwin\fR and \fIdstwin\fR are not required +-to be the same size; only text where the two windows overlap is +-copied. The difference is that \fBoverlay\fR is non-destructive ++top of \fIdstwin\fR. ++\fIscrwin\fR and \fIdstwin\fR are not required ++to be the same size; only text where the two windows overlap is copied. ++The difference is that \fBoverlay\fR is non-destructive + (blanks are not copied) whereas \fBoverwrite\fR is destructive. + .PP + The \fBcopywin\fR routine provides a finer granularity of control over the +-\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR +-routine, a rectangle is specified in the destination window, (\fIdminrow\fR, ++\fBoverlay\fR and \fBoverwrite\fR routines. ++As in the \fBprefresh\fR routine, ++a rectangle is specified in the destination window, (\fIdminrow\fR, + \fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner +-coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). If the +-argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in +-\fBoverlay\fR. ++coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). ++If the argument \fIoverlay\fR is \fBtrue\fR, ++then copying is non-destructive, ++as in \fBoverlay\fR. + .SH RETURN VALUE + Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR + (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful +@@ -75,7 +78,8 @@ + Note that \fBoverlay\fR and \fBoverwrite\fR may be macros. + .SH PORTABILITY + The XSI Curses standard, Issue 4 describes these functions (adding the const +-qualifiers). It further specifies their behavior in the presence of characters ++qualifiers). ++It further specifies their behavior in the presence of characters + with multibyte renditions (not yet supported in this implementation). + .SH SEE ALSO + \fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X) +diff -Naur ncurses-5.9/man/curs_sp_funcs.3x ncurses-5.9.patch/man/curs_sp_funcs.3x +--- ncurses-5.9/man/curs_sp_funcs.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_sp_funcs.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2010,2013 Free 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_sp_funcs.3x,v 1.5 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_sp_funcs.3x,v 1.6 2013/06/22 17:53:59 tom Exp $ + .TH curs_sp_funcs 3X "" + .na + .hy 0 +@@ -186,7 +186,7 @@ + .br + \fBint slk_attrset_sp(SCREEN*, const chtype);\fR + .br +-\fBint slk_attr_sp((SCREEN*);\fR ++\fBint slk_attr_sp(SCREEN*);\fR + .br + \fBint slk_clear_sp(SCREEN*);\fR + .br +diff -Naur ncurses-5.9/man/curs_termcap.3x ncurses-5.9.patch/man/curs_termcap.3x +--- ncurses-5.9/man/curs_termcap.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_termcap.3x 2014-09-01 16:33:22.347792108 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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,11 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_termcap.3x,v 1.26 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp $ + .TH curs_termcap 3X "" ++.de bP ++.IP \(bu 4 ++.. + .na + .hy 0 + .ds n 5 +@@ -75,11 +78,39 @@ + routines are emulated using the \fIterminfo\fR database. Thus, they + can only be used to query the capabilities of entries for which a + terminfo entry has been compiled. ++.SS INITIALIZATION + .PP + The \fBtgetent\fR routine loads the entry for \fIname\fR. +-It returns 1 on success, 0 if there is no such entry, and \-1 if the +-terminfo database could not be found. ++It returns: ++.RS 3 ++.TP 3 ++1 ++on success, ++.TP 3 ++0 ++if there is no such entry ++(or that it is a generic type, having too little information for curses ++applications to run), and ++.TP 3 ++\-1 ++if the terminfo database could not be found. ++.RE ++.PP ++This differs from the \fItermcap\fP library in two ways: ++.RS 3 ++.bP + The emulation ignores the buffer pointer \fIbp\fR. ++The \fItermcap\fP library would store a copy of the terminal ++description in the area referenced by this pointer. ++However, ncurses stores its terminal descriptions in compiled ++binary form, which is not the same thing. ++.bP ++There is a difference in return codes. ++The \fItermcap\fP library does not check if the terminal ++description is marked with the \fIgeneric\fP capability, ++or if the terminal description has cursor-addressing. ++.RE ++.SS CAPABILITY VALUES + .PP + The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR, + or zero if it is not available. +@@ -98,12 +129,14 @@ + \fBtgetflag\fR, + \fBtgetnum\fR and + \fBtgetstr\fR are compared in lookups. ++.SS FORMATTING CAPABILITIES + .PP + The \fBtgoto\fR routine instantiates the parameters into the given capability. + The output from this routine is to be passed to \fBtputs\fR. + .PP + The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual + page. It can retrieve capabilities by either termcap or terminfo name. ++.SS GLOBAL VARIABLES + .PP + The variables + \fBPC\fR, +@@ -165,8 +198,28 @@ + e.g., not distinguishing between input and output. + In particular, some applications are reported to declare and/or + modify \fBospeed\fR. ++.PP ++The comment that only the first two characters of the \fBid\fR parameter ++are used escapes many application developers. ++The original BSD 4.2 termcap library (and historical relics thereof) ++did not require a trailing null NUL on the parameter name passed ++to \fBtgetstr\fP, \fBtgetnum\fP and \fBtgetflag\fP. ++Some applications assume that the termcap interface does not require ++the trailing NUL for the parameter name. ++Taking into account these issues: ++.bP ++As a special case, ++\fBtgetflag\fP matched against a single-character identifier ++provided that was at the end of the terminal description. ++You should not rely upon this behavior in portable programs. ++This implementation disallows matches against single-character capability names. ++.bP ++This implementation disallows matches by the termcap interface against ++extended capability names which are longer than two characters. + .SH SEE ALSO + \fBcurses\fR(3X), + \fBterminfo\fR(\*n), + \fBterm_variables\fR(3X), + \fBputc\fR(3). ++.sp ++http://invisible-island.net/ncurses/tctest.html +diff -Naur ncurses-5.9/man/curs_terminfo.3x ncurses-5.9.patch/man/curs_terminfo.3x +--- ncurses-5.9/man/curs_terminfo.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_terminfo.3x 2014-09-01 16:33:22.348792109 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1999-2011,2013 Free 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,15 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_terminfo.3x,v 1.35 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_terminfo.3x,v 1.43 2013/07/20 19:29:59 tom Exp $ + .TH curs_terminfo 3X "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' ++.de bP ++.IP \(bu 4 ++.. + .ds n 5 + .na + .hy 0 +@@ -77,7 +84,7 @@ + .br + \fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR + .br +-\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(char));\fR ++\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR + .br + \fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR + .br +@@ -98,40 +105,54 @@ + capabilities, such as programming function keys. For all other + functionality, \fBcurses\fR routines are more suitable and their use is + recommended. ++.SS Initialization + .PP + Initially, \fBsetupterm\fR should be called. Note that + \fBsetupterm\fR is automatically called by \fBinitscr\fR and + \fBnewterm\fR. This defines the set of terminal-dependent variables + [listed in \fBterminfo\fR(\*n)]. ++.PP ++Each initialization routine provides applications with the ++terminal capabilities either directly (via header definitions), ++or by special functions. ++The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this ++order) to get the definitions for these strings, numbers, and flags. ++.PP + The \fBterminfo\fR variables + \fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as + follows: +-.RS +-.PP ++.bP + If \fBuse_env(FALSE)\fR has been called, values for + \fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used. +-.PP ++.bP + Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR + exist, their values are used. If these environment variables do not + exist and the program is running in a window, the current window size + is used. Otherwise, if the environment variables do not exist, the + values for \fBlines\fR and \fBcolumns\fR specified in the + \fBterminfo\fR database are used. +-.RE + .PP +-The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this +-order) to get the definitions for these strings, numbers, and flags. + Parameterized strings should be passed through \fBtparm\fR to instantiate them. + All \fBterminfo\fR strings [including the output of \fBtparm\fR] should be printed +-with \fBtputs\fR or \fBputp\fR. Call the \fBreset_shell_mode\fR to restore the +-tty modes before exiting [see \fBcurs_kernel\fR(3X)]. Programs which use +-cursor addressing should output \fBenter_ca_mode\fR upon startup and should +-output \fBexit_ca_mode\fR before exiting. Programs desiring shell escapes +-should call +-.PP +-\fBreset_shell_mode\fR and output \fBexit_ca_mode\fR before the shell +-is called and should output \fBenter_ca_mode\fR and call +-\fBreset_prog_mode\fR after returning from the shell. ++with \fBtputs\fR or \fBputp\fR. ++Call \fBreset_shell_mode\fR to restore the ++tty modes before exiting [see \fBcurs_kernel\fR(3X)]. ++.PP ++Programs which use ++cursor addressing should ++.bP ++output \fBenter_ca_mode\fR upon startup and ++.bP ++output \fBexit_ca_mode\fR before exiting. ++.PP ++Programs which execute shell subprocesses should ++.bP ++call \fBreset_shell_mode\fR and ++output \fBexit_ca_mode\fR before the shell ++is called and ++.bP ++output \fBenter_ca_mode\fR and ++call \fBreset_prog_mode\fR after returning from the shell. + .PP + The \fBsetupterm\fR routine reads in the \fBterminfo\fR database, + initializing the \fBterminfo\fR structures, but does not set up the +@@ -146,19 +167,23 @@ + A return value of \fBOK\fR combined with status of \fB1\fR in \fIerrret\fR + is normal. + If \fBERR\fR is returned, examine \fIerrret\fR: +-.RS + .TP 5 + .B 1 + means that the terminal is hardcopy, cannot be used for curses applications. ++.IP ++\fBsetupterm\fP determines if the entry is a hardcopy type by ++checking the \fIhc\fP (\fIhardcopy\fP) capability. + .TP 5 + .B 0 + means that the terminal could not be found, + or that it is a generic type, + having too little information for curses applications to run. ++.IP ++\fBsetupterm\fP determines if the entry is a generic type by ++checking the \fIgn\fP (\fIgeneric\fP) capability. + .TP 5 + .B \-1 + means that the \fBterminfo\fR database could not be found. +-.RE + .PP + If \fIerrret\fR is + null, \fBsetupterm\fR prints an error message upon finding an error +@@ -168,18 +193,33 @@ + .sp + which uses all the defaults and sends the output to \fBstdout\fR. + .PP +-The \fBsetterm\fR routine is being replaced by \fBsetupterm\fR. The call: ++The \fBsetterm\fR routine was replaced by \fBsetupterm\fR. The call: + .sp + \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR + .sp + provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR. +-The \fBsetterm\fR routine is included here for BSD compatibility, and ++The \fBsetterm\fR routine is provided for BSD compatibility, and + is not recommended for new programs. ++.\" *************************************************************************** ++.SS The Terminal State ++.PP ++The \fBsetupterm\fR routine stores its information about the terminal ++in a \fBTERMINAL\fP structure pointed to by the global variable \fBcur_term\fP. ++If it detects an error, ++or decides that the terminal is unsuitable (hardcopy or generic), ++it discards this information, ++making it not available to applications. ++.PP ++If \fBsetupterm\fP is called repeatedly for the same terminal type, ++it will reuse the information. ++It maintains only one copy of a given terminal's capabilities in memory. ++If it is called for different terminal types, ++\fBsetupterm\fP allocates new storage for each set of terminal capabilities. + .PP +-The \fBset_curterm\fR routine sets the variable \fBcur_term\fR to ++The \fBset_curterm\fR routine sets \fBcur_term\fR to + \fInterm\fR, and makes all of the \fBterminfo\fR boolean, numeric, and +-string variables use the values from \fInterm\fR. It returns the old value +-of \fBcur_term\fR. ++string variables use the values from \fInterm\fR. ++It returns the old value of \fBcur_term\fR. + .PP + The \fBdel_curterm\fR routine frees the space pointed to by + \fIoterm\fR and makes it available for further use. If \fIoterm\fR is +@@ -189,11 +229,14 @@ + .PP + The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR, + except that it is called after restoring memory to a previous state (for +-example, when reloading a game saved as a core image dump). It assumes that +-the windows and the input and output options are the same as when memory was +-saved, but the terminal type and baud rate may be different. Accordingly, +-it saves various tty state bits, calls \fBsetupterm\fP, +-and then restores the bits. ++example, when reloading a game saved as a core image dump). ++\fBrestartterm\fP assumes that the windows and the input and output options ++are the same as when memory was saved, ++but the terminal type and baud rate may be different. ++Accordingly, \fBrestartterm\fP saves various tty state bits, ++calls \fBsetupterm\fP, and then restores the bits. ++.\" *************************************************************************** ++.SS Formatting Output + .PP + The \fBtparm\fR routine instantiates the string \fIstr\fR with + parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR +@@ -202,6 +245,8 @@ + \fBtiparm\fP is a newer form of \fBtparm\fP which uses \fI<stdarg.h>\fP + rather than a fixed-parameter list. + Its numeric parameters are integers (int) rather than longs. ++.\" *************************************************************************** ++.SS Output Functions + .PP + The \fBtputs\fR routine applies padding information to the string + \fIstr\fR and outputs it. The \fIstr\fR must be a terminfo string +@@ -235,26 +280,48 @@ + .PP + The \fBmvcur\fR routine provides low-level cursor motion. It takes + effect immediately (rather than at the next refresh). ++.\" *************************************************************************** ++.SS Terminal Capability Functions + .PP + The \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return + the value of the capability corresponding to the \fBterminfo\fR + \fIcapname\fR passed to them, such as \fBxenl\fR. ++The \fIcapname\fR for each capability is given in the table column entitled ++\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n). + .PP +-The \fBtigetflag\fR routine returns the value \fB\-1\fR if +-\fIcapname\fR is not a boolean capability, +-or \fB0\fR if it is canceled or absent from the terminal description. +-.PP +-The \fBtigetnum\fR routine returns the value \fB\-2\fR if +-\fIcapname\fR is not a numeric capability, +-or \fB\-1\fR if it is canceled or absent from the terminal description. ++These routines return special values to denote errors. + .PP +-The \fBtigetstr\fR routine returns the value \fB(char *)\-1\fR ++The \fBtigetflag\fR routine returns ++.TP ++\fB\-1\fR ++if \fIcapname\fR is not a boolean capability, ++or ++.TP ++\fB0\fR ++if it is canceled or absent from the terminal description. ++.PP ++The \fBtigetnum\fR routine returns ++.TP ++\fB\-2\fR ++if \fIcapname\fR is not a numeric capability, or ++.TP ++\fB\-1\fR ++if it is canceled or absent from the terminal description. ++.PP ++The \fBtigetstr\fR routine returns ++.TP ++\fB(char *)\-1\fR + if \fIcapname\fR is not a string capability, +-or \fB0\fR if it is canceled or absent from the terminal description. +-.PP +-The \fIcapname\fR for each capability is given in the table column entitled +-\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n). +-.sp ++or ++.TP ++\fB0\fR ++if it is canceled or absent from the terminal description. ++.\" *************************************************************************** ++.SS Terminal Capability Names ++These null-terminated arrays contain ++the short terminfo names ("codes"), ++the \fBtermcap\fR names, and the long terminfo names ("fnames") ++for each of the predefined \fBterminfo\fR variables: + .RS + \fBchar *boolnames[]\fR, \fB*boolcodes[]\fR, \fB*boolfnames[]\fR + .sp +@@ -262,10 +329,6 @@ + .sp + \fBchar *strnames[]\fR, \fB*strcodes[]\fR, \fB*strfnames[]\fR + .RE +-.PP +-These null-terminated arrays contain the \fIcapnames\fR, the +-\fBtermcap\fR codes, and the full C names, for each of the +-\fBterminfo\fR variables. + .SH RETURN VALUE + Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR + (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful +@@ -275,7 +338,7 @@ + .PP + X/Open defines no error conditions. + In this implementation +-.RS ++.RS 5 + .TP 5 + \fBdel_curterm\fP + returns an error +@@ -300,19 +363,41 @@ + X/Open states that \fBtputs\fP ignores the return value + of the output function \fIputc\fP. + .RE +-.SH NOTES +-The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR. +-It may be useful when you want to test for terminal capabilities without +-committing to the allocation of storage involved in \fBinitscr\fR. +-.PP +-Note that \fBvidattr\fR and \fBvidputs\fR may be macros. + .SH PORTABILITY ++X/Open notes that \fBvidattr\fR and \fBvidputs\fR may be macros. ++.PP + The function \fBsetterm\fR is not described by X/Open and must +-be considered non-portable. All other functions are as described by X/Open. ++be considered non-portable. ++All other functions are as described by X/Open. + .PP + \fBsetupterm\fP copies the terminal name to the array \fBttytype\fP. + This is not part of X/Open Curses, but is assumed by some applications. + .PP ++If configured to use the terminal-driver, ++e.g., for the MinGW port, ++.bP ++\fBsetupterm\fP interprets a missing/empty TERM variable as the ++special value \*(``unknown\*(''. ++.bP ++\fBsetupterm\fP allows explicit use of the ++the windows console driver by checking if $TERM is set to ++\*(``#win32con\*('' or an abbreviation of that string. ++.PP ++Older versions of \fBncurses\fP assumed that the file descriptor passed to ++\fBsetupterm\fP from \fBinitscr\fP or \fBnewterm\fP uses buffered I/O, ++and would write to the corresponding stream. ++In addition to the limitation that the terminal was left in block-buffered ++mode on exit (like SystemV curses), ++it was problematic because \fBncurses\fP ++did not allow a reliable way to cleanup on receiving SIGTSTP. ++The current version uses output buffers managed directly by \fBncurses\fP. ++Some of the low-level functions described in this manual page write ++to the standard output. ++They are not signal-safe. ++The high-level functions in \fBncurses\fP use ++alternate versions of these functions ++using the more reliable buffering scheme. ++.PP + In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and + returns \fBOK\fR or \fBERR\fR. We have chosen to implement the X/Open Curses + semantics. +@@ -332,12 +417,12 @@ + zeroes are fine for this purpose. + .PP + In response to comments by Thomas E. Dickey, +-X/Open Curses Issue 7 proposed the \fBtiparam\fP function in mid-2009. ++X/Open Curses Issue 7 proposed the \fBtiparm\fP function in mid-2009. + .PP + X/Open notes that after calling \fBmvcur\fR, the curses state may not match the + actual terminal state, and that an application should touch and refresh + the window before resuming normal curses calls. +-Both ncurses and System V Release 4 curses implement \fBmvcur\fR using ++Both \fBncurses\fP and System V Release 4 curses implement \fBmvcur\fR using + the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR. + So though it is documented as a terminfo function, + \fBmvcur\fR is really a curses function which is not well specified. +@@ -346,8 +431,12 @@ + This implementation allows the caller to use \-1's for the old ordinates. + In that case, the old location is unknown. + .PP +-Extended terminal capability names, e.g., as defined by \fBtic\ \-x\fP, +-are not stored in the arrays described in this section. ++Other implementions may not declare the capability name arrays. ++Some provide them without declaring them. ++X/Open does not specify them. ++.PP ++Extended terminal capability names, e.g., as defined by \fB@TIC@\ \-x\fP, ++are not stored in the arrays described here. + .SH SEE ALSO + \fBcurses\fR(3X), + \fBcurs_initscr\fR(3X), +diff -Naur ncurses-5.9/man/curs_threads.3x ncurses-5.9.patch/man/curs_threads.3x +--- ncurses-5.9/man/curs_threads.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_threads.3x 2014-09-01 16:34:19.463887194 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2008,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2008-2012,2014 Free 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_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_threads.3x,v 1.20 2014/03/15 19:25:28 tom Exp $ + .TH curs_threads 3X "" + .de bP + .IP \(bu 4 +@@ -51,9 +51,9 @@ + .br + \fBint set_tabsize(int size);\fR + .br +-\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR ++\fBint use_screen(SCREEN *scr, NCURSES_SCREEN_CB func, void *data);\fR + .br +-\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR ++\fBint use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data);\fR + .br + .SH DESCRIPTION + This implementation can be configured to provide rudimentary support +@@ -540,6 +540,7 @@ + wget_wstr/screen (input-operation) + wgetbkgrnd/window + wgetch/screen (input-operation) ++wgetdelay/window + wgetn_wstr/screen (input-operation) + wgetnstr/screen (input-operation) + wgetparent/window +diff -Naur ncurses-5.9/man/curs_util.3x ncurses-5.9.patch/man/curs_util.3x +--- ncurses-5.9/man/curs_util.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_util.3x 2014-09-01 16:33:22.348792109 +0200 +@@ -1,5 +1,6 @@ ++'\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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 +27,12 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_util.3x,v 1.32 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_util.3x,v 1.37 2013/07/20 19:43:45 tom Exp $ + .TH curs_util 3X "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .de bP + .IP \(bu 4 + .. +@@ -44,6 +49,7 @@ + \fBputwin\fR, + \fBunctrl\fR, + \fBuse_env\fR, ++\fBuse_tioctl\fR, + \fBwunctrl\fR \- miscellaneous \fBcurses\fR utility routines + .ad + .hy +@@ -64,6 +70,8 @@ + .br + \fBvoid use_env(bool f);\fR + .br ++\fBvoid use_tioctl(bool f);\fR ++.br + \fBint putwin(WINDOW *win, FILE *filep);\fR + .br + \fBWINDOW *getwin(FILE *filep);\fR +@@ -80,10 +88,12 @@ + The corresponding \fBwunctrl\fR returns a printable representation of + a wide character. + .PP +-The \fBkeyname\fR routine returns a character string corresponding to the key \fIc\fR: ++The \fBkeyname\fR routine returns a character string ++corresponding to the key \fIc\fR: + .RS 3 + .bP +-Printable characters are displayed as themselves, e.g., a one-character string containing the key. ++Printable characters are displayed as themselves, ++e.g., a one-character string containing the key. + .bP + Control characters are displayed in the \fB^\fR\fIX\fR notation. + .bP +@@ -123,16 +133,70 @@ + The limitation arises because the \fBfilter\fP routine modifies the + in-memory copy of the terminal information. + .PP +-The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or +-\fBnewterm\fR are called. When called with \fBFALSE\fR as an +-argument, the values of \fBlines\fR and \fBcolumns\fR specified in the +-\fIterminfo\fR database will be used, even if environment variables +-\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if +-\fBcurses\fR is running in a window (in which case default behavior +-would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are +-not set). +-Note that setting \fBLINES\fR or \fBCOLUMNS\fR overrides the +-corresponding size which may be obtained from the operating system. ++The \fBuse_env\fR routine, if used, ++should be called before \fBinitscr\fR or ++\fBnewterm\fR are called ++(because those compute the screen size). ++It modifies the way \fBncurses\fP treats environment variables ++when determining the screen size. ++.bP ++Normally ncurses looks first at the terminal database for the screen size. ++.IP ++If \fBuse_env\fP was called with \fBFALSE\fP for parameter, ++it stops here unless ++If \fBuse_tioctl\fP was also called with \fBTRUE\fP for parameter. ++.bP ++Then it asks for the screen size via operating system calls. ++If successful, ++it overrides the values from the terminal database. ++.bP ++Finally (unless \fBuse_env\fP was called with \fBFALSE\fP parameter), ++ncurses examines the \fBLINES\fR or \fBCOLUMNS\fR environment variables, ++using a value in those to override the results ++from the operating system or terminal database. ++.IP ++Ncurses also updates the screen size in response to SIGWINCH, ++unless overridden by the \fBLINES\fR or \fBCOLUMNS\fR environment variables, ++.PP ++The \fBuse_tioctl\fR routine, if used, ++should be called before \fBinitscr\fR or \fBnewterm\fR are called ++(because those compute the screen size). ++After \fBuse_tioctl\fR is called with \fBTRUE\fR as an argument, ++ncurses modifies the last step in its computation of screen size as follows: ++.bP ++checks if the \fBLINES\fR and \fBCOLUMNS\fR environment variables ++are set to a number greater than zero. ++.bP ++for each, ncurses updates the corresponding environment variable ++with the value that it has obtained via operating system call ++or from the terminal database. ++.bP ++ncurses re-fetches the value of the environment variables so that ++it is still the environment variables which set the screen size. ++.PP ++The \fBuse_env\fP and \fBuse_tioctl\fP routines combine as ++summarized here: ++.TS ++center tab(/); ++l l l ++_ _ _ ++lw7 lw7 lw40. ++\fIuse_env\fR/\fIuse_tioctl\fR/\fISummary\fR ++TRUE/FALSE/T{ ++This is the default behavior. ++ncurses uses operating system calls ++unless overridden by $LINES or $COLUMNS environment variables. ++T} ++TRUE/TRUE/T{ ++ncurses updates $LINES and $COLUMNS based on operating system calls. ++T} ++FALSE/TRUE/T{ ++ncurses ignores $LINES and $COLUMNS, uses operating system calls to obtain size. ++T} ++FALSE/FALSE/T{ ++ncurses relies on the terminal database to determine size. ++T} ++.TE + .PP + The \fBputwin\fR routine writes all data associated with window \fIwin\fR into + the file to which \fIfilep\fR points. This information can be later retrieved +@@ -145,7 +209,8 @@ + The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause + in output. This routine should not be used extensively because + padding characters are used rather than a CPU pause. +-If no padding character is specified, this uses \fBnapms\fR to perform the delay. ++If no padding character is specified, ++this uses \fBnapms\fR to perform the delay. + .PP + The \fBflushinp\fR routine throws away any typeahead that has been typed by the + user and has not yet been read by the program. +@@ -183,12 +248,13 @@ + If \fBuse_legacy_coding\fP has been called with a \fB2\fP parameter, + \fBunctrl\fP returns the parameter, i.e., a one-character string with + the parameter as the first character. +-Otherwise, it returns ``~@'', ``~A'', etc., analogous to ``^@'', ``^A'', C0 controls. ++Otherwise, it returns \*(``~@\*('', \*(``~A\*('', etc., ++analogous to \*(``^@\*('', \*(``^A\*('', C0 controls. + .IP + X/Open Curses does not document whether \fBunctrl\fP can be called before + initializing curses. + This implementation permits that, +-and returns the ``~@'', etc., values in that case. ++and returns the \*(``~@\*('', etc., values in that case. + .bP + parameter values outside the 0 to 255 range. + \fBunctrl\fP returns a null pointer. +@@ -214,17 +280,17 @@ + Likewise, the \fBmeta\fP function allows the caller to change the + output of \fBkeyname\fP, i.e., + it determines whether to use the `M\-' prefix +-for ``meta'' keys (codes in the range 128 to 255). ++for \*(``meta\*('' keys (codes in the range 128 to 255). + Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after + curses is initialized. + X/Open Curses does not document the treatment of codes 128 to 159. +-When treating them as ``meta'' keys ++When treating them as \*(``meta\*('' keys + (or if \fBkeyname\fP is called before initializing curses), +-this implementation returns strings ``M\-^@'', ``M\-^A'', etc. ++this implementation returns strings \*(``M\-^@\*('', \*(``M\-^A\*('', etc. + .PP + The \fBkeyname\fP function may return the names of user-defined + string capabilities which are defined in the terminfo entry via the \fB\-x\fP +-option of \fBtic\fP. ++option of \fB@TIC@\fP. + This implementation automatically assigns at run-time keycodes to + user-defined strings which begin with "k". + The keycodes start at KEY_MAX, but are not guaranteed to be +@@ -233,8 +299,8 @@ + The \fBuse_extended_names\fP function controls whether this data is + loaded when the terminal description is read by the library. + .PP +-The \fBnofilter\fP routine is specific to ncurses. +-It was not supported on Version 7, BSD or System V implementations. ++The \fBnofilter\fP and \fBuse_tioctl\fP routines are specific to ncurses. ++They were not supported on Version 7, BSD or System V implementations. + It is recommended that any code depending on ncurses extensions + be conditioned using NCURSES_VERSION. + .SH SEE ALSO +diff -Naur ncurses-5.9/man/curs_variables.3x ncurses-5.9.patch/man/curs_variables.3x +--- ncurses-5.9/man/curs_variables.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_variables.3x 2014-09-01 16:33:22.348792109 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2010,2013 Free 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_variables.3x,v 1.4 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_variables.3x,v 1.6 2013/12/21 18:41:32 tom Exp $ + .TH curs_variables 3X "" + .de bP + .IP \(bu 4 +@@ -74,7 +74,7 @@ + A more complete description is given in the \fBcurses\fP(3X) manual page. + .PP + Depending on the configuration, these may be actual variables, +-or macros (see \fBcurs_threads\fR(3X)) ++or macros (see \fBcurs_threads\fR(3X) and \fBcurs_opaque\fR(3X)) + which provide read-only access to \fIcurses\fP's state. + In either case, applications should treat them as read-only to avoid + confusing the library. +@@ -129,7 +129,8 @@ + not provided in most other implementations of curses. + .SH SEE ALSO + \fBcurses\fR(3X), ++\fBcurs_opaque\fR(3X), ++\fBcurs_terminfo\fR(3X), + \fBcurs_threads\fR(3X), + \fBterm_variables\fR(3X), +-\fBterminfo\fR(3X), + \fBterminfo\fR(\*n). +diff -Naur ncurses-5.9/man/curs_window.3x ncurses-5.9.patch/man/curs_window.3x +--- ncurses-5.9/man/curs_window.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/curs_window.3x 2014-09-01 16:33:22.348792109 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2014 Free 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_window.3x,v 1.17 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: curs_window.3x,v 1.18 2014/03/01 23:36:38 tom Exp $ + .TH curs_window 3X "" + .na + .hy 0 +@@ -47,17 +47,20 @@ + .SH SYNOPSIS + \fB#include <curses.h>\fR + .sp +-\fBWINDOW *newwin(int nlines, int ncols, int begin_y,\fR +- \fBint begin_x);\fR ++\fBWINDOW *newwin(\fR ++ \fBint nlines, int ncols,\fR ++ \fBint begin_y, int begin_x);\fR + .br + \fBint delwin(WINDOW *win);\fR + .br + \fBint mvwin(WINDOW *win, int y, int x);\fR + .br +-\fBWINDOW *subwin(WINDOW *orig, int nlines, int ncols,\fR ++\fBWINDOW *subwin(WINDOW *orig,\fR ++ \fBint nlines, int ncols,\fR + \fBint begin_y, int begin_x);\fR + .br +-\fBWINDOW *derwin(WINDOW *orig, int nlines, int ncols,\fR ++\fBWINDOW *derwin(WINDOW *orig,\fR ++ \fBint nlines, int ncols,\fR + \fBint begin_y, int begin_x);\fR + .br + \fBint mvderwin(WINDOW *win, int par_y, int par_x);\fR +@@ -74,53 +77,70 @@ + .br + .SH DESCRIPTION + Calling \fBnewwin\fR creates and returns a pointer to a new window with the +-given number of lines and columns. The upper left-hand corner of the window is +-at line \fIbegin\fR_\fIy\fR, column \fIbegin\fR_\fIx\fR. If either +-\fInlines\fR or \fIncols\fR is zero, they default to \fBLINES \-\fR +-\fIbegin\fR_\fIy\fR and \fBCOLS \-\fR \fIbegin\fR_\fIx\fR. A new full-screen +-window is created by calling \fBnewwin(0,0,0,0)\fR. ++given number of lines and columns. ++The upper left-hand corner of the window is ++at ++.RS ++line \fIbegin\fR_\fIy\fR, ++.br ++column \fIbegin\fR_\fIx\fR ++.RE ++.PP ++If either ++\fInlines\fR or \fIncols\fR is zero, they default to ++.RS ++\fBLINES \-\fR \fIbegin\fR_\fIy\fR and ++.br ++\fBCOLS \-\fR \fIbegin\fR_\fIx\fR. ++.RE ++.PP ++A new full-screen window is created by calling \fBnewwin(0,0,0,0)\fR. + .PP + Calling \fBdelwin\fR deletes the named window, freeing all memory + associated with it (it does not actually erase the window's screen +-image). Subwindows must be deleted before the main window can be +-deleted. ++image). ++Subwindows must be deleted before the main window can be deleted. + .PP + Calling \fBmvwin\fR moves the window so that the upper left-hand +-corner is at position (\fIx\fR, \fIy\fR). If the move would cause the +-window to be off the screen, it is an error and the window is not +-moved. Moving subwindows is allowed, but should be avoided. ++corner is at position (\fIx\fR, \fIy\fR). ++If the move would cause the window to be off the screen, ++it is an error and the window is not moved. ++Moving subwindows is allowed, but should be avoided. + .PP + Calling \fBsubwin\fR creates and returns a pointer to a new window +-with the given number of lines, \fInlines\fR, and columns, +-\fIncols\fR. The window is at position (\fIbegin\fR_\fIy\fR, +-\fIbegin\fR_\fIx\fR) on the screen. (This position is relative to the +-screen, and not to the window \fIorig\fR.) The window is made in the +-middle of the window \fIorig\fR, so that changes made to one window +-will affect both windows. The subwindow shares memory with the window +-\fIorig\fR. When using this routine, it is necessary to call ++with the given number of lines, \fInlines\fR, and columns, \fIncols\fR. ++The window is at position (\fIbegin\fR_\fIy\fR, ++\fIbegin\fR_\fIx\fR) on the screen. ++The subwindow shares memory with the window \fIorig\fR, ++so that changes made to one window ++will affect both windows. ++When using this routine, it is necessary to call + \fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling + \fBwrefresh\fR on the subwindow. + .PP + Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that + \fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin +-of the window \fIorig\fR rather than the screen. There is no +-difference between the subwindows and the derived windows. ++of the window \fIorig\fR rather than the screen. ++There is no difference between the subwindows and the derived windows. + .PP + Calling \fBmvderwin\fR moves a derived window (or subwindow) +-inside its parent window. The screen-relative parameters of the +-window are not changed. This routine is used to display different ++inside its parent window. ++The screen-relative parameters of the window are not changed. ++This routine is used to display different + parts of the parent window at the same physical position on the + screen. + .PP + Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR. + .PP + Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are +-changed in \fIwin\fR. If \fBsyncok\fR is called with second argument ++changed in \fIwin\fR. ++If \fBsyncok\fR is called with second argument + \fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a + change in the window. + .PP + The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been +-touched in any of its ancestor windows. This routine is called by ++touched in any of its ancestor windows. ++This routine is called by + \fBwrefresh\fR, so it should almost never be necessary to call it manually. + .PP + The routine \fBwcursyncup\fR updates the current cursor position of all the +@@ -135,11 +155,18 @@ + .PP + X/Open defines no error conditions. + In this implementation +-.RS + .TP 5 + \fBdelwin\fR + returns an error if the window pointer is null, or + if the window is the parent of another window. ++.TP 5 ++\fBderwin\fP ++returns an error if the parent window pointer is null, or ++if any of its ordinates or dimensions is negative, or ++if the resulting window does not fit inside the parent window. ++.TP 5 ++\fBdupwin\fP ++returns an error if the window pointer is null. + .IP + This implementation also maintains a list of windows, + and checks that the pointer passed to \fBdelwin\fP is one that +@@ -156,10 +183,23 @@ + if the window is really a pad, or + if some part of the window would be placed off-screen. + .TP 5 ++\fBnewwin\fP ++will fail if either of its beginning ordinates is negative, or ++if either the number of lines or columns is negative. ++.TP 5 + \fBsyncok\fP + returns an error + if the window pointer is null. +-.RE ++.TP 5 ++\fBsubwin\fP ++returns an error if the parent window pointer is null, or ++if any of its ordinates or dimensions is negative, or ++if the resulting window does not fit inside the parent window. ++.PP ++The functions which return a window pointer ++may also fail if there is insufficient memory for its data structures. ++Any of these functions will fail if the screen has not been initialized, ++i.e., with \fBinitscr\fP or \fBnewterm\fP. + .SH NOTES + If many small changes are made to the window, the \fBwsyncup\fR option could + degrade performance. +@@ -171,11 +211,12 @@ + incompletely implemented, and not well tested. + .PP + The System V curses documentation is very unclear about what \fBwsyncup\fR +-and \fBwsyncdown\fR actually do. It seems to imply that they are only ++and \fBwsyncdown\fR actually do. ++It seems to imply that they are only + supposed to touch exactly those lines that are affected by ancestor changes. + The language here, and the behavior of the \fBcurses\fR implementation, +-is patterned on the XPG4 curses standard. The weaker XPG4 spec may result +-in slower updates. ++is patterned on the XPG4 curses standard. ++The weaker XPG4 spec may result in slower updates. + .SH PORTABILITY + The XSI Curses standard, Issue 4 describes these functions. + .SH SEE ALSO +diff -Naur ncurses-5.9/man/form_field.3x ncurses-5.9.patch/man/form_field.3x +--- ncurses-5.9/man/form_field.3x 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/form_field.3x 2014-09-01 16:33:22.348792109 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2012 Free 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 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: form_field.3x,v 1.10 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: form_field.3x,v 1.11 2012/11/03 23:03:59 tom Exp $ + .TH form_field 3X "" + .SH NAME + \fBform_field\fR \- make and break connections between fields and forms +@@ -52,7 +52,7 @@ + .PP + The function \fBmove_field\fR moves the given field (which must be disconnected) + to a specified location on the screen. +-.SH RETURN VALUES ++.SH RETURN VALUE + The function \fBform_fields\fR returns a pointer (which may be \fBNULL\fR). + It does not set errno. + .PP +diff -Naur ncurses-5.9/man/form_variables.3x ncurses-5.9.patch/man/form_variables.3x +--- ncurses-5.9/man/form_variables.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/form_variables.3x 2014-09-01 16:33:22.349792111 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2010,2013 Free 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: form_variables.3x,v 1.3 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: form_variables.3x,v 1.4 2013/06/22 17:58:32 tom Exp $ + .TH form_variables 3X "" + .ds n 5 + .na +@@ -45,7 +45,6 @@ + .SH SYNOPSIS + .nf + \fB#include <form.h>\fR +-.br + .PP + \fBFIELDTYPE * TYPE_ALNUM;\fR + \fBFIELDTYPE * TYPE_ALPHA;\fR +@@ -54,7 +53,6 @@ + \fBFIELDTYPE * TYPE_IPV4;\fR + \fBFIELDTYPE * TYPE_NUMERIC;\fR + \fBFIELDTYPE * TYPE_REGEXP;\fR +-.br + .fi + .SH DESCRIPTION + These are building blocks for the form library, +diff -Naur ncurses-5.9/man/infocmp.1m ncurses-5.9.patch/man/infocmp.1m +--- ncurses-5.9/man/infocmp.1m 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/infocmp.1m 2014-09-01 16:33:22.349792111 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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,9 +27,12 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: infocmp.1m,v 1.46 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: infocmp.1m,v 1.53 2013/02/02 22:07:35 tom Exp $ + .TH @INFOCMP@ 1M "" + .ds n 5 ++.de bP ++.IP \(bu 4 ++.. + .ds d @TERMINFO@ + .SH NAME + \fB@INFOCMP@\fR \- compare or print out \fIterminfo\fR descriptions +@@ -37,10 +40,12 @@ + \fB@INFOCMP@\fR [\fB\-\ + 1\ + C\ ++D\ + E\ + F\ + G\ + I\ ++K\ + L\ + T\ + U\ +@@ -69,32 +74,40 @@ + \fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other + terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the + \fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the +-binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean ++binary file (\fBterm\fR) in a variety of formats. ++In all cases, the boolean + fields will be printed first, followed by the numeric fields, followed by the + string fields. + .SS Default Options + If no options are specified and zero or one \fItermnames\fR are specified, the +-\fB\-I\fR option will be assumed. If more than one \fItermname\fR is specified, ++\fB\-I\fR option will be assumed. ++If more than one \fItermname\fR is specified, + the \fB\-d\fR option will be assumed. + .SS Comparison Options [\-d] [\-c] [\-n] + \fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal + \fItermname\fR with each of the descriptions given by the entries for the other +-terminal's \fItermnames\fR. If a capability is defined for only one of the ++terminal's \fItermnames\fR. ++If a capability is defined for only one of the + terminals, the value returned will depend on the type of the capability: + \fBF\fR for boolean variables, \fB\-1\fR for integer variables, and \fBNULL\fR + for string variables. + .PP + The \fB\-d\fR option produces a list of each capability that is different +-between two entries. This option is useful to show the difference between two ++between two entries. ++This option is useful to show the difference between two + entries, created by different people, for the same or similar terminals. + .PP + The \fB\-c\fR option produces a list of each capability that is common between +-two entries. Capabilities that are not set are ignored. This option can be ++two or more entries. ++Capabilities that are not set are ignored. ++This option can be + used as a quick check to see if the \fB\-u\fR option is worth using. + .PP +-The \fB\-n\fR option produces a list of each capability that is in neither +-entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR +-will be used for both of the \fItermnames\fR. This can be used as a quick ++The \fB\-n\fR option produces a list of each capability that is in none of ++the given entries. ++If no \fItermnames\fR are given, the environment variable \fBTERM\fR ++will be used for both of the \fItermnames\fR. ++This can be used as a quick + check to see if anything was left out of a description. + .SS Source Listing Options [\-I] [\-L] [\-C] [\-r] + The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce a source listing for +@@ -107,6 +120,7 @@ + \fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR> + \fB\-C\fR/use the \fBtermcap\fR names + \fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form ++\fB\-K\fR/modifies the \fB\-C\fP option, improving BSD-compatibility. + .TE + .PP + If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be +@@ -114,26 +128,48 @@ + .PP + The source produced by the \fB\-C\fR option may be used directly as a + \fBtermcap\fR entry, but not all parameterized strings can be changed to +-the \fBtermcap\fR format. \fB@INFOCMP@\fR will attempt to convert most of the ++the \fBtermcap\fR format. ++\fB@INFOCMP@\fR will attempt to convert most of the + parameterized information, and anything not converted will be plainly marked in +-the output and commented out. These should be edited by hand. ++the output and commented out. ++These should be edited by hand. ++.PP ++For best results when converting to \fBtermcap\fP format, ++you should use both \fB\-C\fP and \fB\-r\fP. ++Normally a termcap description is limited to 1023 bytes. ++@INFOCMP@ trims away less essential parts to make it fit. ++If you are converting to one of the (rare) termcap implementations ++which accept an unlimited size of termcap, ++you may want to add the \fB\-T\fP option. ++More often however, you must help the termcap implementation, ++and trim excess whitespace (use the \fB\-0\fP option for that). + .PP + All padding information for strings will be collected together and placed +-at the beginning of the string where \fBtermcap\fR expects it. Mandatory ++at the beginning of the string where \fBtermcap\fR expects it. ++Mandatory + padding (padding information with a trailing '/') will become optional. + .PP + All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which +-are derivable from other \fBterminfo\fR variables, will be output. Not all ++are derivable from other \fBterminfo\fR variables, will be output. ++Not all + \fBterminfo\fR capabilities will be translated; only those variables which were +-part of \fBtermcap\fR will normally be output. Specifying the \fB\-r\fR option ++part of \fBtermcap\fR will normally be output. ++Specifying the \fB\-r\fR option + will take off this restriction, allowing all capabilities to be output in + \fItermcap\fR form. ++Normally you would use both the \fB\-C\fP and \fB\-r\fP options. ++The actual format used incorporates some improvements for escaped characters ++from terminfo format. ++For a stricter BSD-compatible translation, use the \fB\-K\fR option ++rather than \fB\-C\fP. + .PP + Note that because padding is collected to the beginning of the capability, not +-all capabilities are output. Mandatory padding is not supported. Because ++all capabilities are output. ++Mandatory padding is not supported. ++Because + \fBtermcap\fR strings are not as flexible, it is not always possible to convert +-a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A +-subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format ++a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. ++A subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format + will not necessarily reproduce the original \fBterminfo\fR + source. + .PP +@@ -156,27 +192,33 @@ + .SS Use= Option [\-u] + The \fB\-u\fR option produces a \fBterminfo\fR source description of the first + terminal \fItermname\fR which is relative to the sum of the descriptions given +-by the entries for the other terminals \fItermnames\fR. It does this by ++by the entries for the other terminals \fItermnames\fR. ++It does this by + analyzing the differences between the first \fItermname\fR and the other + \fItermnames\fR and producing a description with \fBuse=\fR fields for the +-other terminals. In this manner, it is possible to retrofit generic terminfo +-entries into a terminal's description. Or, if two similar terminals exist, but ++other terminals. ++In this manner, it is possible to retrofit generic terminfo ++entries into a terminal's description. ++Or, if two similar terminals exist, but + were coded at different times or by different people so that each description + is a full description, using \fB@INFOCMP@\fR will show what can be done to change + one description to be relative to the other. + .PP + A capability will get printed with an at-sign (@) if it no longer exists in the + first \fItermname\fR, but one of the other \fItermname\fR entries contains a +-value for it. A capability's value gets printed if the value in the first ++value for it. ++A capability's value gets printed if the value in the first + \fItermname\fR is not found in any of the other \fItermname\fR entries, or if + the first of the other \fItermname\fR entries that has this capability gives a + different value for the capability than that in the first \fItermname\fR. + .PP +-The order of the other \fItermname\fR entries is significant. Since the +-terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities, ++The order of the other \fItermname\fR entries is significant. ++Since the ++terminfo compiler \fB@TIC@\fR does a left-to-right scan of the capabilities, + specifying two \fBuse=\fR entries that contain differing entries for the same + capabilities will produce different results depending on the order that the +-entries are given in. \fB@INFOCMP@\fR will flag any such inconsistencies between ++entries are given in. ++\fB@INFOCMP@\fR will flag any such inconsistencies between + the other \fItermname\fR entries as they are found. + .PP + Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that +@@ -187,29 +229,48 @@ + .PP + Another error that does not cause incorrect compiled files, but will slow down + the compilation time, is specifying extra \fBuse=\fR fields that are +-superfluous. \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that ++superfluous. ++\fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that + were not needed. + .SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR] +-The location of the compiled \fBterminfo\fR database is taken from the +-environment variable \fBTERMINFO\fR . If the variable is not defined, or the +-terminal is not found in that location, the system \fBterminfo\fR database, +-in \fB@TERMINFO@\fR, will be used. The options \fB\-A\fR +-and \fB\-B\fR may be used to override this location. The \fB\-A\fR option will +-set \fBTERMINFO\fR for the first \fItermname\fR and the \fB\-B\fR option will +-set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to ++Like other \fBncurses\fP utilities, ++@INFOCMP@ looks for the terminal descriptions in several places. ++You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables ++to override the compiled-in default list of places to search ++(see \fBcurses\fP(3X) for details). ++.PP ++You can also use the options \fB\-A\fR ++and \fB\-B\fR to override the list of places to search ++when comparing terminal descriptions: ++.bP ++The \fB\-A\fR option sets the location for the first \fItermname\fR ++.bP ++The \fB\-B\fR option sets the location for the other \fItermnames\fR. ++.PP ++Using these options, it is possible to + compare descriptions for a terminal with the same name located in two different +-databases. This is useful for comparing descriptions for the same terminal ++databases. ++For instance, ++you can use this feature for comparing descriptions for the same terminal + created by different people. + .SS Other Options + .TP 5 ++\fB\-0\fR ++causes the fields to be printed on one line, without wrapping. ++.TP 5 + \fB\-1\fR +-causes the fields to be printed out one to a line. Otherwise, ++causes the fields to be printed out one to a line. ++Otherwise, + the fields will be printed several to a line to a maximum width + of 60 characters. + .TP + \fB\-a\fR + tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding +-them. Capabilities are commented by prefixing them with a period. ++them. ++Capabilities are commented by prefixing them with a period. ++.TP ++\fB\-D\fR ++tells \fB@INFOCMP@\fP to print the database locations that it knows about, and exit. + .TP 5 + \fB\-E\fR + Dump the capabilities of the given terminal as tables, needed in +@@ -231,12 +292,15 @@ + for a given terminal type. + .TP 5 + \fB\-F\fR +-compare terminfo files. This assumes that two following arguments are +-filenames. The files are searched for pairwise matches between ++compare terminfo files. ++This assumes that two following arguments are filenames. ++The files are searched for pairwise matches between + entries, with two entries considered to match if any of their names do. + The report printed to standard output lists entries with no matches in +-the other file, and entries with more than one match. For entries +-with exactly one match it includes a difference report. Normally, ++the other file, and entries with more than one match. ++For entries ++with exactly one match it includes a difference report. ++Normally, + to reduce the volume of the report, use references are + not resolved before looking for differences, but resolution can be forced + by also specifying \fB\-r\fR. +@@ -255,14 +319,17 @@ + .TP 5 + \fB\-i\fR + Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset +-(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the ++(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. ++For each string, the + code tries to analyze it into actions in terms of the other capabilities in the + entry, certain X3.64/ISO 6429/ECMA\-48 capabilities, and certain DEC VT-series + private modes (the set of recognized special sequences has been selected for +-completeness over the existing terminfo database). Each report line consists ++completeness over the existing terminfo database). ++Each report line consists + of the capability name, followed by a colon and space, followed by a printable + expansion of the capability string with sections matching recognized actions +-translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI ++translated into {}-bracketed descriptions. ++Here is a list of the DEC/ANSI + special sequences recognized: + i. + .TS +@@ -308,7 +375,8 @@ + .sp + It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set + Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and +-REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off). ++REVERSE. ++All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off). + .PP + An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}). + .TP 5 +@@ -323,12 +391,15 @@ + "\-" for absent capabilities, "@" for canceled rather than "NULL". + .TP 5 + \fB\-R\fR\fIsubset\fR +-Restrict output to a given subset. This option is for use with archaic ++Restrict output to a given subset. ++This option is for use with archaic + versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support + the full set of SVR4/XSI Curses terminfo; and variants such as AIX +-that have their own extensions incompatible with SVr4/XSI. Available terminfo ++that have their own extensions incompatible with SVr4/XSI. ++Available terminfo + subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for +-details. You can also choose the subset "BSD" which selects only capabilities ++details. ++You can also choose the subset "BSD" which selects only capabilities + with termcap equivalents recognized by 4.4BSD. + .TP + \fB\-s \fR\fI[d|i|l|c]\fR +@@ -362,7 +433,7 @@ + descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). + .TP + \fB\-t\fR +-tells \fBtic\fP to discard commented-out capabilities. ++tells \fB@TIC@\fP to discard commented-out capabilities. + Normally when translating from terminfo to termcap, + untranslatable capabilities are commented-out. + .TP 5 +@@ -385,13 +456,15 @@ + \fB\-x\fR + print information for user-defined capabilities. + These are extensions to the terminfo repertoire which can be loaded +-using the \fB\-x\fR option of \fBtic\fP. ++using the \fB\-x\fR option of \fB@TIC@\fP. + .SH FILES + .TP 20 + \*d + Compiled terminal description database. + .SH EXTENSIONS + The ++\fB\-0\fR, ++\fB\-1\fR, + \fB\-E\fR, + \fB\-F\fR, + \fB\-G\fR, +@@ -410,7 +483,8 @@ + options are not supported in SVr4 curses. + .PP + The \fB\-r\fR option's notion of `termcap' capabilities is System V Release 4's. +-Actual BSD curses versions will have a more restricted set. To see only the ++Actual BSD curses versions will have a more restricted set. ++To see only the + 4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR. + .SH BUGS + The \fB\-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode. +@@ -421,6 +495,8 @@ + \fB@TOE@\fR(1M), + \fBcurses\fR(3X), + \fBterminfo\fR(\*n). ++.sp ++http://invisible-island.net/ncurses/tctest.html + .PP + This describes \fBncurses\fR + version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). +diff -Naur ncurses-5.9/man/Makefile.in ncurses-5.9.patch/man/Makefile.in +--- ncurses-5.9/man/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/man/Makefile.in 2014-09-01 16:33:22.344792103 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.45 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.47 2013/08/04 20:23:20 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2010,2013 Free 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"), # +@@ -41,8 +41,12 @@ + srcdir = @srcdir@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++datarootdir = @datarootdir@ + datadir = @datadir@ + mandir = @mandir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +diff -Naur ncurses-5.9/man/manhtml.aliases ncurses-5.9.patch/man/manhtml.aliases +--- ncurses-5.9/man/manhtml.aliases 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/man/manhtml.aliases 2014-09-01 16:33:22.349792111 +0200 +@@ -0,0 +1,16 @@ ++# $Id: manhtml.aliases,v 1.1 2013/12/21 21:44:52 tom Exp $ ++# Items in this list will be linked to the corresponding manpages by man2html ++addch(3X) curs_addch(3X) ++delscreen(3X) curs_initscr(3X) ++filter(3X) curs_util(3X) ++form_fieldtype(3X) form_fieldtype(3X) ++getch(3X) curs_getch(3X) ++infocmp(1) infocmp(1M) ++initscr(3X) curs_initscr(3X) ++newterm(3X) curs_initscr(3X) ++set_fieldtype(3X) form_fieldtype(3X) ++set_term(3X) curs_initscr(3X) ++setupterm(3X) curs_terminfo(3X) ++tic(1) tic(1M) ++use_env(3X) curs_util(3X) ++vidputs(3X) curs_terminfo(3X) +diff -Naur ncurses-5.9/man/manhtml.externs ncurses-5.9.patch/man/manhtml.externs +--- ncurses-5.9/man/manhtml.externs 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/man/manhtml.externs 2014-09-01 16:33:22.349792111 +0200 +@@ -0,0 +1,24 @@ ++# $Id: manhtml.externs,v 1.3 2013/12/21 22:11:29 tom Exp $ ++# Items in this list will not be linked by man2html ++conflict(1) ++csh(1) ++ded(1) ++environ(7) ++getty(1) ++nvi(1) ++printf(3) ++profile(5) ++putc(3) ++putwc(3) ++read(2) ++rogue(1) ++scanf(3) ++sh(1) ++sscanf(3) ++stdio(3) ++stty(1) ++system(3) ++termio(7) ++tty(4) ++ttys(5) ++wcwidth(3) +diff -Naur ncurses-5.9/man/menu_items.3x ncurses-5.9.patch/man/menu_items.3x +--- ncurses-5.9/man/menu_items.3x 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/menu_items.3x 2014-09-01 16:33:22.349792111 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2012 Free 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 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: menu_items.3x,v 1.9 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: menu_items.3x,v 1.10 2012/11/03 23:03:59 tom Exp $ + .TH menu_items 3X "" + .SH NAME + \fBmenu_items\fR \- make and break connections between items and menus +@@ -47,7 +47,7 @@ + The function \fBmenu_items\fR returns the item array of the given menu. + .PP + The function \fBitem_count\fR returns the count of items in \fImenu\fR. +-.SH RETURN VALUES ++.SH RETURN VALUE + The function \fBmenu_items\fR returns a pointer (which may be \fBNULL\fR). + It does not set errno. + .PP +diff -Naur ncurses-5.9/man/ncurses.3x ncurses-5.9.patch/man/ncurses.3x +--- ncurses-5.9/man/ncurses.3x 2011-02-06 00:21:29.000000000 +0100 ++++ ncurses-5.9.patch/man/ncurses.3x 2014-09-01 16:34:19.463887194 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2013,2014 Free 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,9 +27,13 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp $ ++.\" $Id: ncurses.3x,v 1.116 2014/03/15 19:26:00 tom Exp $ + .hy 0 + .TH ncurses 3X "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .de bP + .IP \(bu 4 + .. +@@ -43,7 +47,7 @@ + .SH DESCRIPTION + The \fBncurses\fR library routines give the user a terminal-independent method + of updating character screens with reasonable optimization. +-This implementation is ``new curses'' (ncurses) and ++This implementation is \*(``new curses\*('' (ncurses) and + is the approved replacement for + 4.4BSD classic curses, which has been discontinued. + This describes \fBncurses\fR +@@ -55,8 +59,10 @@ + XSI stands for X/Open System Interfaces Extension. + The \fBncurses\fR library is freely redistributable in source form. + Differences from the SVr4 +-curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and +-described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections ++curses are summarized under the ++\fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and ++described in detail in the respective ++\fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections + of individual man pages. + .PP + The \fBncurses\fR library also provides many useful extensions, +@@ -108,9 +114,9 @@ + .sp + Before a \fBcurses\fR program is run, the tab stops of the terminal + should be set and its initialization strings, if defined, must be output. +-This can be done by executing the \fBtput init\fR command ++This can be done by executing the \fB@TPUT@ init\fR command + after the shell environment variable \fBTERM\fR has been exported. +-\fBtset(1)\fR is usually responsible for doing this. ++\fB@TSET@(1)\fR is usually responsible for doing this. + [See \fBterminfo\fR(\*n) for further details.] + .PP + The \fBncurses\fR library permits manipulation of data structures, +@@ -637,6 +643,7 @@ + use_env/\fBcurs_util\fR(3X) + use_extended_names/\fBcurs_extend\fR(3X)* + use_legacy_coding/\fBlegacy_coding\fR(3X)* ++use_tioctl/\fBcurs_util\fR(3X) + vid_attr/\fBcurs_terminfo\fR(3X) + vid_puts/\fBcurs_terminfo\fR(3X) + vidattr/\fBcurs_terminfo\fR(3X) +@@ -734,9 +741,16 @@ + integer value other than \fBERR\fR upon successful completion, unless + otherwise noted in the routine descriptions. + .PP ++As a general rule, routines check for null pointers passed as parameters, ++and handle this as an error. ++.PP + All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR, + \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR. +-The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and ++The return values of ++\fBsetscrreg\fR, ++\fBwsetscrreg\fR, ++\fBgetyx\fR, ++\fBgetbegyx\fR, and + \fBgetmaxyx\fR are undefined (i.e., these should not be used as the + right-hand side of assignment statements). + .PP +@@ -746,24 +760,24 @@ + runtime behavior of the \fBncurses\fR library. + The most important ones have been already discussed in detail. + .TP 5 +-BAUDRATE +-The debugging library checks this environment symbol when the application +-has redirected output to a file. +-The symbol's numeric value is used for the baudrate. +-If no value is found, \fBncurses\fR uses 9600. +-This allows testers to construct repeatable test-cases +-that take into account costs that depend on baudrate. +-.TP 5 + CC + When set, change occurrences of the command_character + (i.e., the \fBcmdch\fP capability) +-of the loaded terminfo entries to the value of this symbol. ++of the loaded terminfo entries to the value of this variable. + Very few terminfo entries provide this feature. + .IP + Because this name is also used in development environments to represent + the C compiler's name, \fBncurses\fR ignores it if it does not happen to + be a single character. + .TP 5 ++BAUDRATE ++The debugging library checks this environment variable when the application ++has redirected output to a file. ++The variable's numeric value is used for the baudrate. ++If no value is found, \fBncurses\fR uses 9600. ++This allows testers to construct repeatable test-cases ++that take into account costs that depend on baudrate. ++.TP 5 + COLUMNS + Specify the width of the screen in characters. + Applications running in a windowing environment usually are able to +@@ -786,7 +800,9 @@ + a terminal description for terminals which are run as emulations. + .IP + Use the \fBuse_env\fR function to disable all use of external environment +-(including system calls) to determine the screen size. ++(but not including system calls) to determine the screen size. ++Use the \fBuse_tioctl\fR function to update \fBCOLUMNS\fP or \fBLINES\fP ++to match the screen size obtained from system calls or the terminal database. + .TP 5 + ESCDELAY + Specifies the total time, in milliseconds, for which ncurses will +@@ -837,8 +853,8 @@ + .br + 3 = middle. + .sp +-This symbol lets you customize the mouse. +-The symbol must be three numeric digits 1\-3 in any order, e.g., 123 or 321. ++This variable lets you customize the mouse. ++The variable must be three numeric digits 1\-3 in any order, e.g., 123 or 321. + If it is not specified, \fBncurses\fR uses 132. + .TP 5 + NCURSES_ASSUMED_COLORS +@@ -852,6 +868,17 @@ + To make it green-on-black, set it to "2,0". + Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed. + .TP 5 ++NCURSES_CONSOLE2 ++This applies only to the MinGW port of ncurses. ++.IP ++The \fBConsole2\fP program's handling of the Microsoft Console API call ++\fBCreateConsoleScreenBuffer\fP is defective. ++Applications which use this will hang. ++However, it is possible to simulate the action of this call by ++mapping coordinates, ++explicitly saving and restoring the original screen contents. ++Setting the environment variable \fBNCGDB\fP has the same effect. ++.TP 5 + NCURSES_GPM_TERMS + This applies only to ncurses configured to use the GPM interface. + .IP +@@ -899,19 +926,44 @@ + You may wish to use these descriptions, + but not want to pay the performance penalty. + .IP +-Set the NCURSES_NO_PADDING symbol to disable all but mandatory ++Set the NCURSES_NO_PADDING environment variable to disable all but mandatory + padding. + Mandatory padding is used as a part of special control + sequences such as \fIflash\fR. + .TP 5 + NCURSES_NO_SETBUF +-Normally \fBncurses\fR enables buffered output during terminal initialization. +-This is done (as in SVr4 curses) for performance reasons. ++This setting is obsolete. ++Before changes ++.RS ++.bP ++started with 5.9 patch 20120825 ++and ++.bP ++continued ++though 5.9 patch 20130126 ++.RE ++.IP ++\fBncurses\fR enabled buffered output during terminal initialization. ++This was done (as in SVr4 curses) for performance reasons. + For testing purposes, both of \fBncurses\fR and certain applications, +-this feature is made optional. ++this feature was made optional. + Setting the NCURSES_NO_SETBUF variable +-disables output buffering, leaving the output in the original (usually ++disabled output buffering, leaving the output in the original (usually + line buffered) mode. ++.IP ++In the current implementation, ++ncurses performs its own buffering and does not require this workaround. ++It does not modify the buffering of the standard output. ++.IP ++The reason for the change was to make the behavior for interrupts and ++other signals more robust. ++One drawback is that certain nonconventional programs would mix ++ordinary stdio calls with ncurses calls and (usually) work. ++This is no longer possible since ncurses is not using ++the buffered standard output but its own output (to the same file descriptor). ++As a special case, the low-level calls such as \fBputp\fP still use the ++standard output. ++But high-level curses calls do not. + .TP 5 + NCURSES_NO_UTF8_ACS + During initialization, the \fBncurses\fR library +@@ -933,20 +985,22 @@ + .IP + As an alternative to the environment variable, + ncurses checks for an extended terminfo capability \fBU8\fP. +-This is a numeric capability which can be compiled using \fBtic\ \-x\fP. ++This is a numeric capability which can be compiled using \fB@TIC@\ \-x\fP. + For example + .RS 5 ++.ft CW + .sp + .nf + # linux console, if patched to provide working + # VT100 shift-in/shift-out, with corresponding font. + linux-vt100|linux console with VT100 line-graphics, +- U8#0, use=linux, ++ U8#0, use=linux, + .sp + # uxterm with vt100Graphics resource set to false + xterm-utf8|xterm relying on UTF-8 line-graphics, +- U8#1, use=xterm, ++ U8#1, use=xterm, + .fi ++.ft + .RE + .IP + The name "U8" is chosen to be two characters, +@@ -955,7 +1009,7 @@ + .TP 5 + NCURSES_TRACE + During initialization, the \fBncurses\fR debugging library +-checks the NCURSES_TRACE symbol. ++checks the NCURSES_TRACE environment variable. + If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR + function, using that value as the argument. + .IP +@@ -973,9 +1027,10 @@ + support, \fBncurses\fR will check for a terminal's description in + termcap form if it is not available in the terminfo database. + .IP +-The TERMCAP symbol contains either a terminal description (with ++The TERMCAP environment variable contains either a terminal description (with + newlines stripped out), +-or a file name telling where the information denoted by the TERM symbol exists. ++or a file name telling where the information denoted by ++the TERM environment variable exists. + In either case, setting it directs \fBncurses\fR to ignore + the usual place for this information, e.g., /etc/termcap. + .TP 5 +@@ -988,33 +1043,51 @@ + .bP + the last directory to which \fBncurses\fR wrote, if any, is searched first + .bP +-the directory specified by the TERMINFO symbol ++the directory specified by the TERMINFO environment variable + .bP + $HOME/.terminfo + .bP +-directories listed in the TERMINFO_DIRS symbol ++directories listed in the TERMINFO_DIRS environment variable + .bP + one or more directories whose names are configured and compiled into the +-ncurses library, e.g., +-@TERMINFO@ ++ncurses library, i.e., ++.RS ++.bP ++@TERMINFO_DIRS@ (corresponding to the TERMINFO_DIRS variable) ++.bP ++@TERMINFO@ (corresponding to the TERMINFO variable) ++.RE + .RE + .TP 5 + TERMINFO_DIRS + Specifies a list of directories to search for terminal descriptions. + The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX. +-All of the terminal descriptions are in terminfo form, which makes +-a subdirectory named for the first letter of the terminal names therein. ++.IP ++All of the terminal descriptions are in terminfo form. ++Normally these are stored in a directory tree, ++using subdirectories named by the first letter of the terminal names therein. ++.IP ++If \fBncurses\fP is built with a hashed database, ++then each entry in this list can also be the path of the corresponding ++database file. ++.IP ++If \fBncurses\fP is built with a support for reading termcap files ++directly, then an entry in this list may be the path of a termcap file. + .TP 5 + TERMPATH + If TERMCAP does not hold a file name then \fBncurses\fR checks +-the TERMPATH symbol. +-This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX. +-If the TERMPATH symbol is not set, \fBncurses\fR looks in the files ++the TERMPATH environment variable. ++This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, ++semicolons on OS/2 EMX. ++.IP ++If the TERMPATH environment variable is not set, ++\fBncurses\fR looks in the files + /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order. + .PP + The library may be configured to disregard the following variables when the + current user is the superuser (root), or if the application uses setuid or + setgid permissions: ++.IP + $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME. + .SH ALTERNATE CONFIGURATIONS + Several different configurations are possible, +@@ -1042,8 +1115,9 @@ + to build executables. + .TP 5 + \-\-enable\-widec +-The configure script renames the library and (if the \fB\-\-disable\-overwrite\fP +-option is used) puts the header files in a different subdirectory. ++The configure script renames the library and ++(if the \fB\-\-disable\-overwrite\fP option is used) ++puts the header files in a different subdirectory. + All of the library names have a "w" appended to them, + i.e., instead of + .RS +@@ -1068,6 +1142,16 @@ + to allow applications to be built using either library + from the same set of headers. + .TP 5 ++\-\-with\-pthread ++The configure script renames the library. ++All of the library names have a "t" appended to them ++(before any "w" added by \fB\-\-enable\-widec\fP). ++.IP ++The global variables such as \fBLINES\fP are replaced by macros to ++allow read-only access. ++At the same time, setter-functions are provided to set these values. ++Some applications (very few) may require changes to work with this convention. ++.TP 5 + \-\-with\-shared + .TP + \-\-with\-normal +@@ -1093,8 +1177,8 @@ + @TERMINFO@ + terminal capability database + .SH SEE ALSO +-\fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine +-descriptions. ++\fBterminfo\fR(\*n) and related pages whose names begin ++"curs_" for detailed routine descriptions. + .br + \fBcurs_variables\fR(3X) + .SH EXTENSIONS +@@ -1144,6 +1228,15 @@ + the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR + sections of the library man pages. + .PP ++Unlike other implementations, this one checks parameters such as pointers ++to WINDOW structures to ensure they are not null. ++The main reason for providing this behavior is to guard against programmer ++error. ++The standard interface does not provide a way for the library ++to tell an application which of several possible errors were detected. ++Relying on this (or some other) extension will adversely affect the ++portability of curses applications. ++.PP + This implementation also contains several extensions: + .bP + The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4. +diff -Naur ncurses-5.9/man/resizeterm.3x ncurses-5.9.patch/man/resizeterm.3x +--- ncurses-5.9/man/resizeterm.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/resizeterm.3x 2014-09-01 16:33:22.350792113 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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,9 +26,9 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" Author: Thomas E. Dickey 1996-2005 ++.\" Author: Thomas E. Dickey 1996-on + .\" +-.\" $Id: resizeterm.3x,v 1.14 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: resizeterm.3x,v 1.17 2013/06/22 20:41:54 tom Exp $ + .TH resizeterm 3X "" + .SH NAME + \fBis_term_resized\fR, +@@ -48,7 +48,8 @@ + primarily for use by programs running in an X Window terminal (e.g., xterm). + The function \fBresizeterm\fR resizes the standard and current windows + to the specified dimensions, and adjusts other bookkeeping data used by +-the \fBncurses\fR library that record the window dimensions. ++the \fBncurses\fR library that record the window dimensions ++such as the \fBLINES\fP and \fBCOLS\fP variables. + .LP + Most of the work is done by the inner function \fBresize_term\fR. + The outer function \fBresizeterm\fR adds bookkeeping for the SIGWINCH handler. +@@ -64,7 +65,7 @@ + can check if the \fBresize_term\fR function would modify the window structures. + It returns TRUE if the windows would be modified, and FALSE otherwise. + .SH RETURN VALUE +-Except as notes, these function return ++Except as noted, these functions return + the integer \fBERR\fR upon failure and \fBOK\fR on success. + They will fail if either of the dimensions are less than or equal to zero, + or if an error occurs while (re)allocating memory for the windows. +@@ -75,7 +76,7 @@ + since it uses those functions. + .PP + If ncurses is configured to supply its own SIGWINCH handler, +-the \fBresizeterm\fR function ungetch's a \fBKEY_RESIZE\fR which ++the \fBresizeterm\fR function \fBungetch\fP's a \fBKEY_RESIZE\fR which + will be read on the next call to \fBgetch\fR. + This is used to alert an application that the screen size has changed, + and that it should repaint special features such as pads that cannot +@@ -86,9 +87,8 @@ + the operating system. + Thus, even if a SIGWINCH is received, + no screen size change may be recorded. +-In that case, no \fBKEY_RESIZE\fP is queued for the next call to \fBgetch\fP; +-an \fBERR\fP will be returned instead. + .SH SEE ALSO ++\fBcurs_getch\fR(3X), + \fBcurs_variables\fR(3X), + \fBwresize\fR(3X). + .SH AUTHOR +diff -Naur ncurses-5.9/man/tabs.1 ncurses-5.9.patch/man/tabs.1 +--- ncurses-5.9/man/tabs.1 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/tabs.1 2014-09-01 16:33:22.350792113 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2008-2011,2013 Free 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,19 +26,18 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: tabs.1,v 1.8 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: tabs.1,v 1.11 2013/06/22 18:11:57 tom Exp $ + .TH @TABS@ 1 "" + .ds n 5 + .SH NAME +-\fBtabs\fR \- set tabs on a terminal ++\fB@TABS@\fR \- set tabs on a terminal + .SH SYNOPSIS +-\fBtabs\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR +-.br ++\fB@TABS@\fR [\fIoptions\fR]] \fI[tabstop-list]\fR + .SH DESCRIPTION + .PP +-The \fBtabs\fP program clears and sets tab-stops on the terminal. ++The \fB@TABS@\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. ++If either is absent, \fB@TABS@\fP is unable to clear/set tab-stops. + The terminal should be configured to use hard tabs, e.g., + .sp + .RS +@@ -48,8 +47,8 @@ + .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 ++Tell \fB@TABS@\fP which terminal type to use. ++If this option is not given, \fB@TABS@\fP will use the \fB$TERM\fP + environment variable. + If that is not set, it will use the \fIansi+tabs\fP entry. + .TP 5 +@@ -59,10 +58,13 @@ + 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 ++This option tells \fB@TABS@\fP to check the options and run any debugging + option, but not to modify the terminal settings. ++.TP ++\fB\-V\fR ++reports the version of ncurses which was used in this program, and exits. + .PP +-The \fBtabs\fP program processes a single list of tab stops. ++The \fB@TABS@\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 +diff -Naur ncurses-5.9/man/term.7 ncurses-5.9.patch/man/term.7 +--- ncurses-5.9/man/term.7 2010-12-04 19:41:07.000000000 +0100 ++++ ncurses-5.9.patch/man/term.7 2014-09-01 16:33:22.350792113 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * + .\" copy of this software and associated documentation files (the * +@@ -26,7 +26,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: term.7,v 1.22 2010/12/04 18:41:07 tom Exp $ ++.\" $Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp $ + .TH term 7 + .ds n 5 + .ds d @TERMINFO@ +@@ -55,7 +55,7 @@ + are in fact using a VT100-superset console, terminal, or terminal emulator.) + .PP + In any case, you are free to override the system \fBTERM\fR setting to your +-taste in your shell profile. The \fBtset\fP(1) utility may be of assistance; ++taste in your shell profile. The \fB@TSET@\fP(1) utility may be of assistance; + you can give it a set of rules for deducing or requesting a terminal type based + on the tty device and baud rate. + .PP +diff -Naur ncurses-5.9/man/terminfo.head ncurses-5.9.patch/man/terminfo.head +--- ncurses-5.9/man/terminfo.head 2010-07-31 18:08:48.000000000 +0200 ++++ ncurses-5.9.patch/man/terminfo.head 2014-09-01 16:33:22.350792113 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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,10 +26,17 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: terminfo.head,v 1.18 2010/07/31 16:08:48 tom Exp $ ++.\" $Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp $ + .TH terminfo 5 "" "" "File Formats" + .ds n 5 + .ds d @TERMINFO@ ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' ++.de bP ++.IP \(bu 4 ++.. + .SH NAME + terminfo \- terminal capability data base + .SH SYNOPSIS +@@ -74,7 +81,7 @@ + Terminal names (except for the last, verbose entry) should + be chosen using the following conventions. + The particular piece of hardware making up the terminal should +-have a root name, thus ``hp2621''. ++have a root name, thus \*(``hp2621\*(''. + This name should not contain hyphens. + Modes that the hardware can be in, or user preferences, should + be indicated by appending a hyphen and a mode suffix. +@@ -102,6 +109,6 @@ + .TE + .PP + For more on terminal naming conventions, see the \fBterm(7)\fR manual page. +-.SS Capabilities ++.SS Predefined Capabilities + .\" Head of terminfo man page ends here + .ps -1 +diff -Naur ncurses-5.9/man/terminfo.tail ncurses-5.9.patch/man/terminfo.tail +--- ncurses-5.9/man/terminfo.tail 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/terminfo.tail 2014-09-01 16:33:22.351792114 +0200 +@@ -1,8 +1,51 @@ +-.\" $Id: terminfo.tail,v 1.53 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: terminfo.tail,v 1.68 2013/11/09 15:20:48 tom Exp $ + .\" Beginning of terminfo.tail file + .\" This file is part of ncurses. + .\" See "terminfo.head" for copyright. + .ps +1 ++.SS User-Defined Capabilities ++. ++The preceding section listed the \fIpredefined\fP capabilities. ++They deal with some special features for terminals no longer ++(or possibly never) produced. ++Occasionally there are special features of newer terminals which ++are awkward or impossible to represent by reusing the predefined ++capabilities. ++.PP ++\fBncurses\fP addresses this limitation by allowing user-defined capabilities. ++The \fB@TIC@\fP and \fB@INFOCMP@\fP programs provide ++the \fB\-x\fP option for this purpose. ++When \fB\-x\fP is set, ++\fB@TIC@\fP treats unknown capabilities as user-defined. ++That is, if \fB@TIC@\fP encounters a capability name ++which it does not recognize, ++it infers its type (boolean, number or string) from the syntax ++and makes an extended table entry for that capability. ++The \fBuse_extended_names\fP function makes this information ++conditionally available to applications. ++The ncurses library provides the data leaving most of the behavior ++to applications: ++.bP ++User-defined capability strings whose name begins ++with \*(``k\*('' are treated as function keys. ++.bP ++The types (boolean, number, string) determined by \fB@TIC@\fP ++can be inferred by successful calls on \fBtigetflag\fP, etc. ++.bP ++If the capability name happens to be two characters, ++the capability is also available through the termcap interface. ++.PP ++While termcap is said to be extensible because it does not use a predefined set ++of capabilities, ++in practice it has been limited to the capabilities defined by ++terminfo implementations. ++As a rule, ++user-defined capabilities intended for use by termcap applications should ++be limited to booleans and numbers to avoid running past the 1023 byte ++limit assumed by termcap implementations and their applications. ++In particular, providing extended sets of function keys (past the 60 ++numbered keys and the handful of special named keys) is best done using ++the longer names available using terminfo. + . + .SS A Sample Entry + . +@@ -10,42 +53,54 @@ + of what a \fBterminfo\fR entry for a modern terminal typically looks like. + .PP + .nf +-.in -2 +-.ta .3i + .ft CW + \s-2ansi|ansi/pc-term compatible with color, +- mc5i, +- colors#8, ncv#3, pairs#64, +- cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC, +- cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM, +- ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I, +- ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT, +- kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B, +- kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V, +- kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P, +- kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U, +- kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, +- op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%\-%db, +- rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, +- s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm, +- setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- 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;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m, +- sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n, +- u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2 +-.in +2 ++ am, mc5i, mir, msgr, ++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, ++ acsc=+\\020\\,\\021-\\030.^Y0\\333`\\004a\\261f\\370g\\361h\\260 ++ j\\331k\\277l\\332m\\300n\\305o~p\\304q\\304r\\304s_t\\303 ++ u\\264v\\301w\\302x\\263y\\363z\\362{\\343|\\330}\\234~\\376, ++ bel=^G, blink=\\E[5m, bold=\\E[1m, cbt=\\E[Z, clear=\\E[H\\E[J, ++ cr=^M, cub=\\E[%p1%dD, cub1=\\E[D, cud=\\E[%p1%dB, cud1=\\E[B, ++ 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, ech=\\E[%p1%dX, ed=\\E[J, el=\\E[K, ++ el1=\\E[1K, home=\\E[H, hpa=\\E[%i%p1%dG, ht=\\E[I, hts=\\EH, ++ ich=\\E[%p1%d@, il=\\E[%p1%dL, il1=\\E[L, ind=^J, ++ indn=\\E[%p1%dS, invis=\\E[8m, kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, ++ kcud1=\\E[B, kcuf1=\\E[C, kcuu1=\\E[A, khome=\\E[H, kich1=\\E[L, ++ mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, op=\\E[39;49m, ++ rep=%p1%c\\E[%p2%{1}%-%db, rev=\\E[7m, rin=\\E[%p1%dT, ++ rmacs=\\E[10m, rmpch=\\E[10m, rmso=\\E[m, rmul=\\E[m, ++ s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, s3ds=\\E+B, ++ 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, smpch=\\E[11m, smso=\\E[7m, ++ smul=\\E[4m, tbc=\\E[3g, u6=\\E[%i%d;%dR, u7=\\E[6n, ++ u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%i%p1%dd, + .fi + .ft R + .PP + Entries may continue onto multiple lines by placing white space at + the beginning of each line except the first. +-Comments may be included on lines beginning with ``#''. ++Comments may be included on lines beginning with \*(``#\*(''. + Capabilities in + .I terminfo + are of three types: ++.bP + Boolean capabilities which indicate that the terminal has +-some particular feature, numeric capabilities giving the size of the terminal +-or the size of particular delays, and string ++some particular feature, ++.bP ++numeric capabilities giving the size of the terminal ++or the size of particular delays, and ++.bP ++string + capabilities, which give a sequence which can be used to perform particular + terminal operations. + .PP +@@ -58,15 +113,15 @@ + (i.e., an automatic return and line-feed + when the end of a line is reached) is indicated by the capability \fBam\fR. + Hence the description of ansi includes \fBam\fR. +-Numeric capabilities are followed by the character `#' and then a positive value. ++Numeric capabilities are followed by the character \*(``#\*('' and then a positive value. + Thus \fBcols\fR, which indicates the number of columns the terminal has, +-gives the value `80' for ansi. ++gives the value \*(``80\*('' for ansi. + Values for numeric capabilities may be specified in decimal, octal or hexadecimal, + using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF). + .PP + Finally, string valued capabilities, such as \fBel\fR (clear to end of line +-sequence) are given by the two-character code, an `=', and then a string +-ending at the next following `,'. ++sequence) are given by the two-character code, an \*(``=\*('', and then a string ++ending at the next following \*(``,\*(''. + .PP + A number of escape sequences are provided in the string valued capabilities + for easy encoding of characters there. +@@ -75,14 +130,29 @@ + \fB^x\fR maps to a control-x for any appropriate x, and the sequences + \fB\en \el \er \et \eb \ef \es\fR give + a newline, line-feed, return, tab, backspace, form-feed, and space. +-Other escapes include \fB\e^\fR for \fB^\fR, ++Other escapes include ++.bP ++\fB\e^\fR for \fB^\fR, ++.bP + \fB\e\e\fR for \fB\e\fR, ++.bP + \fB\e\fR, for comma, ++.bP + \fB\e:\fR for \fB:\fR, ++.bP + and \fB\e0\fR for null. +-(\fB\e0\fR will produce \e200, which does not terminate a string but behaves ++.IP ++\fB\e0\fR will produce \e200, which does not terminate a string but behaves + as a null character on most terminals, providing CS7 is specified. +-See stty(1).) ++See stty(1). ++.IP ++The reason for this quirk is to maintain binary compatibility of the ++compiled terminfo files with other implementations, ++e.g., the SVr4 systems, which document this. ++Compiled terminfo files use null-terminated strings, with no lengths. ++Modifying this would require a new binary format, ++which would not work with other implementations. ++.PP + Finally, characters may be given as three octal digits after a \fB\e\fR. + .PP + A delay in milliseconds may appear anywhere in a string capability, enclosed in +@@ -90,8 +160,8 @@ + .I tputs + to provide this delay. + The delay must be a number with at most one decimal +-place of precision; it may be followed by suffixes `*' or '/' or both. +-A `*' ++place of precision; it may be followed by suffixes \*(``*\*('' or \*(``/\*('' or both. ++A \*(``*\*('' + indicates that the padding required is proportional to the number of lines + affected by the operation, and the amount given is the per-affected-unit + padding required. +@@ -100,7 +170,7 @@ + .IR lines + affected.) Normally, padding is advisory if the device has the \fBxon\fR + capability; it is used for cost computation but does not trigger delays. +-A `/' ++A \*(``/\*('' + suffix indicates that the padding is mandatory and forces a delay of the given + number of milliseconds even on devices for which \fBxon\fR is present to + indicate flow control. +@@ -115,27 +185,36 @@ + .PP + .SS Fetching Compiled Descriptions + .PP ++The \fBncurses\fP library searches for terminal descriptions in several places. ++It uses only the first description found. ++The library has a compiled-in list of places to search ++which can be overridden by environment variables. ++Before starting to search, ++\fBncurses\fP eliminates duplicates in its search list. ++.bP + If the environment variable TERMINFO is set, it is interpreted as the pathname + of a directory containing the compiled description you are working on. +-Only +-that directory is searched. +-.PP +-If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code +-will instead look in the directory \fB$HOME/.terminfo\fR ++Only that directory is searched. ++.bP ++If TERMINFO is not set, ++\fBncurses\fR will instead look in the directory \fB$HOME/.terminfo\fR + for a compiled description. +-If it fails to find one there, and the environment variable TERMINFO_DIRS is +-set, it will interpret the contents of that variable as a list of colon- +-separated directories to be searched (an empty entry is interpreted as a +-command to search \fI\*d\fR). +-If no description is found in any of the +-TERMINFO_DIRS directories, the fetch fails. +-.PP +-If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the +-system terminfo directory, \fI\*d\fR. +-.PP +-(Neither the \fB$HOME/.terminfo\fR lookups nor TERMINFO_DIRS extensions are +-supported under stock System V terminfo/curses.) +-.PP ++.bP ++Next, if the environment variable TERMINFO_DIRS is set, ++\fBncurses\fR will interpret the contents of that variable ++as a list of colon-separated directories (or database files) to be searched. ++.IP ++An empty directory name (i.e., if the variable begins or ends ++with a colon, or contains adacent colons) ++is interpreted as the system location \fI\*d\fR. ++.bP ++Finally, \fBncurses\fP searches these compiled-in locations: ++.RS ++.bP ++a list of directories (@TERMINFO_DIRS@), and ++.bP ++the system terminfo directory, \fI\*d\fR (the compiled-in default). ++.RE + .SS Preparing Descriptions + .PP + We now outline how to prepare descriptions of terminals. +@@ -154,7 +233,7 @@ + .PP + To get the padding for insert line right (if the terminal manufacturer + did not document it) a severe test is to edit a large file at 9600 baud, +-delete 16 or so lines from the middle of the screen, then hit the `u' ++delete 16 or so lines from the middle of the screen, then hit the \*(``u\*('' + key several times quickly. + If the terminal messes up, more padding is usually needed. + A similar test can be used for insert character. +@@ -198,7 +277,7 @@ + and + .BR cud1 . + These local cursor motions should not alter the text they pass over, +-for example, you would not normally use `\fBcuf1\fP=\ ' because the ++for example, you would not normally use \*(``\fBcuf1\fP=\ \*('' because the + space would erase the character moved over. + .PP + A very important point here is that the local cursor motions encoded +@@ -275,9 +354,10 @@ + .ft CW + .\".in -2 + \s-133\||\|tty33\||\|tty\||\|model 33 teletype, +- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1 ++ bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1 + .\".in +2 + .ft R ++.fi + .PP + while the Lear Siegler \s-1ADM-3\s0 is described as + .PP +@@ -286,8 +366,8 @@ + .ft CW + .\".in -2 + \s-1adm3\||\|3\||\|lsi adm3, +- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J, +- ind=^J, lines#24,\s+1 ++ am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J, ++ ind=^J, lines#24,\s+1 + .\".in +2 + .ft R + .fi +@@ -296,9 +376,8 @@ + .PP + Cursor addressing and other strings requiring parameters + in the terminal are described by a +-parameterized string capability, with +-.IR printf (3) +-like escapes \fB%x\fR in it. ++parameterized string capability, ++with \fIprintf\fP-like escapes such as \fI%x\fR in it. + For example, to address the cursor, the + .B cup + capability is given, using two parameters: +@@ -321,34 +400,34 @@ + The \fB%\fR encodings have the following meanings: + .PP + .TP 5 +-\s-1%% +-outputs `%' ++\fB%%\fP ++outputs \*(``%\*('' + .TP +-%\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP +-as in \fBprintf\fP, flags are [\-+#] and space. +-Use a `:' to allow the next character to be a `\-' flag, ++\fB%\fP\fI[[\fP:\fI]flags][width[.precision]][\fP\fBdoxXs\fP\fI]\fP ++as in \fBprintf\fP, flags are \fI[\-+#]\fP and \fIspace\fP. ++Use a \*(``:\*('' to allow the next character to be a \*(``\-\*('' flag, + avoiding interpreting "%\-" as an operator. + .TP +-%c ++\f(CW%c\fP + print pop() like %c in \fBprintf\fP + .TP +-%s ++\fB%s\fP + print pop() like %s in \fBprintf\fP + .TP +-%p[1\-9] ++\fB%p\fP\fI[1\-9]\fP + push \fIi\fP'th parameter + .TP +-%P[a\-z] +-set dynamic variable [a\-z] to pop() ++\fB%P\fP\fI[a\-z]\fP ++set dynamic variable \fI[a\-z]\fP to pop() + .TP +-%g[a\-z] +-get dynamic variable [a\-z] and push it ++\fB%g\fP\fI[a\-z]/\fP ++get dynamic variable \fI[a\-z]\fP and push it + .TP +-%P[A\-Z] +-set static variable [a\-z] to pop() ++\fB%P\fP\fI[A\-Z]\fP ++set static variable \fI[a\-z]\fP to \fIpop()\fP + .TP +-%g[A\-Z] +-get static variable [a\-z] and push it ++\fB%g\fP\fI[A\-Z]\fP ++get static variable \fI[a\-z]\fP and push it + .IP + The terms "static" and "dynamic" are misleading. + Historically, these are simply two different sets of variables, +@@ -356,48 +435,48 @@ + However, that fact is not documented in other implementations. + Relying on it will adversely impact portability to other implementations. + .TP +-%'\fIc\fP' ++\fB%'\fP\fIc\fP\fB'\fP + char constant \fIc\fP + .TP +-%{\fInn\fP} ++\fB%{\fP\fInn\fP\fB}\fP + integer constant \fInn\fP + .TP +-%l ++\fB%l\fP + push strlen(pop) + .TP +-%+ %\- %* %/ %m +-arithmetic (%m is mod): push(pop() op pop()) ++\fB%+\fP, \fB%\-\fP, \fB%*\fP, \fB%/\fP, \fB%m\fP ++arithmetic (%m is mod): \fIpush(pop() op pop())\fP + .TP +-%& %| %^ +-bit operations (AND, OR and exclusive-OR): push(pop() op pop()) ++\fB%&\fP, \fB%|\fP, \fB%^\fP ++bit operations (AND, OR and exclusive-OR): \fIpush(pop() op pop())\fP + .TP +-%= %> %< +-logical operations: push(pop() op pop()) ++\fB%=\fP, \fB%>\fP, \fB%<\fP ++logical operations: \fIpush(pop() op pop())\fP + .TP +-%A, %O ++\fB%A\fP, \fB%O\fP + logical AND and OR operations (for conditionals) + .TP +-%! %~ ++\fB%!\fP, \fB%~\fP + unary operations (logical and bit complement): push(op pop()) + .TP +-%i ++\fB%i\fP + add 1 to first two parameters (for ANSI terminals) + .TP +-%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %; ++\fB%?\fP \fIexpr\fP \fB%t\fP \fIthenpart\fP \fB%e\fP \fIelsepart\fP \fB%;\fP + This forms an if-then-else. +-The %e \fIelsepart\fP is optional. +-Usually the %? \fIexpr\fP part pushes a value onto the stack, +-and %t pops it from the stack, testing if it is nonzero (true). +-If it is zero (false), control passes to the %e (else) part. ++The \fB%e\fP \fIelsepart\fP is optional. ++Usually the \fB%?\fP \fIexpr\fP part pushes a value onto the stack, ++and \fB%t\fP pops it from the stack, testing if it is nonzero (true). ++If it is zero (false), control passes to the \fB%e\fP (else) part. + .IP + It is possible to form else-if's a la Algol 68: + .RS +-%? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %; ++\fB%?\fP c\d1\u \fB%t\fP b\d1\u \fB%e\fP c\d2\u \fB%t\fP b\d2\u \fB%e\fP c\d3\u \fB%t\fP b\d3\u \fB%e\fP c\d4\u \fB%t\fP b\d4\u \fB%e\fP \fB%;\fP + .RE + .IP + where c\di\u are conditions, b\di\u are bodies. + .IP +-Use the \fB\-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see ++Use the \fB\-f\fP option of \fB@TIC@\fP or \fB@INFOCMP@\fP to see + the structure of if-then-else's. + Some strings, e.g., \fBsgr\fP can be very complicated when written + on one line. +@@ -405,7 +484,7 @@ + .PP + Binary operations are in postfix form with the operands in the usual order. + That is, to get x\-5 one would use "%gx%{5}%-". +-%P and %g variables are ++\fB%P\fP and \fB%g\fP variables are + persistent across escape-string evaluations. + .PP + Consider the HP2645, which, to get to row 3 and column 12, needs +@@ -429,7 +508,7 @@ + .PP + A final example is the \s-1LSI ADM\s0-3a, which uses row and column + offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq. +-After sending `\eE=', this pushes the first parameter, pushes the ++After sending \*(``\eE=\*('', this pushes the first parameter, pushes the + ASCII value for a space (32), adds them (pushing the sum on the stack + in place of the two previous values) and outputs that value as a character. + Then the same is done for the second parameter. +@@ -593,6 +672,7 @@ + a distinction between typed and untyped blanks on the screen, shifting + upon an insert or delete only to an untyped blank on the screen which is + either eliminated, or expanded to two untyped blanks. ++.PP + You can determine the + kind of terminal you have by clearing the screen and then typing + text separated by cursor motions. +@@ -608,6 +688,7 @@ + current line and onto the next as you insert, you have the second type of + terminal, and should give the capability \fBin\fR, which stands for + \*(lqinsert null\*(rq. ++.PP + While these are two logically separate attributes (one line versus multi-line + insert mode, and special treatment of untyped spaces) we have seen no + terminals whose insert mode cannot be described with the single attribute. +@@ -642,7 +723,7 @@ + in \fBip\fR (a string option). + Any other sequence which may need to be + sent after an insert of a single character may also be given in \fBip\fR. +-If your terminal needs both to be placed into an `insert mode' and ++If your terminal needs both to be placed into an \*(``insert mode\*('' and + a special code to precede each inserted character, then both + .BR smir / rmir + and +@@ -792,6 +873,7 @@ + .PP + Writing out the above sequences, along with their dependencies yields + .PP ++.ne 11 + .TS + center; + l l l +@@ -799,6 +881,7 @@ + lw18 lw14 lw18. + \fBsequence when to output terminfo translation\fP + ++.ft CW + \\E[0 always \\E[0 + ;1 if p1 or p6 %?%p1%p6%|%t;1%; + ;4 if p2 %?%p2%|%t;4%; +@@ -807,14 +890,17 @@ + ;8 if p7 %?%p7%|%t;8%; + m always m + ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%; ++.ft R + .TE + .PP + Putting this all together into the sgr sequence gives: + .PP ++.ft CW + .nf +- sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%; +- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;, ++ sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%; ++ %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;, + .fi ++.ft R + .PP + Remember that if you specify sgr, you must also specify sgr0. + Also, some implementations rely on sgr being given if sgr0 is, +@@ -824,9 +910,9 @@ + The only drawback to adding an sgr string is that termcap also + assumes that sgr0 does not exit alternate character set mode. + .PP +-Terminals with the ``magic cookie'' glitch ++Terminals with the \*(``magic cookie\*('' glitch + .RB ( xmc ) +-deposit special ``cookies'' when they receive mode-setting sequences, ++deposit special \*(``cookies\*('' when they receive mode-setting sequences, + which affect the display algorithm rather than having extra bits for + each character. + Some terminals, such as the HP 2621, automatically leave standout +@@ -871,6 +957,7 @@ + If the keypad can be set to transmit or not transmit, + give these codes as \fBsmkx\fR and \fBrmkx\fR. + Otherwise the keypad is assumed to always transmit. ++.PP + The codes sent by the left arrow, right arrow, up arrow, down arrow, + and home keys can be given as + \fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively. +@@ -878,41 +965,60 @@ + can be given as \fBkf0, kf1, ..., kf10\fR. + If these keys have labels other than the default f0 through f10, the labels + can be given as \fBlf0, lf1, ..., lf10\fR. ++.PP + The codes transmitted by certain other special keys can be given: ++.bP + .B kll + (home down), ++.bP + .B kbs + (backspace), ++.bP + .B ktbc + (clear all tabs), ++.bP + .B kctab + (clear the tab stop in this column), ++.bP + .B kclr + (clear screen or erase key), ++.bP + .B kdch1 + (delete character), ++.bP + .B kdl1 + (delete line), ++.bP + .B krmir + (exit insert mode), ++.bP + .B kel + (clear to end of line), ++.bP + .B ked + (clear to end of screen), ++.bP + .B kich1 + (insert character or enter insert mode), ++.bP + .B kil1 + (insert line), ++.bP + .B knp + (next page), ++.bP + .B kpp + (previous page), ++.bP + .B kind + (scroll forward/down), ++.bP + .B kri + (scroll backward/up), ++.bP + .B khts + (set a tab stop in this column). ++.PP + In addition, if the keypad has a 3 by 3 array of keys including the four + arrow keys, the other five keys can be given as + .BR ka1 , +@@ -956,7 +1062,7 @@ + tab stop can be given as + .B ht + (usually control I). +-A ``back-tab'' command which moves leftward to the preceding tab stop can ++A \*(``back-tab\*('' command which moves leftward to the preceding tab stop can + be given as + .BR cbt . + By convention, if the teletype modes indicate that tabs are being +@@ -974,7 +1080,7 @@ + .B it + is given, showing the number of spaces the tabs are set to. + This is normally used by the +-.IR tset ++.IR @TSET@ + command to determine whether to set the mode for hardware tab expansion, + and whether to set the tab stops. + If the terminal has tab stops that can be saved in non-volatile memory, +@@ -1131,7 +1237,7 @@ + string is used. + .PP + .SS Status Lines +-Some terminals have an extra `status line' which is not normally used by ++Some terminals have an extra \*(``status line\*('' which is not normally used by + software (and thus not counted in the terminal's \fBlines\fR capability). + .PP + The simplest case is a status line which is cursor-addressable but not +@@ -1223,7 +1329,7 @@ + .PP + .SS Color Handling + .PP +-Most color terminals are either `Tektronix-like' or `HP-like'. ++Most color terminals are either \*(``Tektronix-like\*('' or \*(``HP-like\*(''. + Tektronix-like + terminals have a predefined set of N colors (where N usually 8), and can set + character-cell foreground and background characters independently, mixing them +@@ -1303,6 +1409,7 @@ + yellow \fBCOLOR_YELLOW\fR 6 max,max,0 + white \fBCOLOR_WHITE\fR 7 max,max,max + .TE ++.PP + It is important to not confuse the two sets of color capabilities; + otherwise red/blue will be interchanged on the display. + .PP +@@ -1339,18 +1446,25 @@ + .PP + .TS + center; +-l c c +-lw25 lw2 lw10. +-\fBAttribute Bit Decimal\fR +-A_STANDOUT 0 1 +-A_UNDERLINE 1 2 +-A_REVERSE 2 4 +-A_BLINK 3 8 +-A_DIM 4 16 +-A_BOLD 5 32 +-A_INVIS 6 64 +-A_PROTECT 7 128 +-A_ALTCHARSET 8 256 ++l l l l ++lw20 lw2 lw10 lw10. ++\fBAttribute Bit Decimal Set by\fR ++A_STANDOUT 0 1 sgr ++A_UNDERLINE 1 2 sgr ++A_REVERSE 2 4 sgr ++A_BLINK 3 8 sgr ++A_DIM 4 16 sgr ++A_BOLD 5 32 sgr ++A_INVIS 6 64 sgr ++A_PROTECT 7 128 sgr ++A_ALTCHARSET 8 256 sgr ++A_HORIZONTAL 9 512 sgr1 ++A_LEFT 10 1024 sgr1 ++A_LOW 11 2048 sgr1 ++A_RIGHT 12 4096 sgr1 ++A_TOP 13 8192 sgr1 ++A_VERTICAL 14 16384 sgr1 ++A_ITALIC 15 32768 sitm + .TE + .PP + For example, on many IBM PC consoles, the underline attribute collides with the +@@ -1389,7 +1503,7 @@ + .BR rep . + The first parameter is the character to be repeated and the second + is the number of times to repeat it. +-Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'. ++Thus, tparm(repeat_char, 'x', 10) is the same as \*(``xxxxxxxxxx\*(''. + .PP + If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025, + this can be indicated with +@@ -1420,13 +1534,13 @@ + .I virtual + terminal descriptions for which the escape sequences are known.) + .PP +-If the terminal has a ``meta key'' which acts as a shift key, ++If the terminal has a \*(``meta key\*('' which acts as a shift key, + setting the 8th bit of any character transmitted, this fact can + be indicated with + .BR km . + Otherwise, software will assume that the 8th bit is parity and it + will usually be cleared. +-If strings exist to turn this ``meta mode'' on and off, they ++If strings exist to turn this \*(``meta mode\*('' on and off, they + can be given as + .B smm + and +@@ -1470,7 +1584,7 @@ + .PP + .SS Glitches and Braindamage + .PP +-Hazeltine terminals, which do not allow `~' characters to be displayed should ++Hazeltine terminals, which do not allow \*(``~\*('' characters to be displayed should + indicate \fBhz\fR. + .PP + Terminals which ignore a line-feed immediately after an \fBam\fR wrap, +@@ -1485,10 +1599,10 @@ + .PP + Teleray terminals, where tabs turn all characters moved over to blanks, + should indicate \fBxt\fR (destructive tabs). +-Note: the variable indicating this is now `dest_tabs_magic_smso'; in ++Note: the variable indicating this is now \*(``dest_tabs_magic_smso\*(''; in + older versions, it was teleray_glitch. + This glitch is also taken to mean that it is not possible to position +-the cursor on top of a ``magic cookie'', ++the cursor on top of a \*(``magic cookie\*('', + that to erase standout mode it is instead necessary to use + delete and insert line. + The ncurses implementation ignores this glitch. +@@ -1499,7 +1613,7 @@ + indicating that the f1 key is used for escape and f2 for control C. + (Only certain Superbees have this problem, depending on the ROM.) + Note that in older terminfo versions, this capability was called +-`beehive_glitch'; it is now `no_esc_ctl_c'. ++\*(``beehive_glitch\*(''; it is now \*(``no_esc_ctl_c\*(''. + .PP + Other specific terminal problems may be corrected by adding more + capabilities of the form \fBx\fR\fIx\fR. +@@ -1524,8 +1638,10 @@ + A capability can be canceled by placing \fBxx@\fR to the left of the + use reference that imports it, where \fIxx\fP is the capability. + For example, the entry ++.RS + .PP +- 2621\-nl, smkx@, rmkx@, use=2621, ++2621\-nl, smkx@, rmkx@, use=2621, ++.RE + .PP + defines a 2621\-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities, + and hence does not turn on the function key labels when in visual mode. +@@ -1570,19 +1686,15 @@ + backslash-newline pairs, which \fBtgetent()\fP strips out while reading it. + Some termcap libraries strip off the final newline, too (GNU termcap does not). + Now suppose: +-.TP 5 +-* ++.bP + a termcap entry before expansion is more than 1023 bytes long, +-.TP 5 +-* ++.bP + and the application has only allocated a 1k buffer, +-.TP 5 +-* ++.bP + and the termcap library (like the one in BSD/OS 1.1 and GNU) reads + the whole entry into the buffer, no matter what its length, to see + if it is the entry it wants, +-.TP 5 +-* ++.bP + and \fBtgetent()\fP is searching for a terminal type that either is the + long entry, appears in the termcap file after the long entry, or + does not appear in the file at all (so that \fBtgetent()\fP has to search +@@ -1625,6 +1737,11 @@ + SVr1, and have added extension capabilities to the string table that (in the + binary format) collide with System V and XSI Curses extensions. + .SH EXTENSIONS ++.PP ++Searching for terminal descriptions in ++\fB$HOME/.terminfo\fR and TERMINFO_DIRS ++is not supported by older implementations. ++.PP + Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, do not + interpret the %A and %O operators in parameter strings. + .PP +@@ -1652,6 +1769,15 @@ + interpret it as \fBKEY_MOUSE\fR, for use by terminals and emulators like xterm + that can return mouse-tracking information in the keyboard-input stream. + .PP ++X/Open Curses does not mention italics. ++Portable applications must assume that numeric capabilities are ++signed 16-bit values. ++This includes the \fIno_color_video\fP (ncv) capability. ++The 32768 mask value used for italics with ncv can be confused with ++an absent or cancelled ncv. ++If italics should work with colors, ++then the ncv value must be specified, even if it is zero. ++.PP + Different commercial ports of terminfo and curses support different subsets of + the XSI Curses standard and (in some cases) different extension sets. + Here +@@ -1666,9 +1792,9 @@ + .PP + \fBSVr1, Ultrix\fR \-\- + These support a restricted subset of terminfo capabilities. +-The booleans +-end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the +-strings with \fBprtr_non\fR. ++The booleans end with \fBxon_xoff\fR; ++the numerics with \fBwidth_status_line\fR; ++and the strings with \fBprtr_non\fR. + .PP + \fBHP/UX\fR \-\- + Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR, +diff -Naur ncurses-5.9/man/term_variables.3x ncurses-5.9.patch/man/term_variables.3x +--- ncurses-5.9/man/term_variables.3x 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/term_variables.3x 2014-09-01 16:33:22.350792113 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 2011,2013 Free 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: term_variables.3x,v 1.2 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: term_variables.3x,v 1.4 2013/12/21 22:17:39 tom Exp $ + .TH term_variables 3X "" + .ds n 5 + .na +@@ -110,7 +110,7 @@ + Alternatively, one can save the return value from \fBnewterm\fP + or \fBsetupterm\fP to reuse in \fBset_term\fP. + .SS Terminfo Names +-The \fBtic\fP(1) and \fBinfocmp\fP(1) programs use lookup tables for ++The \fB@TIC@\fP(1) and \fB@INFOCMP@\fP(1) programs use lookup tables for + the long and short names of terminfo capabilities, + as well as the corresponding names for termcap capabilities. + These are available to other applications, +@@ -134,7 +134,10 @@ + On initialization of the curses or terminfo interfaces, + \fBsetupterm\fP copies the terminal name to the array \fBttytype\fP. + .SH NOTES +-The low-level terminfo interface is initialized using \fBsetupterm\fR(3X). ++The low-level terminfo interface is initialized using ++.hy 0 ++\fBsetupterm\fR(3X). ++.hy + The upper-level curses interface uses the low-level terminfo interface, + internally. + .SH PORTABILITY +@@ -146,8 +149,9 @@ + Some implementations provide the variables in their libraries, + but omit them from the header files. + .SH SEE ALSO ++.hy 0 + \fBcurses\fR(3X), + \fBcurs_terminfo\fR(3X), + \fBcurs_threads\fR(3X), +-\fBterminfo\fR(3X), + \fBterminfo\fR(\*n). ++.hy +diff -Naur ncurses-5.9/man/tic.1m ncurses-5.9.patch/man/tic.1m +--- ncurses-5.9/man/tic.1m 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/tic.1m 2014-09-01 16:33:22.351792114 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2012,2013 Free 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,19 +26,29 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: tic.1m,v 1.47 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: tic.1m,v 1.58 2013/07/20 19:31:25 tom Exp $ + .TH @TIC@ 1M "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .ds n 5 + .ds d @TERMINFO@ ++.de bP ++.IP \(bu 4 ++.. + .SH NAME +-\fBtic\fR \- the \fIterminfo\fR entry-description compiler ++\fB@TIC@\fR \- the \fIterminfo\fR entry-description compiler + .SH SYNOPSIS +-\fBtic\fR ++\fB@TIC@\fR + [\fB\-\ ++0\ + 1\ + C\ ++D\ + G\ + I\ ++K\ + L\ + N\ + T\ +@@ -61,31 +71,69 @@ + \fIfile\fR + .br + .SH DESCRIPTION +-The command \fBtic\fR translates a \fBterminfo\fR file from source ++The \fB@TIC@\fR command translates a \fBterminfo\fR file from source + format into compiled format. + The compiled format is necessary for use with + the library routines in \fBncurses\fR(3X). + .PP +-The results are normally placed in the system terminfo +-directory \fB\*d\fR. +-There are two ways to change this behavior. +-.PP +-First, you may override the system default by setting the variable +-\fBTERMINFO\fR in your shell environment to a valid (existing) directory name. +-.PP +-Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO +-directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory +-exists, the entry is placed there. +-.PP +-Libraries that read terminfo entries are expected to check for a TERMINFO +-directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and +-finally look in \fI\*d\fR. ++As described in \fBterm\fR(\*n), the database may be either a directory ++tree (one file per terminal entry) or a hashed database (one record per entry). ++The \fB@TIC@\fR command writes only one type of entry, ++depending on how it was built: ++.bP ++For directory trees, the top-level directory, e.g., /usr/share/terminfo, ++specifies the location of the database. ++.bP ++For hashed databases, a filename is needed. ++If the given file is not found by that name, ++but can be found by adding the suffix ".db", ++then that is used. ++.IP ++The default name for the hashed database is the same as the ++default directory name (only adding a ".db" suffix). ++.PP ++In either case (directory or hashed database), ++\fB@TIC@\fP will create the container if it does not exist. ++For a directory, this would be the "terminfo" leaf, ++versus a "terminfo.db" file. ++.PP ++The results are normally placed in the system terminfo database \fB\*d\fR. ++The compiled terminal description can be placed ++in a different terminfo database. ++There are two ways to achieve this: ++.bP ++First, you may override the system default either by ++using the \fB\-o\fP option, ++or by setting the variable \fBTERMINFO\fR ++in your shell environment to a valid database location. ++.bP ++Secondly, if \fB@TIC@\fR cannot write in \fI\*d\fR ++or the location specified using your TERMINFO variable, ++it looks for the directory \fI$HOME/.terminfo\fR ++(or hashed database \fI$HOME/.terminfo.db)\fR; ++if that location exists, the entry is placed there. ++.PP ++Libraries that read terminfo entries are expected to check in succession ++.bP ++a location specified with the TERMINFO environment variable, ++.bP ++\fI$HOME/.terminfo\fR, ++.bP ++directories listed in the TERMINFO_DIRS environment variable, ++.bP ++a compiled-in list of directories (@TERMINFO_DIRS@), and ++.bP ++the system terminfo database (\fI\*d\fR). ++.SS OPTIONS ++.TP ++\fB\-0\fR ++restricts the output to a single line + .TP + \fB\-1\fR + restricts the output to a single column + .TP + \fB\-a\fR +-tells \fBtic\fP to retain commented-out capabilities rather than discarding ++tells \fB@TIC@\fP to retain commented-out capabilities rather than discarding + them. + Capabilities are commented by prefixing them with a period. + This sets the \fB\-x\fR option, because it treats the commented-out +@@ -101,16 +149,30 @@ + Capabilities + that are not translatable are left in the entry under their terminfo names + but commented out with two preceding dots. ++The actual format used incorporates some improvements for escaped characters ++from terminfo format. ++For a stricter BSD-compatible translation, add the \fB\-K\fR option. + .TP + \fB\-c\fR +-tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and ++tells \fB@TIC@\fP to only check \fIfile\fR for errors, including syntax problems and + bad use links. + If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code + will print warnings about entries which, after use resolution, are more than + 1023 (4096) bytes long. +-Due to a fixed buffer length in older termcap +-libraries (and a documented limit in terminfo), these entries may cause core +-dumps. ++Due to a fixed buffer length in older termcap libraries, ++as well as buggy checking for the buffer length ++(and a documented limit in terminfo), ++these entries may cause core ++dumps with other implementations. ++.TP ++\fB\-D\fR ++tells \fB@TIC@\fP to print the database locations that it knows about, and exit. ++The first location shown is the one to which it would write compiled ++terminal descriptions. ++If \fB@TIC@\fP is not able to find a writable database location ++according to the rules summarized above, ++it will print a diagnostic and exit with an error rather than ++printing a list of database locations. + .TP + \fB\-e \fR\fInames\fR + Limit writes and translations to the following comma-separated list of +@@ -137,6 +199,10 @@ + \fB\-I\fR + Force source translation to terminfo format. + .TP ++\fB\-K\fR ++Suppress some longstanding ncurses extensions to termcap format, ++e.g., "\\s" for space. ++.TP + \fB\-L\fR + Force source translation to terminfo format + using the long C variable names listed in <\fBterm.h\fR> +@@ -155,9 +221,8 @@ + obsolete capabilities. + .TP + \fB\-o\fR\fIdir\fR +-Write compiled entries to given directory. +-Overrides the TERMINFO environment +-variable. ++Write compiled entries to given database location. ++Overrides the TERMINFO environment variable. + .TP + \fB\-R\fR\fIsubset\fR + Restrict output to a given subset. +@@ -177,7 +242,7 @@ + tc capabilities per entry. + .TP + \fB\-s\fR +-Summarize the compile by showing the directory into which entries ++Summarize the compile by showing the database location into which entries + are written, and the number of entries which are compiled. + .TP + \fB\-T\fR +@@ -186,12 +251,12 @@ + descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). + .TP + \fB\-t\fR +-tells \fBtic\fP to discard commented-out capabilities. ++tells \fB@TIC@\fP to discard commented-out capabilities. + Normally when translating from terminfo to termcap, + untranslatable capabilities are commented-out. + .TP 5 + \fB\-U\fR +-tells \fBtic\fP to not post-process the data after parsing the source file. ++tells \fB@TIC@\fP to not post-process the data after parsing the source file. + Normally, it infers data which is commonly missing in older terminfo data, + or in termcaps. + .TP +@@ -200,31 +265,13 @@ + .TP + \fB\-v\fR\fIn\fR + specifies that (verbose) output be written to standard error trace +-information showing \fBtic\fR's progress. ++information showing \fB@TIC@\fR's progress. + The optional parameter \fIn\fR is a number from 1 to 10, inclusive, + indicating the desired level of detail of information. + If \fIn\fR is omitted, the default level is 1. + If \fIn\fR is specified and greater than 1, the level of + detail is increased. +-.TP +-\fB\-w\fR\fIn\fR +-specifies the width of the output. +-The parameter is optional. +-If it is omitted, it defaults to 60. +-.TP +-\fB\-x\fR +-Treat unknown capabilities as user-defined. +-That is, if you supply a capability name which \fBtic\fP does not recognize, +-it will infer its type (boolean, number or string) from the syntax and +-make an extended table entry for that. +-User-defined capability strings +-whose name begins with ``k'' are treated as function keys. +-.TP +-\fIfile\fR +-contains one or more \fBterminfo\fR terminal descriptions in source +-format [see \fBterminfo\fR(\*n)]. +-Each description in the file +-describes the capabilities of a particular terminal. ++.RS + .PP + The debug flag levels are as follows: + .TP +@@ -232,7 +279,7 @@ + Names of files created and linked + .TP + 2 +-Information related to the ``use'' facility ++Information related to the \*(``use\*('' facility + .TP + 3 + Statistics from the hashing algorithm +@@ -250,19 +297,42 @@ + All values computed in construction of the hash table + .LP + If the debug level \fIn\fR is not given, it is taken to be one. ++.RE ++.TP ++\fB\-w\fR\fIn\fR ++specifies the width of the output. ++The parameter is optional. ++If it is omitted, it defaults to 60. ++.TP ++\fB\-x\fR ++Treat unknown capabilities as user-defined. ++That is, if you supply a capability name which \fB@TIC@\fP does not recognize, ++it will infer its type (boolean, number or string) from the syntax and ++make an extended table entry for that. ++User-defined capability strings ++whose name begins with \*(``k\*('' are treated as function keys. ++.SS PARAMETERS ++.TP ++\fIfile\fR ++contains one or more \fBterminfo\fR terminal descriptions in source ++format [see \fBterminfo\fR(\*n)]. ++Each description in the file ++describes the capabilities of a particular terminal. ++.IP ++If \fIfile\fR is \*(``-\*('', then the data is read from the standard input. ++The \fIfile\fR parameter may also be the path of a character-device. ++.SS PROCESSING + .PP +-All but one of the capabilities recognized by \fBtic\fR are documented ++All but one of the capabilities recognized by \fB@TIC@\fR are documented + in \fBterminfo\fR(\*n). + The exception is the \fBuse\fR capability. + .PP + When a \fBuse\fR=\fIentry\fR\-\fIname\fR field is discovered in a +-terminal entry currently being compiled, \fBtic\fR reads in the binary ++terminal entry currently being compiled, \fB@TIC@\fR reads in the binary + from \fB\*d\fR to complete the entry. + (Entries created from + \fIfile\fR will be used first. +-If the environment variable +-\fBTERMINFO\fR is set, that directory is searched instead of +-\fB\*d\fR.) \fBtic\fR duplicates the capabilities in ++\fB@TIC@\fR duplicates the capabilities in + \fIentry\fR\-\fIname\fR for the current entry, with the exception of + those capabilities that explicitly are defined in the current entry. + .PP +@@ -272,9 +342,6 @@ + \fBentry_name_1\fR before \fBuse=\fR for these capabilities to be + canceled in \fBentry_name_1\fR. + .PP +-If the environment variable \fBTERMINFO\fR is set, the compiled +-results are placed there instead of \fB\*d\fR. +-.PP + Total compiled entries cannot exceed 4096 bytes. + The name field cannot + exceed 512 bytes. +@@ -282,14 +349,14 @@ + (32 characters on systems with long filenames, 14 characters otherwise) + will be truncated to the maximum alias length and a warning message will be printed. + .SH COMPATIBILITY +-There is some evidence that historic \fBtic\fR implementations treated ++There is some evidence that historic \fB@TIC@\fR implementations treated + description fields with no whitespace in them as additional aliases or + short names. +-This \fBtic\fR does not do that, but it does warn when ++This \fB@TIC@\fR does not do that, but it does warn when + description fields may be treated that way and check them for dangerous + characters. + .SH EXTENSIONS +-Unlike the stock SVr4 \fBtic\fR command, this implementation can actually ++Unlike the SVr4 \fB@TIC@\fR command, this implementation can actually + compile termcap sources. + In fact, entries in terminfo and termcap syntax can + be mixed in a single source file. +@@ -298,16 +365,20 @@ + .PP + The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR + capabilities. +-This implementation of \fBtic\fR will find \fBuse\fR targets anywhere ++This implementation of \fB@TIC@\fR will find \fBuse\fR targets anywhere + in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if +-\fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory +-(if it exists), or (finally) anywhere in the system's file tree of ++\fBTERMINFO\fR is defined), ++or in the user's \fI$HOME/.terminfo\fR database ++(if it exists), ++or (finally) anywhere in the system's file tree of + compiled entries. + .PP +-The error messages from this \fBtic\fR have the same format as GNU C ++The error messages from this \fB@TIC@\fR have the same format as GNU C + error messages, and can be parsed by GNU Emacs's compile facility. + .PP + The ++\fB\-0\fR, ++\fB\-1\fR, + \fB\-C\fR, + \fB\-G\fR, + \fB\-I\fR, +@@ -329,7 +400,7 @@ + The SVr4 \fB\-c\fR mode does not report bad use links. + .PP + System V does not compile entries to or read entries from your +-\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it. ++\fI$HOME/.terminfo\fR database unless TERMINFO is explicitly set to it. + .SH FILES + .TP 5 + \fB\*d/?/*\fR +@@ -340,6 +411,7 @@ + \fB@INFOTOCAP@\fR(1M), + \fB@TOE@\fR(1M), + \fBcurses\fR(3X), ++\fBterm\fR(\*n). + \fBterminfo\fR(\*n). + .PP + This describes \fBncurses\fR +diff -Naur ncurses-5.9/man/toe.1m ncurses-5.9.patch/man/toe.1m +--- ncurses-5.9/man/toe.1m 2010-12-04 19:40:45.000000000 +0100 ++++ ncurses-5.9.patch/man/toe.1m 2014-09-01 16:33:22.351792114 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * + .\" copy of this software and associated documentation files (the * +@@ -26,19 +26,19 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: toe.1m,v 1.23 2010/12/04 18:40:45 tom Exp $ ++.\" $Id: toe.1m,v 1.26 2012/01/01 00:40:51 tom Exp $ + .TH @TOE@ 1M "" + .ds n 5 + .ds d @TERMINFO@ + .SH NAME +-\fBtoe\fR \- table of (terminfo) entries ++\fB@TOE@\fR \- table of (terminfo) entries + .SH SYNOPSIS +-\fBtoe\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR ++\fB@TOE@\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahsuUV\fR] \fIfile...\fR + .br + .SH DESCRIPTION + .PP + With no options, +-\fBtoe\fR lists all available terminal types by primary name ++\fB@TOE@\fR lists all available terminal types by primary name + with descriptions. + File arguments specify the directories to be scanned; if no + such arguments are given, +@@ -52,6 +52,15 @@ + \fB\-a\fR + report on all of the terminal databases which ncurses would search, + rather than only the first one that it finds. ++.IP ++If the \fB\-s\fR is also given, \fB@TOE@\fR ++adds a column to the report, ++showing (like \fBconflict\fP(1)) which entries which ++belong to a given terminal database. ++An "*" marks entries which differ, and "+" marks equivalent entries. ++.TP ++\fB\-s\fR ++sort the output by the entry names. + .TP + \fB\-u\fR \fIfile\fR + says to write a report to the standard output, +@@ -78,7 +87,7 @@ + .TP + \fB\-v\fR\fIn\fR + specifies that (verbose) output be written to standard error, +-showing \fBtoe\fR's progress. ++showing \fB@TOE@\fR's progress. + The optional parameter \fIn\fR is a number from 1 to 10, + interpreted as for \fB@TIC@\fR(1M). + .TP +diff -Naur ncurses-5.9/man/tput.1 ncurses-5.9.patch/man/tput.1 +--- ncurses-5.9/man/tput.1 2010-12-04 19:41:07.000000000 +0100 ++++ ncurses-5.9.patch/man/tput.1 2014-09-01 16:33:22.351792114 +0200 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2011,2012 Free 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 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: tput.1,v 1.29 2010/12/04 18:41:07 tom Exp $ ++.\" $Id: tput.1,v 1.32 2012/07/14 21:06:45 tom Exp $ + .TH @TPUT@ 1 "" + .ds d @TERMINFO@ + .ds n 1 +@@ -77,11 +77,12 @@ + and the \fIcapname\fR associated with each, see \fBterminfo\fR(5). + .TP + \fB\-T\fR\fItype\fR +-indicates the \fItype\fR of terminal. Normally this option is ++indicates the \fItype\fR of terminal. ++Normally this option is + unnecessary, because the default is taken from the environment +-variable \fBTERM\fR. If \fB\-T\fR is specified, then the shell +-variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the +-operating system will not be queried for the actual screen size. ++variable \fBTERM\fR. ++If \fB\-T\fR is specified, then the shell ++variables \fBLINES\fR and \fBCOLUMNS\fR will also be ignored. + .TP + \fIcapname\fR + indicates the capability from the \fBterminfo\fR database. When +@@ -159,7 +160,7 @@ + .PP + If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the + same effect as \fB@TPUT@ reset\fR. +-See \fBtset\fR for comparison, which has similar behavior. ++See \fB@TSET@\fR for comparison, which has similar behavior. + .SH EXAMPLES + .TP 5 + \fB@TPUT@ init\fR +@@ -275,7 +276,7 @@ + .PP + Any other exit code indicates an error; see the DIAGNOSTICS section. + .SH DIAGNOSTICS +-\fBtput\fR prints the following error messages and sets the corresponding exit ++\fB@TPUT@\fR prints the following error messages and sets the corresponding exit + codes. + .PP + .ne 15 +@@ -303,17 +304,29 @@ + .PP + X/Open documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP. + In this implementation, \fBclear\fP is part of the \fIcapname\fR support. +-Other implementations of \fBtput\fP on ++Other implementations of \fB@TPUT@\fP on + SVr4-based systems such as Solaris, IRIX64 and HPUX + as well as others such as AIX and Tru64 + provide support for \fIcapname\fR operands. ++.PP + A few platforms such as FreeBSD and NetBSD recognize termcap names rather +-than terminfo capability names in their respective \fBtput\fP commands. ++than terminfo capability names in their respective \fB@TPUT@\fP commands. ++.PP ++Most implementations which provide support for \fIcapname\fR operands ++use the \fItparm\fP function to expand parameters in it. ++That function expects a mixture of numeric and string parameters, ++requiring \fB@TPUT@\fP to know which type to use. ++This implementation uses a table to determine that for ++the standard \fIcapname\fR operands, and an internal library ++function to analyze nonstandard \fIcapname\fR operands. ++Other implementations may simply guess that an operand containing only digits ++is intended to be a number. + .SH SEE ALSO + \fB@CLEAR@\fR(1), + \fBstty\fR(1), + \fBtabs\fR(\*n), +-\fBterminfo\fR(5). ++\fBterminfo\fR(5), ++\fBcurs_termcap\fR(3X). + .PP + This describes \fBncurses\fR + version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). +diff -Naur ncurses-5.9/man/tset.1 ncurses-5.9.patch/man/tset.1 +--- ncurses-5.9/man/tset.1 2010-12-04 19:38:55.000000000 +0100 ++++ ncurses-5.9.patch/man/tset.1 2014-09-01 16:33:22.351792114 +0200 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2011,2013 Free 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,12 +26,16 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: tset.1,v 1.25 2010/12/04 18:38:55 tom Exp $ ++.\" $Id: tset.1,v 1.29 2013/12/21 22:15:53 tom Exp $ + .TH @TSET@ 1 "" ++.ie \n(.g .ds `` \(lq ++.el .ds `` `` ++.ie \n(.g .ds '' \(rq ++.el .ds '' '' + .SH NAME +-\fBtset\fR, \fBreset\fR \- terminal initialization ++\fB@TSET@\fR, \fBreset\fR \- terminal initialization + .SH SYNOPSIS +-\fBtset\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR] ++\fB@TSET@\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR] + .br + \fBreset\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR] + .SH DESCRIPTION +@@ -49,13 +53,13 @@ + \fIgetty\fR does this job by setting + \fBTERM\fR according to the type passed to it by \fI/etc/inittab\fR.) + .PP +-4. The default terminal type, ``unknown''. ++4. The default terminal type, \*(``unknown\*(''. + .PP + If the terminal type was not specified on the command-line, the \fB\-m\fR + option mappings are then applied (see the section + .B TERMINAL TYPE MAPPING + for more information). +-Then, if the terminal type begins with a question mark (``?''), the ++Then, if the terminal type begins with a question mark (\*(``?\*(''), the + user is prompted for confirmation of the terminal type. An empty + response confirms the type, or, another type can be entered to specify + a new type. Once the terminal type has been determined, the terminfo +@@ -72,7 +76,7 @@ + versus the other initialization. + If neither option is given, both are assumed. + .PP +-When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes, ++When invoked as \fBreset\fR, \fB@TSET@\fR sets cooked and echo modes, + turns off cbreak and raw modes, turns on newline translation and + resets any unset special characters to their default values before + doing the terminal initialization described above. This is useful +@@ -89,6 +93,7 @@ + .TP 5 + .B \-c + Set control characters and modes. ++.TP 5 + .B \-e + Set the erase character to \fIch\fR. + .TP +@@ -109,7 +114,7 @@ + .TP + .B \-Q + Do not display any values for the erase, interrupt and line kill characters. +-Normally \fBtset\fR displays the values for control characters which ++Normally \fB@TSET@\fR displays the values for control characters which + differ from the system's default values. + .TP + .B \-q +@@ -137,7 +142,7 @@ + .PP + The arguments for the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR + options may either be entered as actual characters or by using the `hat' +-notation, i.e., control-h may be specified as ``^H'' or ``^h''. ++notation, i.e., control-h may be specified as \*(``^H\*('' or \*(``^h\*(''. + . + .SH SETTING THE ENVIRONMENT + It is often desirable to enter the terminal type and information about +@@ -146,35 +151,41 @@ + .PP + When the \fB\-s\fR option is specified, the commands to enter the information + into the shell's environment are written to the standard output. If +-the \fBSHELL\fR environmental variable ends in ``csh'', the commands ++the \fBSHELL\fR environmental variable ends in \*(``csh\*('', the commands + are for \fBcsh\fR, otherwise, they are for \fBsh\fR. + Note, the \fBcsh\fR commands set and unset the shell variable + \fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR + or \fB.profile\fR files will initialize the environment correctly: + .sp +- eval \`tset \-s options ... \` ++ eval \`@TSET@ \-s options ... \` + . + .SH TERMINAL TYPE MAPPING + When the terminal is not hardwired into the system (or the current + system information is incorrect) the terminal type derived from the + \fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often + something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR. +-When \fBtset\fR is used in a startup script it is often desirable to ++When \fB@TSET@\fR is used in a startup script it is often desirable to + provide information about the type of terminal used on such ports. + .PP + The purpose of the \fB\-m\fR option is to map + from some set of conditions to a terminal type, that is, to +-tell \fBtset\fR +-``If I'm on this port at a particular speed, guess that I'm on that +-kind of terminal''. ++tell \fB@TSET@\fR ++\*(``If I'm on this port at a particular speed, ++guess that I'm on that kind of terminal\*(''. + .PP + The argument to the \fB\-m\fR option consists of an optional port type, an + optional operator, an optional baud rate specification, an optional +-colon (``:'') character and a terminal type. The port type is a +-string (delimited by either the operator or the colon character). The +-operator may be any combination of ``>'', ``<'', ``@'', and ``!''; ``>'' +-means greater than, ``<'' means less than, ``@'' means equal to +-and ``!'' inverts the sense of the test. ++colon (\*(``:\*('') character and a terminal type. The port type is a ++string (delimited by either the operator or the colon character). ++The operator may be any combination of ++\*(``>\*('', ++\*(``<\*('', ++\*(``@\*('', ++and \*(``!\*(''; ++\*(``>\*('' means greater than, ++\*(``<\*('' means less than, ++\*(``@\*('' means equal to and ++\*(``!\*('' inverts the sense of the test. + The baud rate is specified as a number and is compared with the speed + of the standard error output (which should be the control terminal). + The terminal type is a string. +@@ -204,53 +215,57 @@ + No whitespace characters are permitted in the \fB\-m\fR option argument. + Also, to avoid problems with meta-characters, it is suggested that the + entire \fB\-m\fR option argument be placed within single quote characters, +-and that \fBcsh\fR users insert a backslash character (``\e'') before +-any exclamation marks (``!''). ++and that \fBcsh\fR users insert a backslash character (\*(``\e\*('') before ++any exclamation marks (\*(``!\*(''). + .SH HISTORY +-The \fBtset\fR command appeared in BSD 3.0. The \fBncurses\fR implementation ++The \fB@TSET@\fR command appeared in BSD 3.0. The \fBncurses\fR implementation + was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric + S. Raymond <esr@snark.thyrsus.com>. + .SH COMPATIBILITY +-The \fBtset\fR utility has been provided for backward-compatibility with BSD ++The \fB@TSET@\fR utility has been provided for backward-compatibility with BSD + environments (under most modern UNIXes, \fB/etc/inittab\fR and \fIgetty\fR(1) + can set \fBTERM\fR appropriately for each dial-up line; this obviates what was +-\fBtset\fR's most important use). This implementation behaves like 4.4BSD ++\fB@TSET@\fR's most important use). This implementation behaves like 4.4BSD + tset, with a few exceptions specified here. + .PP +-The \fB\-S\fR option of BSD tset no longer works; it prints an error message to stderr +-and dies. The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these +-changes are because the \fBTERMCAP\fR variable is no longer supported under +-terminfo-based \fBncurses\fR, which makes \fBtset \-S\fR useless (we made it die +-noisily rather than silently induce lossage). ++The \fB\-S\fR option of BSD tset no longer works; ++it prints an error message to stderr and dies. ++The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. ++Both of these changes are because the \fBTERMCAP\fR variable ++is no longer supported under terminfo-based \fBncurses\fR, ++which makes \fB@TSET@ \-S\fR useless ++(we made it die noisily rather than silently induce lossage). + .PP + There was an undocumented 4.4BSD feature that invoking tset via a link named + `TSET` (or via any other name beginning with an upper-case letter) set the + terminal to use upper-case only. This feature has been omitted. + .PP + The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR +-options were deleted from the \fBtset\fR ++options were deleted from the \fB@TSET@\fR + utility in 4.4BSD. + None of them were documented in 4.3BSD and all are + of limited utility at best. + The \fB\-a\fR, \fB\-d\fR, and \fB\-p\fR options are similarly + not documented or useful, but were retained as they appear to be in + widespread use. It is strongly recommended that any usage of these +-three options be changed to use the \fB\-m\fR option instead. The +-\fB\-n\fP option remains, but has no effect. The \fB\-adnp\fR options are therefore +-omitted from the usage summary above. +-.PP +-It is still permissible to specify the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR options without +-arguments, although it is strongly recommended that such usage be fixed to ++three options be changed to use the \fB\-m\fR option instead. ++The \fB\-n\fP option remains, but has no effect. ++The \fB\-adnp\fR options are therefore omitted from the usage summary above. ++.PP ++It is still permissible to specify the \fB\-e\fR, \fB\-i\fR, ++and \fB\-k\fR options without arguments, ++although it is strongly recommended that such usage be fixed to + explicitly specify the character. + .PP +-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB\-Q\fR +-option. Also, the interaction between the \- option and the \fIterminal\fR +-argument in some historic implementations of \fBtset\fR has been removed. ++As of 4.4BSD, ++executing \fB@TSET@\fR as \fBreset\fR no longer implies the \fB\-Q\fR option. ++Also, the interaction between the \- option and the \fIterminal\fR ++argument in some historic implementations of \fB@TSET@\fR has been removed. + .SH ENVIRONMENT +-The \fBtset\fR command uses these environment variables: ++The \fB@TSET@\fR command uses these environment variables: + .TP 5 + SHELL +-tells \fBtset\fP whether to initialize \fBTERM\fP using \fBsh\fP or ++tells \fB@TSET@\fP whether to initialize \fBTERM\fP using \fBsh\fP or + \fBcsh\fP syntax. + .TP 5 + TERM +@@ -260,7 +275,7 @@ + TERMCAP + may denote the location of a termcap database. + If it is not an absolute pathname, e.g., begins with a `/', +-\fBtset\fP removes the variable from the environment before looking ++\fB@TSET@\fP removes the variable from the environment before looking + for the terminal description. + .SH FILES + .TP 5 +@@ -270,6 +285,7 @@ + @TERMINFO@ + terminal capability database + .SH SEE ALSO ++.hy 0 + csh(1), + sh(1), + stty(1), +@@ -278,6 +294,7 @@ + terminfo(5), + ttys(5), + environ(7) ++.hy + .PP + This describes \fBncurses\fR + version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@). +diff -Naur ncurses-5.9/MANIFEST ncurses-5.9.patch/MANIFEST +--- ncurses-5.9/MANIFEST 2011-03-28 02:29:04.000000000 +0200 ++++ ncurses-5.9.patch/MANIFEST 2014-09-01 16:33:22.228791910 +0200 +@@ -190,6 +190,7 @@ + ./Ada95/src/terminal_interface-curses-text_io.ads + ./Ada95/src/terminal_interface-curses-trace.adb_p + ./Ada95/src/terminal_interface.ads ++./COPYING + ./INSTALL + ./MANIFEST + ./Makefile.in +@@ -545,6 +546,8 @@ + ./include/nc_alloc.h + ./include/nc_mingw.h + ./include/nc_panel.h ++./include/nc_string.h ++./include/nc_termios.h + ./include/nc_tparm.h + ./include/ncurses_cfg.hin + ./include/ncurses_defs +@@ -656,6 +659,8 @@ + ./man/legacy_coding.3x + ./man/make_sed.sh + ./man/man_db.renames ++./man/manhtml.aliases ++./man/manhtml.externs + ./man/manlinks.sed + ./man/menu.3x + ./man/menu_attributes.3x +@@ -764,7 +769,6 @@ + ./mk-0th.awk + ./mk-1st.awk + ./mk-2nd.awk +-./mk-dlls.sh.in + ./mk-hdr.awk + ./ncurses/Makefile.in + ./ncurses/README +@@ -850,7 +854,6 @@ + ./ncurses/base/lib_wattron.c + ./ncurses/base/lib_winch.c + ./ncurses/base/lib_window.c +-./ncurses/base/memmove.c + ./ncurses/base/nc_panel.c + ./ncurses/base/resizeterm.c + ./ncurses/base/safe_sprintf.c +@@ -867,6 +870,14 @@ + ./ncurses/llib-lncursest + ./ncurses/llib-lncursestw + ./ncurses/llib-lncursesw ++./ncurses/llib-ltic ++./ncurses/llib-ltict ++./ncurses/llib-ltictw ++./ncurses/llib-lticw ++./ncurses/llib-ltinfo ++./ncurses/llib-ltinfot ++./ncurses/llib-ltinfotw ++./ncurses/llib-ltinfow + ./ncurses/modules + ./ncurses/tinfo/MKcaptab.awk + ./ncurses/tinfo/MKcaptab.sh +@@ -915,10 +926,10 @@ + ./ncurses/tinfo/make_hash.c + ./ncurses/tinfo/make_keys.c + ./ncurses/tinfo/name_match.c ++./ncurses/tinfo/obsolete.c + ./ncurses/tinfo/parse_entry.c + ./ncurses/tinfo/read_entry.c + ./ncurses/tinfo/read_termcap.c +-./ncurses/tinfo/setbuf.c + ./ncurses/tinfo/strings.c + ./ncurses/tinfo/tinfo_driver.c + ./ncurses/tinfo/trim_sgr0.c +@@ -943,8 +954,6 @@ + ./ncurses/tty/lib_tstp.c + ./ncurses/tty/lib_twait.c + ./ncurses/tty/lib_vidattr.c +-./ncurses/tty/tty_display.h +-./ncurses/tty/tty_input.h + ./ncurses/tty/tty_update.c + ./ncurses/wcwidth.h + ./ncurses/widechar/charable.c +@@ -967,9 +976,34 @@ + ./ncurses/widechar/lib_vline_set.c + ./ncurses/widechar/lib_wacs.c + ./ncurses/widechar/lib_wunctrl.c ++./ncurses/widechar/widechars.c + ./ncurses/win32con/gettimeofday.c + ./ncurses/win32con/wcwidth.c + ./ncurses/win32con/win_driver.c ++./package/debian-mingw/changelog ++./package/debian-mingw/compat ++./package/debian-mingw/control ++./package/debian-mingw/copyright ++./package/debian-mingw/rules ++./package/debian-mingw/source/format ++./package/debian-mingw/watch ++./package/debian-mingw64/changelog ++./package/debian-mingw64/compat ++./package/debian-mingw64/control ++./package/debian-mingw64/copyright ++./package/debian-mingw64/rules ++./package/debian-mingw64/source/format ++./package/debian-mingw64/watch ++./package/debian/changelog ++./package/debian/compat ++./package/debian/control ++./package/debian/copyright ++./package/debian/rules ++./package/debian/source/format ++./package/debian/watch ++./package/mingw-ncurses.nsi ++./package/mingw-ncurses.spec ++./package/ncurses.spec + ./panel/Makefile.in + ./panel/headers + ./panel/llib-lpanel +@@ -1022,12 +1056,14 @@ + ./test/cardfile.dat + ./test/chgat.c + ./test/clip_printw.c ++./test/color_name.h + ./test/color_set.c + ./test/configure + ./test/configure.in + ./test/demo_altkeys.c + ./test/demo_defkey.c + ./test/demo_forms.c ++./test/demo_forms.txt + ./test/demo_keyok.c + ./test/demo_menus.c + ./test/demo_panels.c +@@ -1036,6 +1072,7 @@ + ./test/ditto.c + ./test/dots.c + ./test/dots_mvcur.c ++./test/dots_termcap.c + ./test/echochar.c + ./test/edit_field.c + ./test/edit_field.h +@@ -1043,6 +1080,7 @@ + ./test/firework.c + ./test/firstlast.c + ./test/foldkeys.c ++./test/form_driver_w.c + ./test/gdc.6 + ./test/gdc.c + ./test/hanoi.c +@@ -1073,6 +1111,7 @@ + ./test/package/debian/rules + ./test/package/debian/source/format + ./test/package/debian/watch ++./test/package/mingw-ncurses-examples.spec + ./test/package/ncurses-examples.spec + ./test/programs + ./test/railroad.c +@@ -1092,12 +1131,15 @@ + ./test/test_instr.c + ./test/test_inwstr.c + ./test/test_opaque.c ++./test/test_vid_puts.c ++./test/test_vidputs.c + ./test/testaddch.c + ./test/testcurs.c + ./test/testscanw.c + ./test/tracemunch + ./test/view.c + ./test/widechars-utf8.txt ++./test/widechars.h + ./test/worm.c + ./test/xmas.c + ./test/xterm-16color.dat +diff -Naur ncurses-5.9/menu/Makefile.in ncurses-5.9.patch/menu/Makefile.in +--- ncurses-5.9/menu/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/menu/Makefile.in 2014-09-01 16:33:22.351792114 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.54 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.57 2013/08/04 20:23:27 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -57,6 +57,9 @@ + bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -102,6 +105,7 @@ + SHLIB_DIRS = -L../lib + SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@ + ++RPATH_LIST = @RPATH_LIST@ + MK_SHARED_LIB = @MK_SHARED_LIB@ + + NCURSES_MAJOR = @NCURSES_MAJOR@ +@@ -111,7 +115,7 @@ + + RANLIB = @LIB_PREP@ + +-LIBRARIES = @LIBS_TO_MAKE@ ++LIBRARIES = @Libs_To_Make@ + + LINT = @LINT@ + LINT_OPTS = @LINT_OPTS@ +diff -Naur ncurses-5.9/menu/m_attribs.c ncurses-5.9.patch/menu/m_attribs.c +--- ncurses-5.9/menu/m_attribs.c 2010-01-23 22:16:54.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_attribs.c 2014-09-01 16:33:22.352792116 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_attribs.c,v 1.16 2010/01/23 21:16:54 tom Exp $") ++MODULE_ID("$Id: m_attribs.c,v 1.17 2012/03/10 23:43:41 tom Exp $") + + /* Macro to redraw menu if it is posted and changed */ + #define Refresh_Menu(menu) \ +@@ -51,7 +51,7 @@ + #define GEN_MENU_ATTR_SET_FCT( name ) \ + 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)"), (void *) menu, _traceattr(attr))); \ + if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\ + RETURN(E_BAD_ARGUMENT);\ + if (menu && ( menu -> name != attr))\ +diff -Naur ncurses-5.9/menu/m_driver.c ncurses-5.9.patch/menu/m_driver.c +--- ncurses-5.9/menu/m_driver.c 2010-01-23 22:20:10.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_driver.c 2014-09-01 16:33:22.352792116 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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.29 2010/01/23 21:20:10 tom Exp $") ++MODULE_ID("$Id: m_driver.c,v 1.31 2012/03/10 23:43:41 tom Exp $") + + /* Macros */ + +@@ -47,7 +47,7 @@ + + /* Add a new character to the match pattern buffer */ + #define Add_Character_To_Pattern(menu,ch) \ +- { (menu)->pattern[((menu)->pindex)++] = (ch);\ ++ { (menu)->pattern[((menu)->pindex)++] = (char) (ch);\ + (menu)->pattern[(menu)->pindex] = '\0'; } + + /*--------------------------------------------------------------------------- +@@ -537,7 +537,11 @@ + result = E_UNKNOWN_COMMAND; + } + +- if (E_OK == result) ++ if (item == 0) ++ { ++ result = E_BAD_STATE; ++ } ++ else if (E_OK == result) + { + /* Adjust the top row if it turns out that the current item unfortunately + doesn't appear in the menu window */ +diff -Naur ncurses-5.9/menu/menu.priv.h ncurses-5.9.patch/menu/menu.priv.h +--- ncurses-5.9/menu/menu.priv.h 2009-02-28 22:02:57.000000000 +0100 ++++ ncurses-5.9.patch/menu/menu.priv.h 2014-09-01 16:33:22.353792118 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free 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.23 2009/02/28 21:02:57 juergen Exp $ */ ++/* $Id: menu.priv.h,v 1.24 2012/03/10 23:43:41 tom Exp $ */ + + /*************************************************************************** + * Module menu.priv.h * +@@ -39,6 +39,7 @@ + + #ifndef MENU_PRIV_H_incl + #define MENU_PRIV_H_incl 1 ++/* *INDENT-OFF* */ + + #include "curses.priv.h" + #include "mf_common.h" +@@ -99,10 +100,11 @@ + */ + #define Adjust_Current_Item(menu,row,item) \ + { if ((item)->y < row) \ +- row = (item)->y;\ +- if ( (item)->y >= (row + (menu)->arows) )\ +- row = ( (item)->y < ((menu)->rows - row) ) ? \ +- (item)->y : (menu)->rows - (menu)->arows;\ ++ row = (short) (item)->y; \ ++ if ( (item)->y >= (row + (menu)->arows) ) \ ++ row = (short) (( (item)->y < ((menu)->rows - row) ) \ ++ ? (item)->y \ ++ : (menu)->rows - (menu)->arows); \ + _nc_New_TopRow_and_CurrentItem(menu,row,item); } + + /* Reset the match pattern buffer */ +@@ -152,5 +154,6 @@ + #define returnMenuOpts(code) return code + + #endif /* TRACE/!TRACE */ ++/* *INDENT-ON* */ + + #endif /* MENU_PRIV_H_incl */ +diff -Naur ncurses-5.9/menu/mf_common.h ncurses-5.9.patch/menu/mf_common.h +--- ncurses-5.9/menu/mf_common.h 2005-11-26 16:26:52.000000000 +0100 ++++ ncurses-5.9.patch/menu/mf_common.h 2014-09-01 16:33:22.353792118 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2004,2012 Free 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: mf_common.h,v 0.22 2005/11/26 15:26:52 tom Exp $ */ ++/* $Id: mf_common.h,v 0.24 2012/06/10 00:06:54 tom Exp $ */ + + /* Common internal header for menu and form library */ + +@@ -63,10 +63,9 @@ + #if USE_RCS_IDS + #define MODULE_ID(id) static const char Ident[] = id; + #else +-#define MODULE_ID(id) /*nothing*/ ++#define MODULE_ID(id) /*nothing */ + #endif + +- + /* Maximum regular 8-bit character code */ + #define MAX_REGULAR_CHARACTER (0xff) + +@@ -80,16 +79,19 @@ + #endif + + /* The few common values in the status fields for menus and forms */ +-#define _POSTED (0x01U) /* menu or form is posted */ +-#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */ ++#define _POSTED (0x01U) /* menu or form is posted */ ++#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */ ++ ++#define SetStatus(target,mask) (target)->status |= (unsigned short) (mask) ++#define ClrStatus(target,mask) (target)->status = (unsigned short) (target->status & (~mask)) + + /* Call object hook */ + #define Call_Hook( object, handler ) \ + if ( (object) != 0 && ((object)->handler) != (void *) 0 )\ + {\ +- (object)->status |= _IN_DRIVER;\ ++ SetStatus(object, _IN_DRIVER);\ + (object)->handler(object);\ +- (object)->status &= ~_IN_DRIVER;\ ++ ClrStatus(object, _IN_DRIVER);\ + } + + #endif /* MF_COMMON_H_incl */ +diff -Naur ncurses-5.9/menu/m_format.c ncurses-5.9.patch/menu/m_format.c +--- ncurses-5.9/menu/m_format.c 2010-01-23 22:20:10.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_format.c 2014-09-01 16:33:22.352792116 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_format.c,v 1.16 2010/01/23 21:20:10 tom Exp $") ++MODULE_ID("$Id: m_format.c,v 1.18 2012/06/09 23:54:02 tom Exp $") + + #define minimum(a,b) ((a)<(b) ? (a): (b)) + +@@ -81,8 +81,8 @@ + if (menu->pattern) + Reset_Pattern(menu); + +- menu->frows = rows; +- menu->fcols = cols; ++ menu->frows = (short)rows; ++ menu->fcols = (short)cols; + + assert(rows > 0 && cols > 0); + total_rows = (menu->nitems - 1) / cols + 1; +@@ -90,21 +90,21 @@ + minimum(menu->nitems, cols) : + (menu->nitems - 1) / total_rows + 1; + +- menu->rows = total_rows; +- menu->cols = total_cols; +- menu->arows = minimum(total_rows, rows); ++ menu->rows = (short)total_rows; ++ menu->cols = (short)total_cols; ++ menu->arows = (short)minimum(total_rows, rows); + menu->toprow = 0; + menu->curitem = *(menu->items); + assert(menu->curitem); +- menu->status |= _LINK_NEEDED; ++ SetStatus(menu, _LINK_NEEDED); + _nc_Calculate_Item_Length_and_Width(menu); + } + else + { + if (rows > 0) +- _nc_Default_Menu.frows = rows; ++ _nc_Default_Menu.frows = (short)rows; + if (cols > 0) +- _nc_Default_Menu.fcols = cols; ++ _nc_Default_Menu.fcols = (short)cols; + } + + RETURN(E_OK); +diff -Naur ncurses-5.9/menu/m_global.c ncurses-5.9.patch/menu/m_global.c +--- ncurses-5.9/menu/m_global.c 2010-01-23 22:20:10.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_global.c 2014-09-01 16:34:19.463887194 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2014 Free 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.25 2010/01/23 21:20:10 tom Exp $") ++MODULE_ID("$Id: m_global.c,v 1.28 2014/03/15 20:37:22 tom Exp $") + + static char mark[] = "-"; + /* *INDENT-OFF* */ +@@ -117,17 +117,17 @@ + assert(menu && menu->items); + for (items = menu->items; *items; items++) + { +- check = _nc_Calculate_Text_Width(&((*items)->name)); ++ check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name)); + if (check > MaximumNameLength) + MaximumNameLength = check; + +- check = _nc_Calculate_Text_Width(&((*items)->description)); ++ check = (unsigned)_nc_Calculate_Text_Width(&((*items)->description)); + if (check > MaximumDescriptionLength) + MaximumDescriptionLength = check; + } + +- menu->namelen = MaximumNameLength; +- menu->desclen = MaximumDescriptionLength; ++ menu->namelen = (short)MaximumNameLength; ++ menu->desclen = (short)MaximumDescriptionLength; + T(("ComputeMaximum_NameDesc_Lengths %d,%d", menu->namelen, menu->desclen)); + } + +@@ -195,7 +195,7 @@ + { + (*item)->value = FALSE; + } +- (*item)->index = ItemCount++; ++ (*item)->index = (short)ItemCount++; + (*item)->imenu = menu; + } + } +@@ -206,7 +206,7 @@ + if (ItemCount != 0) + { + menu->items = items; +- menu->nitems = ItemCount; ++ menu->nitems = (short)ItemCount; + ComputeMaximum_NameDesc_Lengths(menu); + if ((menu->pattern = typeMalloc(char, (unsigned)(1 + menu->namelen)))) + { +@@ -256,7 +256,7 @@ + T((T_CALLED("_nc_menu_text_width(%p)"), (const void *)item)); + if (result != 0 && item->str != 0) + { +- int count = mbstowcs(0, item->str, 0); ++ int count = (int)mbstowcs(0, item->str, 0); + wchar_t *temp = 0; + + if (count > 0 +@@ -343,7 +343,7 @@ + + assert(menu); + +- menu->height = 1 + menu->spc_rows * (menu->arows - 1); ++ menu->height = (short)(1 + menu->spc_rows * (menu->arows - 1)); + + l = calculate_actual_width(menu, TRUE); + l += menu->marklen; +@@ -354,10 +354,10 @@ + l += menu->spc_desc; + } + +- menu->itemlen = l; ++ menu->itemlen = (short)l; + l *= menu->cols; + l += (menu->cols - 1) * menu->spc_cols; /* for the padding between the columns */ +- menu->width = l; ++ menu->width = (short)l; + + T(("_nc_CalculateItem_Length_and_Width columns %d, item %d, width %d", + menu->cols, +@@ -388,7 +388,7 @@ + int Last_in_Column; + bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE; + +- menu->status &= ~_LINK_NEEDED; ++ ClrStatus(menu, _LINK_NEEDED); + + if (menu->opt & O_ROWMAJOR) + { +@@ -431,8 +431,8 @@ + (cycle ? menu->items[(row + 1) < menu->rows ? + Number_Of_Items - 1 : col] : + (ITEM *) 0); +- item->x = col; +- item->y = row; ++ item->x = (short)col; ++ item->y = (short)row; + if (++col == Number_Of_Columns) + { + row++; +@@ -482,8 +482,8 @@ + (ITEM *) 0 + ); + +- item->x = col; +- item->y = row; ++ item->x = (short)col; ++ item->y = (short)row; + if ((++row) == Number_Of_Rows) + { + col++; +@@ -568,7 +568,9 @@ + + cur_item = menu->curitem; + assert(cur_item); +- menu->toprow = new_toprow; ++ menu->toprow = (short)(((menu->rows - menu->frows) >= 0) ++ ? min(menu->rows - menu->frows, new_toprow) ++ : 0); + menu->curitem = new_current_item; + + if (mterm_called) +@@ -590,7 +592,9 @@ + } + else + { /* if we are not posted, this is quite simple */ +- menu->toprow = new_toprow; ++ menu->toprow = (short)(((menu->rows - menu->frows) >= 0) ++ ? min(menu->rows - menu->frows, new_toprow) ++ : 0); + menu->curitem = new_current_item; + } + } +diff -Naur ncurses-5.9/menu/m_hook.c ncurses-5.9.patch/menu/m_hook.c +--- ncurses-5.9/menu/m_hook.c 2010-01-23 22:16:54.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_hook.c 2014-09-01 16:33:22.352792116 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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,13 +37,13 @@ + + #include "menu.priv.h" + +-MODULE_ID("$Id: m_hook.c,v 1.15 2010/01/23 21:16:54 tom Exp $") ++MODULE_ID("$Id: m_hook.c,v 1.16 2012/03/10 23:43:41 tom Exp $") + + /* "Template" macro to generate function to set application specific hook */ + #define GEN_HOOK_SET_FUNCTION( typ, name ) \ + NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\ + {\ +- T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), menu, func));\ ++ T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), (void *) menu, func));\ + (Normalize_Menu(menu) -> typ ## name = func );\ + RETURN(E_OK);\ + } +diff -Naur ncurses-5.9/menu/m_item_new.c ncurses-5.9.patch/menu/m_item_new.c +--- ncurses-5.9/menu/m_item_new.c 2010-01-23 22:20:11.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_item_new.c 2014-09-01 16:33:22.352792116 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + #endif + #endif + +-MODULE_ID("$Id: m_item_new.c,v 1.30 2010/01/23 21:20:11 tom Exp $") ++MODULE_ID("$Id: m_item_new.c,v 1.33 2012/06/09 23:55:15 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnmenu +@@ -62,7 +62,7 @@ + int result = TRUE; + + #if USE_WIDEC_SUPPORT +- int count = mbstowcs(0, s, 0); ++ int count = (int)mbstowcs(0, s, 0); + wchar_t *temp = 0; + + assert(s); +@@ -127,13 +127,13 @@ + { + *item = _nc_Default_Item; /* hope we have struct assignment */ + +- item->name.length = strlen(name); ++ item->name.length = (unsigned short)strlen(name); + item->name.str = name; + + if (description && (*description != '\0') && + Is_Printable_String(description)) + { +- item->description.length = strlen(description); ++ item->description.length = (unsigned short)strlen(description); + item->description.str = description; + } + else +@@ -195,12 +195,12 @@ + NCURSES_EXPORT(int) + set_menu_mark(MENU * menu, const char *mark) + { +- unsigned l; ++ short l; + + T((T_CALLED("set_menu_mark(%p,%s)"), (void *)menu, _nc_visbuf(mark))); + + if (mark && (*mark != '\0') && Is_Printable_String(mark)) +- l = strlen(mark); ++ l = (short)strlen(mark); + else + l = 0; + +@@ -213,7 +213,7 @@ + { + /* If the menu is already posted, the geometry is fixed. Then + we can only accept a mark with exactly the same length */ +- if (menu->marklen != (int)l) ++ if (menu->marklen != l) + RETURN(E_BAD_ARGUMENT); + } + menu->marklen = l; +@@ -222,14 +222,13 @@ + menu->mark = strdup(mark); + if (menu->mark) + { +- strcpy(menu->mark, mark); + if (menu != &_nc_Default_Menu) +- menu->status |= _MARK_ALLOCATED; ++ SetStatus(menu, _MARK_ALLOCATED); + } + else + { + menu->mark = old_mark; +- menu->marklen = (old_mark != 0) ? strlen(old_mark) : 0; ++ menu->marklen = (short)((old_mark != 0) ? strlen(old_mark) : 0); + RETURN(E_SYSTEM_ERROR); + } + } +diff -Naur ncurses-5.9/menu/m_pad.c ncurses-5.9.patch/menu/m_pad.c +--- ncurses-5.9/menu/m_pad.c 2010-01-23 22:20:10.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_pad.c 2014-09-01 16:33:22.352792116 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_pad.c,v 1.12 2010/01/23 21:20:10 tom Exp $") ++MODULE_ID("$Id: m_pad.c,v 1.13 2012/03/10 23:43:41 tom Exp $") + + /* Macro to redraw menu if it is posted and changed */ + #define Refresh_Menu(menu) \ +@@ -69,7 +69,7 @@ + RETURN(E_BAD_ARGUMENT); + + Normalize_Menu(menu); +- menu->pad = pad; ++ menu->pad = (unsigned char)pad; + + if (do_refresh) + Refresh_Menu(menu); +diff -Naur ncurses-5.9/menu/m_post.c ncurses-5.9.patch/menu/m_post.c +--- ncurses-5.9/menu/m_post.c 2010-05-01 21:18:27.000000000 +0200 ++++ ncurses-5.9.patch/menu/m_post.c 2014-09-01 16:33:22.353792118 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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.29 2010/05/01 19:18:27 tom Exp $") ++MODULE_ID("$Id: m_post.c,v 1.31 2012/06/09 23:54:35 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnmenu +@@ -67,7 +67,7 @@ + - it is a onevalued menu and it is the current item + - or it has a selection value + */ +- wattron(menu->win, menu->back); ++ wattron(menu->win, (int)menu->back); + if (item->value || (item == menu->curitem)) + { + if (menu->marklen) +@@ -79,13 +79,13 @@ + item. */ + if (!(menu->opt & O_ONEVALUE) && item->value && item != menu->curitem) + { +- wattron(menu->win, menu->fore); ++ wattron(menu->win, (int)menu->fore); + isfore = TRUE; + } + waddstr(menu->win, menu->mark); + if (isfore) + { +- wattron(menu->win, menu->fore); ++ wattron(menu->win, (int)menu->fore); + isfore = FALSE; + } + } +@@ -93,7 +93,7 @@ + else /* otherwise we have to wipe out the marker area */ + for (ch = ' ', i = menu->marklen; i > 0; i--) + waddch(menu->win, ch); +- wattroff(menu->win, menu->back); ++ wattroff(menu->win, (int)menu->back); + count += menu->marklen; + + /* First we have to calculate the attribute depending on selectability +@@ -101,19 +101,19 @@ + */ + if (!(item->opt & O_SELECTABLE)) + { +- wattron(menu->win, menu->grey); ++ wattron(menu->win, (int)menu->grey); + isgrey = TRUE; + } + else + { + if (item->value || item == menu->curitem) + { +- wattron(menu->win, menu->fore); ++ wattron(menu->win, (int)menu->fore); + isfore = TRUE; + } + else + { +- wattron(menu->win, menu->back); ++ wattron(menu->win, (int)menu->back); + isback = TRUE; + } + } +@@ -158,10 +158,10 @@ + assert(cx >= 0 && cy >= 0); + getyx(menu->win, ncy, ncx); + if (isgrey) +- wattroff(menu->win, menu->grey); ++ wattroff(menu->win, (int)menu->grey); + else if (isfore) +- wattroff(menu->win, menu->fore); +- wattron(menu->win, menu->back); ++ wattroff(menu->win, (int)menu->fore); ++ wattron(menu->win, (int)menu->back); + for (j = 1; j < menu->spc_rows; j++) + { + if ((item_y + j) < getmaxy(menu->win)) +@@ -175,17 +175,17 @@ + } + wmove(menu->win, ncy, ncx); + if (!isback) +- wattroff(menu->win, menu->back); ++ wattroff(menu->win, (int)menu->back); + } + } + + /* Remove attributes */ + if (isfore) +- wattroff(menu->win, menu->fore); ++ wattroff(menu->win, (int)menu->fore); + if (isback) +- wattroff(menu->win, menu->back); ++ wattroff(menu->win, (int)menu->back); + if (isgrey) +- wattroff(menu->win, menu->grey); ++ wattroff(menu->win, (int)menu->grey); + } + + /*--------------------------------------------------------------------------- +@@ -225,7 +225,7 @@ + { + _nc_Post_Item(menu, hitem); + +- wattron(menu->win, menu->back); ++ wattron(menu->win, (int)menu->back); + if (((hitem = hitem->right) != lasthor) && hitem) + { + int i, j, cy, cx; +@@ -244,7 +244,7 @@ + } + } + while (hitem && (hitem != lasthor)); +- wattroff(menu->win, menu->back); ++ wattroff(menu->win, (int)menu->back); + + item = item->down; + y += menu->spc_rows; +@@ -305,7 +305,7 @@ + else + RETURN(E_NOT_CONNECTED); + +- menu->status |= _POSTED; ++ SetStatus(menu, _POSTED); + + if (!(menu->opt & O_ONEVALUE)) + { +@@ -369,7 +369,7 @@ + delwin(menu->win); + menu->win = (WINDOW *)0; + +- menu->status &= ~_POSTED; ++ ClrStatus(menu, _POSTED); + + RETURN(E_OK); + } +diff -Naur ncurses-5.9/menu/m_req_name.c ncurses-5.9.patch/menu/m_req_name.c +--- ncurses-5.9/menu/m_req_name.c 2009-10-10 18:17:23.000000000 +0200 ++++ ncurses-5.9.patch/menu/m_req_name.c 2014-09-01 16:33:22.353792118 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free 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_req_name.c,v 1.21 2009/10/10 16:17:23 tom Exp $") ++MODULE_ID("$Id: m_req_name.c,v 1.22 2012/07/21 23:27:32 tom Exp $") + + static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] = + { +@@ -99,23 +99,26 @@ + /* because the table is so small, it doesn't really hurt + to run sequentially through it. + */ +- unsigned int i = 0; ++ size_t i = 0; + char buf[16]; + + T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str))); + +- if (str) ++ if (str != 0 && (i = strlen(str)) != 0) + { +- strncpy(buf, str, sizeof(buf)); +- while ((i < sizeof(buf)) && (buf[i] != '\0')) ++ if (i > sizeof(buf) - 2) ++ i = sizeof(buf) - 2; ++ memcpy(buf, str, i); ++ buf[i] = '\0'; ++ ++ for (i = 0; buf[i] != '\0'; ++i) + { + buf[i] = (char)toupper(UChar(buf[i])); +- i++; + } + + for (i = 0; i < A_SIZE; i++) + { +- if (strncmp(request_names[i], buf, sizeof(buf)) == 0) ++ if (strcmp(request_names[i], buf) == 0) + returnCode(MIN_MENU_COMMAND + (int)i); + } + } +diff -Naur ncurses-5.9/menu/m_spacing.c ncurses-5.9.patch/menu/m_spacing.c +--- ncurses-5.9/menu/m_spacing.c 2010-01-23 22:20:10.000000000 +0100 ++++ ncurses-5.9.patch/menu/m_spacing.c 2014-09-01 16:33:22.353792118 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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_spacing.c,v 1.18 2010/01/23 21:20:10 tom Exp $") ++MODULE_ID("$Id: m_spacing.c,v 1.19 2012/03/10 23:43:41 tom Exp $") + + #define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8) + #define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8) +@@ -70,9 +70,9 @@ + ((s_col < 0) || (s_col > MAX_SPC_COLS))) + RETURN(E_BAD_ARGUMENT); + +- m->spc_desc = s_desc ? s_desc : 1; +- m->spc_rows = s_row ? s_row : 1; +- m->spc_cols = s_col ? s_col : 1; ++ m->spc_desc = (short)(s_desc ? s_desc : 1); ++ m->spc_rows = (short)(s_row ? s_row : 1); ++ m->spc_cols = (short)(s_col ? s_col : 1); + _nc_Calculate_Item_Length_and_Width(m); + + RETURN(E_OK); +diff -Naur ncurses-5.9/misc/gen_edit.sh ncurses-5.9.patch/misc/gen_edit.sh +--- ncurses-5.9/misc/gen_edit.sh 2004-07-11 17:01:29.000000000 +0200 ++++ ncurses-5.9.patch/misc/gen_edit.sh 2014-09-01 16:33:22.353792118 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + ############################################################################## +-# Copyright (c) 2004 Free Software Foundation, Inc. # ++# Copyright (c) 2004-2011,2012 Free 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"), # +@@ -29,7 +29,7 @@ + # + # Author: Thomas E. Dickey + # +-# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $ ++# $Id: gen_edit.sh,v 1.5 2012/04/01 15:04:37 tom Exp $ + # Generate a sed-script for converting the terminfo.src to the form which will + # be installed. + # +@@ -37,22 +37,82 @@ + # The leaf directory names (lib, tabset, terminfo) + # + +-: ${ticdir=@TERMINFO@} +-: ${xterm_new=@WHICH_XTERM@} ++linux_dft=linux2.2 ++ ++: ${datadir=/usr/share} ++: ${WHICH_LINUX=$linux_dft} ++: ${WHICH_XTERM=xterm-new} ++: ${XTERM_KBS=BS} + + # If we're not installing into /usr/share/, we'll have to adjust the location + # of the tabset files in terminfo.src (which are in a parallel directory). +-TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'` ++TABSET=${datadir}/tabset + if test "x$TABSET" != "x/usr/share/tabset" ; then + cat <<EOF + s%/usr/share/tabset%$TABSET%g + EOF + fi + +-if test "$xterm_new" != "xterm-new" ; then ++if test "$WHICH_XTERM" != "xterm-new" ; then ++echo "** using $WHICH_XTERM terminal description for XTerm entry" >&2 + cat <<EOF + /^# This is xterm for ncurses/,/^$/{ + s/use=xterm-new,/use=$WHICH_XTERM,/ + } + EOF + fi ++ ++if test "$XTERM_KBS" != "BS" ; then ++echo "** using DEL for XTerm backspace-key" >&2 ++cat <<EOF ++/^xterm+kbs|fragment for backspace key/,/^#/{ ++ s/kbs=^H,/kbs=^?,/ ++} ++EOF ++fi ++ ++# Work around incompatibities built into Linux console. The 2.6 series added ++# a patch to fixup the SI/SO behavior, which is closer to vt100, but the older ++# kernels do not recognize those controls. All of the kernels recognize the ++# older flavor of rmacs/smacs, but beginning in the late 1990s, changes made ++# as part of implementing UTF-8 prevent using those for line-drawing when the ++# console is in UTF-8 mode. Taking into account the fact that it took about ++# ten years to provide (and distribute) the 2.6 series' change for SI/SO, the ++# default remains "linux2.2". ++case x$WHICH_LINUX in #(vi ++xauto) ++ system=`uname -s 2>/dev/null` ++ if test "x$system" = xLinux ++ then ++ case x`uname -r` in ++ x1.*) ++ WHICH_LINUX=linux-c ++ ;; ++ x2.[0-4]*) ++ WHICH_LINUX=linux2.2 ++ ;; ++ *) ++ WHICH_LINUX=linux3.0 ++ ;; ++ esac ++ else ++ WHICH_LINUX=$linux_dft ++ fi ++ ;; ++xlinux*) ++ # allow specific setting ++ ;; ++*) ++ WHICH_LINUX=$linux_dft ++ ;; ++esac ++ ++if test $WHICH_LINUX != $linux_dft ++then ++echo "** using $WHICH_LINUX terminal description for Linux console" >&2 ++cat <<EOF ++/^# This is Linux console for ncurses/,/^$/{ ++ s/use=$linux_dft,/use=$WHICH_LINUX,/ ++} ++EOF ++fi +diff -Naur ncurses-5.9/misc/gen-pkgconfig.in ncurses-5.9.patch/misc/gen-pkgconfig.in +--- ncurses-5.9/misc/gen-pkgconfig.in 2010-02-06 23:12:07.000000000 +0100 ++++ ncurses-5.9.patch/misc/gen-pkgconfig.in 2014-09-01 16:33:22.353792118 +0200 +@@ -1,7 +1,7 @@ + #!@SHELL@ +-# $Id: gen-pkgconfig.in,v 1.8 2010/02/06 22:12:07 Miroslav.Lichvar Exp $ ++# $Id: gen-pkgconfig.in,v 1.16 2014/01/18 20:21:45 tom Exp $ + ############################################################################## +-# Copyright (c) 2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2009-2013,2014 Free 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, 2009 ++# Author: Thomas E. Dickey + # + # The complete configure script for ncurses is the ncurses5-config (or similar + # name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc). +@@ -39,22 +39,22 @@ + # 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@ ++PANEL_NAME=@PANEL_NAME@ ++MENU_NAME=@MENU_NAME@ ++FORM_NAME=@FORM_NAME@ ++CXX_NAME=@CXX_NAME@ + DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@ + TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@ + CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@ + + prefix="@prefix@" + exec_prefix="@exec_prefix@" +-includedir="@includedir@" ++includedir="@includedir@@includesubdir@" + libdir="@libdir@" + + show_prefix='@prefix@' + show_exec_prefix='@exec_prefix@' +-show_includedir='@includedir@' ++show_includedir='@includedir@@includesubdir@' + show_libdir='@libdir@' + + MAIN_LIBRARY="${LIB_NAME}@DFT_ARG_SUFFIX@" +@@ -63,59 +63,42 @@ + MENU_LIBRARY="${MENU_NAME}@DFT_ARG_SUFFIX@" + FORM_LIBRARY="${FORM_NAME}@DFT_ARG_SUFFIX@" + +-SUB_LIBRARY_REQ=${SUB_LIBRARY} +-if test $TINFO_NAME = $LIB_NAME ; then +- SUB_LIBRARY_REQ= ++if test "$includedir" = "/usr/include" ; then ++ CFLAGS= ++else ++ CFLAGS="-I\${includedir}" + 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 ++if test "$libdir" = "/usr/lib" ; then ++ LDFLAGS= ++else ++ LDFLAGS="-L\${libdir}" ++fi + +- name=`echo "$name" | sed -e 's/^lib//' -e 's/\..*$//'` ++for name in @PC_MODULES_TO_MAKE@ ++do ++ name="${name}" + + desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" ++ reqs= ++ + if test $name = $MAIN_LIBRARY ; then +- reqs=$SUB_LIBRARY_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" ++ reqs="$PANEL_LIBRARY, $MENU_LIBRARY, $FORM_LIBRARY, $MAIN_LIBRARY" + desc="$desc add-on library" + else +- reqs="$MAIN_LIBRARY $SUB_LIBRARY_REQ" ++ reqs="$MAIN_LIBRARY" + 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@" ++ if test $name != $SUB_LIBRARY && test $SUB_LIBRARY != $MAIN_LIBRARY ; then ++ if test $name != $TINFO_NAME ; then ++ test -n "$reqs" && reqs="$reqs, " ++ reqs="${reqs}${SUB_LIBRARY}" ++ fi + fi + + echo "** creating ${name}.pc" +@@ -130,10 +113,13 @@ + Name: $name + Description: $desc + Version: \${version} +-Requires: $reqs +-Libs: $libs +-Cflags: $cflags ++URL: http://invisible-island.net/ncurses ++Requires.private: $reqs ++Libs: $LDFLAGS -l$name ++Libs.private: @LIBS@ ++Cflags: $CFLAGS + EOF +- # pr -f ${name}.pc ++ ++ #pr -f ${name}.pc + done + # vile:shmode +diff -Naur ncurses-5.9/misc/Makefile.in ncurses-5.9.patch/misc/Makefile.in +--- ncurses-5.9/misc/Makefile.in 2011-02-21 02:09:31.000000000 +0100 ++++ ncurses-5.9.patch/misc/Makefile.in 2014-09-01 16:33:22.353792118 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.56 2011/02/21 01:09:31 tom Exp $ ++# $Id: Makefile.in,v 1.61 2013/08/04 20:23:20 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -56,7 +56,11 @@ + exec_prefix = @exec_prefix@ + bindir = @bindir@ + libdir = @libdir@ ++datarootdir = @datarootdir@ + datadir = @datadir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + tabsetdir = $(datadir)/tabset + ticdir = @TERMINFO@ +@@ -120,7 +124,8 @@ + + run_tic.sed : + WHICH_XTERM=@WHICH_XTERM@ \ +- ticdir=${ticdir} \ ++ XTERM_KBS=@XTERM_KBS@ \ ++ datadir=${datadir} \ + $(SHELL) $(srcdir)/gen_edit.sh >$@ + + $(DESTDIR)$(bindir) \ +@@ -139,7 +144,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' ++@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done' + + tags : + +diff -Naur ncurses-5.9/misc/ncurses-config.in ncurses-5.9.patch/misc/ncurses-config.in +--- ncurses-5.9/misc/ncurses-config.in 2011-03-19 23:43:38.000000000 +0100 ++++ ncurses-5.9.patch/misc/ncurses-config.in 2014-09-01 16:33:22.354792119 +0200 +@@ -1,7 +1,7 @@ + #!@SHELL@ +-# $Id: ncurses-config.in,v 1.25 2011/03/19 22:43:38 tom Exp $ ++# $Id: ncurses-config.in,v 1.30 2012/11/11 00:14:28 tom Exp $ + ############################################################################## +-# Copyright (c) 2006-2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 2006-2011,2012 Free 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"), # +@@ -30,22 +30,48 @@ + # + # Author: Thomas E. Dickey, 2006-on + ++LANG=C; export LANG ++LANGUAGE=C; export LANGUAGE ++LC_ALL=C; export LC_ALL ++LC_CTYPE=C; export LC_CTYPE ++ + prefix="@prefix@" + exec_prefix="@exec_prefix@" + + bindir="@bindir@" + includedir="@includedir@" + libdir="@libdir@" ++datarootdir="@datarootdir@" + datadir="@datadir@" + mandir="@mandir@" + + THIS="@LIB_NAME@@DFT_ARG_SUFFIX@" + TINFO_LIB="@TINFO_ARG_SUFFIX@" ++RPATH_LIST="@RPATH_LIST@" + +-LANG=C; export LANG +-LANGUAGE=C; export LANGUAGE +-LC_ALL=C; export LC_ALL +-LC_CTYPE=C; export LC_CTYPE ++# Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty. ++# We cannot filter it out within the build-process since the variable is used ++# in some special cases of installation using a relative path. ++if test -n "$RPATH_LIST" ++then ++ save_IFS="$IFS" ++ IFS='@PATH_SEPARATOR@' ++ filtered= ++ for item in $RPATH_LIST ++ do ++ case "$item" in ++ ./*|../*|*/..|*/../*) ++ ;; ++ *) ++ test -n "$filtered" && filtered="${filtered}@PATH_SEPARATOR@" ++ filtered="${filtered}${item}" ++ ;; ++ esac ++ done ++ IFS="$save_IFS" ++ # if the result is empty, there is little we can do to fix it ++ RPATH_LIST="$filtered" ++fi + + # with --disable-overwrite, we installed into a subdirectory, but transformed + # the headers to include like this: +@@ -83,13 +109,19 @@ + ENDECHO + ;; + --libs) ++ if test "$libdir" = /usr/lib ++ then ++ LIBDIR= ++ else ++ LIBDIR=-L$libdir ++ fi + if test @TINFO_NAME@ = @LIB_NAME@ ; then + sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO +- -L$libdir @EXTRA_LDFLAGS@ -l${THIS} @LIBS@ ++ $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@ ++ $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@ + ENDECHO + fi + ;; +@@ -163,4 +195,5 @@ + esac + shift + done ++# vi:ts=4 sw=4 + # vile:shmode +diff -Naur ncurses-5.9/misc/run_tic.in ncurses-5.9.patch/misc/run_tic.in +--- ncurses-5.9/misc/run_tic.in 2011-02-24 00:30:15.000000000 +0100 ++++ ncurses-5.9.patch/misc/run_tic.in 2014-09-01 16:33:22.354792119 +0200 +@@ -1,7 +1,7 @@ + #!@SHELL@ +-# $Id: run_tic.in,v 1.32 2011/02/23 23:30:15 tom Exp $ ++# $Id: run_tic.in,v 1.34 2012/10/06 19:00:51 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2011,2012 Free 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"), # +@@ -41,13 +41,14 @@ + # The script is designed to be run from the misc/Makefile as + # make install.data + +-: ${suffix:=@PROG_EXT@} ++: ${suffix:=@EXEEXT@} + : ${DESTDIR:=@DESTDIR@} + : ${prefix:=@prefix@} + : ${exec_prefix:=@exec_prefix@} + : ${bindir:=@bindir@} + : ${top_srcdir:=@top_srcdir@} + : ${srcdir:=@srcdir@} ++: ${datarootdir:=@datarootdir@} + : ${datadir:=@datadir@} + : ${TIC_PATH:=@TIC_PATH@} + : ${ticdir:=@TERMINFO@} +diff -Naur ncurses-5.9/misc/terminfo.src ncurses-5.9.patch/misc/terminfo.src +--- ncurses-5.9/misc/terminfo.src 2011-02-20 21:46:53.000000000 +0100 ++++ ncurses-5.9.patch/misc/terminfo.src 2014-09-01 16:34:19.496887069 +0200 +@@ -6,8 +6,8 @@ + # Report bugs and new terminal descriptions to + # bug-ncurses@gnu.org + # +-# $Revision: 1.383 $ +-# $Date: 2011/02/20 20:46:53 $ ++# $Revision: 1.487 $ ++# $Date: 2014/03/23 20:45:15 $ + # + # 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 +@@ -321,7 +321,7 @@ + # DEL and ^C are hardcoded to act as kill characters. + # ^D acts as a line break (just like newline). + # It also interprets +-# \033];xxx\007 ++# \033];xxx\007 + # for compatibility with xterm -TD + 9term|Plan9 terminal emulator for X, + am, +@@ -376,11 +376,19 @@ + dim=\E[2m, + sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m, + use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul, +-ansi+pp|ansi printer port, +- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, + ansi+csr|ansi scroll-region plus cursor save & restore, + csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7, + ++# The normal (ANSI) flavor of "media copy" building block asserts that ++# characters sent to the printer do not echo on the screen. DEC terminals ++# can also be put into autoprinter mode, where each line is sent to the ++# printer as you move off that line, e.g., by a carriage return. ++ansi+pp|ansi printer port, ++ mc5i, ++ mc0=\E[i, mc4=\E[4i, mc5=\E[5i, ++dec+pp|DEC autoprinter mode, ++ mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, ++ + # The IBM PC alternate character set. Plug this into any Intel console entry. + # We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the + # ROM graphics for control characters such as the diamond, up- and down-arrow. +@@ -456,9 +464,10 @@ + cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C, + cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A, + dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX, +- hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, +- indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7, +- smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd, ++ hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, ++ rmam=\E[?7l, sc=\E7, smam=\E[?7h, tbc=\E[g, ++ vpa=\E[%i%p1%dd, + + #### ANSI/ECMA-48 terminals and terminal emulators + # +@@ -488,7 +497,7 @@ + # ansi-mtabs adds relative addressing and minimal tab support + ansi-mtabs|any ansi terminal with pessimistic assumptions, + it#8, +- ht=^I, use=ansi+local1, use=ansi-mini, ++ ht=^I, use=ansi-mini, use=ansi+local1, + + # ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL + # +@@ -655,7 +664,7 @@ + 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, ++ 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, + + # +@@ -689,12 +698,8 @@ + is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p, + use=ansi.sysk, + +-#### ANSI console types +-# ++#### Atari ST terminals + +-############################################################################# +-# +-# Atari ST terminals. + # From Guido Flohr <gufl0000@stud.uni-sb.de>. + # + tw52|tw52-color|Toswin window manager with color, +@@ -799,9 +804,6 @@ + rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_, + smso=\Ep, smul=\EyH, + +-#### Atari ST +-# +- + # From: Simson L. Garfinkel <simsong@media-lab.mit.edu> + atari-old|atari st, + OTbs, am, +@@ -835,16671 +837,16976 @@ + ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq, + smcup=\Ee, smso=\Ep, + +-#### BeOS +-# +-# BeOS entry for Terminal program Seems to be almost ANSI +-beterm|BeOS Terminal, +- am, eo, mir, msgr, xenl, xon, +- colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64, +- bel=^G, 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, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, +- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, +- kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~, +- kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, +- kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~, +- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, +- nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l, +- rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm, +- sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m, +- smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n, +- vpa=\E[%i%p1%dd, +- +-#### Linux consoles +-# ++#### Apple Terminal.app + +-# This entry is good for the 1.2.13 or later version of the Linux console. ++# nsterm*|Apple_Terminal - AppKit Terminal.app + # +-# *************************************************************************** +-# * * +-# * WARNING: * +-# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in * +-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab * +-# * character. Here are the keymap replacement lines that will set this up: * +-# * * +-# keycode 15 = Tab Tab +-# alt keycode 15 = Meta_Tab +-# shift keycode 15 = F26 +-# string F26 ="\033[Z" +-# * * +-# * This has to use a key slot which is unfortunate (any unused one will * +-# * do, F26 is the higher-numbered one). The change ought to be built * +-# * into the kernel tables. * +-# * * +-# *************************************************************************** ++# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and ++# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X ++# Server and Mac OS X operating systems. There is also a ++# "terminal.app" in GNUStep, but I believe it to be an unrelated ++# codebase and I have not attempted to describe it here. + # +-# All linux kernels since 1.2.13 (at least) set the screen size +-# themselves; this entry assumes that capability. ++# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you ++# are pretty much on your own. Use "nsterm-7-m" and hope for the best. ++# You might also try "nsterm-7" and "nsterm-old" if you suspect your ++# version supports color. + # +-linux-basic|linux console, +- am, bce, eo, mir, msgr, xenl, xon, +- it#8, ncv#18, U8#1, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- bel=^G, 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, +- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, +- el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H, +- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177, +- kcbt=\E[Z, 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[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, +- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, +- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, +- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, +- kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, +- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, +- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, +- smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g, +- vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr, +- use=ecma+color, +- +-linux-m|Linux console no color, +- colors@, pairs@, +- setab@, setaf@, setb@, setf@, use=linux, +- +-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this +-# and it matters, turn off <ccc>. The %02x escape used to implement this is +-# not supposedly back-portable to older SV curses (although it has worked fine +-# on Solaris for several years) and not supported in ncurses versions before +-# 1.9.9. +-linux-c-nc|linux console with color-change, +- ccc, +- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x, +- oc=\E]R, use=linux-basic, +-# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996 +-linux-c|linux console 1.3.6+ for older ncurses, +- ccc, +- initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;, +- oc=\E]R, use=linux-basic, +- +-# The 2.2.x kernels add a private mode that sets the cursor type; use that to +-# get a block cursor for cvvis. +-# reported by Frank Heckenbach <frank@g-n-u.de>. +-linux|linux console, +- civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c, +- cvvis=\E[?25h\E[?8c, use=linux-c-nc, +- +-# Subject: linux 2.6.26 vt back_color_erase +-# Changes to the Linux console driver broke bce model as reported in +-# https://bugzilla.novell.com/show_bug.cgi?id=418613 +-# apparently from +-# http://lkml.org/lkml/2008/4/26/305 +-# http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e +-linux2.6.26|linux console w/o bce, +- bce@, use=linux, +- +-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file +-linux-nic|linux with ich/ich1 suppressed for non-curses programs, +- ich@, ich1@, use=linux, +- +-# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts. +-# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997. +-linux-koi8|linux with koi8 alternate character set, +- acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224, +- use=linux, use=klone+koi8acs, +- +-# Another entry for KOI8-r with Qing Long's acsc. +-# (which one better complies with the standard?) +-linux-koi8r|linux with koi8-r alternate character set, +- use=linux, use=klone+koi8acs, +- +-# Entry for the latin1 and latin2 fonts +-linux-lat|linux with latin1 or latin2 alternate character set, +- acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376, +- use=linux, +- +-# This uses graphics from VT codeset instead of from cp437. +-# reason: cp437 (aka "straight to font") is not functional under luit. +-# from: Andrey V Lukyanov <land@long.yar.ru>. +-linux-vt|linux console using VT codes for graphics, +- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~, +- rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0, +- smpch@, use=linux, +- +-# This is based on the Linux console (relies on the console to perform some +-# of the functionality), but does not recognize as many control sequences. +-# The program comes bundled with an old (circa 1998) copy of the Linux +-# console terminfo. It recognizes some non-ANSI/VT100 sequences such as +-# \E* move cursor to home, as as \E[H +-# \E,X same as \E(X +-# \EE move cursor to beginning of row +-# \E[y,xf same as \E[y,xH ++# To determine the version of Terminal.app you're using by running: + # +-# Note: The status-line support is buggy (dsl does not work). +-kon|kon2|jfbterm|Kanji ON Linux console, +- ccc@, hs, +- civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@, +- initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T, +- use=linux, +- +-# 16-color linux console entry; this works with a 256-character +-# console font but bright background colors turn into dim ones when +-# you use a 512-character console font. This uses bold for bright +-# foreground colors and blink for bright background colors. +-linux-16color|linux console with 16 colors, +- colors#16, ncv#54, pairs#256, +- setab=\E[4%p1%{8}%m%d%?%p1%{8}%>%t;5%e%p1%{8}%=%t;2%e;25%;m, +- setaf=\E[3%p1%{8}%m%d%?%p1%{8}%>%t;1%e%p1%{8}%=%t;2%e;21%;m, +- use=linux, +- +-# bterm (bogl 0.1.18) +-# Implementation is in bogl-term.c +-# Key capabilities from linux terminfo entry ++# echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION" + # +-# Notes: +-# bterm only supports acs using wide-characters, has case for these: qjxamlkut +-# bterm does not support sgr, since it only processes one parameter -TD +-bterm|bogl virtual terminal, +- am, bce, +- colors#8, cols#80, lines#24, pairs#64, +- acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J, +- cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ind=^J, +- kb2=\E[G, kbs=\177, kcbt=\E[Z, 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[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, +- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, +- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, +- op=\E49;39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m, +- rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m, +- +-#### Mach ++# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce") + # +- +-# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk> +-mach|Mach Console, +- am, km, +- cols#80, it#8, lines#25, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M, +- 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, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, +- el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, +- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ, +- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, +- kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U, +- kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m, +- smso=\E[7m, smul=\E[4m, +-mach-bold|Mach Console with bold instead of underline, +- rmul=\E[0m, smul=\E[1m, use=mach, +-mach-color|Mach Console with ANSI color, +- colors#8, pairs#64, +- dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach, +- +-# From: Marcus Brinkmann +-# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/ ++# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm") + # +-# Comments in the original are summarized here: ++# For Apple_Terminal v71+/v100+, use "nsterm-bce". + # +-# hurd uses 8-bit characters (km). ++# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s". + # +-# Although it doesn't do XON/XOFF, we don't want padding characters (xon). ++# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s". + # +-# Regarding compatibility to vt100: hurd doesn't specify <xenl>, as we don't +-# have the eat_newline_glitch. It doesn't support setting or removing tab +-# stops (hts/tbc). ++# For all earlier versions (Apple_Terminal), try "nsterm-7-m" ++# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s" ++# might work too, but really you're on your own here since these ++# systems are very obsolete and I can't test them. I do welcome ++# patches, though :). ++ ++# Other Terminals: + # +-# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is +-# one byte instead three. ++# For GNUstep_Terminal, you're probably best off using "linux" or ++# writing your own terminfo. ++ ++# For MacTelnet, you're on your own. It's a different codebase, and ++# seems to be somewhere between "vt102", "ncsa" and "xterm-color". ++ ++# For iTerm.app, see "iterm". ++ + # +-# <ich1> is not included because hurd has insert mode. ++# The AppKit Terminal.app descriptions all have names beginning with ++# "nsterm". Note that the statusline (-s) versions use the window ++# titlebar as a phony status line, and may produce warnings during ++# compilation as a result ("tsl uses 0 parameters, expected 1".) ++# Ignore these warnings, or even ignore these entries entirely. Apps ++# which need to position the cursor or do other fancy stuff inside the ++# status line won't work with these entries. They're primarily useful ++# for programs like Pine which provide simple notifications in the ++# status line. Please note that non-ASCII characters don't work right ++# in the status line, since Terminal.app incorrectly interprets their ++# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X ++# versions) or only accepts status lines consisting entirely of ++# characters from the first 256 Unicode positions (including C1 but ++# not C0 or DEL.) + # +-# hurd doesn't use ^J for scrolling, because this could put things into the +-# scrollback buffer. ++# The Mythology* of AppKit Terminal.app: + # +-# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode. +-# This is a GNU extension. ++# In the days of NeXTSTep 0.x and 1.x there were two incompatible ++# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a ++# shareware replacement for Terminal called "Stuart" which NeXT bought ++# and used as the basis for the Terminal.app in NeXTstep 2+, ++# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I ++# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or ++# capabilities for the early versions, but I believe that the ++# TERM_PROGRAM_VERSION may have been reset at some point. + # +-# The original has commented-out ncv, but is restored here. ++# The early versions were tailored to the NeXT character set. Sometime ++# after the Apple aquisition the encoding was swiched to MacRoman ++# (initally with serious altcharset bugs due to incomplete conversion ++# of the old NeXT code,) and then later to UTF-8. Alos sometime during ++# or just prior to the early days of Mac OS X, the Terminal grew ANSI ++# 8-color support (initially buggy when combined with attributes, but ++# that was later fixed.) More recently, around Mac OS X version 10.3 ++# or so (Terminal.app v100+) xterm-like 16-color support was added. In ++# some versions (for instance 133-1 which shipped with Mac OS X ++# version 10.4) this suffered from the <bce> bug, but that seems to ++# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+). + # +-# Reading the source, RIS resets cnorm, but not xmous. +-hurd|The GNU Hurd console server, +- am, bce, bw, eo, km, mir, msgr, xon, +- colors#8, it#8, ncv#18, pairs#64, +- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, +- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP, +- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, +- invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, +- kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, +- kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T, +- rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l, +- rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, +- sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h, +- smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l, +- gsbom=\E[>1h, +- +-#### OSF Unix ++# In the early days of Mac OS X the terminal was fairly buggy and ++# would routinely crash under load. Many of these bugs seem to have ++# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but ++# some may still remain. This change seems to correspond to ++# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as ++# it did previously. + # +- +-# OSF/1 1.1 Snapshot 2 +-pmcons|pmconsole|PMAX console, +- am, +- cols#128, lines#57, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I, +- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, +- +-# SCO console and SOS-Syscons console for 386bsd +-# (scoansi: had unknown capabilities +-# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\ +-# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C: +-# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\ +-# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\ +-# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\ +-# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based +-# on the <smacs>=\E[12m -- esr) ++# * This may correspond with what actually happened, but I don't ++# know. It is based on guesswork, hearsay, private correspondence, ++# my faulty memory, and the following online sources and references: + # +-# klone+sgr-dumb is an error since the acsc does not match -TD ++# [1] "Three Scotts and a Duane" by Simson L. Garfinkel ++# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html + # +-# In this description based on SCO's keyboard(HW) manpage list of default +-# function key values: +-# F13-F24 are shifted F1-F12 +-# F25-F36 are control F1-F12 +-# F37-F48 are shift+control F1-F12 ++# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia ++# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep + # +-# hpa/vpa work in the console, but not in scoterm: +-# hpa=\E[%p1%dG, +-# vpa=\E[%p1%dd, ++# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to ++# "nsterm" to comply with the name length and case conventions and ++# limitations of various software packages [notably Solaris terminfo ++# and UNIX.] A single Apple_Terminal alias is retained for ++# backwards-compatbility. + # +-# SCO's terminfo uses +-# kLFT=\E[d, +-# kRIT=\E[c, +-# which do not work (console or scoterm). ++# * Added function key support (F1-F4). These only work in Terminal.app ++# version 51, hopefully the capabilities won't cause problems for people ++# using version 41. + # +-# Console documents only 3 attributes can be set with SGR (so we don't use sgr). +-scoansi-old|SCO Extended ANSI standard crt (5.0.5), +- OTbs, am, bce, eo, xon, +- colors#8, cols#80, it#8, lines#25, pairs#64, +- acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C, +- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, +- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP, +- dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M, +- ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I, +- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, +- ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H, +- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, +- kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c, +- kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, +- kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, +- kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, +- kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, +- kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, +- kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], +- kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, +- kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, +- kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8, +- rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, +- rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m, +- smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, +-scoansi-new|SCO Extended ANSI standard crt (5.0.6), +- km, +- civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr, +- cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m, +- rep=\E[%p1%d;%p2%db, rmm=\E[=11L, +- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m, +- smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm, +- smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m, +- smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m, +- smgtp=\E[=0;%i%p1%dm, smm=\E[=10L, +- wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr, +- use=scoansi-old, +-# make this easy to change... +-scoansi|SCO Extended ANSI standard crt, +- use=scoansi-old, +- +-# This actually describes the generic SVr4 display driver for Intel boxes. +-# The <dim=\E[2m> isn't documented and therefore may not be reliable. +-# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995 +-att6386|at386|386at|AT&T WGS 6386 console, +- am, bw, eo, xon, +- cols#80, it#8, lines#25, +- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C, +- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD, +- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, 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, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S, +- indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H, +- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, +- kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, +- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@, +- knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m, +- ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m, +- 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[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, +- cols#80, lines#24, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C, +- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, +- dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K, +- home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J, +- invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe, +- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk, +- nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m, +- smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++# * Added "full color" (-c) entries which support the 16-color mode in ++# version 51. ++# ++# * By default, version 51 uses UTF-8 encoding with broken altcharset ++# support, so "ASCII" (-7) entries without altcharset support were ++# added. + +-# From: Benjamin C. W. Sittler <bsittler@nmt.edu> ++# nsterm - AppKit Terminal.app + # +-# I have a UNIX PC which I use as a terminal attached to my Linux PC. +-# Unfortunately, the UNIX PC terminfo entry that comes with ncurses +-# is broken. All the special key sequences are broken, making it unusable +-# with Emacs. The problem stems from the following: ++# Apple's Mac OS X includes a Terminal.app derived from the old NeXT ++# Terminal.app. It is a partial VT100 emulation with some xterm-like ++# extensions. This terminfo was written to describe versions 41 ++# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X ++# version 10.1) of Terminal.app. + # +-# The UNIX PC has a plethora of keys (103 of them, and there's no numeric +-# keypad!), loadable fonts, and strange highlighting modes ("dithered" +-# half-intensity, "smeared" bold, and real strike-out, for example.) It also +-# uses resizable terminal windows, but the bundled terminal program always +-# uses an 80x24 window (and doesn't support seem to support a 132-column +-# mode.) ++# Terminal.app runs under the Mac OS X Quartz windowing system (and ++# other AppKit-supported windowing systems.) On the Mac OS X machine I ++# use, the executable for Terminal.app is: ++# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal + # +-# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a +-# library which was a superset of SVr3.5 curses (called tam, for "terminal +-# access method".) tam includes support for real, overlapping windows, +-# onscreen function key labels, and bitmap graphics. But since the primary +-# user interface on the UNIX PC was a GUI program (ua, for "user +-# assistant",) and remote administration was considered important for the +-# machine, tam also supported VT100-compatible terminals attached to the +-# serial port or used across the StarLan network. To simulate the extra keys +-# not present on a VT100, users could press ESC and a two-letter sequence, +-# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences, +-# however, were not the same as those sent by the actual Undo key. The +-# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example. +-# (If you're interested in adding some of the tam calls to ncurses, btw, I +-# have the full documentation and several programs which use tam. It also +-# used an extended terminfo format to describe key sequences, special +-# highlighting modes, etc.) ++# If you're looking for a description of the full-screen system ++# console which runs under Apple's Darwin operating system on PowerPC ++# platforms, see the "xnuppc" entry instead. + # +-# KEYS: This means that ncurses would quite painful on the UNIX PC, since +-# there are two sequences for every key-modifier combination (local keyboard +-# sequence and remote "VT100" sequence.) But I doubt many people are trying +-# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the +-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) +-# seem to have been built from the manual describing the VT100 sequences. +-# This means it doesn't work for a real live UNIX PC. ++# There were no function keys in version 41. In version 51, there are ++# four working function keys (F1, F2, F3 and F4.) The function keys ++# are included in all of these entries. + # +-# FONTS: The UNIX PC also has a strange interpretation of "alternate +-# character set". Rather than the VT100 graphics you might expect, it allows +-# up to 8 custom fonts to be loaded at any given time. This means that +-# programs expecting VT100 graphics will usually be disappointed. For this +-# reason I have disabled the smacs/rmacs sequences, but they could easily be +-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) +-# manpage), should you wish to do so: ++# It does not support mouse pointer position reporting. Under some ++# circumstances the cursor can be positioned using option-click; this ++# works by comparing the cursor position and the selected position, ++# and simulating enough cursor-key presses to move the cursor to the ++# selected position. This technique fails in all but the simplest ++# applications. + # +-# SGR10 - Select font 0 - ESC [ 10 m or SO +-# SGR11 - Select font 1 - ESC [ 11 m or SI +-# SGR12 - Select font 2 - ESC [ 12 m +-# ... (etc.) +-# SGR17 - Select font 7 - ESC [ 17 m ++# It provides partial ANSI color support (background colors interacted ++# badly with bold in version 41, though, as reflected in :ncv:.) The ++# monochrome (-m) entries are useful if you've disabled color support ++# or use a monochrome monitor. The full color (-c) entries are useful ++# in version 51, which doesn't exhibit the background color bug. They ++# also enable an xterm-compatible 16-color mode. + # +-# Graphics for line drawing are not reliably found at *any* character +-# location because the UNIX PC has dynamically reloadable fonts. I use font +-# 0 for regular text and font 1 for italics, but this is by no means +-# universal. So ASCII line drawing is in order if smacs/rmacs are enabled. ++# The configurable titlebar is set using xterm-compatible sequences; ++# it is used as a status bar in the statusline (-s) entries. Its width ++# depends on font sizes and window sizes, but 50 characters seems to ++# be the default for an 80x24 window. + # +-# MISC: The cursor visible/cursor invisible sequences were swapped in the +-# distributed terminfo. ++# The MacRoman character encoding is used for some of the alternate ++# characters in the "MacRoman" entries; the "ASCII" (-7) entries ++# disable alternate character set support entirely, and the "VT100" ++# (-acs) entries rely instead on Terminal.app's own buggy VT100 ++# graphics emulation, which seems to think the character encoding is ++# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries ++# are useful in Terminal.app version 51, which supports UTF-8 and ++# other ASCII-compatible character encodings but does not correctly ++# implement VT100 graphics; once VT100 graphics are correctly ++# implemented in Terminal.app, the "VT100" (-acs) entries should be ++# usable in any ASCII-compatible character encoding [except perhaps ++# in UTF-8, where some experts argue for disallowing alternate ++# characters entirely.] + # +-# To ameliorate these problems (and fix a few highlighting bugs) I rewrote +-# the UNIX PC terminfo entry. The modified version works great with Lynx, +-# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC +-# attached by serial cable. In Emacs, even the Undo key works, and many +-# applications can now use the F1-F8 keys. ++# Terminal.app reports "vt100" as the terminal type, but exports ++# several environment variables which may aid detection in a shell ++# profile (i.e. .profile or .login): + # +-# esr's notes: +-# Terminfo entry for the AT&T Unix PC 7300 +-# from escape(7) in Unix PC 7300 Manual. +-# Somewhat similar to a vt100-am (but different enough +-# to redo this from scratch.) ++# TERM=vt100 ++# TERM_PROGRAM=Apple_Terminal ++# TERM_PROGRAM_VERSION=41 # in Terminal.app version 41 ++# TERM_PROGRAM_VERSION=51 # in Terminal.app version 51 + # +-# /*************************************************************** +-# * +-# * FONT LOADING PROGRAM FOR THE UNIX PC +-# * +-# * This routine loads a font defined in the file ALTFONT +-# * into font memory slot #1. Once the font has been loaded, +-# * it can be used as an alternative character set. +-# * +-# * The call to ioctl with the argument WIOCLFONT is the key +-# * to this routine. For more information, see window(7) in +-# * the PC 7300 documentation. +-# ***************************************************************/ +-# #include <string.h> /* needed for strcpy call */ +-# #include <sys/window.h> /* needed for ioctl call */ +-# #define FNSIZE 60 /* font name size */ +-# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */ +-# /* +-# * The file /usr/lib/wfont/special.8.ft comes with the +-# * standard PC software. It defines a graphics character set +-# * similar to that of the Teletype 5425 terminal. To view +-# * this or other fonts in /usr/lib/wfont, use the command +-# * cfont <filename>. For further information on fonts see +-# * cfont(1) in the PC 7300 documentation. +-# */ ++# For example, the following Bourne shell script would detect the ++# correct terminal type: + # +-# struct altfdata /* structure for alt font data */ +-# { +-# short altf_slot; /* memory slot number */ +-# char altf_name[FNSIZE]; /* font name (file name) */ +-# }; +-# ldfont() +-# { +-# int wd; /* window in which altfont will be */ +-# struct altfdata altf; +-# altf.altf_slot=1; +-# strcpy(altf.altf_name,ALTFONT); +-# for (wd =1; wd < 12; wd++) { +-# ioctl(wd, WIOCLFONT,&altf); +-# } +-# } ++# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ] ++# then ++# export TERM ++# if [ :"$TERM_PROGRAM_VERSION" = :41 ] ++# then ++# TERM="nsterm-old" ++# else ++# TERM="nsterm-c-7" ++# fi ++# fi + # +-# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry, +-# they're confirmed by the man page for the System V display---esr) ++# In a C shell derivative, this would be accomplished by: + # +-att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300, +- am, xon, +- cols#80, it#8, lines#24, +- bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C, +- clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, +- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, +- cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, +- ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL, +- il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB, +- kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE, +- kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM, +- kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR, +- kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO, +- kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z, +- kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf, +- ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd, +- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, +- kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B, +- kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv, +- kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, +- kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB, +- ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM, +- rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m, +- smul=\E[4m, ++# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then ++# if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then ++# if ( :"$TERM_PROGRAM_VERSION" == :41 ) then ++# setenv TERM "nsterm-old" ++# else ++# setenv TERM "nsterm-c-7" ++# endif ++# endif ++# endif + +-# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is +-# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes +-# for the application keypad mode. We have added iris-ansi-ap rather than +-# change the original to keypad mode. +-# +-# (iris-ansi: added rmam/smam based on init string -- esr) +-# +-# This entry, and those derived from it, is used in xwsh (also known as +-# winterm). Some capabilities that do not fit into the terminfo model +-# include the shift- and control-functionkeys: +-# +-# F1-F12 generate different codes when shift or control modifiers are used. +-# For example: +-# F1 \E[001q +-# shift F1 \E[013q +-# control-F1 \E[025q +-# +-# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e., +-# \EOP to \EOS. The shifted and control modifiers still do the same thing. +-# +-# The cursor keys also have different codes: +-# control-up \E[162q +-# control-down \E[165q +-# control-left \E[159q +-# control-right \E[168q +-# +-# shift-up \E[161q +-# shift-down \E[164q +-# shift-left \E[158q +-# shift-right \E[167q +-# +-# control-tab \[072q +-# +-iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100), +- am, +- cols#80, it#8, lines#40, +- bel=^G, bold=\E[1m, clear=\E[H\E[2J, +- cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD, +- cub1=\E[D, 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, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h, ++# The '+' entries are building blocks ++nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset, ++ am, bw, msgr, xenl, xon, ++ cols#80, it#8, lines#24, ++ 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, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED, +- is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P, +- kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q, +- kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, +- kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q, +- kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q, +- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, +- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q, +- knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q, +- kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\, +- rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, +- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m, +- tbc=\E[3g, +-iris-ansi-ap|IRIS ANSI in application-keypad mode, +- is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q, +- kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi, +- +-# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX +-# (T.Dickey 98/1/24) +-iris-color|xwsh|IRIX ANSI with color, +- ncv#33, +- csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m, +- ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m, +- rmul=\E[24m, rs1=\Ec, ++ home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ invis=\E[8m, kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, ++ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, + rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sitm=\E[3m, use=vt100+enq, use=klone+color, +- use=iris-ansi-ap, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, ++ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys, + +-# The following is a version of the ibm-pc entry distributed with PC/IX, +-# (Interactive Systems' System 3 for the Big Blue), modified by Richard +-# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original, +-# (the former is untrue, and the latter failed under UCB/man); standout and +-# underline modes have been added. Note: this entry describes the "native" +-# capabilities of the PC monochrome display, without ANY emulation; most +-# communications packages (but NOT PC/IX connect) do some kind of emulation. +-pcix|PC/IX console, +- am, bw, eo, +- cols#80, lines#24, +- clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, +- smul=\E[4m, ++nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ enacs=\E(B\E)0, rmacs=^O, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, use=nsterm+7, + +-# (ibmpcx: this entry used to be known as ibmx. +-# It formerly included the following extension capabilities: +-# :GC=b:GL=v:GR=t:RT=^J:\ +-# :GH=\E[196g:GV=\E[179g:\ +-# :GU=\E[193g:GD=\E[194g:\ +-# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\ +-# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\ +-# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\ +-# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate +-# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match +-# what was there before. -- esr) +-ibmpcx|xenix|ibmx|IBM PC xenix console display, +- OTbs, am, msgr, +- cols#80, lines#25, +- clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, +- ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d, +- kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e, +- kpp=\E[Z, use=klone+acs, use=klone+sgr8, ++nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset, ++ acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245, ++ enacs=\E(B\E)0, rmacs=^O, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, use=nsterm+7, + +-#### QNX ++# compare with xterm+sl-twm ++nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support, ++ wsl#50, use=xterm+sl-twm, ++ ++nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors), ++ op=\E[0m, use=ibm+16color, ++ ++nsterm+c41|AppKit Terminal.app v41 color support, ++ colors#8, ncv#37, pairs#64, ++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ ++# These are different combinations of the building blocks ++ ++# ASCII charset (-7) ++nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome), ++ use=nsterm+7, ++ ++nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline), ++ use=nsterm+s, use=nsterm+7, ++ ++nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color), ++ use=nsterm+c41, use=nsterm+7, ++ ++nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color), ++ use=nsterm+c, use=nsterm+7, ++ ++nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline), ++ use=nsterm+s, use=nsterm+c41, use=nsterm+7, ++ ++nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline), ++ use=nsterm+s, use=nsterm+c, use=nsterm+7, ++ ++# VT100 alternate-charset (-acs) ++nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome), ++ use=nsterm+acs, ++ ++nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline), ++ use=nsterm+s, use=nsterm+acs, ++ ++nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color), ++ use=nsterm+c41, use=nsterm+acs, ++ ++nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color), ++ use=nsterm+c, use=nsterm+acs, ++ ++nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline), ++ use=nsterm+s, use=nsterm+c41, use=nsterm+acs, ++ ++nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline), ++ use=nsterm+s, use=nsterm+c, use=nsterm+acs, ++ ++# MacRoman charset ++nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome), ++ use=nsterm+mac, ++ ++nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline), ++ use=nsterm+s, use=nsterm+mac, ++ ++nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color), ++ use=nsterm+c41, use=nsterm+mac, ++ ++nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color), ++ use=nsterm+c, use=nsterm+mac, ++ ++nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline), ++ use=nsterm+s, use=nsterm+c41, use=nsterm+mac, ++ ++nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline), ++ use=nsterm+s, use=nsterm+c, use=nsterm+mac, ++ ++# In Mac OS X version 10.5 the format of the preferences has changed ++# and a new, more complex technique is needed, e.g., ++# ++# python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass( ++# "NSUserDefaults");ud=NSUserDefaults.alloc(); ++# ud.init();prefs=ud.persistentDomainForName_( ++# "com.apple.Terminal");prefs["Window Settings"][ ++# prefs["Default Window Settings"]]["TerminalType" ++# ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs, ++# "com.apple.Terminal")' nsterm-16color ++# ++# and it is still not settable from the preferences dialog. This is ++# tracked under rdar://problem/7365108 and rdar://problem/7365134 ++# in Apple's bug reporter. + # ++# In OS X 10.7 (Leopard) the TERM which can be set in the preferences dialog ++# defaults to xterm-color. Alternative selections are ansi, dtterm, rxvt, ++# vt52, vt100, vt102 and xterm. ++nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5, ++ bw@, mir, npc, ++ civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, ++ flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG, ++ ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~, ++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H, ++ knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, ++ smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd, ++ kLFT5=\E[5D, kRIT5=\E[5C, use=nsterm-c-s-acs, + +-# QNX 4.0 Console +-# Michael's original version of this entry had <am@>, <smcup=\Ei>, +-# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower +-# right corner without triggering a scroll. The ncurses terminfo library can +-# handle this case with the <ich1> capability, and prefers <am> for better +-# optimization. Bug: The <op> capability resets attributes. +-# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996 +-# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>) +-qnx|qnx4|qnx console, +- daisy, km, mir, msgr, xhpa, xt, +- colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8, +- acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263, +- bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ, +- cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2, +- dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee, +- il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263, +- kCMD=\377\267, kCPY=\377\363, kCRT=\377\364, +- kDL=\377\366, kEND=\377\301, kEOL=\377\311, +- kEXT=\377\367, kFND=\377\370, kHLP=\377\371, +- kHOM=\377\260, kIC=\377\340, kLFT=\377\264, +- kMOV=\377\306, kMSG=\377\304, kNXT=\377\272, +- kOPT=\377\372, kPRT=\377\275, kPRV=\377\262, +- kRDO=\377\315, kRES=\377\374, kRIT=\377\266, +- kRPL=\377\373, kSAV=\377\307, kSPD=\377\303, +- kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0, +- kclo=\377\343, kclr=\377\341, kcmd=\377\245, +- kcpy=\377\265, kcrt=\377\305, kctab=\377\237, +- kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246, +- kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274, +- ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320, +- kext=\377\270, kf1=\377\201, kf10=\377\212, +- kf11=\377\256, kf12=\377\257, kf13=\377\213, +- kf14=\377\214, kf15=\377\215, kf16=\377\216, +- kf17=\377\217, kf18=\377\220, kf19=\377\221, +- kf2=\377\202, kf20=\377\222, kf21=\377\223, +- kf22=\377\224, kf23=\377\333, kf24=\377\334, +- kf25=\377\225, kf26=\377\226, kf27=\377\227, +- kf28=\377\230, kf29=\377\231, kf3=\377\203, +- kf30=\377\232, kf31=\377\233, kf32=\377\234, +- kf33=\377\235, kf34=\377\236, kf35=\377\276, +- kf36=\377\277, kf37=\377\321, kf38=\377\322, +- kf39=\377\323, kf4=\377\204, kf40=\377\324, +- kf41=\377\325, kf42=\377\326, kf43=\377\327, +- kf44=\377\330, kf45=\377\331, kf46=\377\332, +- kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206, +- kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346, +- khlp=\377\350, khome=\377\240, khts=\377\342, +- kich1=\377\253, kil1=\377\273, kind=\377\261, +- kmov=\377\351, kmrk=\377\355, kmsg=\377\345, +- knp=\377\252, knxt=\377\312, kopn=\377\357, +- kopt=\377\353, kpp=\377\242, kprt=\377\255, +- kprv=\377\302, krdo=\377\336, kref=\377\354, +- kres=\377\360, krfr=\377\347, kri=\377\271, +- krmir=\377\313, krpl=\377\362, krst=\377\352, +- ksav=\377\361, kslt=\377\247, kspd=\377\335, +- ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER, +- rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER, +- rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d, +- setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei, +- smso=\E(, smul=\E[, ++# The versions of Terminal.app in Mac OS X version 10.3.x seem to have ++# the background color erase feature. The newer version 240.2 in Mac OS X ++# version 10.5 does not. + # ++# This entry is based on newsgroup comments by Alain Bench, Christian Ebert, ++# and D P Schreber comparing to nsterm-c-s-acs. + # +-qnxt|qnxt4|QNX4 terminal, +- crxm, use=qnx4, ++# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM ++# can be set in Terminal.app, e.g., + # +-qnxm|QNX4 with mouse events, +- maddr#1, +- chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h, +- mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l, +- mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l, +- smicm=\E/>2h, use=qnx4, ++# defaults write com.apple.Terminal TermCapString nsterm-bce + # +-qnxw|QNX4 windows, +- xvpa, use=qnxm, ++# and that it is not set in Terminal's preferences dialog. + # +-# Monochrome QNX4 terminal or console. Setting this terminal type will +-# allow an application running on a color console to behave as if it +-# were a monochrome terminal. Output will be through stdout instead of +-# console writes because the term routines will recognize that the +-# terminal name starts with 'qnxt'. ++# Modified for OS X 10.8, omitting bw based on testing with tack -TD + # +-qnxtmono|Monochrome QNX4 terminal or console, +- colors@, pairs@, +- scp@, use=qnx4, ++# Notes: ++# * The terminal description matches the default settings. ++# * The keyboard is configurable via a dialog. ++# * By default khome, kend, knext and kprev are honored only with a ++# shift-modifier. ++# * There are bindings for control left/right arrow (but not up/down). ++# Added those to nsterm-16color, which is the version used for OS X 10.6 ++# * "Allow VT100 application keypage mode" is by default disabled. ++# There is no way to press keypad-comma unless application mode is enabled ++# and used. ++# * 132-column mode stopped working during vttest's tests. Consider it broken. ++# * CHT, REP, SU, SD are buggy. ++# * ECH works (also in Leopard), but is not used here for compatibility. ++# * The terminal preferences dialog replaces xterm-color by xterm-16color and ++# xterm-256color. However, it adds "nsterm", so it is possible to use the ++# nsterm entry from this file to override the MacPorts (20110404) or ++# system (20081102) copy of this file. ++# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences ++# dialog defaults to xterm-256color. Alternative selections are ansi, ++# dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color. However, ++# the menu says "Declare terminal as" without promising to actually emulate ++# the corresponding terminals. Indeed, changing TERM does not affect the ++# emulation itself. This means that ++# + the function-keys do not match for dtterm for kf1-kf4 as well as ++# khome/kend ++# + the color model is the same for each setting of TERM (does not match ++# ansi or dtterm). ++# + the shift/control/meta key modifiers from rxvt and xterm variants are not ++# recognised except for a few special cases, i.e., kRIT5 and kLFT5. ++# + the vt52 emulation does not give a usable shell because screen-clearing ++# does not work as expected. ++# + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color". ++nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce), ++ bce, use=nsterm-16color, + +-# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998 +-# (esr: commented out <scp> and <rmcup> to avoid warnings.) +-# (TD: derive from original qnx4 entry) +-qnxt2|qnx 2.15 serial terminal, +- am, +- civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@, +- rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4, ++# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11 ++# TERM_PROGRAM_VERSION=309 ++# Earlier reports state that these differences also apply to OS X 10.7 (Lion), ++# TERM_PROGRAM_VERSION=303 ++nsterm-256color|Terminal.app in OS X 10.8, ++ ccc@, ++ initc@, use=xterm+256color, use=nsterm-bce, + +-# QNX ANSI terminal definition +-qansi-g|QNX ANSI, +- am, eslok, hs, xon, +- colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80, +- acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J, +- el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l, +- fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, +- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, +- ind=\E[S, indn=\E[%p1%dS, invis=\E[9m, +- is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0, +- kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt, +- kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h, +- kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c, +- kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa, +- kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y, +- kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, +- kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt, +- kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx, +- kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~, +- kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~, +- kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~, +- kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~, +- kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~, +- kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~, +- kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU, +- kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh, +- khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a, +- kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo, +- kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg, +- kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T, +- ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m, +- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T, +- rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m, +- rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- 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[3g, +- tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, ++# This is an alias which should always point to the "current" version ++nsterm|Apple_Terminal|AppKit Terminal.app, ++ use=nsterm-256color, ++ ++# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and ++# more featureful) terminal emulator for Mac OS X. It is similar ++# enough in capabilities to nsterm-16color that I have derived this ++# description from that one, but as far as I know they share no code. ++# Many of the features are user-configurable, but I attempt only to ++# describe the default configuration. + # +-qansi|QNX ansi with console writes, +- daisy, xhpa, use=qansi-g, ++# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is ++# disabled. ++iTerm.app|iTerm.app terminal emulator for Mac OS X, ++ bce, bw@, ccc@, ++ csr@, initc@, kend=\EOF, khome=\EOH, use=xterm+256color, ++ use=nsterm-16color, ++ ++# xnuppc - Darwin PowerPC Console (a.k.a. "darwin") + # +-qansi-t|QNX ansi without console writes, +- crxm, use=qansi, ++# On PowerPC platforms, Apple's Darwin operating system uses a ++# full-screen system console derived from a NetBSD framebuffer ++# console. It is an ANSI-style terminal, and is not really VT-100 ++# compatible. + # +-qansi-m|QNX ansi with mouse, +- maddr#1, +- chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h, +- mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l, +- mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l, +- smicm=\E[>2h, use=qansi, ++# Under Mac OS X, this is the system console driver used while in ++# single-user mode [reachable by holding down Command-S during the ++# boot process] and when logged in using console mode [reachable by ++# typing ">console" at the graphical login prompt.] + # +-qansi-w|QNX ansi for windows, +- xvpa, use=qansi-m, +- +-#### NetBSD consoles ++# If you're looking for a description of the Terminal.app terminal ++# emulator which runs under the Mac OS X Quartz windowing system (and ++# other AppKit-supported windowing systems,) see the "nsterm" ++# entry instead. + # +-# pcvt termcap database entries (corresponding to release 3.31) +-# Author's last edit-date: [Fri Sep 15 20:29:10 1995] ++# NOTE: Under Mac OS X version 10.1, the default login window does not ++# prompt for user name, instead requiring an icon to be selected from ++# a list of known users. Since the special ">console" login is not in ++# this list, you must make one of two changes in the Login Window ++# panel of the Login section of System Prefs to make the special ++# ">console" login accessible. The first option is to enable 'Show ++# "Other User" in list for network users', which will add a special ++# "Other..." icon to the graphical login panel. Selecting "Other..." ++# will present the regular graphical login prompt. The second option ++# is to change the 'Display Login Window as:' setting to 'Name and ++# password entry fields', which replaces the login panel with a ++# graphical login prompt. + # +-# (For the terminfo master file, I translated these into terminfo syntax. +-# Then I dropped all the pseudo-HP entries. we don't want and can't use +-# the :Xs: flag. Then I split :is: into a size-independent <is1> and a +-# size-dependent <is2>. Finally, I added <rmam>/<smam> -- esr) ++# There are no function keys, at least not in Darwin 1.3. ++# ++# It has no mouse support. ++# ++# It has full ANSI color support, and color combines correctly with ++# all three supported attributes: bold, inverse-video and underline. ++# However, bold colored text is almost unreadable (bolding is ++# accomplished using shifting and or-ing, and looks smeared) so bold ++# has been excluded from the list of color-compatible attributes ++# [using (ncv)]. The monochrome entry (-m) is useful if you use a ++# monochrome monitor. ++# ++# There is one serious bug with this terminal emulation's color ++# support: repositioning the cursor onto a cell with non-matching ++# colors obliterates that cell's contents, replacing it with a blank ++# and displaying a colored cursor in the "current" colors. There is ++# no complete workaround at present [other than using the monochrome ++# (-m) entries,] but removing the (msgr) capability seemed to help. ++# ++# The "standout" chosen was simple reverse-video, although a colorful ++# standout might be more aesthetically pleasing. Similarly, the bold ++# chosen is the terminal's own smeared bold, although a simple ++# color-change might be more readable. The color-bold (-b) entries ++# uses magenta colored text for bolding instead. The fancy color (-f ++# and -f2) entries use color for bold, standout and underlined text ++# (underlined text is still underlined, though.) ++# ++# Apparently the terminal emulator does support a VT-100-style ++# alternate character set, but all the alternate character set ++# positions have been left blank in the font. For this reason, no ++# alternate character set capabilities have been included in this ++# description. The console driver appears to be ASCII-only, so (enacs) ++# has been excluded [although the VT-100 sequence does work.] ++# ++# The default Mac OS X and Darwin installation reports "vt100" as the ++# terminal type, and exports no helpful environment variables. To fix ++# this, change the "console" entry in /etc/ttys from "vt100" to ++# "xnuppc-WxH", where W and H are the character dimensions of your ++# console (see below.) ++# ++# The font used by the terminal emulator is apparently one originally ++# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This ++# file includes descriptions for the following geometries: ++# ++# Pixels Characters Entry Name (append -m for monochrome) ++# ------------------------------------------------------------------- ++# 640x400 80x25 xnuppc-80x25 ++# 640x480 80x30 xnuppc-80x30 ++# 720x480 90x30 xnuppc-90x30 ++# 800x600 100x37 xnuppc-100x37 ++# 896x600 112x37 xnuppc-112x37 ++# 1024x640 128x40 xnuppc-128x40 ++# 1024x768 128x48 xnuppc-128x48 ++# 1152x768 144x48 xnuppc-144x48 ++# 1280x1024 160x64 xnuppc-160x64 ++# 1600x1024 200x64 xnuppc-200x64 ++# 1600x1200 200x75 xnuppc-200x75 ++# 2048x1536 256x96 xnuppc-256x96 ++# ++# The basic "xnuppc" entry includes no size information, and the ++# emulator includes no reporting capability, so you'll be at the mercy ++# of the TTY device (which reports incorrectly on my hardware.) The ++# color-bold entries do not include size information. + +-# NOTE: <ich1> has been taken out of this entry. for reference, it should +-# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below. +-# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583) +-pcvtXX|pcvt vt200 emulator (DEC VT220), +- am, km, mir, msgr, xenl, +- it#8, vt#3, +- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, 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, hts=\EH, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, +- is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~, +- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, +- khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~, +- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, +- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, +- rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++# The '+' entries are building blocks ++xnuppc+basic|Darwin PowerPC Console basic capabilities, ++ am, bce, mir, xenl, ++ it#8, ++ bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, ++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K, ++ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8, ++ rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, ++ rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, ++ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, use=vt100+keypad, + +-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) +-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +-# 50 lines entries; 80 columns +-pcvt25|dec vt220 emulation with 25 lines, +- cols#80, lines#25, +- is2=\E[1;25r\E[25;1H, use=pcvtXX, +-pcvt28|dec vt220 emulation with 28 lines, +- cols#80, lines#28, +- is2=\E[1;28r\E[28;1H, use=pcvtXX, +-pcvt35|dec vt220 emulation with 35 lines, +- cols#80, lines#35, +- is2=\E[1;35r\E[35;1H, use=pcvtXX, +-pcvt40|dec vt220 emulation with 40 lines, +- cols#80, lines#40, +- is2=\E[1;40r\E[40;1H, use=pcvtXX, +-pcvt43|dec vt220 emulation with 43 lines, +- cols#80, lines#43, +- is2=\E[1;43r\E[43;1H, use=pcvtXX, +-pcvt50|dec vt220 emulation with 50 lines, +- cols#80, lines#50, +- is2=\E[1;50r\E[50;1H, use=pcvtXX, ++xnuppc+c|Darwin PowerPC Console ANSI color support, ++ colors#8, ncv#32, pairs#64, ++ op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + +-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) +-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +-# 50 lines entries; 132 columns +-pcvt25w|dec vt220 emulation with 25 lines and 132 cols, +- cols#132, lines#25, +- is2=\E[1;25r\E[25;1H, use=pcvtXX, +-pcvt28w|dec vt220 emulation with 28 lines and 132 cols, +- cols#132, lines#28, +- is2=\E[1;28r\E[28;1H, use=pcvtXX, +-pcvt35w|dec vt220 emulation with 35 lines and 132 cols, +- cols#132, lines#35, +- is2=\E[1;35r\E[35;1H, use=pcvtXX, +-pcvt40w|dec vt220 emulation with 40 lines and 132 cols, +- cols#132, lines#40, +- is2=\E[1;40r\E[40;1H, use=pcvtXX, +-pcvt43w|dec vt220 emulation with 43 lines and 132 cols, +- cols#132, lines#43, +- is2=\E[1;43r\E[43;1H, use=pcvtXX, +-pcvt50w|dec vt220 emulation with 50 lines and 132 cols, +- cols#132, lines#50, +- is2=\E[1;50r\E[50;1H, use=pcvtXX, ++xnuppc+b|Darwin PowerPC Console color-bold support, ++ ncv#32, ++ bold=\E[35m, ++ sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, ++ use=xnuppc+basic, + +-# OpenBSD implements a color variation +-pcvt25-color|dec vt220 emulation with 25 lines and color, ++xnuppc+f|Darwin PowerPC Console fancy color support, ++ ncv#35, ++ sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m, ++ smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b, ++ ++xnuppc+f2|Darwin PowerPC Console alternate fancy color support, ++ ncv#35, ++ bold=\E[33m, ++ sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m, ++ smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic, ++ ++# Building blocks for specific screen sizes ++xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels), + cols#80, lines#25, +- is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~, +- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX, +- use=ecma+color, + +-# Terminfo entries to enable the use of the ncurses library in colour on a +-# NetBSD-arm32 console (only tested on a RiscPC). +-# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98 +-# modified codes for setf/setb to setaf/setab, then to klone+color, corrected +-# typo in invis - TD +-arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480), +- am, bce, msgr, xenl, xon, +- cols#80, it#8, lines#30, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[J$<50>, 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$<2>, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, +- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, +- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, +- invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H, +- kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x, +- kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v, +- kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, +- rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>, +- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>, +- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, +- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr, +- use=klone+color, ++xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels), ++ cols#80, lines#30, + +-arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768), +- cols#132, lines#50, use=arm100, ++xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels), ++ cols#90, lines#30, + +-# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine +-# manufactured by Sharp for the Japenese market. +-# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996 +-x68k|x68k-ite|NetBSD/x68k ITE, +- cols#96, lines#32, +- kclr=\E[9~, khlp=\E[28~, use=vt220, ++xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels), ++ cols#100, lines#37, + +-# <tv@pobox.com>: +-# Entry for the DNARD OpenFirmware console, close to ANSI but not quite. +-# +-# (still unfinished, but good enough so far.) +-ofcons|DNARD OpenFirmware console, +- bw, +- cols#80, lines#30, +- bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M, +- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B, +- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH, +- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P, +- dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K, +- flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL, +- il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D, +- kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P, +- kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W, +- kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r, +- kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m, +- rmso=\2330m, rmul=\2330m, +- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, +- sgr0=\2330m, ++xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels), ++ cols#112, lines#37, + +-# NetBSD "wscons" emulator in vt220 mode. +-# This entry is based on the NetBSD termcap entry, correcting the ncv value. +-# The emulator renders underlined text in red. Colors are otherwise usable. +-# +-# Testing the emulator and reading the source code (NetBSD 2.0), it appears +-# that "vt220" is inaccurate. There are a few vt220-features, but most of the +-# vt220 screens in vttest do not work with this emulator. For instance, it +-# identifies itself (primary DA response) as a vt220 with selective erase. But +-# the selective erase feature does not work. The secondary response is copied +-# from Kermit's emulation of vt220, does not correspond to actual vt220. At +-# the level of detail in a termcap, it is a passable emulator, since ECH does +-# work. Don't use it on a VMS system -TD +-wsvt25|NetBSD wscons in 25 line DEC VT220 mode, +- bce, msgr, +- colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64, +- is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~, +- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, +- kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220, ++xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels), ++ cols#128, lines#40, + +-wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta, +- km, use=wsvt25, ++xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels), ++ cols#128, lines#48, + +-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and +-# DECstation/pmax. +-rcons|BSD rasterconsole, +- use=sun-il, +-# Color version of above. Color currently only provided by NetBSD. +-rcons-color|BSD rasterconsole with ANSI color, +- bce, +- colors#8, pairs#64, +- op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons, ++xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels), ++ cols#144, lines#48, + +-# mgterm -- MGL/MGL2, MobileGear Graphic Library +-# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k} +-# -- the setf/setb are probably incorrect, more likely setaf/setab -TD +-# -- compare with cons25w +-mgterm, +- OTbs, OTpt, am, bce, bw, eo, km, msgr, npc, +- colors#8, cols#80, it#8, lines#18, pairs#64, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, 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=\E[B, 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, dim=\E[30;1m, dl=\E[%p1%dM, +- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, +- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, +- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F, +- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N, +- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, +- kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I, +- nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, +- rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm, +- setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd, ++xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels), ++ cols#160, lines#64, + +-#### FreeBSD console entries +-# +-# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996 +-# Andrey Chernov maintains the FreeBSD termcap distributions. +-# +-# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade +-# or comment out the :cb: capability in the console entry. +-# +-# Alexander Lukyanov reports: +-# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there. +-# Now el1 clears not only to the line beginning, but also a large chunk +-# of previous line. But there is another bug - ech does not work at all. +-# ++xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels), ++ cols#200, lines#64, + +-# for syscons +-# common entry without semigraphics +-# Bug: The <op> capability resets attributes. +-# Bug? The ech and el1 attributes appear to move the cursor in some cases; for +-# instance el1 does if the cursor is moved to the right margin first. Removed +-# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K) +-# +-# Setting colors turns off reverse; we cannot guarantee order, so use ncv. +-# Note that this disables standout with color. +-# +-# The emulator sends difference strings based on shift- and control-keys, +-# like scoansi: +-# F13-F24 are shifted F1-F12 +-# F25-F36 are control F1-F12 +-# F37-F48 are shift+control F1-F12 +-cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode), +- am, bce, bw, eo, msgr, npc, +- colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, +- cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, +- cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, +- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, +- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, +- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F, +- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y, +- kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d, +- kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h, +- kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m, +- kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q, +- kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v, +- kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z, +- kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^, +- kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R, +- kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L, +- knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, +- ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m, +- sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd, +-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode), +- acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371, +- use=cons25w, +-cons25-debian|freebsd console with debian backspace (25-line ansi mode), +- kbs=\177, kdch1=\E[3~, use=cons25, +-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode), +- colors@, pairs@, +- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, +- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m, +- smul=\E[4m, use=cons25, +-cons30|ansi80x30|freebsd console (30-line ansi mode), +- lines#30, use=cons25, +-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode), +- lines#30, use=cons25-m, +-cons43|ansi80x43|freebsd console (43-line ansi mode), +- lines#43, use=cons25, +-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode), +- lines#43, use=cons25-m, +-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode), +- lines#50, use=cons25, +-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode), +- lines#50, use=cons25-m, +-cons60|ansi80x60|freebsd console (60-line ansi mode), +- lines#60, use=cons25, +-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode), +- lines#60, use=cons25-m, +-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic, +- acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225, +- use=cons25w, +-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono), +- colors@, pairs@, +- op@, rmul=\E[m, setab@, setaf@, +- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m, +- smul=\E[4m, use=cons25r, +-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines), +- lines#50, use=cons25r, +-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono), +- lines#50, use=cons25r-m, +-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines), +- lines#60, use=cons25r, +-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono), +- lines#60, use=cons25r-m, +-# ISO 8859-1 FreeBSD console +-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars, +- acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237, +- use=cons25w, +-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono), +- colors@, pairs@, +- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, +- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m, +- smul=\E[4m, use=cons25l1, +-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines), +- lines#50, use=cons25l1, +-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono), +- lines#50, use=cons25l1-m, +-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines), +- lines#60, use=cons25l1, +-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono), +- lines#60, use=cons25l1-m, ++xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels), ++ cols#200, lines#75, + +-#### 386BSD and BSD/OS Consoles +-# ++xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels), ++ cols#256, lines#96, + +-# This was the original 386BSD console entry (I think). +-# Some places it's named oldpc3|oldibmpc3. +-# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu> +-origpc3|origibmpc3|IBM PC 386BSD Console, +- OTbs, am, bw, eo, xon, +- cols#80, lines#25, +- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, +- bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x, +- rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x, +- smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x, ++# These are different combinations of the building blocks + +-# description of BSD/386 console emulator in version 1.0 (supplied by BSDI) +-oldpc3|oldibmpc3|old IBM PC BSD/386 Console, +- OTbs, km, +- lines#25, +- bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M, +- ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F, +- knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R, ++xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome), ++ use=xnuppc+basic, + +-# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1 +-# Note, the emulator supports many of the additional console features +-# listed in the iBCS2 (e.g. character-set selection) though not all +-# are described here. This entry really ought to be upgraded. +-# Also note, the console will also work with fewer lines after doing +-# "stty rows NN", e.g. to use 24 lines. +-# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) +-# Bug: The <op> capability resets attributes. +-bsdos-pc|IBM PC BSD/OS Console, +- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, +- use=bsdos-pc-nobold, ++xnuppc|darwin|Darwin PowerPC Console (color), ++ use=xnuppc+c, use=xnuppc+basic, + +-bsdos-pc-nobold|BSD/OS PC console w/o bold, +- use=klone+color, use=bsdos-pc-m, ++xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold), ++ use=xnuppc+b, + +-bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono, +- OTbs, am, eo, km, xon, +- cols#80, it#8, lines#25, +- bel=^G, clear=\Ec, cr=^M, 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, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, +- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, +- kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7, +- sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;, +- use=klone+sgr8, ++xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold), ++ use=xnuppc+b, use=xnuppc+c, + +-# Old names for BSD/OS PC console used in releases before 4.1. +-pc3|BSD/OS on the PC Console, +- use=bsdos-pc-nobold, +-ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline, +- use=bsdos-pc, ++xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome), ++ use=xnuppc+f, + +-# BSD/OS on the SPARC +-bsdos-sparc|Sun SPARC BSD/OS Console, +- use=sun, ++xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color), ++ use=xnuppc+f, use=xnuppc+c, + +-# BSD/OS on the PowerPC +-bsdos-ppc|PowerPC BSD/OS Console, +- use=bsdos-pc, ++xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome), ++ use=xnuppc+f2, + +-#### DEC VT52 +-# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr) +-# +-# Actually (TD pointed this out at the time the acsc string was added): +-# vt52 shouldn't define full acsc since most of the cells don't match. +-# see vt100 manual page A-31. This is the list that does match: +-# f degree +-# g plus/minus +-# h right-arrow +-# k down-arrow +-# m scan-1 +-# o scan-3 +-# q scan-5 +-# s scan-7 +-# The line-drawing happens to work in several terminal emulators, but should +-# not be used as a guide to the capabilities of the vt52. Note in particular +-# that vt52 does not support line-drawing characters (the scan-X values refer +-# to a crude plotting feature) -TD +-vt52|dec vt52, +- OTbs, +- cols#80, it#8, lines#24, +- acsc=+h.k0affggolpnqprrss, bel=^G, clear=\EH\EJ, cr=^M, +- cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, +- el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF, ++xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color), ++ use=xnuppc+f2, use=xnuppc+c, + +-#### DEC VT100 and compatibles +-# +-# DEC terminals from the vt100 forward are collected here. Older DEC terminals +-# and micro consoles can be found in the `obsolete' section. More details on +-# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be +-# found near the end of this file. +-# +-# Except where noted, these entries are DEC's official terminfos. +-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support +-# Engineering for more information. Updated terminfos and termcaps +-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. +-# +-# In October 1995 DEC sold its terminals business, including the VT and Dorio +-# line and trademark, to SunRiver Data Systems. SunRiver has since changed +-# its name to Boundless Technologies; see http://www.boundless.com. +-# ++# Combinations for specific screen sizes ++xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25, ++ use=xnuppc+80x25, use=xnuppc+basic, + +-# NOTE: Any VT100 emulation, whether in hardware or software, almost +-# certainly includes what DEC called the `Level 1 editing extension' codes; +-# only the very oldest VT100s lacked these and there probably aren't any of +-# those left alive. To capture these, use one of the VT102 entries. ++xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25, ++ use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic, ++ ++xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30, ++ use=xnuppc+80x30, use=xnuppc+basic, ++ ++xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30, ++ use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic, ++ ++xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30, ++ use=xnuppc+90x30, use=xnuppc+basic, ++ ++xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30, ++ use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic, ++ ++xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37, ++ use=xnuppc+100x37, use=xnuppc+basic, ++ ++xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37, ++ use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic, ++ ++xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37, ++ use=xnuppc+112x37, use=xnuppc+basic, ++ ++xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37, ++ use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic, ++ ++xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40, ++ use=xnuppc+128x40, use=xnuppc+basic, ++ ++xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40, ++ use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic, ++ ++xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48, ++ use=xnuppc+128x48, use=xnuppc+basic, ++ ++xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48, ++ use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic, ++ ++xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48, ++ use=xnuppc+144x48, use=xnuppc+basic, ++ ++xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48, ++ use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic, ++ ++xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64, ++ use=xnuppc+160x64, use=xnuppc+basic, ++ ++xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64, ++ use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic, ++ ++xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64, ++ use=xnuppc+200x64, use=xnuppc+basic, ++ ++xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64, ++ use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic, ++ ++xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75, ++ use=xnuppc+200x75, use=xnuppc+basic, ++ ++xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75, ++ use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic, ++ ++xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96, ++ use=xnuppc+256x96, use=xnuppc+basic, ++ ++xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96, ++ use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic, ++ ++ ++#### BeOS + # +-# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept, +-# since the cursor is left in a different position while in the +-# weird state (concept at beginning of next line, vt100 at end +-# of this line) so all versions of vi before 3.7 don't handle +-# <xenl> right on vt100. The correct way to handle <xenl> is when +-# you output the char in column 80, immediately output CR LF +-# and then assume you are in column 1 of the next line. If <xenl> +-# is on, am should be on too. ++# BeOS entry for Terminal program Seems to be almost ANSI ++beterm|BeOS Terminal, ++ am, eo, mir, msgr, xenl, xon, ++ colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64, ++ bel=^G, 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, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ++ kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~, ++ kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, ++ kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~, ++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, ++ nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l, ++ rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm, ++ sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m, ++ smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n, ++ vpa=\E[%i%p1%dd, ++ ++#### Linux consoles + # +-# I assume you have smooth scroll off or are at a slow enough baud +-# rate that it doesn't matter (1200? or less). Also this assumes +-# that you set auto-nl to "on", if you set it off use vt100-nam +-# below. ++ ++# This entry is good for the 1.2.13 or later version of the Linux console. + # +-# The padding requirements listed here are guesses. It is strongly +-# recommended that xon/xoff be enabled, as this is assumed here. ++# *************************************************************************** ++# * * ++# * WARNING: * ++# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in * ++# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab * ++# * character. Here are the keymap replacement lines that will set this up: * ++# * * ++# keycode 15 = Tab Tab ++# alt keycode 15 = Meta_Tab ++# shift keycode 15 = F26 ++# string F26 ="\033[Z" ++# * * ++# * This has to use a key slot which is unfortunate (any unused one will * ++# * do, F26 is the higher-numbered one). The change ought to be built * ++# * into the kernel tables. * ++# * * ++# *************************************************************************** + # +-# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the +-# tab settings are in non-volatile memory and don't need to be +-# reset upon login. Also setting the number of columns glitches +-# the screen annoyingly. You can type "reset" to get them set. ++# All linux kernels since 1.2.13 (at least) set the screen size ++# themselves; this entry assumes that capability. + # +-# The VT100 series terminals have cursor ("arrows") keys which can operate +-# in two different modes: Cursor Mode and Application Mode. Cursor Mode +-# is the reset state, and is assumed to be the normal state. Application +-# Mode is the "set" state. In Cursor Mode, the cursor keys transmit +-# "Esc [ {code}" sequences, conforming to ANSI standards. In Application +-# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode +-# was provided primarily as an aid to the porting of VT52 applications. It is +-# assumed that the cursor keys are normally in Cursor Mode, and expected that +-# applications such as vi will always transmit the <smkx> string. Therefore, +-# the definitions for the cursor keys are made to match what the terminal +-# transmits after the <smkx> string is transmitted. If the <smkx> string +-# is a null string or is not defined, then cursor keys are assumed to be in +-# "Cursor Mode", and the cursor keys definitions should match that assumption, +-# else the application may fail. It is also expected that applications will +-# always transmit the <rmkx> string to the terminal before they exit. +-# +-# The VT100 series terminals have an auxiliary keypad, commonly referred to as +-# the "Numeric Keypad", because it is a cluster of numeric and function keys. +-# The Numeric Keypad which can operate in two different modes: Numeric Mode and +-# Application Mode. Numeric Mode is the reset state, and is assumed to be +-# the normal state. Application Mode is the "set" state. In Numeric Mode, +-# the numeric and punctuation keys transmit ASCII 7-bit characters, and the +-# Enter key transmits the same as the Return key (Note: the Return key +-# can be configured to send either LF (\015) or CR LF). In Application Mode, +-# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys +-# always send the same "Esc O {code}" sequences. It is assumed that the keypad +-# is normally in Numeric Mode. If an application requires that the keypad be +-# in Application Mode then it is expected that the user, or the application, +-# will set the TERM environment variable to point to a terminfo entry which has +-# defined the <smkx> string to include the codes that switch the keypad into +-# Application Mode, and the terminfo entry will also define function key +-# fields to match the Application Mode control codes. If the <smkx> string +-# is a null string or is not defined, then the keypad is assumed to be in +-# Numeric Mode. If the <smkx> string switches the keypad into Application +-# Mode, it is expected that the <rmkx> string will contain the control codes +-# necessary to reset the keypad to "Normal" mode, and it is also expected that +-# applications which transmit the <smkx> string will also always transmit the +-# <rmkx> string to the terminal before they exit. +-# +-# Here's a diagram of the VT100 keypad keys with their bindings. +-# The top line is the name of the key (some DEC keyboards have the keys +-# labelled somewhat differently, like GOLD instead of PF1, but this is +-# the most "official" name). The second line is the escape sequence it +-# generates in Application Keypad mode (where "$" means the ESC +-# character). The third line contains two items, first the mapping of +-# the key in terminfo, and then in termcap. +-# _______________________________________ +-# | PF1 | PF2 | PF3 | PF4 | +-# | $OP | $OQ | $OR | $OS | +-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_| +-# | 7 8 9 - | +-# | $Ow | $Ox | $Oy | $Om | +-# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________| +-# | 4 | 5 | 6 | , | +-# | $Ot | $Ou | $Ov | $Ol | +-# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_| +-# | 1 | 2 | 3 | | +-# | $Oq | $Or | $Os | enter | +-# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM | +-# | 0 | . | | +-# | $Op | $On | | +-# |___kc1_______K4____|_kc3__K5_|_kent_@8_| +-# +-# Note however, that the arrangement of the 5-key ka1-kc3 do not follow the +-# terminfo guidelines. That is a compromise used to assign the remaining +-# keys on the keypad to kf5-kf0, used on older systems with legacy termcap +-# support: +-vt100+keypad|dec vt100 numeric keypad no fkeys, +- ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn, +-vt100+pfkeys|dec vt100 numeric keypad, +- kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, +- use=vt100+keypad, +-vt100+fnkeys|dec vt100 numeric keypad, +- kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, +- kf9=\EOw, use=vt100+pfkeys, +-# +-# A better adaptation to modern keyboards such as the PC's, which have a dozen +-# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to +-# use the 5-key arrangement to model the arrow keys as suggested in the +-# terminfo guidelines: +-# _______________________________________ +-# | PF1 | PF2 | PF3 | PF4 | +-# | $OP | $OQ | $OR | $OS | +-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_| +-# | 7 8 9 - | +-# | $Ow | $Ox | $Oy | $Om | +-# |_ka1__K1_|_________|_ka3__K3_|_________| +-# | 4 | 5 | 6 | , | +-# | $Ot | $Ou | $Ov | $Ol | +-# |_________|_kb2__K2_|_________|_________| +-# | 1 | 2 | 3 | | +-# | $Oq | $Or | $Os | enter | +-# |_kc1__K4_|_________|_kc3__K5_| $OM | +-# | 0 | . | | +-# | $Op | $On | | +-# |___________________|_________|_kent_@8_| +-# +-vt220+keypad|dec vt220 numeric keypad, +- ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt, +- kb3=\EOv, kc2=\EOr, +-# +-vt100+enq|ncurses extension for vt100-style ENQ, +- u8=\E[?1;2c, use=ansi+enq, +-vt102+enq|ncurses extension for vt102-style ENQ, +- u8=\E[?6c, use=ansi+enq, +-# +-# And here, for those of you with orphaned VT100s lacking documentation, is +-# a description of the soft switches invoked when you do `Set Up'. +-# +-# Scroll 0-Jump Shifted 3 0-# +-# | 1-Smooth | 1-British pound sign +-# | Autorepeat 0-Off | Wrap Around 0-Off +-# | | 1-On | | 1-On +-# | | Screen 0-Dark Bkg | | New Line 0-Off +-# | | | 1-Light Bkg | | | 1-On +-# | | | Cursor 0-Underline | | | Interlace 0-Off +-# | | | | 1-Block | | | | 1-On +-# | | | | | | | | +-# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings +-# | | | | | | | | +-# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz +-# | | | 1-On | | | 1-50 Hz +-# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits +-# | | 1-ANSI | | 1-8 Bits +-# | Keyclick 0-Off | Parity 0-Off +-# | 1-On | 1-On +-# Margin Bell 0-Off Parity Sense 0-Odd +-# 1-On 1-Even +-# +-# The following SET-UP modes are assumed for normal operation: +-# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS +-# WRAP_AROUND_ON JUMP_SCROLL_OFF +-# Other SET-UP modes may be set for operator convenience or communication +-# requirements; I recommend +-# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_# +-# Unless you have a graphics add-on such as Digital Engineering's VT640 +-# (and even then, whenever it can be arranged!) you should set +-# INTERLACE_OFF +-# +-# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr) +-vt100|vt100-am|dec vt100 (w/advanced video), +- OTbs, am, mc5i, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++linux-basic|linux console, ++ am, bce, eo, mir, msgr, xenl, xon, ++ it#8, ncv#18, U8#1, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, 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$<2>, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, +- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, +- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1, +- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, +- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, +- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, +- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, +- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, +- use=vt100+fnkeys, +-vt100nam|vt100-nam|vt100 no automargins, +- am@, xenl@, use=vt100-am, +-vt100-vb|dec vt100 (w/advanced video) & no beep, +- bel@, flash=\E[?5h\E[?5l, use=vt100, ++ 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, ++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, ++ el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177, ++ kcbt=\E[Z, 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[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, ++ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, ++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, ++ kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, ++ rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, ++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;11%;m, ++ smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g, ++ vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr, ++ use=ecma+color, + +-# Ordinary vt100 in 132 column ("wide") mode. +-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video), +- cols#132, lines#24, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am, +-vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin), +- cols#132, lines#14, vt@, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam, ++linux-m|Linux console no color, ++ colors@, pairs@, ++ setab@, setaf@, setb@, setf@, use=linux, + +-# vt100 with no advanced video. +-vt100-nav|vt100 without advanced video option, +- xmc#1, +- blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m, +- smul@, use=vt100, +-vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option), +- cols#132, lines#14, use=vt100-nav, ++# The 1.3.x kernels add color-change capabilities; if yours doesn't have this ++# and it matters, turn off <ccc>. The %02x escape used to implement this is ++# not supposedly back-portable to older SV curses (although it has worked fine ++# on Solaris for several years) and not supported in ncurses versions before ++# 1.9.9. ++linux-c-nc|linux console with color-change, ++ ccc, ++ initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x, ++ oc=\E]R, use=linux-basic, ++# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996 ++linux-c|linux console 1.3.6+ for older ncurses, ++ ccc, ++ initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;, ++ oc=\E]R, use=linux-basic, + +-# vt100 with one of the 24 lines used as a status line. +-# We put the status line on the top. +-vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline, +- eslok, hs, +- lines#23, +- clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr, +- cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8, +- fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8, +- tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am, ++# The 2.2.x kernels add a private mode that sets the cursor type; use that to ++# get a block cursor for cvvis. ++# reported by Frank Heckenbach <frank@g-n-u.de>. ++linux2.2|linux 2.2.x console, ++ civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c, ++ cvvis=\E[?25h\E[?8c, use=linux-c-nc, + +-# Status line at bottom. +-# Clearing the screen will clobber status line. +-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline, +- eslok, hs, +- lines#23, +- dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H, +- tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am, ++# Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here: ++# http://lkml.indiana.edu/hypermail/linux/kernel/0602.2/0868.html ++# Using SI/SO has the drawback that it confuses screen. SCS would work. ++# However, SCS is buggy (see comment in Debian #515609) -TD ++# Further, this breaks longstanding workarounds for Linux console's line ++# drawing (see Debian 665959) -TD ++linux2.6|linux 2.6.x console, ++ rmacs=^O, ++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, use=linux2.2, ++ ++# The 3.0 kernel adds support for clearing scrollback buffer (capability E3). ++# It is the same as xterm's erase-saved-lines feature. ++linux3.0|linux 3.0 kernels, ++ E3=\E[3;J, use=linux2.6, + +-# Most of the `vt100' emulators out there actually emulate a vt102 +-# This entry (or vt102-nsgr) is probably the right thing to use for +-# these. +-vt102|dec vt102, +- dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h, +- use=vt100, +-vt102-w|dec vt102 in wide mode, +- cols#132, +- rs3=\E[?3h, use=vt102, ++# This is Linux console for ncurses. ++linux|linux console, ++ use=linux2.2, + +-# Many brain-dead PC comm programs that pretend to be `vt100-compatible' +-# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0> +-# string in the canonical vt100 entry above leaves the screen littered +-# with little snowflake or star characters (IBM PC ROM character \017 = ^O) +-# after highlight turnoffs. This entry should fix that, and even leave +-# ACS support working, at the cost of making multiple-highlight changes +-# slightly more expensive. +-# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995 +-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes), +- sgr@, sgr0=\E[m, use=vt102, ++# Subject: linux 2.6.26 vt back_color_erase ++# Changes to the Linux console driver broke bce model as reported in ++# https://bugzilla.novell.com/show_bug.cgi?id=418613 ++# apparently from ++# http://lkml.org/lkml/2008/4/26/305 ++# http://lkml.org/lkml/2008/10/3/66 ++linux2.6.26|linux console w/o bce, ++ bce@, use=linux2.6, + +-# VT125 Graphics CRT. Clear screen also erases graphics +-# Some vt125's came configured with vt102 support. +-vt125|vt125 graphics terminal, +- mir, +- clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100, ++# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file ++linux-nic|linux with ich/ich1 suppressed for non-curses programs, ++ ich@, ich1@, use=linux, + +-# This isn't a DEC entry, it came from University of Wisconsin. +-# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr) +-vt131|dec vt131, +- OTbs, am, xenl, +- cols#80, it#8, lines#24, vt#3, +- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>, +- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=^J, cuf1=\E[C$<2/>, +- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>, +- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I, +- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB, +- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>, +- rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>, +- rmul=\E[m$<2/>, +- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=, +- smso=\E[7m$<2/>, smul=\E[4m$<2/>, ++# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts. ++# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997. ++linux-koi8|linux with koi8 alternate character set, ++ acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224, ++ use=linux, use=klone+koi8acs, + +-# vt132 - like vt100 but slower and has ins/del line and such. +-# I'm told that <smir>/<rmir> are backwards in the terminal from the +-# manual and from the ANSI standard, this describes the actual +-# terminal. I've never actually used a vt132 myself, so this +-# is untested. +-# +-vt132|DEC vt132, +- xenl, +- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>, +- ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100, ++# Another entry for KOI8-r with Qing Long's acsc. ++# (which one better complies with the standard?) ++linux-koi8r|linux with koi8-r alternate character set, ++ use=linux, use=klone+koi8acs, + +-# This vt220 description maps F5--F9 to the second block of function keys +-# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict +-# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping. +-# PF1--PF4 are used as F1--F4. ++# Entry for the latin1 and latin2 fonts ++linux-lat|linux with latin1 or latin2 alternate character set, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376, ++ use=linux, ++ ++# This uses graphics from VT codeset instead of from cp437. ++# reason: cp437 (aka "straight to font") is not functional under luit. ++# from: Andrey V Lukyanov <land@long.yar.ru>. ++linux-vt|linux console using VT codes for graphics, ++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~, ++ rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0, ++ smpch@, use=linux, ++ ++# This is based on the Linux console (relies on the console to perform some ++# of the functionality), but does not recognize as many control sequences. ++# The program comes bundled with an old (circa 1998) copy of the Linux ++# console terminfo. It recognizes some non-ANSI/VT100 sequences such as ++# \E* move cursor to home, as as \E[H ++# \E,X same as \E(X ++# \EE move cursor to beginning of row ++# \E[y,xf same as \E[y,xH + # +-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode, +- OTbs, OTpt, am, mir, xenl, xon, +- cols#80, lines#24, vt#3, +- OTnl=^J, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l, +- clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P, +- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, +- if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>, +- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP, +- kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, +- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, +- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8, +- rev=\E[7m$<2>, rf=/usr/share/tabset/vt100, +- ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, +- rmso=\E[27m, rmul=\E[24m, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, +- smso=\E[7m, smul=\E[4m, ++# Note: The status-line support is buggy (dsl does not work). ++kon|kon2|jfbterm|Kanji ON Linux console, ++ ccc@, hs, ++ civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@, ++ initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T, ++ use=linux, + +-# A much better description of the VT200/220; used to be vt220-8 +-# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1 +-# designation to accommodate bug in pcvt -TD +-vt220|vt200|dec vt220, +- OTbs, am, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- 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, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, +- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH, +- ich=\E[%p1%d@, if=/usr/share/tabset/vt100, +- il=\E[%p1%dL, il1=\E[L, ind=\ED, +- is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, +- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, +- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, +- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, +- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i, +- mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m, +- rmul=\E[24m, rs1=\E[?3l, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, +- smso=\E[7m, smul=\E[4m, tbc=\E[3g, +-vt220-w|vt200-w|DEC vt220 in wide mode, +- cols#132, +- rs3=\E[?3h, use=vt220, +-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode, +- OTbs, am, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M, +- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H, +- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C, +- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A, +- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M, +- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0, +- flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH, +- ich=\233%p1%d@, if=/usr/share/tabset/vt100, +- il=\233%p1%dL, il1=\233L, ind=\ED, +- is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H, +- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A, +- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~, +- kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~, +- kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS, +- kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~, +- kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~, +- knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1, +- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, +- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B, +- rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m, +- rs1=\233?3l, sc=\E7, +- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h, +- smso=\2337m, smul=\2334m, tbc=\2333g, ++# 16-color linux console entry; this works with a 256-character ++# console font but bright background colors turn into dim ones when ++# you use a 512-character console font. This uses bold for bright ++# foreground colors and blink for bright background colors. ++linux-16color|linux console with 16 colors, ++ colors#16, ncv#63, pairs#256, ++ setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m, ++ setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m, ++ use=linux, + +-# vt220d: +-# This vt220 description regards F6--F10 as the second block of function keys +-# at the top of the keyboard. This mapping follows the description given +-# in the VT220 Programmer Reference Manual and agrees with the labeling +-# on some terminals that emulate the vt220. There is no support for an F5. +-# See vt220 for an alternate mapping. ++# bterm (bogl 0.1.18) ++# Implementation is in bogl-term.c ++# Key capabilities from linux terminfo entry + # +-vt220d|DEC VT220 in vt100 mode with DEC function key labeling, ++# Notes: ++# bterm only supports acs using wide-characters, has case for these: qjxamlkut ++# bterm does not support sgr, since it only processes one parameter -TD ++bterm|bogl virtual terminal, ++ am, bce, ++ colors#8, cols#80, lines#24, pairs#64, ++ acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J, ++ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ind=^J, ++ kb2=\E[G, kbs=\177, kcbt=\E[Z, 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[23~, kf12=\E[24~, kf13=\E[25~, + kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old, ++ kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, ++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, ++ kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, ++ op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m, ++ rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m, + +-vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins, +- am@, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220, ++#### Mach ++# + +-# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko +-# (not an official DEC entry!) +-# The problem with real vt220 terminals is they don't send escapes when in +-# in vt220 mode. This can be gotten around two ways. 1> don't send +-# escapes or 2> put the vt220 into vt100 mode and use all the nifty +-# features of vt100 advanced video which it then has. ++# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk> ++mach|Mach Console, ++ am, km, ++ cols#80, it#8, lines#25, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M, ++ 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, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, ++ el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ, ++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, ++ kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U, ++ kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m, ++ smso=\E[7m, smul=\E[4m, ++mach-bold|Mach Console with bold instead of underline, ++ rmul=\E[0m, smul=\E[1m, use=mach, ++mach-color|Mach Console with ANSI color, ++ colors#8, pairs#64, ++ dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach, ++ ++# From: Samuel Thibault ++# Source: git://git.sv.gnu.org/hurd/gnumach.git ++# Files: i386/i386at/kd.c ++# ++# Added nel, hpa, sgr and removed rmacs, smacs based on source -TD ++mach-gnu|GNU Mach, ++ acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX, ++ el1=\E[1K, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@, ++ indn=\E[%p1%dS, invis=\E[8m, nel=\EE, rin=\E[%p1%dT, ++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m, ++ use=mach, ++ ++mach-gnu-color|Mach Console with ANSI color, ++ colors#8, pairs#64, ++ op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm, ++ setaf=\E[3%p1%dm, use=mach-gnu, ++ ++# From: Marcus Brinkmann ++# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/ + # +-# This entry takes the view of putting a vt220 into vt100 mode so +-# you can use the escape key in emacs and everything else which needs it. ++# Comments in the original are summarized here: + # +-# You probably don't want to use this on a VMS machine since VMS will think +-# it has a vt220 and will get fouled up coming out of emacs ++# hurd uses 8-bit characters (km). + # +-# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996 +-# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr) +-vt200-js|vt220-js|dec vt200 series with jump scroll, +- am, +- cols#80, +- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=^J, 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, il1=\E[L, ind=\ED, +- is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8, +- rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m, +- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=, +- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m, +- +-# This was DEC's vt320. Use the purpose-built one below instead +-#vt320|DEC VT320 in vt100 emulation mode, +-# use=vt220, +- +-# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam. ++# Although it doesn't do XON/XOFF, we don't want padding characters (xon). + # +-vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode, +- am@, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220, +- +-# These entries are not DEC's official ones, they were purpose-built for the +-# VT320. Here are the designer's notes: +-# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to +-# 'Erase to End of Field'... since nothing seems to use 'end' anyways... +-# khome is Home on a PC kbd. Actually 'FIND' on a VT. +-# Things that use <knxt> usually use tab anyways... and things that don't use +-# tab usually use <knxt> instead... +-# kprv is same as tab - Backtab is useless... +-# I left out <sgr> because of its RIDICULOUS complexity, +-# and the resulting fact that it causes the termcap translation of the entry +-# to SMASH the 1k-barrier... +-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +-# (vt320: uncommented <fsl> --esr) +-vt320|vt300|dec vt320 7 bit terminal, +- am, eslok, hs, mir, msgr, xenl, +- cols#80, lines#24, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, 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, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$}, +- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, +- il1=\E[L, ind=\ED, +- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, +- kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I, +- kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i, +- mc5=\E[?5i, nel=\EE, rc=\E8, rev=\E[7m, +- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, +- rmul=\E[m, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[1$}\E[H\E[K, use=vt220+keypad, +-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy, +- am@, +- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, +- use=vt320, +-# We have to init 132-col mode, not 80-col mode. +-vt320-w|vt300-w|dec vt320 wide 7 bit terminal, +- cols#132, wsl#132, +- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- use=vt320, +-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am, +- am@, +- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, +- use=vt320-w, +- +-# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals +-# which are pretty much a superset of the VT320. They have the +-# host writable status line, yet another different DRCS matrix size, +-# and such, but they add the DEC Technical character set, Multiple text +-# pages, selectable length pages, and the like. The difference between +-# the vt330 and vt340 is that the latter has only 2 planes and a monochrome +-# monitor, the former has 4 planes and a color monitor. These terminals +-# support VT131 and ANSI block mode, but as with much of these things, +-# termcap/terminfo doesn't deal with these features. +-# +-# Note that this entry is are set up in what was the standard way for GNU +-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow +-# keys were switched into application mode at the same time the numeric pad +-# is switched into application mode. This changes the definitions of the +-# arrow keys. Emacs v19 is smarter and mines its keys directly out of +-# your termcap or terminfo entry, +-# +-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 +-# (vt340: string capability "sb=\E[M" corrected to "sr"; +-# also, added <rmam>/<smam> based on the init string -- esr) +-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page, +- am, eslok, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J, +- cnorm=\E[?25h, 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, dsl=\E[2$~\r\E[1$}\E[K\E[$}, +- ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, +- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, +- il1=\E[L, ind=\ED, +- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2, +- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m, +- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, +- rmul=\E[24m, rs1=\E[?3l, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[2$~\E[1$}\E[1;%dH, +- +-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's +-# (originally written with vt420 as its primary name, and usable for it). ++# Regarding compatibility to vt100: hurd doesn't specify <xenl>, as we don't ++# have the eat_newline_glitch. It doesn't support setting or removing tab ++# stops (hts/tbc). + # +-# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple +-# text pages and long text pages with selectable length of the vt340, along +-# with left and right margins, rectangular area text copy, fill, and erase +-# operations, selected region character attribute change operations, +-# page memory and rectangle checksums, insert/delete column, reception +-# macros, and other features too numerous to remember right now. TERMCAP +-# can only take advantage of a few of these added features. ++# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is ++# one byte instead three. + # +-# Note that this entry is are set up in what was the standard way for GNU +-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow +-# keys were switched into application mode at the same time the numeric pad +-# is switched into application mode. This changes the definitions of the +-# arrow keys. Emacs v19 is smarter and mines its keys directly out of +-# your termcap entry, ++# <ich1> is not included because hurd has insert mode. + # +-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 +-# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:"; +-# also, added <rmam>/<smam> based on the init string -- esr) +-vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap, +- am, eslok, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J$<10/>, cnorm=\E[?25h, 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, +- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>, +- el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, +- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=\ED, +- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2, +- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m, +- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, +- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[2$~\E[1$}\E[1;%dH, +- +-# (vt420: I removed <kf0>, it collided with <kf10>. I also restored +-# a missing <sc> -- esr) +-vt420|DEC VT420, +- am, mir, xenl, xon, +- cols#80, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P, +- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, +- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED, +- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, +- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- kslt=\E[4~, rc=\E8, rev=\E[7m$<2>, +- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, +- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, +- smkx=\E=, smso=\E[7m, smul=\E[4m, +- +-# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx) +-# takes two parameters, the key and the string. Translating the key is +-# straightforward (keys 1-5 are not defined on real terminals, though some +-# emulators define these): ++# hurd doesn't use ^J for scrolling, because this could put things into the ++# scrollback buffer. + # +-# if (key < 16) then value = key; +-# else if (key < 21) then value = key + 1; +-# else if (key < 25) then value = key + 2; +-# else if (key < 27) then value = key + 3; +-# else if (key < 30) then value = key + 4; +-# else value = key + 5; ++# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode. ++# This is a GNU extension. + # +-# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". +-# There's no provision in terminfo for emitting a string in this format, so the +-# application has to know it. ++# The original has commented-out ncv, but is restored here. + # +-vt420pc|DEC VT420 w/PC keyboard, +- kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~, +- kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~, +- kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~, +- kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~, +- kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~, +- kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~, +- kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~, +- kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~, +- kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~, +- kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~, +- kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~, +- kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, khome=\E[H, +- pctrm=USR_TERM\:vt420pcdos\:, +- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\, +- use=vt420, +- +-vt420pcdos|DEC VT420 w/PC for DOS Merge, +- lines#25, +- dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;, +- pctrm@, +- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@, +- sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc, +- +-vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys, +- kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, ++# Reading the source, RIS resets cnorm, but not xmous. ++hurd|The GNU Hurd console server, ++ am, bce, bw, eo, km, mir, msgr, xenl, xon, ++ colors#8, it#8, ncv#18, pairs#64, ++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, ++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP, ++ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, ++ invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, ++ kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, + kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, + kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS, +- use=vt420, +- +-vt510|DEC VT510, +- use=vt420, +-vt510pc|DEC VT510 w/PC keyboard, +- use=vt420pc, +-vt510pcdos|DEC VT510 w/PC for DOS Merge, +- use=vt420pcdos, ++ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~, ++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, ++ kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T, ++ rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l, ++ rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, ++ sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h, ++ smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l, ++ gsbom=\E[>1h, + +-# VT520/VT525 +-# +-# The VT520 is a monochrome text terminal capable of managing up to +-# four independent sessions in the terminal. It has multiple ANSI +-# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console) +-# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950, +-# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only. ++#### QNX + # +-# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or +-# [Alt]/[Print Screen] depending upon which keyboard and which +-# terminal mode is being used. If Set-Up has been disabled or +-# assigned to an unknown key, Set-Up may be entered by pressing +-# [F3] as the first key after power up, regardless of keyboard type. +-# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr) +-vt520|DEC VT520, +- am, mir, xenl, xon, +- cols#80, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P, +- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, +- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED, +- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, +- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- kslt=\E[4~, +- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\, +- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300, +- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, +- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, +- smso=\E[7m, smul=\E[4m, +- +-# (vt525: I added <rmam>/<smam> based on the init string; +-# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr) +-vt525|DEC VT525, +- am, mir, xenl, xon, +- cols#80, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P, +- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, +- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED, +- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, +- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- kslt=\E[4~, +- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\, +- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300, +- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, +- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, +- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, +- smso=\E[7m, smul=\E[4m, + +-#### VT100 emulations ++# QNX 4.0 Console ++# Michael's original version of this entry had <am@>, <smcup=\Ei>, ++# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower ++# right corner without triggering a scroll. The ncurses terminfo library can ++# handle this case with the <ich1> capability, and prefers <am> for better ++# optimization. Bug: The <op> capability resets attributes. ++# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996 ++# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>) ++qnx|qnx4|qnx console, ++ daisy, km, mir, msgr, xhpa, xt, ++ colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8, ++ acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263, ++ bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ, ++ cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2, ++ dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee, ++ il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263, ++ kCMD=\377\267, kCPY=\377\363, kCRT=\377\364, ++ kDL=\377\366, kEND=\377\301, kEOL=\377\311, ++ kEXT=\377\367, kFND=\377\370, kHLP=\377\371, ++ kHOM=\377\260, kIC=\377\340, kLFT=\377\264, ++ kMOV=\377\306, kMSG=\377\304, kNXT=\377\272, ++ kOPT=\377\372, kPRT=\377\275, kPRV=\377\262, ++ kRDO=\377\315, kRES=\377\374, kRIT=\377\266, ++ kRPL=\377\373, kSAV=\377\307, kSPD=\377\303, ++ kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0, ++ kclo=\377\343, kclr=\377\341, kcmd=\377\245, ++ kcpy=\377\265, kcrt=\377\305, kctab=\377\237, ++ kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246, ++ kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274, ++ ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320, ++ kext=\377\270, kf1=\377\201, kf10=\377\212, ++ kf11=\377\256, kf12=\377\257, kf13=\377\213, ++ kf14=\377\214, kf15=\377\215, kf16=\377\216, ++ kf17=\377\217, kf18=\377\220, kf19=\377\221, ++ kf2=\377\202, kf20=\377\222, kf21=\377\223, ++ kf22=\377\224, kf23=\377\333, kf24=\377\334, ++ kf25=\377\225, kf26=\377\226, kf27=\377\227, ++ kf28=\377\230, kf29=\377\231, kf3=\377\203, ++ kf30=\377\232, kf31=\377\233, kf32=\377\234, ++ kf33=\377\235, kf34=\377\236, kf35=\377\276, ++ kf36=\377\277, kf37=\377\321, kf38=\377\322, ++ kf39=\377\323, kf4=\377\204, kf40=\377\324, ++ kf41=\377\325, kf42=\377\326, kf43=\377\327, ++ kf44=\377\330, kf45=\377\331, kf46=\377\332, ++ kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206, ++ kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346, ++ khlp=\377\350, khome=\377\240, khts=\377\342, ++ kich1=\377\253, kil1=\377\273, kind=\377\261, ++ kmov=\377\351, kmrk=\377\355, kmsg=\377\345, ++ knp=\377\252, knxt=\377\312, kopn=\377\357, ++ kopt=\377\353, kpp=\377\242, kprt=\377\255, ++ kprv=\377\302, krdo=\377\336, kref=\377\354, ++ kres=\377\360, krfr=\377\347, kri=\377\271, ++ krmir=\377\313, krpl=\377\362, krst=\377\352, ++ ksav=\377\361, kslt=\377\247, kspd=\377\335, ++ ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER, ++ rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER, ++ rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d, ++ setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei, ++ smso=\E(, smul=\E[, + # ++# ++qnxt|qnxt4|QNX4 terminal, ++ crxm, use=qnx4, ++# ++qnxm|QNX4 with mouse events, ++ maddr#1, ++ chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h, ++ mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l, ++ mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l, ++ smicm=\E/>2h, use=qnx4, ++# ++qnxw|QNX4 windows, ++ xvpa, use=qnxm, ++# ++# Monochrome QNX4 terminal or console. Setting this terminal type will ++# allow an application running on a color console to behave as if it ++# were a monochrome terminal. Output will be through stdout instead of ++# console writes because the term routines will recognize that the ++# terminal name starts with 'qnxt'. ++# ++qnxtmono|Monochrome QNX4 terminal or console, ++ colors@, pairs@, ++ scp@, use=qnx4, + +-# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows +-# (the best Windows telnet as of September 1995) presents the name `dec-vt100' +-# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us +-# that this works best with a stock vt100 entry. +-dec-vt100|EWAN telnet's vt100 emulation, +- use=vt100, +- +-# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996 +-dec-vt220|DOS tnvt200 terminal emulator, +- am@, use=vt220, +- +-# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to +-# anyone who needs PC VT340 emulation. (or anything below that level, for +-# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's +-# RDBM systems, it includes ReGIS and SiXel support! I'm impressed... +-# I can send the address if requested. +-# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr) +-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +-z340|zstem vt340 terminal emulator 132col 42line, +- lines#42, +- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H, +- use=vt320-w, +-z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins), +- am@, +- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H, +- use=z340, +- +-# CRT is shareware. It implements some xterm features, including mouse. +-crt|crt-vt220|CRT 2.3 emulating VT220, +- bce, msgr, +- ncv@, +- hts=\EH, use=vt100+enq, use=vt220, use=ecma+color, ++# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998 ++# (esr: commented out <scp> and <rmcup> to avoid warnings.) ++# (TD: derive from original qnx4 entry) ++qnxt2|qnx 2.15 serial terminal, ++ am, ++ civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@, ++ rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4, + +-# PuTTY 0.55 (released 3 August 2004) +-# http://www.chiark.greenend.org.uk/~sgtatham/putty/ ++# QNX ANSI terminal definition ++qansi-g|QNX ANSI, ++ am, eslok, hs, xon, ++ colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80, ++ acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J, ++ el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l, ++ fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ++ ind=\E[S, indn=\E[%p1%dS, invis=\E[9m, ++ is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0, ++ kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt, ++ kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h, ++ kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c, ++ kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa, ++ kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y, ++ kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, ++ kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt, ++ kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx, ++ kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~, ++ kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~, ++ kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~, ++ kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~, ++ kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~, ++ kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~, ++ kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU, ++ kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh, ++ khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a, ++ kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo, ++ kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg, ++ kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T, ++ ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T, ++ rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m, ++ rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ 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[3g, ++ tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, + # +-# Comparing with 0.51, vttest is much better (only a few problems with the +-# cursor position reports and wrapping). ++qansi|QNX ansi with console writes, ++ daisy, xhpa, use=qansi-g, + # +-# PuTTY 0.51 (released 14 December 2000) ++qansi-t|QNX ansi without console writes, ++ crxm, use=qansi, + # +-# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as +-# well as SCO and Atari, color palettes from Linux console). Reading the code, +-# it is intended to be VT102 plus selected features. By default, it sets $TERM +-# to xterm, which is incorrect, since several features are misimplemented: ++qansi-m|QNX ansi with mouse, ++ maddr#1, ++ chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h, ++ mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l, ++ mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l, ++ smicm=\E[>2h, use=qansi, + # +-# Alt+key always sends ESC+key, so 'km' capability is removed. ++qansi-w|QNX ansi for windows, ++ xvpa, use=qansi-m, ++ ++#### SCO consoles ++ ++# SCO console and SOS-Syscons console for 386bsd ++# (scoansi: had unknown capabilities ++# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\ ++# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C: ++# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\ ++# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\ ++# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\ ++# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based ++# on the <smacs>=\E[12m -- esr) + # +-# Control responses, wrapping and tabs are buggy, failing a couple of +-# screens in vttest. ++# klone+sgr-dumb is an error since the acsc does not match -TD + # +-# xterm mouse support is not implemented (unrelease version may). ++# In this description based on SCO's keyboard(HW) manpage list of default ++# function key values: ++# F13-F24 are shifted F1-F12 ++# F25-F36 are control F1-F12 ++# F37-F48 are shift+control F1-F12 + # +-# Several features such as backspace/delete are optional; this entry documents +-# the default behavior -TD +- +-putty|PuTTY terminal emulator, +- am, bce, bw, ccc, hs, mir, msgr, xenl, xon, XT, +- colors#8, it#8, ncv#22, pairs#64, U8#1, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, +- dch=\E[%p1%dP, dch1=\E[P, +- dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;, +- dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX, +- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, +- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG, +- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, +- indn=\E[%p1%dS, +- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x, +- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R, +- kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, +- kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, +- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, +- kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, +- kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m, +- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, +- rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m, +- rmso=\E[27m, rmul=\E[24m, +- rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l, +- s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h, +- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq, +-vt100-putty|Reset PuTTY to pure vt100, +- rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p, +- use=vt100, +-# palette is hardcoded... +-putty-256color|PuTTY 0.58 with xterm 256-colors, +- initc@, use=xterm+256color, use=putty, ++# hpa/vpa work in the console, but not in scoterm: ++# hpa=\E[%p1%dG, ++# vpa=\E[%p1%dd, ++# ++# SCO's terminfo uses ++# kLFT=\E[d, ++# kRIT=\E[c, ++# which do not work (console or scoterm). ++# ++# Console documents only 3 attributes can be set with SGR (so we don't use sgr). ++scoansi-old|SCO Extended ANSI standard crt (5.0.5), ++ OTbs, am, bce, eo, xon, ++ colors#8, cols#80, it#8, lines#25, pairs#64, ++ acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C, ++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, ++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP, ++ dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M, ++ ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I, ++ hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ++ ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H, ++ kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, ++ kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c, ++ kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, ++ kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, ++ kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, ++ kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, ++ kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, ++ kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], ++ kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, ++ kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, ++ kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8, ++ rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, ++ rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m, ++ smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, ++scoansi-new|SCO Extended ANSI standard crt (5.0.6), ++ km, ++ civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr, ++ cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m, ++ rep=\E[%p1%d;%p2%db, rmm=\E[=11L, ++ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%e;10%;m, ++ smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm, ++ smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m, ++ smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m, ++ smgtp=\E[=0;%i%p1%dm, smm=\E[=10L, ++ wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr, ++ use=scoansi-old, ++# make this easy to change... ++scoansi|SCO Extended ANSI standard crt, ++ use=scoansi-old, + +-# One of the keyboard selections is "VT100+". +-# pterm (the X11 port) uses shifted F1-F10 as F11-F20 +-putty-vt100|VT100+ keyboard layout, +- kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ, +- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, +- kf9=\EOX, use=putty, ++#### SGI consoles + +-# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by +-# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator +-# (communication program) which supports: ++# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is ++# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes ++# for the application keypad mode. We have added iris-ansi-ap rather than ++# change the original to keypad mode. + # +-# - Serial port connections. +-# - TCP/IP (telnet) connections. +-# - VT100 emulation, and selected VT200/300 emulation. +-# - TEK4010 emulation. +-# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and +-# Quick-VAN). +-# - Scripts using the "Tera Term Language". +-# - Japanese and Russian character sets. ++# (iris-ansi: added rmam/smam based on init string -- esr) + # +-# The program does not come with terminfo or termcap entries. However, the +-# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no +-# vt52 or doublesize character support; blinking is done with color). Besides +-# the HPA, VPA extensions it also implements CPL and CNL. ++# This entry, and those derived from it, is used in xwsh (also known as ++# winterm). Some capabilities that do not fit into the terminfo model ++# include the shift- and control-functionkeys: + # +-# All of the function keys can be remapped. This description shows the default +-# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys +-# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad +-# is laid out like vt220, rather than the face codes on the PC keyboard, i.e, +-# kfnd Insert +-# kslt Delete +-# kich1 Home +-# kdch1 PageUp +-# kpp End +-# knp PageDown ++# F1-F12 generate different codes when shift or control modifiers are used. ++# For example: ++# F1 \E[001q ++# shift F1 \E[013q ++# control-F1 \E[025q + # +-# ANSI colors are implemented, but cannot be combined with video attributes +-# except for reverse. ++# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e., ++# \EOP to \EOS. The shifted and control modifiers still do the same thing. + # +-# No fonts are supplied with the program, so the acsc string is chosen to +-# correspond with the default Microsoft terminal font. ++# The cursor keys also have different codes: ++# control-up \E[162q ++# control-down \E[165q ++# control-left \E[159q ++# control-right \E[168q + # +-# Tera Term recognizes some xterm sequences, including those for setting and +-# retrieving the window title, and for setting the window size (i.e., using +-# "resize -s"), though it does not pass SIGWINCH to the application if the +-# user resizes the window with the mouse. +-teraterm2.3|Tera Term Pro, +- km, xon@, +- ncv#43, vt@, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J, +- cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, +- flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG, +- il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, +- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, +- kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM, +- rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m, +- smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq, +- use=klone+color, use=vt100, +- +-# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary +-# to choose a Windows OEM font). ++# shift-up \E[161q ++# shift-down \E[164q ++# shift-left \E[158q ++# shift-right \E[167q + # +-# Testing with tack: +-# - it does not have xenl (suppress that) +-# - underline seems to work with color (modify ncv). +-# Testing with vttest: +-# - wrapping differs from vt100 (menu 1). +-# - it recognizes xterm's X10 and normal mouse tracking, but none of the +-# other flavors. +-# - it recognizes the dtterm window controls for reporting size in +-# characters and pixels. +-# - it passes SIGWINCH. +-teraterm4.59|Tera Term Pro, +- bce, xenl@, +- ncv#41, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- kmous=\E[M, use=teraterm2.3, +- +-teraterm|Tera Term, +- use=teraterm4.59, +- +-# Tested with WinNT 4.0, the telnet application assumes the screensize is +-# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters. ++# control-tab \[072q + # +-# Other notes: +-# a) Fails tack's cup (cursor-addressing) test, though cup works well enough +-# for casual (occasional) use. Also fails several of the vttest screens, +-# but that is not unusual for vt100 "emulators". +-# b) Does not implement vt100 keypad +-# c) Recognizes a subset of vt52 controls. +-ms-vt100|MS telnet imitating dec vt100, +- lines#25, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@, +- kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, use=vt102+enq, use=vt100, ++iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100), ++ am, ++ cols#80, it#8, lines#40, ++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, ++ cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD, ++ cub1=\E[D, 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, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P, ++ kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q, ++ kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, ++ kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q, ++ kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q, ++ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, ++ kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q, ++ knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q, ++ kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\, ++ rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, ++ sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m, ++ tbc=\E[3g, ++iris-ansi-ap|IRIS ANSI in application-keypad mode, ++ is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q, ++ kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi, + +-# Tested with Windows 2000, the telnet application runs in a console window, +-# also using 'Terminal' font. +-# +-# Other notes: +-# a) This version has no function keys or numeric keypad. Unlike the older +-# version, the numeric keypad is entirely ignored. +-# b) The program sets $TERM to "ansi", which of course is inaccurate. +-ms-vt100-color|vtnt|windows 2000 ansi (sic), +- bce, +- dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color, +- use=ms-vt100, ++# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX ++# (T.Dickey 98/1/24) ++iris-color|xwsh|IRIX ANSI with color, ++ ncv#33, ++ csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m, ++ ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m, ++ rmul=\E[24m, rs1=\Ec, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sitm=\E[3m, use=vt100+enq, use=klone+color, ++ use=iris-ansi-ap, + +-# Based on comments from Federico Bianchi: ++#### OpenBSD consoles + # +-# vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different +-# scheme for PF keys. ++# From: Alexei Malinin <Alexei.Malinin@mail.ru>; October, 2011. + # +-# and PuTTY wishlist: ++# The following terminal descriptions for the AMD/Intel PC console ++# were prepared based on information contained in the OpenBSD-4.9 ++# termtypes.master and wscons(4) & vga(4) manuals (2010, November). + # +-# The modifiers are represented as the codes listed above, prefixed to +-# the normal sequences. If the modifier is pressed alone, its sequence +-# is transmitted twice in succession. If multiple modifiers apply, +-# they're transmitted in the order shift, control, alt. +-# +-# Shift \E^S +-# Alt \E^A, +-# Ctrl \E^C, +-ms-vt100+|vt100+|windows XP vt100+ (sic), +- kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@, +- kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3, +- kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6, +- kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9, +- kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@, +- kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3, +- kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6, +- kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9, +- kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@, +- kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4, +- kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6, +- kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9, +- kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5, +- kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+, +- knp=\E/, kpp=\E?, use=ms-vt100-color, +- +-ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+, +- use=ms-vt100+, +- +-# expect-5.44.1.15/example/tkterm +-# a minimal subset of a vt100 (compare with "news-unk). ++# Added bce based on testing with tack -TD ++# Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD ++# Changed kbs to DEL and removed keys that duplicate stty settings -TD + # +-# The missing "=" in smkx is not a typo (here), but an error in tkterm. +-tt|tkterm|Don Libes' tk text widget terminal emulator, +- clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, +- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, +- kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E, +- smso=\E[7m, ++pccon+keys|OpenBSD PC keyboard keys, ++ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kend=\E[8~, kent=^M, kf1=\E[11~, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~, ++ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, ++ kf9=\E[20~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ krfr=^R, ++pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console, ++ acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o, ++ sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, ++pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console, ++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ enacs=\E)0$<5>, rmacs=\E(B$<5>, ++ sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>, ++ sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>, ++pccon+colors|ANSI colors for OpenBSD PC console, ++ bce, ++ colors#8, pairs#64, ++ op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++pccon+base|base capabilities for OpenBSD PC console, ++ am, km, mc5i, msgr, npc, nxon, xenl, xon, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, ++ dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l, ++ rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m, ++ tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, ++pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics, ++ use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys, ++pccon0|OpenBSD PC console with simple ASCII pseudographics, ++ use=pccon0-m, use=pccon+colors, ++pccon-m|OpenBSD PC console without colors, ++ use=pccon+base, use=pccon+sgr+acs, use=pccon+keys, ++pccon|OpenBSD PC console, ++ use=pccon-m, use=pccon+colors, + +-#### X terminal emulators +-# +-# You can add the following line to your .Xdefaults to change the terminal type +-# set by the xterms you start up to my-xterm: +-# +-# *termName: my-xterm ++#### NetBSD consoles + # +-# System administrators can change the default entry for xterm instances +-# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either +-# case, xterm will detect and reject an invalid terminal type, falling back +-# to the default of xterm. ++# pcvt termcap database entries (corresponding to release 3.31) ++# Author's last edit-date: [Fri Sep 15 20:29:10 1995] + # ++# (For the terminfo master file, I translated these into terminfo syntax. ++# Then I dropped all the pseudo-HP entries. we don't want and can't use ++# the :Xs: flag. Then I split :is: into a size-independent <is1> and a ++# size-dependent <is2>. Finally, I added <rmam>/<smam> -- esr) + +-# X10/6.6 11/7/86, minus alternate screen, plus (csr) +-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string; +-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E) +-# as these seem not to work -- esr) +-x10term|vs100-x10|xterm terminal emulator (X10 window system), +- OTbs, am, km, mir, msgr, xenl, xon, +- cols#80, it#8, lines#65, +- bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, +- il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l, +- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, +- smso=\E[7m, smul=\E[4m, +-# Compatible with the R5 xterm +-# (from the XFree86 3.2 distribution, <blink=@> removed) +-# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD +-# corrected typos in rs2 string - TD +-# added u6-u9 -TD +-xterm-r5|xterm R5 version, +- OTbs, am, km, msgr, xenl, +- cols#80, it#8, lines#24, +- bel=^G, bold=\E[1m, clear=\E[H\E[2J, 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, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, +- kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, +- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, +- kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, +- rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, +- rmul=\E[m, +- rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H, +- sc=\E7, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, +- sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, use=vt100+enq, +-# Compatible with the R6 xterm +-# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed) +-# added khome/kend, hts based on the R6 xterm code - TD +-# (khome/kend do not actually work in X11R5 or X11R6, but many people use this +-# for compatibility with other emulators). +-xterm-r6|xterm-old|xterm X11R6 version, +- OTbs, am, km, mir, msgr, xenl, +- cols#80, it#8, lines#24, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M, ++# NOTE: <ich1> has been taken out of this entry. for reference, it should ++# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below. ++# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583) ++pcvtXX|pcvt vt200 emulator (DEC VT220), ++ am, km, mir, msgr, xenl, ++ it#8, vt#3, ++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h, 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, ++ cud=\E[%p1%dB, cud1=\E[B, 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, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, +- il1=\E[L, ind=^J, +- is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H, ++ el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, ++ is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177, + kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, +- kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7, +- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, ++ kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~, ++ kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, ++ khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~, ++ nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ++ ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l, ++ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, ++ rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h, + smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- use=vt100+enq, +-# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up. +-# The name has been changed and some aliases have been removed. +-xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System), +- OTbs, am, bce, km, mir, msgr, xenl, +- cols#80, it#8, lines#24, ncv@, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, 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, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, +- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, +- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, +- il1=\E[L, ind=^J, +- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, +- kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, +- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, +- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, +- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, +- kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~, +- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El, +- memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, +- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, +- rmso=\E[27m, rmul=\E[24m, rs1=^O, +- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, +- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- 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%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, +- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq, +- use=ecma+color, use=vt220+keypad, + +-# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100 +-# codes for F1-F4 except while in VT220 mode. +-xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System), +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32, ++# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) ++# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and ++# 50 lines entries; 80 columns ++pcvt25|dec vt220 emulation with 25 lines, ++ cols#80, lines#25, ++ is2=\E[1;25r\E[25;1H, use=pcvtXX, ++pcvt28|dec vt220 emulation with 28 lines, ++ cols#80, lines#28, ++ is2=\E[1;28r\E[28;1H, use=pcvtXX, ++pcvt35|dec vt220 emulation with 35 lines, ++ cols#80, lines#35, ++ is2=\E[1;35r\E[35;1H, use=pcvtXX, ++pcvt40|dec vt220 emulation with 40 lines, ++ cols#80, lines#40, ++ is2=\E[1;40r\E[40;1H, use=pcvtXX, ++pcvt43|dec vt220 emulation with 43 lines, ++ cols#80, lines#43, ++ is2=\E[1;43r\E[43;1H, use=pcvtXX, ++pcvt50|dec vt220 emulation with 50 lines, ++ cols#80, lines#50, ++ is2=\E[1;50r\E[50;1H, use=pcvtXX, + +-# This version was released in XFree86 3.3.3 (November 1998). +-# Besides providing printer support, it exploits a new feature that allows +-# xterm to use terminfo-based descriptions with the titeInhibit resource. +-# -- the distribution contained incorrect khome/kend values -TD +-xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System), +- mc5i, +- blink=\E[5m, ich1@, invis=\E[8m, +- is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@, +- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l, +- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33, ++# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) ++# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and ++# 50 lines entries; 132 columns ++pcvt25w|dec vt220 emulation with 25 lines and 132 cols, ++ cols#132, lines#25, ++ is2=\E[1;25r\E[25;1H, use=pcvtXX, ++pcvt28w|dec vt220 emulation with 28 lines and 132 cols, ++ cols#132, lines#28, ++ is2=\E[1;28r\E[28;1H, use=pcvtXX, ++pcvt35w|dec vt220 emulation with 35 lines and 132 cols, ++ cols#132, lines#35, ++ is2=\E[1;35r\E[35;1H, use=pcvtXX, ++pcvt40w|dec vt220 emulation with 40 lines and 132 cols, ++ cols#132, lines#40, ++ is2=\E[1;40r\E[40;1H, use=pcvtXX, ++pcvt43w|dec vt220 emulation with 43 lines and 132 cols, ++ cols#132, lines#43, ++ is2=\E[1;43r\E[43;1H, use=pcvtXX, ++pcvt50w|dec vt220 emulation with 50 lines and 132 cols, ++ cols#132, lines#50, ++ is2=\E[1;50r\E[50;1H, use=pcvtXX, + +-# This version was released in XFree86 4.0. +-xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System), +- npc, +- kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~, +- kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@, +- ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF, +- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S, +- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, +- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~, +- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q, +- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~, +- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~, +- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P, +- kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~, +- kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~, +- kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~, +- kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- smcup=\E[?1049h, use=xterm-xf86-v333, ++# OpenBSD implements a color variation ++pcvt25-color|dec vt220 emulation with 25 lines and color, ++ cols#80, lines#25, ++ is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~, ++ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX, ++ use=ecma+color, + +-# This version was released in XFree86 4.3. +-xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System), +- kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, +- kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, +- kbeg@, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- use=xterm-xf86-v40, ++# Terminfo entries to enable the use of the ncurses library in colour on a ++# NetBSD-arm32 console (only tested on a RiscPC). ++# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98 ++# modified codes for setf/setb to setaf/setab, then to klone+color, corrected ++# typo in invis - TD ++arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480), ++ am, bce, msgr, xenl, xon, ++ cols#80, it#8, lines#30, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, ++ clear=\E[H\E[J$<50>, 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$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, ++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, ++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, ++ invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H, ++ kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x, ++ kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v, ++ kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, ++ rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>, ++ rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>, ++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, ++ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr, ++ use=klone+color, + +-# This version was released in XFree86 4.4. +-xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System), +- cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS, +- rin=\E[%p1%dT, use=xterm-xf86-v43, ++arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768), ++ cols#132, lines#50, use=arm100, + +-xterm-xfree86|xterm terminal emulator (XFree86), +- use=xterm-xf86-v44, ++# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine ++# manufactured by Sharp for the Japenese market. ++# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996 ++x68k|x68k-ite|NetBSD/x68k ITE, ++ cols#96, lines#32, ++ kclr=\E[9~, khlp=\E[28~, use=vt220, + +-# This version reflects the current xterm features. +-xterm-new|modern xterm terminal emulator, +- npc, +- indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, +- kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE, +- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M, +- knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys, +- use=xterm-basic, +-# +-# This fragment describes as much of XFree86 xterm's "pc-style" function +-# keys as will fit into terminfo's 60 function keys. +-# From ctlseqs.ms: +-# Code Modifiers +-# --------------------------------- +-# 2 Shift +-# 3 Alt +-# 4 Shift + Alt +-# 5 Control +-# 6 Shift + Control +-# 7 Alt + Control +-# 8 Shift + Alt + Control +-# --------------------------------- +-# The meta key may also be used as a modifier in this scheme, adding another +-# bit to the parameter. +-xterm+pcfkeys|fragment for PC-style fkeys, +- use=xterm+app, use=xterm+pcf2, use=xterm+pcc2, +- use=xterm+pce2, ++# <tv@pobox.com>: ++# Entry for the DNARD OpenFirmware console, close to ANSI but not quite. + # +-xterm+noapp|fragment with cursor keys in normal mode, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, +- khome=\E[H, ++# (still unfinished, but good enough so far.) ++ofcons|DNARD OpenFirmware console, ++ bw, ++ cols#80, lines#30, ++ bel=^G, blink=\2335m, bold=\2331m, clear=^L, cr=^M, ++ cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B, ++ cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH, ++ cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P, ++ dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K, ++ flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL, ++ il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D, ++ kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P, ++ kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W, ++ kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r, ++ kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m, ++ rmso=\2330m, rmul=\2330m, ++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8%;%?%p1%p3%|%t;7%;m, ++ sgr0=\2330m, smso=\2337m, smul=\2334m, + +-xterm+app|fragment with cursor keys in application mode, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, +- khome=\EOH, +-# +-# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27) +-# and revised in patch #167 (2002/8/24). Some other terminal emulators copied +-# the earlier scheme, as noted in the "use=" clauses in this file. ++# NetBSD "wscons" emulator in vt220 mode. ++# This entry is based on the NetBSD termcap entry, correcting the ncv value. ++# The emulator renders underlined text in red. Colors are otherwise usable. + # +-# The original assignments from patch #94 for cursor-keys had some technical +-# issues: ++# Testing the emulator and reading the source code (NetBSD 2.0), it appears ++# that "vt220" is inaccurate. There are a few vt220-features, but most of the ++# vt220 screens in vttest do not work with this emulator. For instance, it ++# identifies itself (primary DA response) as a vt220 with selective erase. But ++# the selective erase feature does not work. The secondary response is copied ++# from Kermit's emulation of vt220, does not correspond to actual vt220. At ++# the level of detail in a termcap, it is a passable emulator, since ECH does ++# work. Don't use it on a VMS system -TD ++wsvt25|NetBSD wscons in 25 line DEC VT220 mode, ++ bce, msgr, ++ colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64, ++ civis=\E[?25l, cnorm=\E[?25h, is2=\E[r\E[25;1H, ++ kdch1=\E[3~, kend=\E[8~, kf1=\E[11~, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~, ++ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, ++ kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220, ++ ++wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta, ++ km, use=wsvt25, ++ ++# NetBSD 6.x still uses wscons, with minor changes (2014/02/22) -TD + # +-# A parameter for a function-key to represent a modifier is just more +-# bits. But for a cursor-key it may change the behavior of the +-# application. For instance, emacs decodes the first parameter of a +-# cursor-key as a repeat count. ++# TERM is by default vt100 for the console, wsvt25 for other ttys. ++# Initial testing set TERM=xterm, based on comments by developers, found too ++# many differences to continue in that path. However, test-results may be ++# useful to people curious about compatibility with xterm. + # +-# A parameterized string should (really) not begin with SS3 (\EO). +-# Rather, CSI (\E[) should be used. ++# Testing with tack: ++# ----------------- ++# Failed: cbt, bel, flash, cvvis, smul (color), blink, invis ++# There is color-bleeding in the color-pairs screen. ++# Attributes do not work with color ++# Failed: vpa/hpa ++# Failed: kf1-kf4, kf13-kf48, khome, kend ++# (effectively xterm-r6 for function-keys) ++# None of the function or cursor key-modifiers are encoded. ++# Console hangs in the smm/rmm test if TERM=xterm, does not show test + # +-# For these reasons, the original assignments were deprecated. For +-# compatibility reasons, they are still available as a setting of xterm's +-# modifyCursorKeys resource. These fragments list the modified cursor-keys +-# that might apply to xterm+pcfkeys with different values of that resource. +-xterm+pcc3|fragment with modifyCursorKeys:3, +- kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B, +- kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B, +- kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B, +- kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D, +- kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C, +- kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C, +- kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A, +- kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A, +- kUP7=\E[>1;7A, +- +-xterm+pcc2|fragment with modifyCursorKeys:2, +- kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A, +- kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, +- kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D, +- kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D, +- kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C, +- kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, +- kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A, ++# Testing with vttest: ++# ------------------- ++# Identifies as vt220 with selective erase ++# (however, selective erase refers to DECSCA, SPA) ++# Does not implement vt52 ++# Uses spaces to simulate double-size characters ++# Does not support 8-bit controls ++# Does not support VT220 reports ++# Does not support send/receive mode ++# Supports ECH (like rxvt) ++# Does not support DECSCA ++# Does not support any of the ISO-6429 cursor-movement ++# Does not support any of the ISO-6429 miscellaneous tests ++# (SL/SR also leave unexpected char on screen too) ++# Background does not change in menu 11.6.9 (SGR 22-27) ++# None of the xterm special features tests work ++netbsd6|NetBSD wscons in 25 line DEC VT100 mode, ++ kbs=\177, use=wsvt25, + +-xterm+pcc1|fragment with modifyCursorKeys:1, +- kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B, +- kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B, +- kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D, +- kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C, +- kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A, +- kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A, ++# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and ++# DECstation/pmax. ++rcons|BSD rasterconsole, ++ use=sun-il, ++# Color version of above. Color currently only provided by NetBSD. ++rcons-color|BSD rasterconsole with ANSI color, ++ bce, ++ colors#8, pairs#64, ++ op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons, + +-xterm+pcc0|fragment with modifyCursorKeys:0, +- kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B, +- kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B, +- kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D, +- kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C, +- kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A, +- kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A, ++# mgterm -- MGL/MGL2, MobileGear Graphic Library ++# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k} ++# -- the setf/setb are probably incorrect, more likely setaf/setab -TD ++# -- compare with cons25w ++mgterm, ++ OTbs, OTpt, am, bce, bw, eo, km, msgr, npc, ++ colors#8, cols#80, it#8, lines#18, pairs#64, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, 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=\E[B, 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, dim=\E[30;1m, dl=\E[%p1%dM, ++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, ++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, ++ indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F, ++ kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N, ++ kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, ++ kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I, ++ nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, ++ rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm, ++ setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd, + ++#### FreeBSD console entries + # +-# Here are corresponding fragments from xterm patch #216: ++# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996 ++# Andrey Chernov maintains the FreeBSD termcap distributions. + # +-xterm+pcf0|fragment with modifyFunctionKeys:0, +- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S, +- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, +- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~, +- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q, +- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR, +- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~, +- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~, +- kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R, +- kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~, +- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~, +- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P, +- kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S, +- kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~, +- kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~, +- kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P, +- kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade ++# or comment out the :cb: capability in the console entry. + # +-xterm+pcf2|fragment with modifyFunctionKeys:2, +- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, +- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, +- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~, +- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, +- kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, +- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~, +- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~, +- kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, +- kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~, +- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~, +- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, +- kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R, +- kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~, +- kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~, +- kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, +- kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, ++# Alexander Lukyanov reports: ++# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there. ++# Now el1 clears not only to the line beginning, but also a large chunk ++# of previous line. But there is another bug - ech does not work at all. + # +-# Chunks from xterm #230: +-xterm+pce2|fragment with modifyCursorKeys:2, +- kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, +- kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~, +- kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, +- kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F, +- kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F, +- kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H, +- kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~, +- kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~, +- kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~, +- kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~, +- kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~, +- use=xterm+edit, +- +-xterm+edit|fragment for 6-key editing-keypad, +- kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- use=xterm+pc+edit, +- +-xterm+pc+edit|fragment for pc-style editing keypad, +- kend=\E[4~, khome=\E[1~, +- +-xterm+vt+edit|fragment for vt220-style editing keypad, +- kfnd=\E[1~, kslt=\E[4~, + ++# for syscons ++# common entry without semigraphics ++# Bug: The <op> capability resets attributes. ++# Bug? The ech and el1 attributes appear to move the cursor in some cases; for ++# instance el1 does if the cursor is moved to the right margin first. Removed ++# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K) + # +-# Those chunks use the new-style (the xterm oldFunctionKeys resource is false). +-# Alternatively, the same scheme with old-style function keys as in xterm-r6 +-# is shown here (because that is used in mrxvt and mlterm): +-xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2, +- kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~, +- kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~, +- kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~, +- kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~, +- kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~, +- kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~, +- kf63=\E[13;4~, use=xterm+pcf2, ++# Setting colors turns off reverse; we cannot guarantee order, so use ncv. ++# Note that this disables standout with color. + # +-# This chunk is used for building the VT220/Sun/PC keyboard variants. +-xterm-basic|modern xterm terminal emulator - common, +- OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX, +- colors#8, cols#80, it#8, lines#24, pairs#64, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, 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, ++# The emulator sends difference strings based on shift- and control-keys, ++# like scoansi: ++# F13-F24 are shifted F1-F12 ++# F25-F36 are control F1-F12 ++# F37-F48 are shift+control F1-F12 ++cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode), ++ am, bce, bw, eo, msgr, npc, ++ colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, ++ cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, ++ cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, +- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, +- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, +- ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H, +- kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El, +- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m, +- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, ++ cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, ++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, ++ indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F, ++ kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y, ++ kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d, ++ kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h, ++ kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m, ++ kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q, ++ kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v, ++ kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z, ++ kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^, ++ kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R, ++ kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L, ++ knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ++ ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, + setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, +- sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h, +- smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq, +- +-# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997 +-# In retrospect, something like xterm-r6 was intended here -TD +-xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1, +- rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33, +- +-# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey) +-# If configured to support 88- or 256-colors (which is fairly common in 2009), +-# xterm also recognizes the control sequences for initc -TD +-xterm-16color|xterm with 16 colors like aixterm, +- ccc, +- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, +- use=ibm+16color, use=xterm-new, +- +-# 256-colors is a compile-time feature of XFree86 xterm beginning with +-# patch #111 (1999/7/10) -TD +-xterm+256color|xterm 256-color feature, +- ccc, +- colors#256, pairs#32767, +- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, +- setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +- setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +- setb@, setf@, ++ sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m, ++ sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd, ++cons25|ansis|ansi80x25|freebsd console (25-line ansi mode), ++ acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371, ++ use=cons25w, ++cons25-debian|freebsd console with debian backspace (25-line ansi mode), ++ kbs=\177, kdch1=\E[3~, use=cons25, ++cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode), ++ colors@, pairs@, ++ bold@, dim@, op@, rmul=\E[m, setab@, setaf@, ++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m, ++ smul=\E[4m, use=cons25, ++cons30|ansi80x30|freebsd console (30-line ansi mode), ++ lines#30, use=cons25, ++cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode), ++ lines#30, use=cons25-m, ++cons43|ansi80x43|freebsd console (43-line ansi mode), ++ lines#43, use=cons25, ++cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode), ++ lines#43, use=cons25-m, ++cons50|ansil|ansi80x50|freebsd console (50-line ansi mode), ++ lines#50, use=cons25, ++cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode), ++ lines#50, use=cons25-m, ++cons60|ansi80x60|freebsd console (60-line ansi mode), ++ lines#60, use=cons25, ++cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode), ++ lines#60, use=cons25-m, ++cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic, ++ acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225, ++ use=cons25w, ++cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono), ++ colors@, pairs@, ++ op@, rmul=\E[m, setab@, setaf@, ++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m, ++ smul=\E[4m, use=cons25r, ++cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines), ++ lines#50, use=cons25r, ++cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono), ++ lines#50, use=cons25r-m, ++cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines), ++ lines#60, use=cons25r, ++cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono), ++ lines#60, use=cons25r-m, ++# ISO 8859-1 FreeBSD console ++cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars, ++ acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237, ++ use=cons25w, ++cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono), ++ colors@, pairs@, ++ bold@, dim@, op@, rmul=\E[m, setab@, setaf@, ++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m, ++ smul=\E[4m, use=cons25l1, ++cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines), ++ lines#50, use=cons25l1, ++cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono), ++ lines#50, use=cons25l1-m, ++cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines), ++ lines#60, use=cons25l1, ++cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono), ++ lines#60, use=cons25l1-m, + +-# 88-colors is a compile-time feature of XFree86 xterm beginning with +-# patch #115 (1999/9/18) -TD ++# Starting with FreeBSD 8, an alternative configuration for syscons is provided, ++# which is intended to be xterm-compatible. See for example ++# http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/ ++# in particular scterm-teken.c + # +-# Note that the escape sequences used are the same as for 256-colors - xterm +-# has a different table of default color resource values. If built for +-# 256-colors, it can still handle an 88-color palette by using the initc +-# capability. ++# For FreeBSD 9 and 10: ++# -------------------- ++# The /etc/ttys entries for console and other ttys are all configured to set ++# TERM=xterm. + # +-# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals +-# which support the xterm+256color feature support the associated initc +-# capability. So it is cancelled in the entries which use this and/or the +-# xterm+256color block. ++# Testing with tack: ++# There is no VT100 line-drawing (uses +'s and -'s) ++# Shifted f1-f12 give cons25 codes, rather than xterm function-keys + # +-# The default color palette for the 256- and 88-colors are different. A +-# given executable will have one palette (perhaps compiled-in). If the program +-# supports xterm's control sequence, it can be programmed using initc. +-xterm+88color|xterm 88-color feature, +- colors#88, pairs#7744, use=xterm+256color, ++# Testing with vttest: ++# Menu 2 diamonds don't work, blink ditto, light background ditto ++# The terminal identifies itself as VT100 with AVO ++# There is no VT52 support ++# There is no doublesize character support ++# The terminal supports ECH (like rxvt) ++# The terminal does not support send/receive mode ++# The terminal supports all of the ISO-6429 cursor-movement ++# The terminal supports some of the ISO-6429 miscellaneous tests ++# (SL/SR also leave unexpected char on screen too) ++# ++# Considering cons25 as a base, the line-drawing mostly works, but is missing ++# the cells which happen to have ASCII control-character values: ++# - ^X arrow pointing up ++# . ^Y arrow pointing down ++# i ^Y lantern ++# ` ^D diamond ++# ++# Those are removed from this entry's acsc string to avoid confusion. ++# The resulting description provides correct line-drawing and function-keys -TD ++teken|syscons with teken, ++ bw@, mir, xenl, ++ acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371, ++ civis=\E[?25l, cnorm=\E[?25h, cvvis@, hpa=\E[%i%p1%dG, ++ hts=\EH, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kend=\E[F, kent=^M, kf1=\EOP, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmir=\E[4l, ++ smir=\E[4h, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, ++ u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, use=cons25, + +-# These variants of XFree86 3.9.16 xterm are built as a configure option. +-xterm-256color|xterm with 256 colors, +- use=xterm+256color, use=xterm-new, +-xterm-88color|xterm with 88 colors, +- use=xterm+88color, use=xterm-256color, ++#### 386BSD and BSD/OS Consoles ++# + +-# These two are used to demonstrate the any-event mouse support, i.e., by +-# using an extended name "XM" which tells ncurses to put the terminal into +-# a special mode when initializing the xterm mouse. +-xterm-1002|testing xterm-mouse, +- XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new, +-xterm-1003|testing xterm-mouse, +- XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new, ++# This was the original 386BSD console entry (I think). ++# Some places it's named oldpc3|oldibmpc3. ++# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu> ++origpc3|origibmpc3|IBM PC 386BSD Console, ++ OTbs, am, bw, eo, xon, ++ cols#80, lines#25, ++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, ++ bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x, ++ rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x, ++ smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x, + +-# This is another variant, for XFree86 4.0 xterm (T.Dickey) +-# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color. +-# To use it, your decTerminalID resource must be set to 200 or above. +-# +-# HTS \E H \210 +-# RI \E M \215 +-# SS3 \E O \217 +-# CSI \E [ \233 +-# +-xterm-8bit|xterm terminal emulator 8-bit controls (X Window System), +- OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX, +- colors#8, cols#80, it#8, lines#24, pairs#64, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z, +- civis=\233?25l, clear=\233H\2332J, +- cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr, +- cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J, +- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH, +- cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h, +- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M, +- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, +- flash=\233?5h$<100/>\233?5l, home=\233H, +- hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@, +- il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m, +- is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8, +- ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H, +- kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B, +- kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~, +- kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~, +- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~, +- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~, +- kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~, +- kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~, +- kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M, +- knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i, +- meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m, +- ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l, +- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m, +- rs1=\Ec, +- rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8, +- sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm, +- setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, +- smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=, +- smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR, +- u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd, +- +-xterm-hp|xterm with hpterm function keys, +- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, +- kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ, +- knp=\ES, kpp=\ET, use=xterm-basic, +- +-xterm-sco|xterm with SCO function keys, +- kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, +- kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b, +- kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, +- kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, +- kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, +- kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, +- kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, +- kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, +- kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, +- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, +- kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I, +- use=xterm-basic, ++# description of BSD/386 console emulator in version 1.0 (supplied by BSDI) ++oldpc3|oldibmpc3|old IBM PC BSD/386 Console, ++ OTbs, km, ++ lines#25, ++ bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M, ++ ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F, ++ knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R, + +-# The xterm-new description has all of the features, but is not completely +-# compatible with vt220. If you are using a Sun or PC keyboard, set the +-# sunKeyboard resource to true: +-# + maps the editing keypad +-# + interprets control-function-key as a second array of keys, so a +-# 12-fkey keyboard can support vt220's 20-fkeys. +-# + maps numeric keypad "+" to ",". +-# + uses DEC-style control sequences for the application keypad. +-# +-xterm-vt220|xterm emulating vt220, +- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, +- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, +- use=xterm+app, use=xterm+edit, use=xterm-basic, +- use=vt220+keypad, ++# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1 ++# Note, the emulator supports many of the additional console features ++# listed in the iBCS2 (e.g. character-set selection) though not all ++# are described here. This entry really ought to be upgraded. ++# Also note, the console will also work with fewer lines after doing ++# "stty rows NN", e.g. to use 24 lines. ++# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) ++# Bug: The <op> capability resets attributes. ++bsdos-pc|IBM PC BSD/OS Console, ++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, ++ use=bsdos-pc-nobold, + +-xterm-vt52|xterm emulating dec vt52, +- cols#80, it#8, lines#24, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK, +- home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF, ++bsdos-pc-nobold|BSD/OS PC console w/o bold, ++ use=klone+color, use=bsdos-pc-m, + +-xterm-noapp|xterm with cursor keys in normal mode, +- rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp, +- use=xterm, ++bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono, ++ OTbs, am, eo, km, xon, ++ cols#80, it#8, lines#25, ++ bel=^G, clear=\Ec, cr=^M, 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, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, ++ kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7, ++ sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;, ++ use=klone+sgr8, + +-xterm-24|vs100|xterms|xterm terminal emulator (X Window System), +- lines#24, use=xterm-old, ++# Old names for BSD/OS PC console used in releases before 4.1. ++pc3|BSD/OS on the PC Console, ++ use=bsdos-pc-nobold, ++ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline, ++ use=bsdos-pc, + +-# This is xterm for ncurses. +-xterm|xterm terminal emulator (X Window System), +- use=xterm-new, ++# BSD/OS on the SPARC ++bsdos-sparc|Sun SPARC BSD/OS Console, ++ use=sun, + +-# This entry assumes that xterm's handling of VT100 SI/SO is disabled by +-# setting the vt100Graphics resource to false. +-xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode, +- U8#1, use=xterm, ++# BSD/OS on the PowerPC ++bsdos-ppc|PowerPC BSD/OS Console, ++ use=bsdos-pc, + +-# These entries allow access to the X titlebar and icon name as a status line. +-# Note that twm (and possibly window managers descended from it such as tvtwm, +-# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess +-# with it. +-xterm+sl|access X title line and icon name, +- hs, +- wsl#40, +- dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm, +-xterm+sl-twm|access X title line (pacify twm-descended window managers), +- hs, +- wsl#40, +- dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm, + ++#### DEC VT52 ++# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr) + # +-# The following xterm variants don't depend on your base version +-# +-# xterm with bold instead of underline +-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold, +- smso=\E[7m, smul=\E[1m, use=xterm-old, +-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr) +-# (kterm should not invoke DEC Graphics as the alternate character set +-# -- Kenji Rikitake) +-# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics +-# -- MATSUMOTO Shoji) +-# kterm implements acsc via built-in table of X Drawable's +-kterm|kterm kanji terminal emulator (X window system), +- eslok, hs, XT, +- ncv@, +- acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~, +- csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F, +- kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, +- tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color, +-kterm-color|kterm-co|kterm with ANSI colors, +- ncv@, use=kterm, use=ecma+color, +-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file +-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs, +- ich@, ich1@, use=xterm, +-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 +-xterm1|xterm terminal emulator ignoring the alternate screen buffer, +- rmcup@, smcup@, use=xterm, +- +-# This describes the capabilities of color_xterm, an xterm variant from +-# before ECMA-64 color support was folded into the main-line xterm release. +-# This entry is straight from color_xterm's maintainer. +-# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996 +-# The README's with the distribution also say that it supports SGR 21, 24, 25 +-# and 27, but they are not present in the terminfo or termcap. +-color_xterm|cx|cx100|color_xterm color terminal emulator for X, +- OTbs, am, km, mir, msgr, xenl, XT, +- cols#80, it#8, lines#65, ncv@, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, bold=\E[1m, clear=\E[H\E[2J, 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, enacs=\E(B\E)0, home=\E[H, ht=^I, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, +- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~, +- kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l, +- rmso=\E[27m, rmul=\E[24m, +- rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[0m\017, smacs=^N, smam=\E[?7h, +- smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m, +- smul=\E[4m, use=ecma+color, use=vt220+keypad, ++# Actually (TD pointed this out at the time the acsc string was added): ++# vt52 shouldn't define full acsc since most of the cells don't match. ++# see vt100 manual page A-31. This is the list that does match: ++# f degree ++# g plus/minus ++# h right-arrow ++# k down-arrow ++# m scan-1 ++# o scan-3 ++# q scan-5 ++# s scan-7 ++# The line-drawing happens to work in several terminal emulators, but should ++# not be used as a guide to the capabilities of the vt52. Note in particular ++# that vt52 does not support line-drawing characters (the scan-X values refer ++# to a crude plotting feature) -TD ++vt52|dec vt52, ++ OTbs, ++ cols#80, it#8, lines#24, ++ acsc=+h.k0affggolpnqprrss, bel=^G, clear=\EH\EJ, cr=^M, ++ cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, ++ el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF, + +-# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of +-# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support +-# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This +-# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except +-# that each of those implements the home, end, delete keys differently. ++#### DEC VT100 and compatibles + # +-# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce +-# colors; note that this is not compatible with the 5.2 version. +-# csw (2002-05-15): make xterm-color primary instead of nxterm, to +-# match XFree86's xterm.terminfo usage and prevent circular links +-xterm-color|nxterm|generic color xterm, +- ncv@, +- op=\E[m, use=xterm-r6, use=klone+color, +- +-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0 +-gnome-rh62|Gnome terminal, +- bce, +- kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, +- use=xterm-color, +- +-# GNOME Terminal 1.4.0.4 (Redhat 7.2) ++# DEC terminals from the vt100 forward are collected here. Older DEC terminals ++# and micro consoles can be found in the `obsolete' section. More details on ++# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be ++# found near the end of this file. + # +-# This implements a subset of vt102 with a random selection of features from +-# other terminals such as color and function-keys. ++# Except where noted, these entries are DEC's official terminfos. ++# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support ++# Engineering for more information. Updated terminfos and termcaps ++# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. + # +-# shift-f1 to shift-f10 are f11 to f20 ++# In October 1995 DEC sold its terminals business, including the VT and Dorio ++# line and trademark, to SunRiver Data Systems. SunRiver has since changed ++# its name to Boundless Technologies; see http://www.boundless.com. + # +-# NumLock changes the application keypad to approximate vt100 keypad, except +-# that there is no escape sequence matching comma (,). ++ ++# NOTE: Any VT100 emulation, whether in hardware or software, almost ++# certainly includes what DEC called the `Level 1 editing extension' codes; ++# only the very oldest VT100s lacked these and there probably aren't any of ++# those left alive. To capture these, use one of the VT102 entries. + # +-# Other defects observed: +-# vt100 LNM mode is not implemented. +-# vt100 80/132 column mode is not implemented. +-# vt100 DECALN is not implemented. +-# vt100 DECSCNM mode is not implemented, so flash does not work. +-# vt100 TBC (tab reset) is not implemented. +-# xterm alternate screen controls do not restore cursor position properly +-# it hangs in tack after running function-keys test. +-gnome-rh72|GNOME Terminal, +- bce, km@, +- civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;, +- sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color, +- +-# GNOME Terminal 2.0.1 (Redhat 8.0) ++# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept, ++# since the cursor is left in a different position while in the ++# weird state (concept at beginning of next line, vt100 at end ++# of this line) so all versions of vi before 3.7 don't handle ++# <xenl> right on vt100. The correct way to handle <xenl> is when ++# you output the char in column 80, immediately output CR LF ++# and then assume you are in column 1 of the next line. If <xenl> ++# is on, am should be on too. + # +-# Documentation now claims it implements vt220 (which is demonstrably false). +-# However, it does implement ECH, which is a vt220 feature. And there are +-# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display +-# more of its bugs using vttest. ++# I assume you have smooth scroll off or are at a slow enough baud ++# rate that it doesn't matter (1200? or less). Also this assumes ++# that you set auto-nl to "on", if you set it off use vt100-nam ++# below. + # +-# However, note that bce and msgr are broken in this release. Tabs (tbc and +-# hts) are broken as well. Sometimes flash (as in xterm-new) works. ++# The padding requirements listed here are guesses. It is strongly ++# recommended that xon/xoff be enabled, as this is assumed here. + # +-# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu +-# operations. Shift-tab generates a distinct sequence so it can be argued +-# that it implements kcbt. +-gnome-rh80|GNOME Terminal, +- bce@, msgr@, +- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177, +- kcbt=\E^I, op=\E[39;49m, use=gnome-rh72, +- +-# GNOME Terminal 2.2.1 (Redhat 9.0) ++# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the ++# tab settings are in non-volatile memory and don't need to be ++# reset upon login. Also setting the number of columns glitches ++# the screen annoyingly. You can type "reset" to get them set. + # +-# bce and msgr are repaired. +-gnome-rh90|GNOME Terminal, +- bce, msgr, +- hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C, +- kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g, +- vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys, +- use=gnome-rh80, +- +-# GNOME Terminal 2.14.2 (Fedora Core 5) +-# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002. +-gnome-fc5|GNOME Terminal, +- rs1=\Ec, +- rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, +- use=ansi+enq, use=xterm+pcc0, use=gnome-rh90, +- +-# GNOME Terminal 2.18.1 (2007 snapshot) ++# The VT100 series terminals have cursor ("arrows") keys which can operate ++# in two different modes: Cursor Mode and Application Mode. Cursor Mode ++# is the reset state, and is assumed to be the normal state. Application ++# Mode is the "set" state. In Cursor Mode, the cursor keys transmit ++# "Esc [ {code}" sequences, conforming to ANSI standards. In Application ++# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode ++# was provided primarily as an aid to the porting of VT52 applications. It is ++# assumed that the cursor keys are normally in Cursor Mode, and expected that ++# applications such as vi will always transmit the <smkx> string. Therefore, ++# the definitions for the cursor keys are made to match what the terminal ++# transmits after the <smkx> string is transmitted. If the <smkx> string ++# is a null string or is not defined, then cursor keys are assumed to be in ++# "Cursor Mode", and the cursor keys definitions should match that assumption, ++# else the application may fail. It is also expected that applications will ++# always transmit the <rmkx> string to the terminal before they exit. + # +-# For any "recent" version of gnome-terminal, it is futile to attempt to +-# support modifiers on cursor- and keypad keys because the program usually +-# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset +-# of the keys (which more/less correspond to the termcap values), and will +-# interpret those according to the $TERM value, but others not in the +-# terminfo according to some constantly changing set of hacker guidelines -TD +-vte-2007|VTE in GNOME Terminal snapshot 2.18.1, +- use=xterm+pcc2, use=gnome-fc5, +-gnome-2007|GNOME Terminal snapshot 2.18.1, +- use=vte-2007, +- +-# GNOME Terminal 2.22.3 (2008 snapshot) ++# The VT100 series terminals have an auxiliary keypad, commonly referred to as ++# the "Numeric Keypad", because it is a cluster of numeric and function keys. ++# The Numeric Keypad which can operate in two different modes: Numeric Mode and ++# Application Mode. Numeric Mode is the reset state, and is assumed to be ++# the normal state. Application Mode is the "set" state. In Numeric Mode, ++# the numeric and punctuation keys transmit ASCII 7-bit characters, and the ++# Enter key transmits the same as the Return key (Note: the Return key ++# can be configured to send either LF (\015) or CR LF). In Application Mode, ++# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys ++# always send the same "Esc O {code}" sequences. It is assumed that the keypad ++# is normally in Numeric Mode. If an application requires that the keypad be ++# in Application Mode then it is expected that the user, or the application, ++# will set the TERM environment variable to point to a terminfo entry which has ++# defined the <smkx> string to include the codes that switch the keypad into ++# Application Mode, and the terminfo entry will also define function key ++# fields to match the Application Mode control codes. If the <smkx> string ++# is a null string or is not defined, then the keypad is assumed to be in ++# Numeric Mode. If the <smkx> string switches the keypad into Application ++# Mode, it is expected that the <rmkx> string will contain the control codes ++# necessary to reset the keypad to "Normal" mode, and it is also expected that ++# applications which transmit the <smkx> string will also always transmit the ++# <rmkx> string to the terminal before they exit. + # +-# In vttest, it claims to be a vt220 with national replacement character-sets, +-# but aside from the identifier string, implements only a small fraction of +-# vt220's behavior, which will make it less usable on a VMS system (unclear +-# what the intent of the developer is, since the NRC feature exposed in vttest +-# by this change does not work). +-vte-2008|VTE in GNOME Terminal snapshot 2.22.3, +- use=vte+pcfkeys, use=vte-2007, +-gnome-2008|GNOME Terminal snapshot 2.22.3, +- use=vte-2008, +- +-# GNOME terminal may automatically use the contents of the "xterm" terminfo to +-# supply key information which is not built into the program. With 2.22.3, +-# this list is built into the program (which addresses the inadvertant use of +-# random terminfo data, though using a set of values which does not correspond +-# to any that xterm produces - still not solving the problem that GNOME +-# terminal hardcodes the $TERM variable as "xterm"). ++# Here's a diagram of the VT100 keypad keys with their bindings. ++# The top line is the name of the key (some DEC keyboards have the keys ++# labelled somewhat differently, like GOLD instead of PF1, but this is ++# the most "official" name). The second line is the escape sequence it ++# generates in Application Keypad mode (where "$" means the ESC ++# character). The third line contains two items, first the mapping of ++# the key in terminfo, and then in termcap. ++# _______________________________________ ++# | PF1 | PF2 | PF3 | PF4 | ++# | $OP | $OQ | $OR | $OS | ++# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_| ++# | 7 8 9 - | ++# | $Ow | $Ox | $Oy | $Om | ++# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________| ++# | 4 | 5 | 6 | , | ++# | $Ot | $Ou | $Ov | $Ol | ++# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_| ++# | 1 | 2 | 3 | | ++# | $Oq | $Or | $Os | enter | ++# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM | ++# | 0 | . | | ++# | $Op | $On | | ++# |___kc1_______K4____|_kc3__K5_|_kent_@8_| + # +-# terminfo modifier code keys +-# kf13-kf24 shift 2 F1 to F12 +-# kf25-kf36 control 5 F1 to F12 +-# kf37-kf48 shift/control 6 F1 to F12 +-# kf49-kf60 alt 3 F1 to F12 +-# kf61-kf63 shift-alt 4 F1 to F3 ++# Note however, that the arrangement of the 5-key ka1-kc3 do not follow the ++# terminfo guidelines. That is a compromise used to assign the remaining ++# keys on the keypad to kf5-kf0, used on older systems with legacy termcap ++# support: ++vt100+keypad|dec vt100 numeric keypad no fkeys, ++ ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn, ++vt100+pfkeys|dec vt100 numeric keypad, ++ kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ use=vt100+keypad, ++vt100+fnkeys|dec vt100 numeric keypad, ++ kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, ++ kf9=\EOw, use=vt100+pfkeys, + # +-# The parameters with \EO (SS3) are technically an error, since SS3 should have +-# no parameters. This appears to be rote copying based on xterm+pcc0. +-vte+pcfkeys|VTE's variation on xterm+pcfkeys, +- kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R, +- kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q, +- kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P, +- kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S, +- kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S, +- kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R, +- use=xterm+pcfkeys, +-gnome+pcfkeys|VTE's variation on xterm+pcfkeys, +- use=vte+pcfkeys, +- +-vte|VTE aka GNOME Terminal, +- use=vte-2008, +-gnome|GNOME Terminal, +- use=vte, +- +-# palette is hardcoded... +-vte-256color|VTE with xterm 256-colors, +- initc@, use=xterm+256color, use=vte, +-gnome-256color|GNOME Terminal with xterm 256-colors, +- use=vte-256color, +- +-# XFCE Terminal 0.2.5.4beta2 ++# A better adaptation to modern keyboards such as the PC's, which have a dozen ++# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to ++# use the 5-key arrangement to model the arrow keys as suggested in the ++# terminfo guidelines: ++# _______________________________________ ++# | PF1 | PF2 | PF3 | PF4 | ++# | $OP | $OQ | $OR | $OS | ++# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_| ++# | 7 8 9 - | ++# | $Ow | $Ox | $Oy | $Om | ++# |_ka1__K1_|_________|_ka3__K3_|_________| ++# | 4 | 5 | 6 | , | ++# | $Ot | $Ou | $Ov | $Ol | ++# |_________|_kb2__K2_|_________|_________| ++# | 1 | 2 | 3 | | ++# | $Oq | $Or | $Os | enter | ++# |_kc1__K4_|_________|_kc3__K5_| $OM | ++# | 0 | . | | ++# | $Op | $On | | ++# |___________________|_________|_kent_@8_| + # +-# This is based on some of the same source code, e.g., the VTE library, as +-# gnome-terminal, but has fewer features, fails more screens in vttest. +-# Since most of the terminfo-related behavior is due to the VTE library, +-# the terminfo is the same as gnome-terminal. +-xfce|Xfce Terminal, +- use=vte, +- +-# Multi-Gnome-Terminal 1.6.2 ++vt220+keypad|dec vt220 numeric keypad, ++ ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt, ++ kb3=\EOv, kc2=\EOr, + # +-# This does not use VTE, and does have different behavior (compare xfce and +-# gnome). +-mgt|Multi GNOME Terminal, +- indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333, +- +-# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce +-# or not is debatable). +-kvt|KDE terminal, +- bce, km@, +- kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color, +- +-# Konsole 1.0.1 +-# (formerly known as kvt) ++vt100+enq|ncurses extension for vt100-style ENQ, ++ u8=\E[?1;2c, use=ansi+enq, ++vt102+enq|ncurses extension for vt102-style ENQ, ++ u8=\E[?6c, use=ansi+enq, + # +-# This program hardcodes $TERM to 'xterm', which is not accurate. However, to +-# simplify this entry (and point out why konsole isn't xterm), we base this on +-# xterm-r6. The default keyboard appears to be 'linux'. ++# And here, for those of you with orphaned VT100s lacking documentation, is ++# a description of the soft switches invoked when you do `Set Up'. + # +-# Notes: +-# a) konsole implements several features from XFree86 xterm, though none of +-# that is documented - except of course in its source code - apparently +-# because its implementors are unaccustomed to reading documentation - as +-# evidenced by the sparse and poorly edited documentation distributed with +-# konsole. Some features such as the 1049 private mode are recognized but +-# incorrectly implemented as a duplicate of the 47 private mode. +-# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad +-# sends PC-style escapes rather than vt100. +-# c) fails vttest menu 3 (Test of character sets) because it does not properly +-# parse some control sequences. Also fails vttest Primary Device Attributes +-# by sending a bogus code (in the source it says it's supposed to be a +-# vt220, which is doubly incorrect because it does not implement vt220 +-# control sequences except for a few special cases). Treat it as a +-# mildly-broken vt102. +-# +-# Update for konsole 1.3.2: +-# The 1049 private mode works (but see the other xterm screens in vttest). +-# Primary Device Attributes now returns the code for a vt100 with advanced +-# video option. Perhaps that's intended to be a "mildly-broken vt102". +-# +-# Updated for konsole 1.6.4: +-# add konsole-solaris ++# Scroll 0-Jump Shifted 3 0-# ++# | 1-Smooth | 1-British pound sign ++# | Autorepeat 0-Off | Wrap Around 0-Off ++# | | 1-On | | 1-On ++# | | Screen 0-Dark Bkg | | New Line 0-Off ++# | | | 1-Light Bkg | | | 1-On ++# | | | Cursor 0-Underline | | | Interlace 0-Off ++# | | | | 1-Block | | | | 1-On ++# | | | | | | | | ++# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings ++# | | | | | | | | ++# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz ++# | | | 1-On | | | 1-50 Hz ++# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits ++# | | 1-ANSI | | 1-8 Bits ++# | Keyclick 0-Off | Parity 0-Off ++# | 1-On | 1-On ++# Margin Bell 0-Off Parity Sense 0-Odd ++# 1-On 1-Even + # +-# Updated for konsole 1.6.6: +-# add control-key modifiers for function-keys, etc. ++# The following SET-UP modes are assumed for normal operation: ++# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS ++# WRAP_AROUND_ON JUMP_SCROLL_OFF ++# Other SET-UP modes may be set for operator convenience or communication ++# requirements; I recommend ++# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_# ++# Unless you have a graphics add-on such as Digital Engineering's VT640 ++# (and even then, whenever it can be arranged!) you should set ++# INTERLACE_OFF + # +-# vttest menu 1 shows that both konsole and gnome terminal do wrapping +-# different from xterm (and vt100's). They have the same behavior in this +-# detail, but it is unclear which copies the other. +-konsole-base|KDE console window, +- bce, km@, npc, XT, +- ncv@, +- bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h, +- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, +- hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@, +- kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, +- kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, +- kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l, +- rmso=\E[27m, rmul=\E[24m, +- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd, +- use=ecma+color, use=xterm-r6, +-konsole-linux|KDE console window with linux keyboard, +- kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, +- kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- use=konsole-base, +-konsole-solaris|KDE console window with Solaris keyboard, +- kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100, +-# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather +-# than testing the code. +-konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm, +- kend=\E[4~, khome=\E[1~, use=konsole-vt100, +-# The value for kbs reflects local customization rather than the settings used +-# for XFree86 xterm. +-konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm, +- kend=\EOF, khome=\EOH, use=konsole+pcfkeys, +- use=konsole-vt100, +-# Konsole does not implement shifted cursor-keys. +-konsole+pcfkeys|konsole subset of xterm+pcfkeys, +- kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2, +- use=xterm+pcf0, +-# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but +-# it is still useful for deriving the other entries. +-konsole-vt100|KDE console window with vt100 (sic) keyboard, +- kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, +- kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[H, use=konsole-base, +-konsole-vt420pc|KDE console window with vt420 pc keyboard, +- kbs=^H, kdch1=\177, use=konsole-vt100, +-konsole-16color|klone of xterm-16color, +- ncv#32, use=ibm+16color, use=konsole, +-# make a default entry for konsole +-konsole|KDE console window, +- use=konsole-xf4x, ++# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr) ++vt100|vt100-am|dec vt100 (w/advanced video), ++ OTbs, am, mc5i, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, ++ clear=\E[H\E[J$<50>, 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$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, ++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, ++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1, ++ lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ++ rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, ++ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, ++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, ++ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, ++ use=vt100+fnkeys, ++vt100nam|vt100-nam|vt100 no automargins, ++ am@, xenl@, use=vt100-am, ++vt100-vb|dec vt100 (w/advanced video) & no beep, ++ bel@, flash=\E[?5h\E[?5l, use=vt100, + +-# palette is hardcoded... +-konsole-256color|KDE console window with xterm 256-colors, +- initc@, use=xterm+256color, use=konsole, ++# Ordinary vt100 in 132 column ("wide") mode. ++vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video), ++ cols#132, lines#24, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am, ++vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin), ++ cols#132, lines#14, vt@, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam, + +-# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD +-# +-# It is nominally a vt102 emulator, with features borrowed from rxvt and +-# xterm. +-# +-# The function keys are numbered based on shift/control/alt modifiers, except +-# that the control-modifier itself is used to spawn a new copy of mlterm (the +-# "-P" option). So control/F1 to control/F12 may not be usable, depending on +-# how it is configured. +-# +-# kf1 to kf12 \E[11~ to \E[24~ +-# shift kf1 to kf12 \E[11;2~ to \E[24;2~ +-# alt kf1 to kf12 \E[11;3~ to \E[24;3~ +-# shift/alt kf1 to kf12 \E[11;4~ to \E[24;4~ +-# control kf1 to kf12 \E[11;5~ to \E[24;5~ (maybe) +-# control/shift kf1 to kf12 \E[11;6~ to \E[24;6~ +-# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~ +-# control/shift/alt kf1 to kf12 \E[11;8~ to \E[24;8~ +-# +-mlterm|multi lingual terminal emulator, +- am, eslok, km, mc5i, mir, msgr, npc, xenl, XT, +- colors#8, cols#80, it#8, lines#24, pairs#64, +- acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, 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, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, +- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, +- kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~, +- khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M, +- knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, kslt=\E[4~, mc0=\E[i, +- nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, +- rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, +- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, +- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l, +- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h, +- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, +- vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2, ++# vt100 with no advanced video. ++vt100-nav|vt100 without advanced video option, ++ xmc#1, ++ blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m, ++ smul@, use=vt100, ++vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option), ++ cols#132, lines#14, use=vt100-nav, + +-# The insert/delete/home/end keys do not respond to modifiers because mlterm +-# looks in its termcap to decide which string to send. If it used terminfo +-# (when available), it could use the extended names introduced for xterm. +-mlterm+pcfkeys|fragment for PC-style fkeys, +- kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C, +- kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B, +- kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~, +- kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D, +- kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~, +- kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~, +- kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C, +- kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A, +- kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A, ++# vt100 with one of the 24 lines used as a status line. ++# We put the status line on the top. ++vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline, ++ eslok, hs, ++ lines#23, ++ clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr, ++ cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8, ++ fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8, ++ tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am, + +-mlterm-256color|mlterm 3.0 with xterm 256-colors, +- use=xterm+256color, use=rxvt, ++# Status line at bottom. ++# Clearing the screen will clobber status line. ++vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline, ++ eslok, hs, ++ lines#23, ++ dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H, ++ tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am, + +-# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997 +-# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997 +-# Notes: +-# rxvt 2.21b uses +-# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O, +-# but some applications don't work with that. +-# It also has an AIX extension +-# box2=lqkxjmwuvtn, +-# and +-# ech=\E[%p1%dX, +-# but the latter does not work correctly. +-# +-# The distributed terminfo says it implements hpa and vpa, but they are not +-# implemented correctly, using relative rather than absolute positioning. +-# +-# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM. +-# Since rxvt is not really compatible with xterm, it should be configured as +-# "rxvt" or "rxvt-color". +-# +-# removed dch/dch1 because they are inconsistent with bce/ech -TD +-# remove km as per tack test -TD +-rxvt-basic|rxvt terminal base (X Window System), +- OTbs, am, bce, eo, mir, msgr, xenl, xon, XT, +- cols#80, it#8, lines#24, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, 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, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I, +- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, +- ind=^J, is1=\E[?47l\E=\E[?1l, +- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H, +- kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, +- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m, +- rmul=\E[24m, +- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, +- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, +- s0ds=\E(B, s1ds=\E(0, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, +- smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq, +- use=rxvt+pcfkeys, use=vt220+keypad, +-# Key Codes from rxvt reference: +-# +-# Note: Shift + F1-F10 generates F11-F20 +-# +-# For the keypad, use Shift to temporarily override Application-Keypad +-# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock +-# is off, escape sequences toggle Application-Keypad setting. +-# Also note that values of Home, End, Delete may have been compiled +-# differently on your system. +-# +-# Normal Shift Control Ctrl+Shift +-# Tab ^I ESC [ Z ^I ESC [ Z +-# BackSpace ^H ^? ^? ^? +-# Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @ +-# Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @ +-# Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ +-# Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @ +-# Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @ +-# Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @ +-# Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @ +-# End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @ +-# Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ +-# F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^ +-# F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^ +-# F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^ +-# F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^ +-# F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^ +-# F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^ +-# F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^ +-# F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^ +-# F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^ +-# F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^ +-# F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @ +-# F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @ +-# F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @ +-# F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @ +-# F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @ +-# F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @ +-# F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @ +-# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @ +-# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @ +-# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @ +-# +-# Application +-# Up ESC [ A ESC [ a ESC O a ESC O A +-# Down ESC [ B ESC [ b ESC O b ESC O B +-# Right ESC [ C ESC [ c ESC O c ESC O C +-# Left ESC [ D ESC [ d ESC O d ESC O D +-# KP_Enter ^M ESC O M +-# KP_F1 ESC O P ESC O P +-# KP_F2 ESC O Q ESC O Q +-# KP_F3 ESC O R ESC O R +-# KP_F4 ESC O S ESC O S +-# XK_KP_Multiply * ESC O j +-# XK_KP_Add + ESC O k +-# XK_KP_Separator , ESC O l +-# XK_KP_Subtract - ESC O m +-# XK_KP_Decimal . ESC O n +-# XK_KP_Divide / ESC O o +-# XK_KP_0 0 ESC O p +-# XK_KP_1 1 ESC O q +-# XK_KP_2 2 ESC O r +-# XK_KP_3 3 ESC O s +-# XK_KP_4 4 ESC O t +-# XK_KP_5 5 ESC O u +-# XK_KP_6 6 ESC O v +-# XK_KP_7 7 ESC O w +-# XK_KP_8 8 ESC O x +-# XK_KP_9 9 ESC O y +-# +-# The source-code for rxvt actually defines mappings for F21-F35, using +-# "ESC [ 35 ~" to "ESC [ 49 ~". Keyboards with more than 12 function keys +-# are rare, so this entry uses the shift- and control-modifiers as in +-# xterm+pcfkeys to define keys past F12. +-# +-# kIC is normally not used, since rxvt performs a paste for that (shifted +-# insert), unless private mode 35 is set. +-# +-# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD +-# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD +-rxvt+pcfkeys|fragment for PC-style fkeys, +- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d, +- kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^, +- kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$, +- kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^, +- kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~, +- kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^, +- kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^, +- kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^, +- kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, knp=\E[6~, +- kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, +- kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@, +- kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@, +- kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^, +- kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa, ++# Most of the `vt100' emulators out there actually emulate a vt102 ++# This entry (or vt102-nsgr) is probably the right thing to use for ++# these. ++vt102|dec vt102, ++ dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h, ++ use=vt100, ++vt102-w|dec vt102 in wide mode, ++ cols#132, ++ rs3=\E[?3h, use=vt102, + +-rxvt|rxvt terminal emulator (X Window System), +- ncv@, +- hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017, +- vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color, +-rxvt-color|rxvt terminal emulator (X Window System), +- use=rxvt, +-rxvt-256color|rxvt 2.7.9 with xterm 256-colors, +- use=xterm+256color, use=rxvt, +-rxvt-88color|rxvt 2.7.9 with xterm 88-colors, +- use=xterm+88color, use=rxvt, +-rxvt-xpm|rxvt terminal emulator (X Window System), +- use=rxvt, +-rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin, +- acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- use=rxvt, +-rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin, +- acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376, +- use=rxvt-cygwin, ++# Many brain-dead PC comm programs that pretend to be `vt100-compatible' ++# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0> ++# string in the canonical vt100 entry above leaves the screen littered ++# with little snowflake or star characters (IBM PC ROM character \017 = ^O) ++# after highlight turnoffs. This entry should fix that, and even leave ++# ACS support working, at the cost of making multiple-highlight changes ++# slightly more expensive. ++# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995 ++vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes), ++ sgr@, sgr0=\E[m, use=vt102, + +-# This variant is supposed to work with rxvt 2.7.7 when compiled with +-# NO_BRIGHTCOLOR defined. rxvt needs more work... +-rxvt-16color|xterm with 16 colors like aixterm, +- ncv#32, use=ibm+16color, use=rxvt, ++# VT125 Graphics CRT. Clear screen also erases graphics ++# Some vt125's came configured with vt102 support. ++vt125|vt125 graphics terminal, ++ mir, ++ clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100, + +-# mrxvt 0.5.4 +-# +-# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which +-# makes its function-keys different from other flavors of rxvt -TD +-mrxvt|multitabbed rxvt, +- XT, +- kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~, +- kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~, +- kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~, +- kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~, +- kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys, +- use=rxvt, ++# This isn't a DEC entry, it came from University of Wisconsin. ++# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr) ++vt131|dec vt131, ++ OTbs, am, xenl, ++ cols#80, it#8, lines#24, vt#3, ++ bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>, ++ clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ cub1=^H, cud1=^J, cuf1=\E[C$<2/>, ++ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>, ++ ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I, ++ is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB, ++ kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, ++ kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>, ++ rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>, ++ rmul=\E[m$<2/>, ++ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=, ++ smso=\E[7m$<2/>, smul=\E[4m$<2/>, + +-mrxvt-256color|multitabbed rxvt with 256 colors, +- use=xterm+256color, use=mrxvt, ++# vt132 - like vt100 but slower and has ins/del line and such. ++# I'm told that <smir>/<rmir> are backwards in the terminal from the ++# manual and from the ANSI standard, this describes the actual ++# terminal. I've never actually used a vt132 myself, so this ++# is untested. ++# ++vt132|DEC vt132, ++ xenl, ++ dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>, ++ ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100, + +-# From: Michael Jennings <mej@valinux.com> ++# This vt220 description maps F5--F9 to the second block of function keys ++# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict ++# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping. ++# PF1--PF4 are used as F1--F4. + # +-# Eterm 0.9.3 ++# added msgr -TD ++vt220-old|vt200-old|DEC VT220 in vt100 emulation mode, ++ OTbs, OTpt, am, mir, msgr, xenl, xon, ++ cols#80, lines#24, vt#3, ++ OTnl=^J, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l, ++ clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P, ++ dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, ++ if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>, ++ is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP, ++ kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, ++ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, ++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8, ++ rev=\E[7m$<2>, rf=/usr/share/tabset/vt100, ++ ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, ++ rmso=\E[27m, rmul=\E[24m, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, ++ smso=\E[7m, smul=\E[4m, ++ ++# A much better description of the VT200/220; used to be vt220-8 ++# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1 ++# designation to accommodate bug in pcvt -TD + # +-# removed kf0 which conflicts with kf10 -TD +-# remove cvvis which conflicts with cnorm -TD +-# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT +-# but does otherwise follow the rxvt+pcfkeys model -TD +-# remove nonworking flash -TD +-# remove km as per tack test -TD +-Eterm|Eterm-color|Eterm with xterm-style color support (X Window System), +- am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT, +- btns#5, cols#80, it#8, lines#24, lm#0, ncv@, ++# Here's a picture of the VT220 editing keypad: ++# +--------+--------+--------+ ++# | Find | Insert | Remove | ++# +--------+--------+--------+ ++# | Select | Prev | Next | ++# +--------+--------+--------+ ++vt220|vt200|dec vt220, ++ OTbs, am, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, ++ 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=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ 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, + ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- is1=\E[?47l\E>\E[?1l, +- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@, +- kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H, +- kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M, +- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, +- rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=, +- rmso=\E[27m, rmul=\E[24m, +- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, +- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, +- smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys, +- use=ecma+color, +- +-Eterm-256color|Eterm with xterm 256-colors, +- use=xterm+256color, use=Eterm, +- +-Eterm-88color|Eterm with 88 colors, +- use=xterm+88color, use=Eterm, ++ flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, if=/usr/share/tabset/vt100, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, ++ khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, ++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B$<4>, ++ rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, ++ rs1=\E[?3l, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, ++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+pp, ++ use=ansi+enq, ++vt220-w|vt200-w|DEC vt220 in wide mode, ++ cols#132, ++ rs3=\E[?3h, use=vt220, ++vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode, ++ OTbs, am, mc5i, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M, ++ csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H, ++ cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C, ++ cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A, ++ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M, ++ ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0, ++ flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH, ++ ich=\233%p1%d@, if=/usr/share/tabset/vt100, ++ il=\233%p1%dL, il1=\233L, ind=\ED, ++ is2=\233?7h\233>\233?1l\E F\233?4l, kbs=^H, ++ kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A, ++ kdch1=\2333~, kf1=\EOP, kf10=\23321~, kf11=\23323~, ++ kf12=\23324~, kf13=\23325~, kf14=\23326~, kf17=\23331~, ++ kf18=\23332~, kf19=\23333~, kf2=\EOQ, kf20=\23334~, ++ kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~, kf8=\23319~, ++ kf9=\23320~, kfnd=\2331~, khlp=\23328~, khome=\233H, ++ kich1=\2332~, knp=\2336~, kpp=\2335~, krdo=\23329~, ++ kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, ++ mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8, rev=\2337m, ri=\EM, ++ rmacs=\E(B, rmam=\233?7l, rmir=\2334l, rmso=\23327m, ++ rmul=\23324m, rs1=\233?3l, sc=\E7, ++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h, ++ smso=\2337m, smul=\2334m, tbc=\2333g, + +-# Based on rxvt 2.4.8, it has a few differences in key bindings +-aterm|AfterStep terminal, +- XT, +- kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt, ++# vt220d: ++# This vt220 description regards F6--F10 as the second block of function keys ++# at the top of the keyboard. This mapping follows the description given ++# in the VT220 Programmer Reference Manual and agrees with the labeling ++# on some terminals that emulate the vt220. There is no support for an F5. ++# See vt220 for an alternate mapping. ++# ++vt220d|DEC VT220 in vt100 mode with DEC function key labeling, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old, + +-# xiterm 0.5-5.2 +-# This is not based on xterm's source... +-# vttest shows several problems with keyboard, cursor-movements. +-# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm +-xiterm|internationalized terminal emulator for X, +- km@, +- kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6, ++vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins, ++ am@, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220, + +-# These (xtermc and xtermm) are distributed with Solaris. They refer to a +-# variant of xterm which is apparently no longer supported, but are interesting +-# because they illustrate SVr4 curses mouse controls - T.Dickey +-xtermm|xterm terminal emulator (monocrome), +- OTbs, am, km, mir, msgr, xenl, +- btns#3, cols#80, it#8, lines#24, ++# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko ++# (not an official DEC entry!) ++# The problem with real vt220 terminals is they don't send escapes when in ++# in vt220 mode. This can be gotten around two ways. 1> don't send ++# escapes or 2> put the vt220 into vt100 mode and use all the nifty ++# features of vt100 advanced video which it then has. ++# ++# This entry takes the view of putting a vt220 into vt100 mode so ++# you can use the escape key in emacs and everything else which needs it. ++# ++# You probably don't want to use this on a VMS machine since VMS will think ++# it has a vt220 and will get fouled up coming out of emacs ++# ++# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996 ++# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr) ++# added msgr -TD ++vt200-js|vt220-js|dec vt200 series with jump scroll, ++ am, msgr, ++ cols#80, ++ bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ cub1=^H, cud1=^J, 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, il1=\E[L, ind=\ED, ++ is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1h\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8, ++ rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l, ++ rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m, ++ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=, ++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m, ++ ++# This was DEC's vt320. Use the purpose-built one below instead ++#vt320|DEC VT320 in vt100 emulation mode, ++# use=vt220, ++ ++# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam. ++# ++vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode, ++ am@, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220, ++ ++# These entries are not DEC's official ones, they were purpose-built for the ++# VT320. Here are the designer's notes: ++# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to ++# 'Erase to End of Field'... since nothing seems to use 'end' anyways... ++# khome is Home on a PC kbd. Actually 'FIND' on a VT. ++# Things that use <knxt> usually use tab anyways... and things that don't use ++# tab usually use <knxt> instead... ++# kprv is same as tab - Backtab is useless... ++# I left out <sgr> because of its RIDICULOUS complexity, ++# and the resulting fact that it causes the termcap translation of the entry ++# to SMASH the 1k-barrier... ++# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 ++# (vt320: uncommented <fsl> --esr) ++vt320|vt300|dec vt320 7 bit terminal, ++ am, hs, mir, msgr, xenl, ++ cols#80, lines#24, wsl#80, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, 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$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY, +- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy, +- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU, +- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_, +- knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM, +- rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m, +- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1, +- smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys, +- +-xtermc|xterm terminal emulator (color), +- colors#8, ncv#7, pairs#64, +- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- use=xtermm, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ++ hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, ++ kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I, ++ kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ++ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, ++ rmul=\E[m, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq, ++vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy, ++ am@, ++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, ++ use=vt320, ++# We have to init 132-col mode, not 80-col mode. ++vt320-w|vt300-w|dec vt320 wide 7 bit terminal, ++ cols#132, wsl#132, ++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ use=vt320, ++vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am, ++ am@, ++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, ++ use=vt320-w, + +-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995 +-# Here's a termcap entry I've been using for xterm_color, which comes +-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the +-# color stuff, I also have a status line defined as the window manager +-# title bar. [I have translated it to terminfo -- ESR] +-xterm-pcolor|xterm with color used for highlights and status line, +- bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m, +- smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6, ++# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals ++# which are pretty much a superset of the VT320. They have the ++# host writable status line, yet another different DRCS matrix size, ++# and such, but they add the DEC Technical character set, Multiple text ++# pages, selectable length pages, and the like. The difference between ++# the vt330 and vt340 is that the latter has only 2 planes and a monochrome ++# monitor, the former has 4 planes and a color monitor. These terminals ++# support VT131 and ANSI block mode, but as with much of these things, ++# termcap/terminfo doesn't deal with these features. ++# ++# Note that this entry is are set up in what was the standard way for GNU ++# Emacs v18 terminal modes to deal with the cursor keys in that the arrow ++# keys were switched into application mode at the same time the numeric pad ++# is switched into application mode. This changes the definitions of the ++# arrow keys. Emacs v19 is smarter and mines its keys directly out of ++# your termcap or terminfo entry, ++# ++# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 ++# (vt340: string capability "sb=\E[M" corrected to "sr"; ++# also, added <rmam>/<smam> based on the init string -- esr) ++vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page, ++ am, eslok, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J, ++ cnorm=\E[?25h, 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, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ++ ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, ++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, ++ il1=\E[L, ind=\ED, ++ is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2, ++ lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m, ++ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, ++ rmul=\E[24m, rs1=\E[?3l, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E[2$~\E[1$}\E[1;%dH, + +-# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in +-# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS +-# chars look like --esr) +-hpterm|X-hpterm|hp X11 terminal emulator, +- am, da, db, mir, xhp, +- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0, +- acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, +- cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, +- cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK, +- hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H, +- kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep, +- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, +- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF, +- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El, +- memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s, +- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s, +- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s, +- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET, +- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, +- rmul=\E&d@, +- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;, +- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB, +- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, +-# HPUX 11 provides a color version. +-hpterm-color|HP X11 terminal emulator with color, +- ccc, +- colors#64, pairs#8, +- home=\E&a0y0C, +- initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI, +- op=\E&v0S, scp=\E&v%p1%dS, use=hpterm, +- +-# This entry describes an xterm with Sun-style function keys enabled +-# via the X resource setting "xterm*sunFunctionKeys:true" +-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same. +-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z> +-# because we want it to be seen as <kcpy>. +-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance +-# with their Sun keyboard labels instead. +-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996 +-xterm-sun|xterm with sunFunctionKeys true, +- kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB, +- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z, +- kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z, +- kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z, +- kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z, +- kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z, +- kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z, +- kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z, +- kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z, +- kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, +- kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z, +- kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z, +- use=xterm-basic, +-xterms-sun|small (80x24) xterm with sunFunctionKeys true, +- cols#80, lines#24, use=xterm-sun, +- +-# This is for the extensible terminal emulator on the X11R6 contrib tape. +-# It corresponds to emu's internal emulation: +-# emu -term emu +-# emu's default sets TERM to "xterm", but that doesn't work well -TD +-# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD +-# fixes: add civis, cnorm, sgr -TD +-emu|emu native mode, +- am, bce, mir, msgr, xon, +- colors#15, cols#80, it#8, lines#24, pairs#64, vt#200, +- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244, +- bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;, +- cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;, +- cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC, +- cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA, +- dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;, +- ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I, +- hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG, +- is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED, +- kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01, +- kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14, +- kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19, +- kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05, +- kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind, +- kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel, +- op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES, +- rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;, +- setaf=\Er%i%p1%d;, +- sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;, +- sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej, +- +-# vt220 Terminfo entry for the Emu emulation, corresponds to +-# emu -term vt220 +-# with NumLock set (to make the keypad transmit kf0-kf9). +-# fixes: add am, xenl, corrected sgr0 -TD +-emu-220|Emu-220 (vt200-7bit mode), +- am, xenl, xon, +- cols#80, it#8, lines#24, vt#200, +- acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, +- blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l, +- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D, +- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A, +- dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M, +- ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I, +- hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL, +- il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h, +- kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq, +- kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ, +- kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~, +- kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~, +- kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~, +- kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw, +- kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, +- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m, +- ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m, +- rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7, +- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=, +- smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g, +-# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI, +-# print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings +-# indicate that it emulates more than one terminal, but incompletely. ++# DEC doesn't supply a vt400 description, so we add Daniel Glasser's ++# (originally written with vt420 as its primary name, and usable for it). + # +-# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net> +-# It is based on vt102's entry, with some subtle differences, but also +-# has status line +-# supports ANSI colors (except for 'op' string) +-# apparently implements alternate screen like xterm +-# does not use padding, of course. +-mvterm|vv100|SwitchTerm aka mvTERM, +- am, eslok, hs, km, mir, msgr, xenl, +- colors#8, cols#80, it#8, lines#24, pairs#64, ++# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple ++# text pages and long text pages with selectable length of the vt340, along ++# with left and right margins, rectangular area text copy, fill, and erase ++# operations, selected region character attribute change operations, ++# page memory and rectangle checksums, insert/delete column, reception ++# macros, and other features too numerous to remember right now. TERMCAP ++# can only take advantage of a few of these added features. ++# ++# Note that this entry is are set up in what was the standard way for GNU ++# Emacs v18 terminal modes to deal with the cursor keys in that the arrow ++# keys were switched into application mode at the same time the numeric pad ++# is switched into application mode. This changes the definitions of the ++# arrow keys. Emacs v19 is smarter and mines its keys directly out of ++# your termcap entry, ++# ++# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 ++# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:"; ++# also, added <rmam>/<smam> based on the init string -- esr) ++vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap, ++ am, eslok, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M, ++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[J$<10/>, cnorm=\E[?25h, 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, +- dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, +- fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy, +- kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, +- op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, +- rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m, +- rmul=\E[m, +- rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H, +- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h, ++ dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>, ++ el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, ++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2, ++ lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m, ++ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, ++ rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h, + smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys, +- +-### MTERM +-# +-# This application is available by email from <mouse@Rodents.Montreal.QC.CA>. +-# +-# "mterm -type ansi" sets $TERM to "ansi" +-mterm-ansi|ANSI emulation, +- am, bw, mir, msgr, +- it#8, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, +- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, +- 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, +- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, +- el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, +- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, +- invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m, +- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m, +- rmul=\E[24m, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, +- vpa=\E[%i%p1%dd, +-# mterm normally sets $TERM to "mterm" +-mterm|mouse-sun|Der Mouse term, +- am, bw, mir, +- it#8, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S, +- cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C, +- home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W, +- rmir=^O, rmso=^T, smir=^Q, smso=^V, +-# "mterm -type decansi" sets $TERM to "decansi" +-# +-# note: kdch1, kfnd, kslt are in the source code, but do not work -TD +-decansi|ANSI emulation with DEC compatibility hacks, +- am, mir, msgr, xenl, +- colors#8, it#8, pairs#64, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, 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, dim=\E[2m, dl=\E[%p1%dM, +- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0, +- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL, +- il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, +- is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB, +- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, +- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, +- kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m, +- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR, +- u7=\E[6n, vpa=\E[%i%p1%dd, ++ tsl=\E[2$~\E[1$}\E[1;%dH, use=dec+sl, + +-#### 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, ++# (vt420: I removed <kf0>, it collided with <kf10>. I also restored ++# a missing <sc> -- esr) ++# add msgr and other capabilities from vt220 -TD ++vt420|DEC VT420, ++ am, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, +- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, +- cuu1=\E[A, 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, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l, ++ clear=\E[H\E[2J$<50>, cnorm=\E[?25h, 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$<10>, cuu=\E[%p1%dA, cuu1=\E[A, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K, ++ enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, ++ hts=\EH, ich=\E[%p1%d@, if=/usr/share/tabset/vt300, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[1;24r\E[24;1H, ++ is3=\E[?67h\E[64;1"p, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, kf6=\E[18~, ++ kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, kfnd=\E[1~, ++ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, nel=\EE, ++ rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300, ++ ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, ++ rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, ++ sgr0=\E[m\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h, ++ smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ use=ansi+pp, use=dec+sl, use=ansi+enq, + +-#### MGR ++# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx) ++# takes two parameters, the key and the string. Translating the key is ++# straightforward (keys 1-5 are not defined on real terminals, though some ++# emulators define these): + # +-# MGR is a Bell Labs window system lighter-weight than X. +-# These entries describe MGR's xterm-equivalent. +-# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 ++# if (key < 16) then value = key; ++# else if (key < 21) then value = key + 1; ++# else if (key < 25) then value = key + 2; ++# else if (key < 27) then value = key + 3; ++# else if (key < 30) then value = key + 4; ++# else value = key + 5; + # +- +-mgr|Bellcore MGR (non X) window system terminal emulation, +- am, km, +- bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M, +- csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er, +- cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h, +- dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>, +- dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u, +- ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>, +- il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S, +- rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n, +- smul=\E4n, +-mgr-sun|Mgr window with Sun keyboard, +- ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z, +- kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z, +- kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, +- kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, +- kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, +- kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z, +- kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr, +-mgr-linux|Mgr window with Linux keyboard, +- ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~, +- kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, 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~, use=mgr, +- +-######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS ++# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". ++# There's no provision in terminfo for emitting a string in this format, so the ++# application has to know it. + # ++vt420pc|DEC VT420 w/PC keyboard, ++ kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~, ++ kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~, ++ kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~, ++ kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~, ++ kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~, ++ kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~, ++ kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~, ++ kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~, ++ kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~, ++ kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~, ++ kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~, ++ kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, khome=\E[H, ++ pctrm=USR_TERM\:vt420pcdos\:, ++ pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\, ++ use=vt420, + +-# Columbus UNIX virtual terminal. This terminal also appears in +-# UNIX 4.0 and successors as line discipline 1 (?), but is +-# undocumented and does not really work quite right. +-cbunix|cb unix virtual terminal, +- OTbs, am, da, db, +- cols#80, lines#24, lm#0, +- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL, +- el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A, +- smso=\Ea^D, smul=\Ea^A, +-# (vremote: removed obsolete ":nl@:" -- esr) +-vremote|virtual remote terminal, +- am@, +- cols#79, use=cbunix, +- +-pty|4bsd pseudo teletype, +- cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!, +- smso=\Ea$, smul=\Ea!, use=cbunix, ++vt420pcdos|DEC VT420 w/PC for DOS Merge, ++ lines#25, ++ dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;, ++ pctrm@, ++ rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@, ++ sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc, + +-# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 +-eterm|gnu emacs term.el terminal emulation, +- am, mir, xenl, +- cols#80, lines#24, +- bel=^G, 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, rev=\E[7m, +- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m, +- smul=\E[4m, ++vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys, ++ kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS, ++ use=vt420, + +-# 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, ++vt510|DEC VT510, ++ use=vt420, ++vt510pc|DEC VT510 w/PC keyboard, ++ use=vt420pc, ++vt510pcdos|DEC VT510 w/PC for DOS Merge, ++ use=vt420pcdos, + +-# 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 +-# come from University of Wisconsin and may be older. +-# (screen: added <cnorm> on ANSI model -- esr) ++# VT520/VT525 + # +-# 'screen' defines extensions to termcap. Some are used in its terminal +-# description: +-# G0 (bool) Terminal can deal with ISO 2022 font selection sequences. +-# AX (bool) Does understand ANSI set default fg/bg color +-# (\E[39m / \E[49m). +-# S0 (str) Switch charset 'G0' to the specified charset. +-# E0 (str) Switch charset 'G0' back to standard charset. ++# The VT520 is a monochrome text terminal capable of managing up to ++# four independent sessions in the terminal. It has multiple ANSI ++# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console) ++# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950, ++# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only. + # +-# tested with screen 3.09.08 +-screen|VT 100/ANSI X3.64 virtual terminal, +- OTbs, OTpt, am, km, mir, msgr, xenl, G0, +- colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1, +- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[34h\E[?25h, 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=\EM, +- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, +- flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, +- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, +- rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, +- rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B, +- S0=\E(%p1%c, use=ecma+color, +-# The bce and status-line entries are from screen 3.9.13 (and require some +-# changes to .screenrc). +-screen-bce|VT 100/ANSI X3.64 virtual terminal with bce, +- bce, +- ech@, use=screen, +-screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line, +- dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen, +- +-# ====================================================================== +-# Entries for GNU Screen with 16 colors. +-# Those variations permit to benefit from 16 colors palette, and from +-# bold font and blink attribute separated from bright colors. But they +-# are less portable than the generic "screen" 8 color entries: Their +-# usage makes real sense only if the terminals you attach and reattach +-# do all support 16 color palette. +- +-screen-16color|GNU Screen with 16 colors, +- use=ibm+16color, use=screen, +- +-screen-16color-s|GNU Screen with 16 colors and status line, +- use=ibm+16color, use=screen-s, +- +-screen-16color-bce|GNU Screen with 16 colors and BCE, +- use=ibm+16color, use=screen-bce, ++# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or ++# [Alt]/[Print Screen] depending upon which keyboard and which ++# terminal mode is being used. If Set-Up has been disabled or ++# assigned to an unknown key, Set-Up may be entered by pressing ++# [F3] as the first key after power up, regardless of keyboard type. ++vt520|DEC VT520, ++ use=ansi+rca, use=vt420, use=ansi+tabs, + +-screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line, +- bce, use=ibm+16color, use=screen-s, ++vt525|DEC VT525, ++ use=vt520, + +-# ====================================================================== +-# Entries for GNU Screen 4.02 with --enable-colors256. ++#### VT100 emulations ++# + +-screen-256color|GNU Screen with 256 colors, +- ccc@, +- initc@, use=xterm+256color, use=screen, ++# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows ++# (the best Windows telnet as of September 1995) presents the name `dec-vt100' ++# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us ++# that this works best with a stock vt100 entry. ++dec-vt100|EWAN telnet's vt100 emulation, ++ use=vt100, + +-screen-256color-s|GNU Screen with 256 colors and status line, +- ccc@, +- initc@, use=xterm+256color, use=screen-s, ++# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996 ++dec-vt220|DOS tnvt200 terminal emulator, ++ am@, use=vt220, + +-screen-256color-bce|GNU Screen with 256 colors and BCE, +- ccc@, +- initc@, use=xterm+256color, use=screen-bce, ++# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to ++# anyone who needs PC VT340 emulation. (or anything below that level, for ++# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's ++# RDBM systems, it includes ReGIS and SiXel support! I'm impressed... ++# I can send the address if requested. ++# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr) ++# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 ++z340|zstem vt340 terminal emulator 132col 42line, ++ lines#42, ++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H, ++ use=vt320-w, ++z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins), ++ am@, ++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H, ++ use=z340, + +-screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line, +- bce, ccc@, +- initc@, use=xterm+256color, use=screen-s, ++# CRT is shareware. It implements some xterm features, including mouse. ++crt|crt-vt220|CRT 2.3 emulating VT220, ++ bce, msgr, ++ ncv@, ++ hts=\EH, use=vt100+enq, use=vt220, use=ecma+color, + +-# ====================================================================== +- +-# Read the fine manpage: +-# When screen tries to figure out a terminal name for +-# itself, it first looks for an entry named "screen.<term>", +-# where <term> is the contents of your $TERM variable. If +-# no such entry exists, screen tries "screen" (or "screen-w" +-# if the terminal is wide (132 cols or more)). If even this +-# entry cannot be found, "vt100" is used as a substitute. ++# PuTTY 0.55 (released 3 August 2004) ++# http://www.chiark.greenend.org.uk/~sgtatham/putty/ + # +-# Notwithstanding the manpage, screen uses its own notion of the termcap +-# and some keys from "screen.<term>" are ignored. Here is an entry which +-# covers those (tested with screen 4.00.02) -TD +-screen+fkeys|function-keys according to screen, +- kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@, +- khome=\E[1~, kslt@, ++# Comparing with 0.51, vttest is much better (only a few problems with the ++# cursor position reports and wrapping). + # +-# Here are a few customized entries which are useful -TD ++# PuTTY 0.51 (released 14 December 2000) + # +-# Notes: +-# (a) screen does not support invis. +-# (b) screen's implementation of bw is incorrect according to tack. +-# (c) screen appears to hardcode the strings for khome/kend, making it +-# necessary to override the "use=" clause's values (screen+fkeys). +-# (d) screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry, +-# which is NOT the same as the terminfo screen.<term>. +-# (e) when screen finds one of these customized entries, it sets $TERM to +-# match. Hence, no "screen.xterm" entry is provided, since that would +-# create heartburn for people running remote xterm's. ++# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as ++# well as SCO and Atari, color palettes from Linux console). Reading the code, ++# it is intended to be VT102 plus selected features. By default, it sets $TERM ++# to xterm, which is incorrect, since several features are misimplemented: + # +-# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV +-# since the default translations override the built-in keycode +-# translation. They are suppressed here to show what is tested by tack. +-screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm, +- bce@, bw, +- invis@, kIC@, kNXT@, kPRV@, meml@, memu@, +- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m, +- use=screen+fkeys, use=xterm-new, +-# xterm-r6 does not really support khome/kend unless it is propped up by +-# the translations resource. +-screen.xterm-r6|screen customized for X11R6 xterm, +- bw, use=screen+fkeys, use=xterm-r6, +-# Color applications running in screen and TeraTerm do not play well together +-# on Solaris because Sun's curses implementation gets confused. +-screen.teraterm|disable ncv in teraterm, +- ncv#127, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- use=screen+fkeys, use=screen, +-# Other terminals +-screen.rxvt|screen in rxvt, +- bw, XT, +- 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, +-screen.mrxvt|screen in mrxvt, +- use=screen+fkeys, use=mrxvt, +-screen.vte|screen in any VTE-based terminal, +- use=screen+fkeys, use=vte, +-screen.gnome|screen in GNOME Terminal, +- use=screen+fkeys, use=gnome, +-screen.konsole|screen in KDE console window, +- use=screen+fkeys, use=konsole, +-# fix the backspace key +-screen.linux|screen in linux console, +- bw, +- kbs=\177, kcbt@, use=screen+fkeys, use=screen, +-screen.mlterm|screen in mlterm, +- use=screen+fkeys, use=mlterm, +- +-# The default "screen" entry is reasonably portable, but not optimal for the +-# most widely-used terminal emulators. The "bce" capability is supported in +-# screen since 3.9.13, and when used, will require fewer characters to be sent +-# to the terminal for updates. ++# Alt+key always sends ESC+key, so 'km' capability is removed. + # +-# If you are using only terminals which support bce, then you can use this +-# feature in your screen configuration. ++# Control responses, wrapping and tabs are buggy, failing a couple of ++# screens in vttest. + # +-# Adding these lines to your ".screenrc" file will allow using these customized +-# entries: +-# term screen-bce +-# bce on +-# defbce on +-screen-bce.xterm-new|screen optimized for modern xterm, +- bce, +- ech@, use=screen.xterm-new, +-screen-bce.rxvt|screen optimized for rxvt, +- bce, +- ech@, use=screen.rxvt, +-screen-bce.Eterm|screen optimized for Eterm, +- bce, +- ech@, use=screen.Eterm, +-screen-bce.mrxvt|screen optimized for mrxvt, +- bce, +- ech@, use=screen.mrxvt, +-screen-bce.gnome|screen optimized for GNOME-Terminal, +- bce, +- ech@, use=screen.gnome, +-screen-bce.konsole|screen optimized for KDE console window, +- bce, +- ech@, use=screen.konsole, +-screen-bce.linux|screen optimized for linux console, +- bce, +- ech@, use=screen.linux, +-screen-bce.mlterm|screen optimized for mlterm, +- bce, +- ech@, use=screen.mlterm, +- +-screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols, +- cols#132, use=screen, ++# xterm mouse support is not implemented (unrelease version may). ++# ++# Several features such as backspace/delete are optional; this entry documents ++# the default behavior -TD + +-screen2|old VT 100/ANSI X3.64 virtual terminal, +- cols#80, it#8, lines#24, +- cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, 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, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL, +- il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, +- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH, +- nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m, +- rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h, +- smso=\E[3m, smul=\E[4m, tbc=\E[3g, +-# (screen3: removed unknown ":xv:LP:G0:" -- esr) +-screen3|older VT 100/ANSI X3.64 virtual terminal, +- km, mir, msgr, +- cols#80, it#8, lines#24, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, 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, ++putty|PuTTY terminal emulator, ++ am, bce, bw, ccc, mir, msgr, xenl, xon, XT, ++ colors#8, it#8, ncv#22, pairs#64, U8#1, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, +- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, +- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, +- kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, +- rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec, +- sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m, +- smul=\E[4m, tbc=\E[3g, ++ dch=\E[%p1%dP, dch1=\E[P, ++ dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;, ++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ++ ind=^J, indn=\E[%p1%dS, ++ initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x, ++ is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R, ++ kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, ++ kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, ++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, ++ kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, ++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, ++ kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m, ++ ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, ++ rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m, ++ rmso=\E[27m, rmul=\E[24m, ++ rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l, ++ s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h, ++ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J, use=vt102+enq, ++ use=xterm+sl, ++vt100-putty|Reset PuTTY to pure vt100, ++ rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p, ++ use=vt100, ++# palette is hardcoded... ++putty-256color|PuTTY 0.58 with xterm 256-colors, ++ initc@, use=xterm+256color, use=putty, + +-# Francesco Potorti <F.Potorti@cnuce.cnr.it>: +-# NCSA telnet is one of the most used telnet clients for the Macintosh. It has +-# been maintained until recently by the National Center for Supercomputer +-# Applications, and it is feature rich, stable and free. It can be downloaded +-# from www.ncsa.edu. This terminfo description file is based on xterm-vt220, +-# xterm+sl, and the docs at NCSA. It works well. ++# One of the keyboard selections is "VT100+". ++# pterm (the X11 port) uses shifted F1-F10 as F11-F20 ++putty-vt100|VT100+ keyboard layout, ++ kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ, ++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, ++ kf9=\EOX, use=putty, ++ ++# Unlike xterm-sco, this leaves kmous ambiguous with kf1. + # +-# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode +-# The terminal options should be set as follows: +-# Xterm sequences ON +-# use VT wrap mode ON +-# use Emacs arrow keys OFF +-# CTRL-COMND is Emacs meta ON +-# 8 bit mode ON +-# answerback string: "ncsa-vt220-8" +-# setup keys: all disabled ++# Use modifiers to obtain function keys past 12: ++# F1-F12 - normal ++# F13-F24 - shift ++# F25-F36 - control/alt ++# F37-F48 - control/shift + # +-# Application mode is not used. ++putty-sco|putty with SCO function keys, ++ kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, ++ kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b, ++ kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, ++ kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, ++ kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, ++ kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, ++ kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, ++ kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, ++ kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, ++ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, ++ kich1=\E[L, knp=\E[G, kpp=\E[I, use=putty, ++ ++# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by ++# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator ++# (communication program) which supports: + # +-# Other special mappings: +-# Apple VT220 +-# HELP Find +-# HOME Insert here +-# PAGEUP Remove +-# DEL Select +-# END Prev Screen +-# PAGEDOWN Next Screen ++# - Serial port connections. ++# - TCP/IP (telnet) connections. ++# - VT100 emulation, and selected VT200/300 emulation. ++# - TEK4010 emulation. ++# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and ++# Quick-VAN). ++# - Scripts using the "Tera Term Language". ++# - Japanese and Russian character sets. + # +-# Though it supports ANSI color, NCSA Telnet uses color to represent blinking +-# text. ++# The program does not come with terminfo or termcap entries. However, the ++# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no ++# vt52 or doublesize character support; blinking is done with color). Besides ++# the HPA, VPA extensions it also implements CPL and CNL. + # +-# The status-line manipulation is a mapping of the xterm-compatible control +-# sequences for setting the window-title. So you must use tsl and fsl in +-# pairs, since the latter ends the string that is loaded to the window-title. +-ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode, +- am, hs, km, mir, msgr, xenl, +- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, 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, +- dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, +- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH, +- ich=\E[%p1%d@, if=/usr/share/tabset/vt100, +- il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>, +- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~, +- kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~, +- kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, +- kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~, +- khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i, +- rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM, +- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l, +- rmso=\E[27m, rmul=\E[24m, +- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7, +- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;, +- u8=\E[?62;1;6c, use=ansi+enq, +-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode, +- use=ncsa-m, use=klone+color, +-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode, +- hs@, +- dsl@, fsl@, tsl@, use=ncsa, +-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode, +- hs@, +- dsl@, fsl@, tsl@, use=ncsa-m, +-# alternate -TD: +-# The documented function-key mapping refers to the Apple Extended Keyboard +-# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style +-# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on +-# some keyboards and many applications require these as F1-F4. ++# All of the function keys can be remapped. This description shows the default ++# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys ++# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad ++# is laid out like vt220, rather than the face codes on the PC keyboard, i.e, ++# kfnd Insert ++# kslt Delete ++# kich1 Home ++# kdch1 PageUp ++# kpp End ++# knp PageDown + # +-ncsa-vt220|NCSA Telnet using vt220-compatible function keys, +- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, +- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, +- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, use=ncsa, +- +-#### Pilot Pro Palm-Top ++# ANSI colors are implemented, but cannot be combined with video attributes ++# except for reverse. + # +-# Termcap for Top Gun Telnet and SSH on the Palm Pilot. +-# http://www.ai/~iang/TGssh/ +-pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional, +- OTbs, am, xenl, +- cols#39, lines#16, +- bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J, +- cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I, +- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s, +- rmso=\EB, smso=\Eb, +- +-# From: Federico Bianchi <bianchi@www.arte.unipi.it> +-# These entries are for the Embeddable Linux Kernel System (ELKS) +-# project - an heavily stripped down Linux to be run on 16 bit +-# boxes or, eventually, to be used in embedded systems - and have been +-# adapted from the stock ELKS termcap. The project itself looks stalled, +-# and the latest improvements I know of date back to March 2000. ++# No fonts are supplied with the program, so the acsc string is chosen to ++# correspond with the default Microsoft terminal font. + # +-# To cope with the ELKS dumb console I added an "elks-glasstty" entry; +-# as an added bonus, this deals with all the capabilities common to +-# both VT52 and ANSI (or, eventually, "special") modes. +- +-elks-glasstty|ELKS glass-TTY capabilities, +- OTbs, am, +- cols#80, it#8, lines#25, +- bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, +- nel=^M^J, +- +-elks-vt52|ELKS vt52 console, +- clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK, +- home=\EH, use=elks-glasstty, +- +-elks-ansi|ELKS ANSI console, +- clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, +- rmso=\E[m, smso=\E[7m, use=elks-glasstty, +- +-# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation +-# instead of VT52, but the "elks" entry still refers to the latter. ++# Tera Term recognizes some xterm sequences, including those for setting and ++# retrieving the window title, and for setting the window size (i.e., using ++# "resize -s"), though it does not pass SIGWINCH to the application if the ++# user resizes the window with the mouse. ++teraterm2.3|Tera Term Pro, ++ km, xon@, ++ ncv#43, vt@, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J, ++ cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, ++ flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG, ++ il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, ++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, ++ kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM, ++ rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m, ++ smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq, ++ use=klone+color, use=vt100, + +-elks|default ELKS console, +- use=elks-vt52, ++# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary ++# to choose a Windows OEM font). ++# ++# Testing with tack: ++# - it does not have xenl (suppress that) ++# - underline seems to work with color (modify ncv). ++# Testing with vttest: ++# - wrapping differs from vt100 (menu 1). ++# - it recognizes xterm's X10 and normal mouse tracking, but none of the ++# other flavors. ++# - it recognizes the dtterm window controls for reporting size in ++# characters and pixels. ++# - it passes SIGWINCH. ++teraterm4.59|Tera Term Pro, ++ bce, xenl@, ++ ncv#41, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ kmous=\E[M, use=teraterm2.3, + +-# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS +-# one but in screen size ++teraterm|Tera Term, ++ use=teraterm4.59, + +-sibo|ELKS SIBO console, +- cols#61, it#8, lines#20, use=elks-vt52, ++# Tested with WinNT 4.0, the telnet application assumes the screensize is ++# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters. ++# ++# Other notes: ++# a) Fails tack's cup (cursor-addressing) test, though cup works well enough ++# for casual (occasional) use. Also fails several of the vttest screens, ++# but that is not unusual for vt100 "emulators". ++# b) Does not implement vt100 keypad ++# c) Recognizes a subset of vt52 controls. ++ms-vt100|MS telnet imitating dec vt100, ++ lines#25, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@, ++ kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, use=vt102+enq, use=vt100, + +-######## COMMERCIAL WORKSTATION CONSOLES ++# Tested with Windows 2000, the telnet application runs in a console window, ++# also using 'Terminal' font. + # ++# Other notes: ++# a) This version has no function keys or numeric keypad. Unlike the older ++# version, the numeric keypad is entirely ignored. ++# b) The program sets $TERM to "ansi", which of course is inaccurate. ++ms-vt100-color|vtnt|windows 2000 ansi (sic), ++ bce, ++ dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color, ++ use=ms-vt100, + +-#### Alpha consoles ++# Based on comments from Federico Bianchi: ++# ++# vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different ++# scheme for PF keys. ++# ++# and PuTTY wishlist: ++# ++# The modifiers are represented as the codes listed above, prefixed to ++# the normal sequences. If the modifier is pressed alone, its sequence ++# is transmitted twice in succession. If multiple modifiers apply, ++# they're transmitted in the order shift, control, alt. + # ++# Shift \E^S ++# Alt \E^A, ++# Ctrl \E^C, ++ms-vt100+|vt100+|windows XP vt100+ (sic), ++ kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@, ++ kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3, ++ kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6, ++ kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9, ++ kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@, ++ kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3, ++ kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6, ++ kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9, ++ kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@, ++ kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4, ++ kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6, ++ kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9, ++ kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5, ++ kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+, ++ knp=\E/, kpp=\E?, use=ms-vt100-color, + +-# This is from the OSF/1 Release 1.0 termcap file +-pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation, +- am, xon, +- cols#80, lines#25, +- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, +- el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, +- nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m, ++ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+, ++ use=ms-vt100+, + +-#### Sun consoles ++# expect-5.44.1.15/example/tkterm ++# a minimal subset of a vt100 (compare with "news-unk). + # ++# The missing "=" in smkx is not a typo (here), but an error in tkterm. ++tt|tkterm|Don Libes' tk text widget terminal emulator, ++ clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, ++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, ++ kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E, ++ smso=\E[7m, + +-# :is1: resets scrolling region in case a previous user had used "tset vt100" +-oldsun|Sun Microsystems Workstation console, +- OTbs, am, km, mir, msgr, +- cols#80, it#8, lines#34, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, +- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I, +- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, +- rmso=\E[m, sgr0=\E[m, smso=\E[7m, +-# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995 +-# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com> +-# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998) +-sun-il|Sun Microsystems console with working insert-line, +- am, km, msgr, +- cols#80, lines#34, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, +- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I, +- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z, +- kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z, +- kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z, +- kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z, +- knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z, +- kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s, +- sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m, +- u8=\E[1t, u9=\E[11t, +-# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il> +-# flake out on the last line. Unfortunately, without them the terminal has no +-# way to scroll. +-sun-cgsix|sun-ss5|Sun SparcStation 5 console, +- il@, il1@, use=sun-il, +-# If you are using an SS5, change the sun definition to use sun-ss5. +-sun|sun1|sun2|Sun Microsystems Inc. workstation console, +- use=sun-il, ++######## X TERMINAL EMULATORS ++#### XTERM ++# ++# You can add the following line to your .Xdefaults to change the terminal type ++# set by the xterms you start up to my-xterm: ++# ++# *termName: my-xterm ++# ++# System administrators can change the default entry for xterm instances ++# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either ++# case, xterm will detect and reject an invalid terminal type, falling back ++# to the default of xterm. ++# + +-# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985 +-sun-s|Sun Microsystems Workstation window with status line, +- hs, +- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun, +-sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs, +- hs, +- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e, +-sun-48|Sun 48-line window, +- cols#80, lines#48, use=sun, +-sun-34|Sun 34-line window, +- cols#80, lines#34, use=sun, +-sun-24|Sun 24-line window, +- cols#80, lines#24, use=sun, +-sun-17|Sun 17-line window, +- cols#80, lines#17, use=sun, +-sun-12|Sun 12-line window, +- cols#80, lines#12, use=sun, +-sun-1|Sun 1-line window for sysline, +- eslok, hs, +- cols#80, lines#1, +- dsl=^L, fsl=\E[K, tsl=^M, use=sun, +-sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character, +- ich1@, rmir@, smir@, use=sun, +-sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history, +- lines#35, +- rmcup=\E[>4h, smcup=\E[>4l, use=sun, +-sun-type4|Sun Workstation console with type 4 keyboard, +- kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z, +- kcuu1=\E[215z, use=sun-il, +- +-# Most of the current references to sun-color are from users wondering why this +-# is the default on install. Details from reading the wscons manpage, adding +-# cub, etc., here (rather than in the base sun-il entry) since it is not clear +-# when those were added -TD (2005-05-28) +-# +-# According to wscons manpage, color is supported only on IA systems. +-# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons +-# does not list these. It also sets ncv#3, however that corresponds to +-# underline and standout. +-# +-# Since the documentation and terminfo do not agree, see also current code at +-# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c +-# +-# That (actually a different driver which "supports" sun-color) also supports +-# these features: +-# vpa=\E[%i%p1%dd +-# hpa=\E[%i%p1%d` +-# cbt=\E[Z +-# dim=\E[2m +-# blink=\E[5m +-# It supports bold, but not underline -TD (2009-09-19) +-sun-color|Sun Microsystems Workstation console with color support (IA systems), +- colors#8, ncv#3, pairs#64, +- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC, +- cuu=\E[%p1%dA, home=\E[H, op=\E[0m, setab=\E[4%p1%dm, +- setaf=\E[3%p1%dm, ++# X10/6.6 11/7/86, minus alternate screen, plus (csr) ++# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string; ++# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E) ++# as these seem not to work -- esr) ++x10term|vs100-x10|xterm terminal emulator (X10 window system), ++ OTbs, am, km, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#65, ++ bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr, ++ cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l, ++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, ++ smso=\E[7m, smul=\E[4m, ++# Compatible with the R5 xterm ++# (from the XFree86 3.2 distribution, <blink=@> removed) ++# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD ++# corrected typos in rs2 string - TD ++# added u6-u9 -TD ++xterm-r5|xterm R5 version, ++ OTbs, am, km, msgr, xenl, ++ cols#80, it#8, lines#24, ++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, 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, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, ++ kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, ++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, ++ kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, ++ rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, ++ rmul=\E[m, ++ rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H, ++ sc=\E7, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, ++ sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, use=vt100+enq, ++# Compatible with the R6 xterm ++# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed) ++# added khome/kend, hts based on the R6 xterm code - TD ++# (khome/kend do not actually work in X11R5 or X11R6, but many people use this ++# for compatibility with other emulators). ++xterm-r6|xterm X11R6 version, ++ OTbs, am, km, mir, msgr, xenl, ++ cols#80, it#8, lines#24, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, 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, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, ++ is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, ++ kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, ++ rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, ++ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7, ++ sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ use=vt100+enq, ++xterm-old|antique xterm version, ++ use=xterm-r6, ++# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up. ++# The name has been changed and some aliases have been removed. ++xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System), ++ OTbs, am, bce, km, mir, msgr, xenl, XT, ++ cols#80, it#8, lines#24, ncv@, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, 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, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, ++ flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, ++ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, ++ is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, ++ kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, ++ kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, ++ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, ++ kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~, ++ kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El, ++ memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, ++ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, ++ rmso=\E[27m, rmul=\E[24m, rs1=^O, ++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, + setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +- use=sun, +- +-#### Iris consoles +-# ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, ++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq, ++ use=ecma+color, use=vt220+keypad, + +-# (wsiris: this had extension capabilities +-# :HS=\E7F2:HE=\E7F7:\ +-# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite: +-# See the note on Iris extensions near the end of this file. +-# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> & +-# <flash> from BRL -- esr) +-wsiris|iris40|iris emulating a 40 line visual 50 (approximately), +- OTbs, OTnc, OTpt, am, +- OTkn#3, cols#80, it#8, lines#40, +- OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB, +- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, +- cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK, +- flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL, +- ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, +- kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI, +- rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P, +- smul=\E7R2\E9P, ++# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100 ++# codes for F1-F4 except while in VT220 mode. ++xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System), ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32, + +-#### NeWS consoles +-# +-# Console terminal windows under the NeWS (Sun's Display Postscript windowing +-# environment). Note: these have nothing to do with Sony's News workstation +-# line. +-# ++# This version was released in XFree86 3.3.3 (November 1998). ++# Besides providing printer support, it exploits a new feature that allows ++# xterm to use terminfo-based descriptions with the titeInhibit resource. ++# -- the distribution contained incorrect khome/kend values -TD ++xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System), ++ blink=\E[5m, ich1@, invis=\E[8m, ++ is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@, ++ rmcup=\E[?1047l\E[?1048l, rs1=\Ec, ++ rs2=\E[!p\E[?3;4l\E[4l\E>, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ smcup=\E[?1048h\E[?1047h, use=ansi+pp, ++ use=xterm-xf86-v33, + +-# Entry for NeWS's psterm from Eric Messick & Hugh Daniel +-# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr) +-psterm|psterm-basic|NeWS psterm-80x34, +- OTbs, am, hs, km, ul, +- cols#80, it#8, lines#34, +- blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;, +- cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY, +- dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl, +- home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr, +- ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^], +- sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu, +- tsl=\EOl, +-psterm-96x48|NeWS psterm 96x48, +- cols#96, lines#48, use=psterm, +-psterm-90x28|NeWS psterm 90x28, +- cols#90, lines#28, use=psterm, +-psterm-80x24|NeWS psterm 80x24, +- cols#80, lines#24, use=psterm, +-# This is a faster termcap for psterm. Warning: if you use this termcap, +-# some control characters you type will do strange things to the screen. +-# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr) +-psterm-fast|NeWS psterm fast version (flaky ctrl chars), +- OTbs, am, hs, km, ul, +- cols#80, it#8, lines#34, +- blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;, +- cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y, +- dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I, +- il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni, +- rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi, +- smso=^Oo, smul=^Ou, tsl=^Ol, ++# This version was released in XFree86 4.0. ++xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System), ++ npc, ++ kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~, ++ kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@, ++ ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF, ++ kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S, ++ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, ++ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~, ++ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q, ++ kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~, ++ kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~, ++ kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P, ++ kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~, ++ kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~, ++ kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~, ++ kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ smcup=\E[?1049h, use=xterm-xf86-v333, + +-#### NeXT consoles +-# +-# Use `glasstty' for the Workspace application +-# ++# This version was released in XFree86 4.3. ++xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System), ++ kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, ++ kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, ++ kbeg@, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ use=xterm-xf86-v40, + +-# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995 +-next|NeXT console, +- am, xt, +- cols#80, it#8, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, +- ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, +- rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m, +-nextshell|NeXT Shell application, +- am, +- cols#80, +- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H, +- kcud1=^J, nel=^M^J, ++# This version was released in XFree86 4.4. ++xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System), ++ cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS, ++ rin=\E[%p1%dT, use=xterm-xf86-v43, + +-#### Sony NEWS workstations +-# ++xterm-xfree86|xterm terminal emulator (XFree86), ++ use=xterm-xf86-v44, + +-# (news-unk: this had :KB=news: -- esr) +-news-unk|SONY NEWS vt100 emulator common entry, +- OTbs, OTpt, am, xenl, +- cols#80, +- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, +- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, +- ed=\E[J, el=\E[K, home=\E[H, ht=^I, +- if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L, +- is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, +- kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM, +- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7, +- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +-# +-# (news-29: this had :TY=ascii: --esr) +-news-29, +- lines#29, use=news-unk, +-# (news-29-euc: this had :TY=euc: --esr) +-news-29-euc, +- use=news-29, +-# (news-29-sjis: this had :TY=sjis: --esr) +-news-29-sjis, +- use=news-29, +-# +-# (news-33: this had :TY=ascii: --esr) +-news-33, +- lines#33, use=news-unk, +-# (news-33-euc: this had :TY=euc: --esr) +-news-33-euc, +- use=news-33, +-# (news-33-sjis: this had :TY=sjis: --esr) +-news-33-sjis, +- use=news-33, +-# +-# (news-42: this had :TY=ascii: --esr) +-news-42, +- lines#42, use=news-unk, +-# (news-42-euc: this had :TY=euc: --esr) +-news-42-euc, +- use=news-42, +-# (news-42-sjis: this had :TY=sjis: --esr) +-news-42-sjis, +- use=news-42, ++# This version reflects the current xterm features. ++xterm-new|modern xterm terminal emulator, ++ npc, ++ indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM, ++ rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm+tmux, ++ use=xterm-basic, ++ ++# This fragment is for people who cannot agree on what the backspace key ++# should send. ++xterm+kbs|fragment for backspace key, ++ kbs=^H, + # +-# NEWS-OS old termcap entry ++# This fragment describes as much of XFree86 xterm's "pc-style" function ++# keys as will fit into terminfo's 60 function keys. ++# From ctlseqs.ms: ++# Code Modifiers ++# --------------------------------- ++# 2 Shift ++# 3 Alt ++# 4 Shift + Alt ++# 5 Control ++# 6 Shift + Control ++# 7 Alt + Control ++# 8 Shift + Alt + Control ++# --------------------------------- ++# The meta key may also be used as a modifier in this scheme, adding another ++# bit to the parameter. ++xterm+pcfkeys|fragment for PC-style fkeys, ++ use=xterm+app, use=xterm+pcf2, use=xterm+pcc2, ++ use=xterm+pce2, + # +-# (news-old-unk: this had :KB=news:TY=sjis: --esr) +-news-old-unk|SONY NEWS vt100 emulator common entry, +- OTbs, OTpt, am, xenl, +- cols#80, vt#3, +- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J, +- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM, +- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++xterm+noapp|fragment with cursor keys in normal mode, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, ++ khome=\E[H, ++ ++xterm+app|fragment with cursor keys in application mode, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, ++ khome=\EOH, + # +-# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr) +-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines, +- OTbs, +- lines#40, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8, +- use=news-old-unk, ++# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27) ++# and revised in patch #167 (2002/8/24). Some other terminal emulators copied ++# the earlier scheme, as noted in the "use=" clauses in this file. + # +-# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr) +-nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line, +- lines#42, +- is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8, +- use=news-old-unk, ++# The original assignments from patch #94 for cursor-keys had some technical ++# issues: + # +-# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr) +-nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines, +- OTbs, +- lines#40, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8, +- use=news-old-unk, ++# A parameter for a function-key to represent a modifier is just more ++# bits. But for a cursor-key it may change the behavior of the ++# application. For instance, emacs decodes the first parameter of a ++# cursor-key as a repeat count. + # +-# (nwp513: this had :DE=^H: and the alias vt100-bm --esr) +-nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines, +- OTbs, +- lines#31, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8, +- use=news-old-unk, ++# A parameterized string should (really) not begin with SS3 (\EO). ++# Rather, CSI (\E[) should be used. + # +-# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr) +-# also the alias vt100-bm. +-nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines, +- OTbs, +- lines#33, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8, +- use=news-old-unk, ++# For these reasons, the original assignments were deprecated. For ++# compatibility reasons, they are still available as a setting of xterm's ++# modifyCursorKeys resource. These fragments list the modified cursor-keys ++# that might apply to xterm+pcfkeys with different values of that resource. ++xterm+pcc3|fragment with modifyCursorKeys:3, ++ kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B, ++ kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B, ++ kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B, ++ kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D, ++ kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C, ++ kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C, ++ kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A, ++ kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A, ++ kUP7=\E[>1;7A, ++ ++xterm+pcc2|fragment with modifyCursorKeys:2, ++ kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A, ++ kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, ++ kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D, ++ kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D, ++ kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C, ++ kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, ++ kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A, ++ ++xterm+pcc1|fragment with modifyCursorKeys:1, ++ kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B, ++ kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B, ++ kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D, ++ kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C, ++ kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A, ++ kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A, ++ ++xterm+pcc0|fragment with modifyCursorKeys:0, ++ kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B, ++ kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B, ++ kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D, ++ kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C, ++ kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A, ++ kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A, ++ + # +-# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr) +-nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines, +- OTbs, +- lines#31, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8, +- use=news-old-unk, ++# Here are corresponding fragments from xterm patch #216: + # +-# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr) +-news28|sony vt100 emulator 28 lines, +- OTbs, +- lines#28, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8, +- use=news-old-unk, ++xterm+pcf0|fragment with modifyFunctionKeys:0, ++ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S, ++ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, ++ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~, ++ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q, ++ kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR, ++ kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~, ++ kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~, ++ kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R, ++ kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~, ++ kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~, ++ kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P, ++ kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S, ++ kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~, ++ kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~, ++ kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P, ++ kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, + # +-# (news29: this had :TY=ascii:KB=nws1200:\ --esr) +-news29|news28-a|sony vt100 emulator 29 lines, +- lines#29, +- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8, +- use=news-old-unk, ++xterm+pcf2|fragment with modifyFunctionKeys:2, ++ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, ++ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, ++ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~, ++ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, ++ kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, ++ kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~, ++ kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~, ++ kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, ++ kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~, ++ kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~, ++ kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, ++ kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R, ++ kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~, ++ kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~, ++ kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, ++ kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, + # +-# (news511: this had :TY=sjis: --esr) +-nwp511|nwp-511|nwp-511 vt100, +- OTbs, OTpt, am, xenl, +- cols#80, lines#24, +- clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M, +- ed=\E[J$<30/>, el=\E[K$<3/>, +- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l, +- il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, +- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H, +- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>, +- rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h, +- smso=\E[7m$<2/>, smul=\E[4m$<2/>, +-# (news517: this had :TY=sjis:. --esr) +-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows, +- eslok, hs, +- cols#80, lines#30, +- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$}, +- is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- tsl=\E[1$}\E[;%df, use=vt200, +-# (news517-w: this had :TY=sjis:. --esr) +-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows, +- eslok, hs, +- cols#132, lines#50, +- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$}, +- is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, +- tsl=\E[1$}\E[;%df, use=vt200, ++# Chunks from xterm #230: ++xterm+pce2|fragment with modifyCursorKeys:2, ++ kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, ++ kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~, ++ kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, ++ kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F, ++ kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F, ++ kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H, ++ kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~, ++ kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~, ++ kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~, ++ kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~, ++ kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~, ++ use=xterm+edit, + +-#### Common Desktop Environment +-# ++xterm+edit|fragment for 6-key editing-keypad, ++ kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ use=xterm+pc+edit, + +-# This ships with Sun's CDE in Solaris 2.5 +-# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net> +-dtterm|CDE desktop terminal, +- am, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, lm#0, ncv@, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, ++xterm+pc+edit|fragment for pc-style editing keypad, ++ kend=\E[4~, khome=\E[1~, ++ ++xterm+vt+edit|fragment for vt220-style editing keypad, ++ kfnd=\E[1~, kslt=\E[4~, ++ ++# ++# Those chunks use the new-style (the xterm oldFunctionKeys resource is false). ++# Alternatively, the same scheme with old-style function keys as in xterm-r6 ++# is shown here (because that is used in mrxvt and mlterm): ++xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2, ++ kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~, ++ kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~, ++ kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~, ++ kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~, ++ kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~, ++ kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~, ++ kf63=\E[13;4~, use=xterm+pcf2, ++# ++# This chunk is used for building the VT220/Sun/PC keyboard variants. ++xterm-basic|modern xterm terminal emulator - common, ++ OTbs, am, bce, km, mir, msgr, xenl, AX, XT, ++ colors#8, cols#80, it#8, lines#24, pairs#64, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, 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, dim=\E[2m, dl=\E[%p1%dM, ++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, + dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, +- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H, ++ flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, + ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, +- ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l, +- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, +- rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m, +- sc=\E7, +- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color, ++ ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, ++ kmous=\E[M, meml=\El, memu=\Em, op=\E[39;49m, rc=\E8, ++ rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l, ++ rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, ++ rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec, ++ rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm, ++ setaf=\E[3%p1%dm, ++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, ++ sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h, ++ smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J, ++ use=ansi+pp, use=xterm+kbs, use=vt100+enq, + +-#### Non-Unix Consoles +-# ++# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997 ++# In retrospect, something like xterm-r6 was intended here -TD ++xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1, ++ rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33, + +-### EMX termcap.dat compatibility modes +-# +-# 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, use=ansi.sys, ++# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey) ++# If configured to support 88- or 256-colors (which is fairly common in 2009), ++# xterm also recognizes the control sequences for initc -TD ++xterm-16color|xterm with 16 colors like aixterm, ++ ccc, ++ initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, ++ use=ibm+16color, use=xterm-new, + +-# 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 +-# names longer than 14 characters, the nominal maximum). ++# 256-colors is a compile-time feature of XFree86 xterm beginning with ++# patch #111 (1999/7/10) -TD ++xterm+256color|xterm 256-color feature, ++ ccc, ++ colors#256, pairs#32767, ++ initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, ++ setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, ++ setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, ++ setb@, setf@, ++ ++# 88-colors is a compile-time feature of XFree86 xterm beginning with ++# patch #115 (1999/9/18) -TD + # +-# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs. +-ansi-emx|ANSI.SYS color, +- am, bce, eo, mir, msgr, xon, +- colors#8, cols#80, it#8, lines#25, pairs#64, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, +- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, +- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J, +- kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J, +- rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m, +- rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m, +- smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c, +- u9=\E[c, use=emx-base, +-# nice colors for Emacs (white on blue, mode line white on cyan) +-ansi-color-2-emx|ANSI.SYS color 2, +- clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m, +- rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec, +- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m, +- smul=\E[1;36;44m, use=ansi-emx, +-# nice colors for Emacs (white on black, mode line black on cyan) +-ansi-color-3-emx|ANSI.SYS color 3, +- clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m, +- rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec, +- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m, +- smul=\E[0;36;40m, use=ansi-emx, +-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis, +- am, +- cols#80, it#8, lines#24, +- clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, +- ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, +- kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, +- kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, +- kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m, +- sgr0=\E[0m, ++# Note that the escape sequences used are the same as for 256-colors - xterm ++# has a different table of default color resource values. If built for ++# 256-colors, it can still handle an 88-color palette by using the initc ++# capability. ++# ++# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals ++# which support the xterm+256color feature support the associated initc ++# capability. So it is cancelled in the entries which use this and/or the ++# xterm+256color block. ++# ++# The default color palette for the 256- and 88-colors are different. A ++# given executable will have one palette (perhaps compiled-in). If the program ++# supports xterm's control sequence, it can be programmed using initc. ++xterm+88color|xterm 88-color feature, ++ colors#88, pairs#7744, use=xterm+256color, + +-# Use this for cygwin32 (tested with beta 19.1) +-# underline is colored bright magenta +-# shifted kf1-kf12 are kf11-kf22 +-cygwinB19|ansi emulation for cygwin32, +- 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[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, +- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, +- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, +- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@, +- use=ansi.sys, ++# These variants of XFree86 3.9.16 xterm are built as a configure option. ++xterm-256color|xterm with 256 colors, ++ use=xterm+256color, use=xterm-new, ++xterm-88color|xterm with 88 colors, ++ use=xterm+88color, use=xterm-256color, + +-# Use this for cygwin (tested with version 1.1.0). +-# I've combined pcansi and linux. Some values of course were different and +-# I've indicated which of these were and which I used. +-# Cheers, earnie_boyd@yahoo.com +-# several changes based on running with tack and comparing with older entry -TD +-# more changes from csw: +-# add cbt [backtab] +-# remove eo [erase overstrike with blank] +-# change clear was \E[H\E[J now \E[2J (faster?) +-# remove cols +-# remove lines +-# remove ncv#3 [colors collide with highlights, bitmask] not applicable +-# to MSDOS box? +-# add cub [cursor back param] +-# add cuf [cursor forward param] +-# add cuu [cursor up param] +-# add cud [cursor down param] +-# add hs [has status line] +-# add fsl [return from status line] +-# add tsl [go to status line] +-# add smacs [Start alt charset] (not sure if this works) +-# add rmacs [End alt charset] (ditto) +-# add smcup [enter_ca_mode] (save console; thanks Corinna) +-# add rmcup [exit_ca_mode] (restore console; thanks Corinna) +-# add kb2 [center of keypad] +-# add u8 [user string 8] \E[?6c +-# add el [clear to end of line] \E[K +-# Notes: +-# cnorm [make cursor normal] not implemented +-# flash [flash] not implemented +-# blink [blink] not implemented very usefully in cygwin? \E[5m +-# dim [dim] not implemented very usefully in cygwin? \E[2m +-# cub1 [cursor back 1] typically \E[D, but ^H is faster? +-# kNXT [shifted next key] not implemented +-# kPRV [shifted prev key] not implemented +-# khome [home key] really is \E[1~ NOT \E[H +-# tbc [clear tab stops] not implemented +-# xenl [newline ignnored after 80 cols] messes up last line? Ehud Karni +-# smpch [Start PC charset] is \E[11m, same as smacs +-# rmpch [End PC charset] is \E[10m, same as rmacs +-# mir [move in insert mode] fails in tack? +-# bce [back color erase] causes problems with change background color? +-# cvvis [make cursor very visible] causes a stackdump when testing with +-# testcurs using the output option? \E[?25h\E[?8c +-# civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c +-# ech [erase characters param] broken \E[%p1%dX +-# kcbt [back-tab key] not implemented in cygwin? \E[Z ++# These two are used to demonstrate the any-event mouse support, i.e., by ++# using an extended name "XM" which tells ncurses to put the terminal into ++# a special mode when initializing the xterm mouse. ++xterm+sm+1002|testing xterm-mouse, ++ XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new, ++xterm+sm+1003|testing xterm-mouse, ++ XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new, ++ ++xterm-1002|testing xterm-mouse, ++ use=xterm+sm+1002, use=xterm-new, ++xterm-1003|testing xterm-mouse, ++ use=xterm+sm+1003, use=xterm-new, ++ ++# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who ++# asked for some of xterm's advanced features to be added to its terminfo ++# entry. It defines extended capabilities not found in standard terminfo or ++# termcap. These are useful in tmux, for instance, hence the name. ++# ++# One caveat in adding extended capabilities in ncurses is that if the names ++# are longer than two characters, then they will not be visible through the ++# termcap interface. ++# ++# Ms modifies the selection/clipboard. Its parameters are ++# p1 = the storage unit (clipboard, selection or cut buffer) ++# p2 = the base64-encoded clipboard content. ++# ++# Ss is used to set the cursor style as described by the DECSCUSR ++# function to a block or underline. ++# Se resets the cursor style to the terminal power-on default. ++# ++# Cs and Cr set and reset the cursor colour. ++xterm+tmux|advanced xterm features used in tmux, ++ Cr=\E]112\007, Cs=\E]12;%p1%s\007, ++ Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q, ++ ++# This is another variant, for XFree86 4.0 xterm (T.Dickey) ++# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color. ++# To use it, your decTerminalID resource must be set to 200 or above. + # +-# 2005/11/12 -TD +-# Remove cbt since it does not work in current cygwin +-# Add 'mir' and 'in' flags based on tack +-cygwin|ansi emulation for Cygwin, +- am, hs, mir, msgr, xon, +- colors#8, it#8, pairs#64, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, +- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, 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, fsl=^G, home=\E[H, +- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, +- kbs=^H, 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[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, +- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, +- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, +- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, +- nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, +- rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, +- sc=\E7, 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, smcup=\E7\E[?47h, +- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, +- vpa=\E[%i%p1%dd, use=vt102+enq, ++# HTS \E H \210 ++# RI \E M \215 ++# SS3 \E O \217 ++# CSI \E [ \233 ++# ++xterm-8bit|xterm terminal emulator 8-bit controls (X Window System), ++ OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX, ++ colors#8, cols#80, it#8, lines#24, pairs#64, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z, ++ civis=\233?25l, clear=\233H\2332J, ++ cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr, ++ cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J, ++ cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH, ++ cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h, ++ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M, ++ ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, ++ flash=\233?5h$<100/>\233?5l, home=\233H, ++ hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@, ++ il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m, ++ is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8, ++ ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kc1=\217q, ++ kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B, ++ kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~, ++ kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~, ++ kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~, ++ kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~, ++ kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~, ++ kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~, ++ kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M, ++ knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i, ++ meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m, ++ ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l, ++ rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m, ++ rs1=\Ec, ++ rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8, ++ sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm, ++ setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, ++ smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=, ++ smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR, ++ u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd, ++ use=xterm+kbs, + +-# I've supplied this so that you can help test new values and add other +-# features. Cheers, earnie_boyd@yahoo.com. ++xterm-hp|xterm with hpterm function keys, ++ kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, ++ kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ, ++ knp=\ES, kpp=\ET, use=xterm-basic, ++ ++xterm-sco|xterm with SCO function keys, ++ kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, ++ kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b, ++ kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, ++ kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, ++ kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, ++ kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, ++ kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, ++ kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, ++ kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, ++ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, ++ kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I, ++ use=xterm-basic, ++ ++# The xterm-new description has all of the features, but is not completely ++# compatible with vt220. If you are using a Sun or PC keyboard, set the ++# sunKeyboard resource to true: ++# + maps the editing keypad ++# + interprets control-function-key as a second array of keys, so a ++# 12-fkey keyboard can support vt220's 20-fkeys. ++# + maps numeric keypad "+" to ",". ++# + uses DEC-style control sequences for the application keypad. + # +-# Some features are from pcansi. The op value is from linux. Function-keys +-# are from linux. These have been tested not to cause problems. xenl was in +-# this list, but DOES cause problems so it has been removed +-cygwinDBG|Debug Version for Cygwin, +- am, eo, mir, msgr, xon, +- colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, +- cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, 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, dim=\E[2m, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG, +- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, +- il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$, +- kb2=\E[G, kbs=^H, kcbt=\E[Z, 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[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, +- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, +- knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, +- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l, +- rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7, +- 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[3g, vpa=\E[%i%p1%dd, use=vt102+enq, ++xterm-vt220|xterm emulating vt220, ++ kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, ++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, ++ use=xterm+app, use=xterm+edit, use=xterm-basic, ++ use=vt220+keypad, + +-# Key definitions: +-# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc. match the +-# encodings used by other x86 environments. All others are invented for DJGPP. +-# Oddly enough, while several combinations of modifiers are tabulated, there is +-# none for shifted cursor keys. ++xterm-vt52|xterm emulating dec vt52, ++ cols#80, it#8, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK, ++ home=\EH, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF, ++ use=xterm+kbs, ++ ++xterm-noapp|xterm with cursor keys in normal mode, ++ rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp, ++ use=xterm, ++ ++xterm-24|vs100|xterms|xterm terminal emulator (X Window System), ++ lines#24, use=xterm-old, ++ ++# This is xterm for ncurses. ++xterm|xterm terminal emulator (X Window System), ++ use=xterm-new, ++ ++# This entry assumes that xterm's handling of VT100 SI/SO is disabled by ++# setting the vt100Graphics resource to false. ++xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode, ++ U8#1, use=xterm, ++ ++# These building-blocks allow access to the X titlebar and icon name as a ++# status line. There are a few problems in using them in entries: + # +-# F1 \E[[A +-# F2 \E[[B +-# F3 \E[[C +-# F4 \E[[D +-# F5 \E[[E +-# F6 \E[17~ +-# F7 \E[18~ +-# F8 \E[19~ +-# F9 \E[20~ +-# F10 \E[21~ +-# F11 \E[23~ +-# F12 \E[24~ ++# a) tsl should have a parameter to denote the column on which to transfer to ++# the status line. ++# b) the "0" code for xterm updates both icon-title and window title. Some ++# window managers such as twm (and possibly window managers descended from ++# it such as tvtwm, ctwm, and vtwm) track windows by icon-name. Thus, you ++# don't want to mess with icon-name when using those window managers. + # +-# Delete \E[3~ +-# Down Arrow \E[B +-# End \E[4~ +-# Home \E[1~ +-# Insert \E[2~ +-# Left Arrow \E[D +-# Page Down \E[6~ +-# Page Up \E[5~ +-# Right Arrow \E[C +-# Up Arrow \E[A ++# The extension "TS" is preferable, because it does not accept a parameter. ++# However, if you are using a non-extended terminfo, "TS" is not visible. ++xterm+sl|access X title line and icon name, ++ hs, ++ dsl=\E]0;\007, fsl=^G, tsl=\E]0;, TS=\E]0;, ++xterm+sl-twm|access X title line (pacify twm-descended window managers), ++ hs, ++ dsl=\E]2;\007, fsl=^G, tsl=\E]2;, TS=\E]2;, ++ ++# In contrast, this block can be used for a DEC vt320 and up. There are two ++# controls used. + # +-# Shift-F1 \E[25~ +-# Shift-F2 \E[26~ +-# Shift-F3 \E[27~ +-# Shift-F4 \E[28~ +-# Shift-F5 \E[29~ +-# Shift-F6 \E[30~ +-# Shift-F7 \E[31~ +-# Shift-F8 \E[32~ +-# Shift-F9 \E[33~ +-# Shift-F10 \E[34~ +-# Shift-F11 \E[35~ +-# Shift-F12 \E[36~ ++# DECSASD (select active status display) ++# \E[0$} Main display ++# \E[1$} Status line ++# ++# DECSSDT (select status line type) ++# \E[0$~ No status line ++# \E[1$~ Indicator status line ++# \E[2$~ Host-writable status line ++# ++# The building block assumes that the terminal always shows something at the ++# status line (either the indicator, or status line). That is because if no ++# status line is used, then the terminal makes that line part of the user ++# window, changing its size without notice. ++# ++# Because there is no "esl" (enable status line) capability, the "tsl" ++# capability ensures that the status line is host-writable. A DEC terminal ++# will clear the status line when changing from indicator to host-writable ++# mode. ++# ++# Once on the status line, the row part of cursor addressing is ignored. Since ++# tsl expects a parameter (to specify the column), the shortest addressing that ++# can be used for this purpose is HPA, e.g., \E[5d to go to column 5. + # +-# Ctrl-F1 \E[47~ +-# Ctrl-F2 \E[48~ +-# Ctrl-F3 \E[49~ +-# Ctrl-F4 \E[50~ +-# Ctrl-F5 \E[51~ +-# Ctrl-F6 \E[52~ +-# Ctrl-F7 \E[53~ +-# Ctrl-F8 \E[54~ +-# Ctrl-F9 \E[55~ +-# Ctrl-F10 \E[56~ +-# Ctrl-F11 \E[57~ +-# Ctrl-F12 \E[58~ ++dec+sl|DEC VTxx status line, ++ eslok, hs, ++ dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`, ++ + # +-# Ctrl-Delete \E[43~ +-# Ctrl-Down Arrow \E[38~ +-# Ctrl-End \E[44~ +-# Ctrl-Home \E[41~ +-# Ctrl-Insert \E[42~ +-# Ctrl-Left Arrow \E[39~ +-# Ctrl-Page Down \E[46~ +-# Ctrl-Page Up \E[45~ +-# Ctrl-Right Arrow \E[40~ +-# Ctrl-Up Arrow \E[37~ ++# The following xterm variants don't depend on your base version + # +-# Alt-F1 \E[59~ +-# Alt-F2 \E[60~ +-# Alt-F3 \E[61~ +-# Alt-F4 \E[62~ +-# Alt-F5 \E[63~ +-# Alt-F6 \E[64~ +-# Alt-F7 \E[65~ +-# Alt-F8 \E[66~ +-# Alt-F9 \E[67~ +-# Alt-F10 \E[68~ +-# Alt-F11 \E[79~ +-# Alt-F12 \E[80~ +-# +-# Alt-Delete \E[65~ +-# Alt-Down Arrow \E[60~ +-# Alt-End \E[66~ +-# Alt-Home \E[41~ +-# Alt-Insert \E[64~ +-# Alt-Left Arrow \E[61~ +-# Alt-Page Down \E[68~ +-# Alt-Page Up \E[67~ +-# Alt-Right Arrow \E[62~ +-# Alt-Up Arrow \E[59~ +-# +-# Also: +-# Alt-A \E[82~ +-# Alt-B \E[82~ +-# Alt-C \E[83~ +-# Alt-D \E[84~ +-# Alt-E \E[85~ +-# Alt-F \E[86~ +-# Alt-G \E[87~ +-# Alt-H \E[88~ +-# Alt-I \E[89~ +-# Alt-J \E[90~ +-# Alt-K \E[91~ +-# Alt-L \E[92~ +-# Alt-M \E[93~ +-# Alt-N \E[94~ +-# Alt-O \E[95~ +-# Alt-P \E[96~ +-# Alt-Q \E[97~ +-# Alt-R \E[98~ +-# Alt-S \E[99~ +-# Alt-T \E[100~ +-# Alt-U \E[101~ +-# Alt-V \E[102~ +-# Alt-W \E[103~ +-# Alt-X \E[104~ +-# Alt-Y \E[105~ +-# Alt-Z \E[106~ +-djgpp|ansi emulation for DJGPP alpha, +- am, bce, msgr, xhp, xon, xt, +- colors#8, it#8, pairs#64, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v, +- clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, +- indn=\E[%p1%dS, invis=\E[8m, kbs=^H, 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[23~, +- kf12=\E[24~, 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~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J, +- op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m, +- sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, +- +-djgpp203|Entry for DJGPP 2.03, +- OTbs, am, +- cols#80, it#8, lines#25, +- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, +- kcud1=^J, nel=^M^J, ++# xterm with bold instead of underline ++xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold, ++ sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m, ++ smso=\E[7m, smul=\E[1m, use=xterm-old, + +-djgpp204|Entry for DJGPP 2.04, +- OTbs, am, AX, +- colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v, +- clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, +- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, +- cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, +- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, +- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, +- il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, 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~, kich1=\E[2~, +- kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m, +- ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm, +- setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file ++xterm-nic|xterm with ich/ich1 suppressed for non-curses programs, ++ ich@, ich1@, use=xterm, ++# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 ++xterm1|xterm terminal emulator ignoring the alternate screen buffer, ++ rmcup@, smcup@, use=xterm, + +-# This is tested using U/Win's telnet. Scrolling is omitted because it is +-# buggy. Another odd bug appears when displaying "~" in alternate character +-# set (the emulator spits out error messages). Compare with att6386 -TD +-uwin|U/Win 3.2 console, +- am, eo, in, msgr, xenl, xon, +- colors#8, it#8, ncv#58, pairs#64, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX, +- ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, +- ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP, +- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, +- khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8, +- rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m, +- rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m, +- smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, ++#### KTERM ++# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr) ++# (kterm should not invoke DEC Graphics as the alternate character set ++# -- Kenji Rikitake) ++# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics ++# -- MATSUMOTO Shoji) ++# kterm implements acsc via built-in table of X Drawable's ++kterm|kterm kanji terminal emulator (X window system), ++ eslok, hs, XT, ++ ncv@, ++ acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~, ++ csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F, ++ kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, ++ tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color, ++kterm-color|kterm-co|kterm with ANSI colors, ++ ncv@, use=kterm, use=ecma+color, + +-# This entry fits the Windows NT console when the _POSIX_TERM environment +-# variable is set to 'on'. While the Windows NT POSIX console is seldom used, +-# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP +-# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating +-# systems is not, and (surprise!) they match very well. +-# +-# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up +-# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only +-# are the installation instructions a pile of mind-numbing bureaucratese, +-# but the termcap entry is actually broken and unusable as given; the :do: +-# capability is misspelled "d". +-# +-# To use this, you need to a bunch of environment variables: +-# +-# SET _POSIX_TERM=on +-# SET TERM=ansi +-# SET TERMCAP=location of termcap file in POSIX file format +-# which is case-sensitive. +-# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap +-# SET TMP=//C/TEMP +-# +-# Important note: setting the TMP environment variable in POSIX style renders +-# it incompatible with a lot of other applications, including Visual C++. So +-# you should have a separate command window just for vi. All the other +-# variables may be permanently set in the Control Panel\System applet. +-# +-# You can find out more about the restrictions of this facility at +-# <http://www.nentug.org/unix-to-nt/ntposix.htm>. +-# +-# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997 +-ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode, +- am, bw, msgr, +- cols#80, it#8, lines#25, +- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V, +- kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m, +- ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m, +-# From: jew@venus.sunquest.com +-# Date: 19 Feb 93 23:41:07 GMT +-# Here's a combination of ansi and vt100 termcap +-# entries that works nearly perfectly for me +-# (Gateway 2000 Handbook and Microsoft Works 3.0): +-pcmw|PC running Microsoft Works, +- am, xenl, +- cols#80, it#8, lines#24, vt#3, +- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>, +- clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J, +- cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>, +- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, +- ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>, +- rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100, +- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>, ++#### Other XTERM ++# These (xtermc and xtermm) are distributed with Solaris. They refer to a ++# variant of xterm which is apparently no longer supported, but are interesting ++# because they illustrate SVr4 curses mouse controls - T.Dickey ++xtermm|xterm terminal emulator (monocrome), ++ OTbs, am, km, mir, msgr, xenl, ++ btns#3, cols#80, it#8, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ 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$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY, ++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy, ++ kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU, ++ kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_, ++ knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM, ++ rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m, ++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, + rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>, +- tbc=\E[3g$<2/>, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1, ++ smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys, + +-# From: Federico Bianchi +-# This is the entry for the OpenNT terminal. +-# The ntconsole name is for backward compatability. +-# This is for OpenNT 2.0 and later. +-# Later OpenNT was renamed to Interix. +-# +-# Presently it is distributed by Microsoft as Services For Unix (SFU). +-# The 3.5 beta contains ncurses 4.2 (that is header files and executables, +-# the documentation dates from 1.9.9e) -TD ++xtermc|xterm terminal emulator (color), ++ colors#8, ncv#7, pairs#64, ++ op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ use=xtermm, + +-interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color, +- am, bw, msgr, +- colors#8, cols#80, lines#25, ncv#3, pairs#64, +- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, +- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD, +- cub1=\E[D, 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, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, +- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S, +- indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA, +- kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD, +- kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI, +- kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM, +- kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR, +- kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV, +- kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa, +- kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe, +- kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj, +- kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5, +- kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt, +- kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy, +- kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-, +- kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9, +- kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J, +- op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, +- rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec, +- sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm, +- sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m, ++# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995 ++# Here's a termcap entry I've been using for xterm_color, which comes ++# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the ++# color stuff, I also have a status line defined as the window manager ++# title bar. [I have translated it to terminfo -- ESR] ++xterm-pcolor|xterm with color used for highlights and status line, ++ wsl#40, ++ bold=\E[1;43m, rev=\E[7;34m, ++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m, ++ smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6, + +-opennt-35|ntconsole-35|OpenNT-term35 compatible with color, +- lines#35, use=opennt, ++# This describes the capabilities of color_xterm, an xterm variant from ++# before ECMA-64 color support was folded into the main-line xterm release. ++# This entry is straight from color_xterm's maintainer. ++# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996 ++# The README's with the distribution also say that it supports SGR 21, 24, 25 ++# and 27, but they are not present in the terminfo or termcap. ++color_xterm|cx|cx100|color_xterm color terminal emulator for X, ++ OTbs, am, km, mir, msgr, xenl, XT, ++ cols#80, it#8, lines#65, ncv@, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, 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, enacs=\E(B\E)0, home=\E[H, ht=^I, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, ++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~, ++ kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM, ++ rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l, ++ rmso=\E[27m, rmul=\E[24m, ++ rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[0m\017, smacs=^N, smam=\E[?7h, ++ smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m, ++ smul=\E[4m, use=ecma+color, use=vt220+keypad, + +-opennt-50|ntconsole-50|OpenNT-term50 compatible with color, +- lines#50, use=opennt, ++# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of ++# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support ++# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This ++# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except ++# that each of those implements the home, end, delete keys differently. ++# ++# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce ++# colors; note that this is not compatible with the 5.2 version. ++# csw (2002-05-15): make xterm-color primary instead of nxterm, to ++# match XFree86's xterm.terminfo usage and prevent circular links ++xterm-color|nxterm|generic color xterm, ++ ncv@, ++ op=\E[m, use=xterm-r6, use=klone+color, + +-opennt-60|ntconsole-60|OpenNT-term60 compatible with color, +- lines#60, use=opennt, ++# This entry describes an xterm with Sun-style function keys enabled ++# via the X resource setting "xterm*sunFunctionKeys:true" ++# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same. ++# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z> ++# because we want it to be seen as <kcpy>. ++# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance ++# with their Sun keyboard labels instead. ++# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996 ++xterm-sun|xterm with sunFunctionKeys true, ++ kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB, ++ kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z, ++ kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z, ++ kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z, ++ kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z, ++ kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z, ++ kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z, ++ kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z, ++ kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z, ++ kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, ++ kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z, ++ kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z, ++ use=xterm-basic, ++xterms-sun|small (80x24) xterm with sunFunctionKeys true, ++ cols#80, lines#24, use=xterm-sun, + +-opennt-100|ntconsole-100|OpenNT-term100 compatible with color, +- lines#100, use=opennt, ++#### GNOME (VTE) ++# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0 ++gnome-rh62|Gnome terminal, ++ bce, ++ kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ use=xterm-color, + +-# OpenNT wide terminals +-opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color, +- cols#125, use=opennt, ++# GNOME Terminal 1.4.0.4 (Redhat 7.2) ++# ++# This implements a subset of vt102 with a random selection of features from ++# other terminals such as color and function-keys. ++# ++# shift-f1 to shift-f10 are f11 to f20 ++# ++# NumLock changes the application keypad to approximate vt100 keypad, except ++# that there is no escape sequence matching comma (,). ++# ++# Other defects observed: ++# vt100 LNM mode is not implemented. ++# vt100 80/132 column mode is not implemented. ++# vt100 DECALN is not implemented. ++# vt100 DECSCNM mode is not implemented, so flash does not work. ++# vt100 TBC (tab reset) is not implemented. ++# xterm alternate screen controls do not restore cursor position properly ++# it hangs in tack after running function-keys test. ++gnome-rh72|GNOME Terminal, ++ bce, km@, ++ civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color, + +-opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color, +- lines#35, use=opennt-w, ++# GNOME Terminal 2.0.1 (Redhat 8.0) ++# ++# Documentation now claims it implements vt220 (which is demonstrably false). ++# However, it does implement ECH, which is a vt220 feature. And there are ++# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display ++# more of its bugs using vttest. ++# ++# However, note that bce and msgr are broken in this release. Tabs (tbc and ++# hts) are broken as well. Sometimes flash (as in xterm-new) works. ++# ++# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu ++# operations. Shift-tab generates a distinct sequence so it can be argued ++# that it implements kcbt. ++gnome-rh80|GNOME Terminal, ++ bce@, msgr@, ++ ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177, ++ kcbt=\E^I, op=\E[39;49m, use=gnome-rh72, + +-opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color, +- lines#50, use=opennt-w, ++# GNOME Terminal 2.2.1 (Redhat 9.0) ++# ++# bce and msgr are repaired. ++gnome-rh90|GNOME Terminal, ++ bce, msgr, XT, ++ hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C, ++ kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g, ++ vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys, ++ use=gnome-rh80, + +-opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color, +- lines#60, use=opennt-w, ++# GNOME Terminal 2.14.2 (Fedora Core 5) ++# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002. ++gnome-fc5|GNOME Terminal, ++ rs1=\Ec, ++ rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, ++ use=ansi+enq, use=xterm+pcc0, use=gnome-rh90, + +-opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color, +- cols#132, use=opennt, ++# GNOME Terminal 2.18.1 (2007 snapshot) ++# ++# For any "recent" version of gnome-terminal, it is futile to attempt to ++# support modifiers on cursor- and keypad keys because the program usually ++# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset ++# of the keys (which more/less correspond to the termcap values), and will ++# interpret those according to the $TERM value, but others not in the ++# terminfo according to some constantly changing set of hacker guidelines -TD ++vte-2007|VTE in GNOME Terminal snapshot 2.18.1, ++ use=xterm+pcc2, use=gnome-fc5, ++gnome-2007|GNOME Terminal snapshot 2.18.1, ++ use=vte-2007, + +-# OpenNT terminals with no smcup/rmcup (names match termcap entries) +-interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color, +- rmcup@, smcup@, use=opennt, ++# GNOME Terminal 2.22.3 (2008 snapshot) ++# ++# In vttest, it claims to be a vt220 with national replacement character-sets, ++# but aside from the identifier string, implements only a small fraction of ++# vt220's behavior, which will make it less usable on a VMS system (unclear ++# what the intent of the developer is, since the NRC feature exposed in vttest ++# by this change does not work). ++vte-2008|VTE in GNOME Terminal snapshot 2.22.3, ++ use=vte+pcfkeys, use=vte-2007, ++gnome-2008|GNOME Terminal snapshot 2.22.3, ++ use=vte-2008, + +-opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color, +- lines#35, use=opennt-nti, ++# GNOME Terminal 3.6.0 (2012) ++# VTE 0.34.1 was marked in git 2012-10-15 (three days after patch was applied ++# in ncurses). It inherited from gnome-fc5, which broke the modified forms ++# of f1-f4 -TD ++# ++# Testing with tack shows that flash does not/has not worked -TD ++vte-2012|VTE 0.34.1, ++ flash@, ritm=\E[23m, sitm=\E[3m, use=vte-2008, ++# Version 3.6.1 sets TERM to xterm-256color (still hardcoded), which has ++# 61 differences from a correct entry for gnome terminal. ++gnome-2012|GNOME Terminal 3.6.0, ++ use=vte-2012, + +-opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color, +- lines#50, use=opennt-nti, ++# GNOME terminal may automatically use the contents of the "xterm" terminfo to ++# supply key information which is not built into the program. With 2.22.3, ++# this list is built into the program (which addresses the inadvertant use of ++# random terminfo data, though using a set of values which does not correspond ++# to any that xterm produces - still not solving the problem that GNOME ++# terminal hardcodes the $TERM variable as "xterm"). ++# ++# terminfo modifier code keys ++# kf13-kf24 shift 2 F1 to F12 ++# kf25-kf36 control 5 F1 to F12 ++# kf37-kf48 shift/control 6 F1 to F12 ++# kf49-kf60 alt 3 F1 to F12 ++# kf61-kf63 shift-alt 4 F1 to F3 ++# ++# The parameters with \EO (SS3) are technically an error, since SS3 should have ++# no parameters. This appears to be rote copying based on xterm+pcc0. ++vte+pcfkeys|VTE's variation on xterm+pcfkeys, ++ kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R, ++ kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q, ++ kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P, ++ kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S, ++ kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S, ++ kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R, ++ use=xterm+pcfkeys, ++gnome+pcfkeys|VTE's variation on xterm+pcfkeys, ++ use=vte+pcfkeys, + +-opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color, +- lines#60, use=opennt-nti, ++vte|VTE aka GNOME Terminal, ++ use=vte-2012, ++gnome|GNOME Terminal, ++ use=vte, + +-opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color, +- lines#100, use=opennt-nti, ++# palette is hardcoded... ++vte-256color|VTE with xterm 256-colors, ++ use=xterm+256color, use=vte, ++gnome-256color|GNOME Terminal with xterm 256-colors, ++ use=vte-256color, + +-######## COMMON TERMINAL TYPES ++# XFCE Terminal 0.2.5.4beta2 + # +-# This section describes terminal classes and maker brands that are still +-# quite common, but have proprietary command sets not blessed by ANSI. ++# This is based on some of the same source code, e.g., the VTE library, as ++# gnome-terminal, but has fewer features, fails more screens in vttest. ++# Since most of the terminfo-related behavior is due to the VTE library, ++# the terminfo is the same as gnome-terminal. ++xfce|Xfce Terminal, ++ use=vte-2008, ++ ++#### Other GNOME ++# Multi-Gnome-Terminal 1.6.2 + # ++# This does not use VTE, and does have different behavior (compare xfce and ++# gnome). ++mgt|Multi GNOME Terminal, ++ indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333, + +-#### Altos ++#### KDE ++# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce ++# or not is debatable). ++kvt|KDE terminal, ++ bce, km@, ++ kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color, ++ ++# Konsole 1.0.1 ++# (formerly known as kvt) + # +-# Altos made a moderately successful line of UNIX boxes. In 1990 they were +-# bought out by Acer, a major Taiwanese manufacturer of PC-clones. +-# Acer has a web site at http://www.acer.com. ++# This program hardcodes $TERM to 'xterm', which is not accurate. However, to ++# simplify this entry (and point out why konsole isn't xterm), we base this on ++# xterm-r6. The default keyboard appears to be 'linux'. + # +-# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993 +-# His comments suggest they were shipped with the system. +-# +- +-# (altos2: had extension capabilities +-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ +-# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\ +-# :HL=^AP\r:SP=\E[i:\ +-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ +-# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\ +-# Comparison with the k* capabilities makes it obvious that the c* things are +-# shift keys. I have renamed them to keys 32 and up accordingly. Also, +-# :sr: was given as a boolean-- esr) +-altos2|alt2|altos-2|altos II, +- cols#80, it#8, lines#24, xmc#0, +- clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M, +- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, +- if=/usr/share/tabset/vt100, il1=\E[L, ind=^J, +- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r, +- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r, +- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r, +- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r, +- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r, +- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r, +- nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m, +- smam=\E[?7h, smso=\E[7m, smul=\E[4m, +-# (altos3: had extension capabilities +-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ +-# :HL=^AP\r:SP=\E[i:\ +-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ +-altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V, +- blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2, +-altos4|alt4|altos-4|altos IV, +- use=wy50, +-# (altos7: had extension capabilities: +-# :GG#0:GI=\EH8:GF=\EH7:\ +-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +-# Comparison with the k* capabilities makes it obvious that the c* things are +-# shift keys. I have renamed them to keys 32 and up accordingly. I have +-# also made this entry relative to adm12 in order to give it an <sgr>. The +-# <invis> imported by use=adm+sgr may work, let me know. -- esr) +-altos7|alt7|altos VII, +- am, mir, +- cols#80, lines#24, xmc#0, +- acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt, +- clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE, +- ind=^J, invis=\EG1, +- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r, +- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r, +- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r, +- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r, +- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r, +- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r, +- knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej, +- rmir=\Er, smir=\Eq, use=adm+sgr, +-altos7pc|alt7pc|altos PC VII, +- kend=\ET, use=altos7, +- +-#### Hewlett-Packard (hp) ++# Notes: ++# a) konsole implements several features from XFree86 xterm, though none of ++# that is documented - except of course in its source code - apparently ++# because its implementors are unaccustomed to reading documentation - as ++# evidenced by the sparse and poorly edited documentation distributed with ++# konsole. Some features such as the 1049 private mode are recognized but ++# incorrectly implemented as a duplicate of the 47 private mode. ++# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad ++# sends PC-style escapes rather than vt100. ++# c) fails vttest menu 3 (Test of character sets) because it does not properly ++# parse some control sequences. Also fails vttest Primary Device Attributes ++# by sending a bogus code (in the source it says it's supposed to be a ++# vt220, which is doubly incorrect because it does not implement vt220 ++# control sequences except for a few special cases). Treat it as a ++# mildly-broken vt102. + # +-# Hewlett-Packard +-# 8000 Foothills Blvd +-# Roseville, CA 95747 +-# Vox: 1-(916)-785-4363 (Technical response line for VDTs) +-# 1-(800)-633-3600 (General customer support) ++# Update for konsole 1.3.2: ++# The 1049 private mode works (but see the other xterm screens in vttest). ++# Primary Device Attributes now returns the code for a vt100 with advanced ++# video option. Perhaps that's intended to be a "mildly-broken vt102". + # ++# Updated for konsole 1.6.4: ++# add konsole-solaris + # +-# As of March 1998, HP no longer has any terminals in production. +-# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being +-# supported (they still have parts). So are the 2392a and 2394a. +-# See the WORKSTATION CONSOLES section for the 700s. ++# Updated for konsole 1.6.6: ++# add control-key modifiers for function-keys, etc. + # ++# vttest menu 1 shows that both konsole and gnome terminal do wrapping ++# different from xterm (and vt100's). They have the same behavior in this ++# detail, but it is unclear which copies the other. ++konsole-base|KDE console window, ++ bce, km@, npc, XT, ++ ncv@, ++ bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h, ++ ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, ++ hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1=\E[3~, ++ kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, ++ kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, ++ kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l, ++ rmso=\E[27m, rmul=\E[24m, ++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd, ++ use=ecma+color, use=xterm-r6, ++konsole-linux|KDE console window with linux keyboard, ++ kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13@, ++ kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E[[B, kf20@, ++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, use=konsole-base, ++konsole-solaris|KDE console window with Solaris keyboard, ++ kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100, ++# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather ++# than testing the code. ++konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm, ++ kend=\E[4~, khome=\E[1~, use=konsole-vt100, ++# The value for kbs reflects local customization rather than the settings used ++# for XFree86 xterm. ++konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm, ++ kend=\EOF, khome=\EOH, use=konsole+pcfkeys, ++ use=konsole-vt100, ++# Konsole does not implement shifted cursor-keys. ++konsole+pcfkeys|konsole subset of xterm+pcfkeys, ++ kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2, ++ use=xterm+pcf0, ++# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but ++# it is still useful for deriving the other entries. ++konsole-vt100|KDE console window with vt100 (sic) keyboard, ++ kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, ++ kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[H, use=konsole-base, ++konsole-vt420pc|KDE console window with vt420 pc keyboard, ++ kbs=^H, kdch1=\177, use=konsole-vt100, ++konsole-16color|klone of xterm-16color, ++ ncv#32, use=ibm+16color, use=konsole, ++# make a default entry for konsole ++konsole|KDE console window, ++ use=konsole-xf4x, + +-# Generic HP terminal - this should (hopefully) work on any HP terminal. +-hpgeneric|hp|hewlett-packard generic terminal, +- OTbs, OTpt, am, da, db, mir, xhp, +- cols#80, lines#24, lm#0, vt#6, +- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM, +- ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, +- ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@, +- sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3, +- vpa=\E&a%p1%dY, +- +-hp110|hewlett-packard model 110 portable, +- lines#16, use=hpgeneric, +- +-hp+pfk+cr|hp function keys with CR, +- kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, +- kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, ++# palette is hardcoded... ++konsole-256color|KDE console window with xterm 256-colors, ++ initc@, use=xterm+256color, use=konsole, + +-hp+pfk-cr|hp function keys w/o CR, +- kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, +- kf8=\Ew, ++#### MLTERM ++# http://mlterm.sourceforge.net/ + +-# The hp2621s use the same keys for the arrows and function keys, +-# but not separate escape sequences. These definitions allow the +-# user to use those keys as arrow keys rather than as function +-# keys. +-hp+pfk+arrows|hp alternate arrow definitions, +- kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@, +- kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r, +- kll=\Eq\r, kri=\Es\r, ++mlterm|multi lingual terminal emulator, ++ use=mlterm3, + +-hp+arrows|hp arrow definitions, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh, +- kind=\ES, kll=\EF, kri=\ET, ++# Tested mlterm 3.2.2: ++# mlterm 3.x has made changes, but they are not reflected in the included ++# mlterm.ti; this entry is based on testing with tack and vttest -TD ++mlterm3|multi lingual terminal emulator, ++ kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, ++ use=xterm+app, use=xterm+pcf0, use=xterm+pcc2, ++ use=xterm+pce2, use=mlterm2, + +-# Generic stuff from the HP 262x series ++# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD + # +-hp262x|HP 262x terminals, +- xhp, +- blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES, +- invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh, +- kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET, +- krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, +- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c, +- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, +- +-# Note: no <home> on HPs since that homes to top of memory, not screen. +-# Due to severe 2621 braindamage, the only way to get the arrow keys to +-# transmit anything at all is to turn on the function key labels +-# with <smkx>, and even then the user has to hold down shift! +-# The default 2621 turns off the labels except when it has to to +-# enable the function keys. If your installation prefers labels +-# on all the time, or off all the time (at the "expense" of the +-# function keys), use 2621-nl or 2621-wl. ++# It is nominally a vt102 emulator, with features borrowed from rxvt and ++# xterm. + # +-# Note: there are newer ROMs for 2621's that allow you to set +-# strap A so the regular arrow keys xmit \EA, etc, as with the +-# 2645. However, even with this strap set, the terminal stops +-# xmitting if you reset it, until you unset and reset the strap! +-# Since there is no way to set/unset the strap with an escape +-# sequence, we don't use it in the default. +-# If you like, you can use 2621-ba (brain-damaged arrow keys). +-hp2621-ba|2621 w/new rom and strap A set, +- rmkx@, smkx@, use=hp+arrows, use=hp2621, +- +-# hp2621 with function labels. Most of the time they are off, +-# but inside vi, the function key labels appear. You have to +-# hold down shift to get them to xmit. +-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels, +- is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl, +-hp2621-fl|hp 2621, +- xhp@, xon, +- pb#19200, +- cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>, +- ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@, +- sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD, +- use=hp+pfk+cr, use=hpgeneric, +- +-# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p +-hp2621p|hp 2621 with printer, +- mc4=\E&p13C, mc5=\E&p11C, use=hp2621, +- +-hp2621p-a|hp2621p with fn as arrows, +- use=hp+pfk+arrows, use=hp2621p, +- +-# hp2621 with k45 keyboard +-hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard, +- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621, +- +-# 2621 using all 48 lines of memory, only 24 visible at any time. +-hp2621-48|48 line 2621, +- lines#48, +- cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR, +- use=hp2621, +- +-# 2621 with no labels ever. Also prevents vi delays on escape. +-hp2621-nl|hp 2621 with no labels, +- kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@, +- use=hp2621-fl, +- +-# Needed for UCB ARPAVAX console, since lsi-11 expands tabs +-# (wrong). +-# +-hp2621-nt|hp 2621 w/no tabs, +- ht@, use=hp2621, +- +-# Hp 2624 B with 4 or 10 pages of memory. ++# The function keys are numbered based on shift/control/alt modifiers, except ++# that the control-modifier itself is used to spawn a new copy of mlterm (the ++# "-P" option). So control/F1 to control/F12 may not be usable, depending on ++# how it is configured. + # +-# Some assumptions are made with this entry. These settings are +-# NOT set up by the initialization strings. ++# kf1 to kf12 \E[11~ to \E[24~ ++# shift kf1 to kf12 \E[11;2~ to \E[24;2~ ++# alt kf1 to kf12 \E[11;3~ to \E[24;3~ ++# shift/alt kf1 to kf12 \E[11;4~ to \E[24;4~ ++# control kf1 to kf12 \E[11;5~ to \E[24;5~ (maybe) ++# control/shift kf1 to kf12 \E[11;6~ to \E[24;6~ ++# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~ ++# control/shift/alt kf1 to kf12 \E[11;8~ to \E[24;8~ + # +-# Port Configuration +-# RecvPace=Xon/Xoff +-# XmitPace=Xon/Xoff +-# StripNulDel=Yes ++mlterm2|multi lingual terminal emulator, ++ am, eslok, km, mc5i, mir, msgr, npc, xenl, XT, ++ colors#8, cols#80, it#8, lines#24, pairs#64, ++ acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, 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, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, ++ is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, ++ kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~, ++ khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M, ++ knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, kslt=\E[4~, mc0=\E[i, ++ nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, ++ rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, ++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, ++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l, ++ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h, ++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, ++ vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2, ++ ++# The insert/delete/home/end keys do not respond to modifiers because mlterm ++# looks in its termcap to decide which string to send. If it used terminfo ++# (when available), it could use the extended names introduced for xterm. ++mlterm+pcfkeys|fragment for PC-style fkeys, ++ kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C, ++ kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B, ++ kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~, ++ kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D, ++ kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~, ++ kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~, ++ kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C, ++ kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A, ++ kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A, ++ ++mlterm-256color|mlterm 3.0 with xterm 256-colors, ++ use=xterm+256color, use=mlterm, ++ ++#### RXVT ++# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997 ++# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997 ++# Notes: ++# rxvt 2.21b uses ++# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O, ++# but some applications don't work with that. ++# It also has an AIX extension ++# box2=lqkxjmwuvtn, ++# and ++# ech=\E[%p1%dX, ++# but the latter does not work correctly. + # +-# Terminal Configuration +-# InhHndShk=Yes +-# InhDC2=Yes +-# XmitFnctn(A)=No +-# InhEolWrp=No ++# The distributed terminfo says it implements hpa and vpa, but they are not ++# implemented correctly, using relative rather than absolute positioning. + # +-# Note: the 2624 DOES have a true <home>, believe it or not! ++# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM. ++# Since rxvt is not really compatible with xterm, it should be configured as ++# "rxvt" or "rxvt-color". + # +-# The 2624 has an "error line" to which messages can be sent. +-# This is CLOSE to what is expected for a "status line". However, +-# after a message is sent to the "error line", the next carriage +-# return is EATEN and the "error line" is turned back off again! +-# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>. ++# removed dch/dch1 because they are inconsistent with bce/ech -TD ++# remove km as per tack test -TD ++rxvt-basic|rxvt terminal base (X Window System), ++ OTbs, am, bce, eo, mir, msgr, xenl, xon, XT, ++ cols#80, it#8, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, 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, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I, ++ hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ++ ind=^J, is1=\E[?47l\E=\E[?1l, ++ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H, ++ kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m, ++ rmul=\E[24m, ++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, ++ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, ++ s0ds=\E(B, s1ds=\E(0, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, ++ smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq, ++ use=rxvt+pcfkeys, use=vt220+keypad, ++# Key Codes from rxvt reference: + # +-# This entry supports emacs (and any other program that uses raw +-# mode) at 4800 baud and less. I couldn't get the padding right +-# for 9600. ++# Note: Shift + F1-F10 generates F11-F20 + # +-# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr) +-hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B, +- da, db, +- lm#96, +- flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F, +- use=hp+labels, use=scrhp, +- +-# This hp2626 entry does not use any of the fancy windowing stuff +-# of the 2626. ++# For the keypad, use Shift to temporarily override Application-Keypad ++# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock ++# is off, escape sequences toggle Application-Keypad setting. ++# Also note that values of Home, End, Delete may have been compiled ++# differently on your system. + # +-# Indeed, terminfo does not yet handle such stuff. Since changing +-# any window clears memory, it is probably not possible to use +-# this for screen opt. ++# Normal Shift Control Ctrl+Shift ++# Tab ^I ESC [ Z ^I ESC [ Z ++# BackSpace ^H ^? ^? ^? ++# Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @ ++# Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @ ++# Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ ++# Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @ ++# Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @ ++# Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @ ++# Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @ ++# End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @ ++# Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ ++# F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^ ++# F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^ ++# F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^ ++# F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^ ++# F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^ ++# F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^ ++# F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^ ++# F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^ ++# F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^ ++# F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^ ++# F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @ ++# F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @ ++# F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @ ++# F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @ ++# F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @ ++# F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @ ++# F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @ ++# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @ ++# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @ ++# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @ + # +-# ed is incredibly slow most of the time - I am guessing at the +-# exact padding. Since the terminal uses xoff/xon this is intended +-# only for cost computation, so that the terminal will prefer el +-# or even dl1 which is probably faster! ++# Application ++# Up ESC [ A ESC [ a ESC O a ESC O A ++# Down ESC [ B ESC [ b ESC O b ESC O B ++# Right ESC [ C ESC [ c ESC O c ESC O C ++# Left ESC [ D ESC [ d ESC O d ESC O D ++# KP_Enter ^M ESC O M ++# KP_F1 ESC O P ESC O P ++# KP_F2 ESC O Q ESC O Q ++# KP_F3 ESC O R ESC O R ++# KP_F4 ESC O S ESC O S ++# XK_KP_Multiply * ESC O j ++# XK_KP_Add + ESC O k ++# XK_KP_Separator , ESC O l ++# XK_KP_Subtract - ESC O m ++# XK_KP_Decimal . ESC O n ++# XK_KP_Divide / ESC O o ++# XK_KP_0 0 ESC O p ++# XK_KP_1 1 ESC O q ++# XK_KP_2 2 ESC O r ++# XK_KP_3 3 ESC O s ++# XK_KP_4 4 ESC O t ++# XK_KP_5 5 ESC O u ++# XK_KP_6 6 ESC O v ++# XK_KP_7 7 ESC O w ++# XK_KP_8 8 ESC O x ++# XK_KP_9 9 ESC O y + # +-# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only +-# extra slow on the last line of the window. ++# The source-code for rxvt actually defines mappings for F21-F35, using ++# "ESC [ 35 ~" to "ESC [ 49 ~". Keyboards with more than 12 function keys ++# are rare, so this entry uses the shift- and control-modifiers as in ++# xterm+pcfkeys to define keys past F12. + # +-# The padding probably should be changed. ++# kIC is normally not used, since rxvt performs a paste for that (shifted ++# insert), unless private mode 35 is set. + # +-hp2626|hp2626a|hp2626p|hp 2626, +- da, db, +- lm#0, pb#19200, +- ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>, +- is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr, +- use=hp+labels, use=scrhp, ++# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD ++# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD ++rxvt+pcfkeys|fragment for PC-style fkeys, ++ kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d, ++ kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^, ++ kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$, ++ kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^, ++ kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~, ++ kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^, ++ kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^, ++ kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^, ++ kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, knp=\E[6~, ++ kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, ++ kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@, ++ kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@, ++ kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^, ++ kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa, + +-# This entry is for sysline. It allocates a 23 line window with +-# a 115 line workspace for regular use, and a 1 line window for +-# the status line. +-# +-# This assumes port 2 is being used. +-# Turn off horizontal line, Create ws #1 with 115 lines, +-# Create ws #2 with 1 line, Create window #1 lines 1-23, +-# Create window #2 lines 24-24, Attach cursor to workspace #1. +-# Note that this clears the tabs so it must be done by tset before +-# it sets the tabs. +-# +-hp2626-s|hp 2626 using only 23 lines, +- eslok, hs, +- lines#23, +- fsl=\E&d@\E&w7f2p1I\E&w4f1I, +- is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r, +- tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626, +-# Force terminal back to 24 lines after being 23. +-hp2626-ns|hp 2626 using all 24 lines, +- is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r, +- use=hp2626, +-# Various entries useful for small windows on 2626. +-hp2626-12|hewlett-packard 2626 12 lines, +- lines#12, use=hp2626, +-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns, +- cols#40, lines#12, use=hp2626, +-hp2626-x40|hewlett-packard 2626 40 columns, +- cols#40, use=hp2626, +-hp2626-12-s|hewlett-packard 2626 11 lines plus status, +- lines#11, use=hp2626-s, ++rxvt|rxvt terminal emulator (X Window System), ++ ncv@, ++ hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017, ++ vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color, ++rxvt-color|rxvt terminal emulator (X Window System), ++ use=rxvt, ++rxvt-256color|rxvt 2.7.9 with xterm 256-colors, ++ use=xterm+256color, use=rxvt, ++rxvt-88color|rxvt 2.7.9 with xterm 88-colors, ++ use=xterm+88color, use=rxvt, ++rxvt-xpm|rxvt terminal emulator (X Window System), ++ use=rxvt, ++rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin, ++ acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ use=rxvt, ++rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin, ++ acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376, ++ use=rxvt-cygwin, + +-# +-# hp2627 color tubes from University of Wisconsin +-# +-hp2627a-rev|hp 2627 with reverse video colors, +- cr=^M, cud1=^J, ht=^I, ind=^J, +- is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r, +- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@, +- smul=\E&dD\E&v1S, use=hp2621-nl, +-hp2627a|hp 2627 color terminal with no labels, +- cr=^M, cud1=^J, ht=^I, ind=^J, +- is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r, +- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S, +- rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S, +- use=hp2621-nl, +-hp2627c|hp 2627 color (cyan) terminal with no labels, +- cr=^M, cud1=^J, ht=^I, ind=^J, +- is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r, +- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a, ++# This variant is supposed to work with rxvt 2.7.7 when compiled with ++# NO_BRIGHTCOLOR defined. rxvt needs more work... ++rxvt-16color|xterm with 16 colors like aixterm, ++ ncv#32, use=ibm+16color, use=rxvt, + +-# hp2640a doesn't have the Y cursor addressing feature, and C is +-# memory relative instead of screen relative, as we need. ++#### MRXVT ++# mrxvt 0.5.4 + # +-hp2640a|hp 2640a, +- cup@, rmkx@, smkx@, use=hp2645, +- +-hp2640b|hp2644a|hp 264x series, +- rmkx@, smkx@, use=hp2645, +- +-# (hp2641a: removed unknown :gu: -- esr) +-hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry, +- am, da, db, mir, xhp, +- cols#80, lines#24, +- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM, +- ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I, +- if=/usr/share/tabset/std, il1=\EL, ind=^J, +- is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, +- rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB, +- vpa=\E&a%p1%2dY, +- +-# This terminal should be used at 4800 baud or less. It needs padding for +-# plain characters at 9600, I guessed at an appropriate cr delay. It really +-# wants ^E/^F handshaking, but that doesn't work well even if you write +-# software to support it. +-hp2645|hp45|HP 2645 series, +- pb#9600, +- blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, +- ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, +- kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB, +- rmkx=\E&s0A, +- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c, +- sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric, +-# You should use this terminal at 4800 baud or less. +-hp2648|hp2648a|HP 2648a graphics terminal, +- clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>, +- dch1=\EP$<7>, ip=$<5>, use=hp2645, +- +-# The HP 150 terminal is a fairly vanilla HP terminal, with the +-# clreol standout problem. It also has graphics capabilities and +-# a touch screen, which we don't describe here. +-hp150|hewlett packard Model 150, +- OTbs, use=hp2622, ++# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which ++# makes its function-keys different from other flavors of rxvt -TD ++mrxvt|multitabbed rxvt, ++ XT, ++ kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~, ++ kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~, ++ kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~, ++ kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~, ++ kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys, ++ use=rxvt, + +-# HP 2382a terminals, "the little ones." They don't have any +-# alternate character set support and sending out ^N/^O will +-# leave the screen blank. +-hp2382a|hp2382|hewlett packard 2382a, +- da, db, +- lh#1, lm#48, +- acsc@, +- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s, +- rmacs@, +- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c, +- sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp, ++mrxvt-256color|multitabbed rxvt with 256 colors, ++ use=xterm+256color, use=mrxvt, + +-hp2621-a|hp2621a-a|hp2621 with fn as arrows, +- use=hp+pfk+arrows, use=hp2621-fl, ++#### ETERM ++# From: Michael Jennings <mej@valinux.com> ++# ++# Eterm 0.9.3 ++# ++# removed kf0 which conflicts with kf10 -TD ++# remove cvvis which conflicts with cnorm -TD ++# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT ++# but does otherwise follow the rxvt+pcfkeys model -TD ++# remove nonworking flash -TD ++# remove km as per tack test -TD ++Eterm|Eterm-color|Eterm with xterm-style color support (X Window System), ++ am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT, ++ btns#5, cols#80, it#8, lines#24, lm#0, ncv@, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, 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, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is1=\E[?47l\E>\E[?1l, ++ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@, ++ kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H, ++ kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M, ++ mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=, ++ rmso=\E[27m, rmul=\E[24m, ++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, ++ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, ++ smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys, ++ use=ecma+color, + +-# newer hewlett packard terminals ++Eterm-256color|Eterm with xterm 256-colors, ++ use=xterm+256color, use=Eterm, + +-newhpkeyboard|generic entry for HP extended keyboard, +- kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh, +- kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV, +- kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A, +- use=hp+pfk-cr, ++Eterm-88color|Eterm with 88 colors, ++ use=xterm+88color, use=Eterm, + +-newhp|generic entry for new hewlett packard terminals, +- am, bw, mir, xhp, xon, +- cols#80, lines#24, pb#4800, +- acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x., +- bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H, +- cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH, +- dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J, +- invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J, +- pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s, +- pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s, +- pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET, +- rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg, +- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;, +- sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD, +- tbc=\E3, use=newhpkeyboard, ++#### ATERM ++# Based on rxvt 2.4.8, it has a few differences in key bindings ++aterm|AfterStep terminal, ++ XT, ++ kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt, + +-memhp|memory relative addressing for new HP ttys, +- vt#6, +- clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR, +- cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR, +- home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r, +- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp, ++#### XITERM ++# xiterm 0.5-5.2 ++# This is not based on xterm's source... ++# vttest shows several problems with keyboard, cursor-movements. ++# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm ++xiterm|internationalized terminal emulator for X, ++ km@, ++ kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6, + +-scrhp|screen relative addressing for new HP ttys, +- clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC, +- cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC, +- cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR, +- home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA, +- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp, + +-# (hp+labels: added label values from a BRL termcap -- esr) +-hp+labels|"standard" label info for new HP ttys, +- lh#2, lw#8, nlab#8, +- lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, +- pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s, +- rmln=\E&j@, smln=\E&jB, ++#### HPTERM ++# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in ++# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS ++# chars look like --esr) ++hpterm|X-hpterm|hp X11 terminal emulator, ++ am, da, db, mir, xhp, ++ cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0, ++ acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, ++ cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, ++ cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK, ++ hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H, ++ kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep, ++ kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, ++ khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF, ++ knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El, ++ memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s, ++ pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s, ++ pfx=\E&f2a%p1%dk%p2%l%dL%p2%s, ++ pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET, ++ rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, ++ rmul=\E&d@, ++ sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;, ++ sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB, ++ smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, ++# HPUX 11 provides a color version. ++hpterm-color|HP X11 terminal emulator with color, ++ ccc, ++ colors#64, pairs#8, ++ home=\E&a0y0C, ++ initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI, ++ op=\E&v0S, scp=\E&v%p1%dS, use=hpterm, + +-hp+printer|"standard" printer info for HP ttys, +- ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C, +- +- +-# The new hp2621b is kind of a cross between the old 2621 and the +-# new 262x series of machines. It has dip-switched options. +-# The firmware has a bug in it such that if you give it a null +-# length label, the following character is eaten! +-hp2621b|hp 2621b with old style keyboard, +- lh#1, lm#48, lw#8, nlab#8, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh, +- kind=\ET, kll=\EF, kri=\ES, +- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r, +- smln=\E&jB, use=hp2621, +- +-hp2621b-p|hp 2621b with printer, +- use=hp+printer, use=hp2621b, ++#### EMU ++# This is for the extensible terminal emulator on the X11R6 contrib tape. ++# It corresponds to emu's internal emulation: ++# emu -term emu ++# emu's default sets TERM to "xterm", but that doesn't work well -TD ++# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD ++# fixes: add civis, cnorm, sgr -TD ++emu|emu native mode, ++ am, bce, mir, msgr, xon, ++ colors#15, cols#80, it#8, lines#24, pairs#64, vt#200, ++ acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244, ++ bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;, ++ cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;, ++ cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC, ++ cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA, ++ dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;, ++ ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I, ++ hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG, ++ is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED, ++ kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01, ++ kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14, ++ kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19, ++ kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05, ++ kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind, ++ kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel, ++ op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES, ++ rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;, ++ setaf=\Er%i%p1%d;, ++ sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;, ++ sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej, + +-# hp2621b - new 2621b with new extended keyboard +-# these are closer to the new 26xx series than the other 2621b +-hp2621b-kx|hp 2621b with extended keyboard, +- use=newhpkeyboard, use=hp2621b, ++# vt220 Terminfo entry for the Emu emulation, corresponds to ++# emu -term vt220 ++# with NumLock set (to make the keypad transmit kf0-kf9). ++# fixes: add am, xenl, corrected sgr0 -TD ++emu-220|Emu-220 (vt200-7bit mode), ++ am, xenl, xon, ++ cols#80, it#8, lines#24, vt#200, ++ acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, ++ blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l, ++ clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D, ++ cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A, ++ dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M, ++ ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I, ++ hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL, ++ il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h, ++ kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq, ++ kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ, ++ kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~, ++ kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~, ++ kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~, ++ kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw, ++ kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, ++ knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m, ++ ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m, ++ rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7, ++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=, ++ smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g, + +-hp2621b-kx-p|hp 2621b with new keyboard & printer, +- use=hp+printer, use=hp2621b-kx, ++#### MVTERM ++# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI, ++# print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings ++# indicate that it emulates more than one terminal, but incompletely. ++# ++# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net> ++# It is based on vt102's entry, with some subtle differences, but also ++# has status line ++# supports ANSI colors (except for 'op' string) ++# apparently implements alternate screen like xterm ++# does not use padding, of course. ++mvterm|vv100|SwitchTerm aka mvTERM, ++ am, eslok, hs, km, mir, msgr, xenl, ++ colors#8, cols#80, it#8, lines#24, pairs#64, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, 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, ++ dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, ++ fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy, ++ kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, ++ op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m, ++ rmul=\E[m, ++ rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H, ++ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys, + +-# Some assumptions are made in the following entries. +-# These settings are NOT set up by the initialization strings. ++#### MTERM + # +-# Port Configuration +-# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes ++# This application is available by email from <mouse@Rodents.Montreal.QC.CA>. + # +-# Terminal Configuration +-# InhHndShk(G)=Yes InhDC2(H)=Yes +-# XmitFnctn(A)=No InhEolWrp=No ++# "mterm -type ansi" sets $TERM to "ansi" ++mterm-ansi|ANSI emulation, ++ am, bw, mir, msgr, ++ it#8, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, ++ cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, ++ 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, ++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, ++ el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, ++ il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, ++ invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m, ++ ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m, ++ rmul=\E[24m, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++ vpa=\E[%i%p1%dd, ++# mterm normally sets $TERM to "mterm" ++mterm|mouse-sun|Der Mouse term, ++ am, bw, mir, ++ it#8, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S, ++ cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C, ++ home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W, ++ rmir=^O, rmso=^T, smir=^Q, smso=^V, ++# "mterm -type decansi" sets $TERM to "decansi" + # ++# note: kdch1, kfnd, kslt are in the source code, but do not work -TD ++decansi|ANSI emulation with DEC compatibility hacks, ++ am, mir, msgr, xenl, ++ colors#8, it#8, pairs#64, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, 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, dim=\E[2m, dl=\E[%p1%dM, ++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0, ++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL, ++ il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, ++ is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB, ++ kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, ++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, ++ kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m, ++ ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, ++ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR, ++ u7=\E[6n, vpa=\E[%i%p1%dd, ++ ++#### VWM + # +-# Hp 2622a & hp2623a display and graphics terminals ++# vwmterm is a terminal emulator written for the VWM console window manager + # +-hp2622|hp2622a|hp 2622, +- da, db, +- lm#0, pb#19200, +- is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp, ++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, cub=\E[%p1%dD, ++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, ++ cuu1=\E[A, 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, + +-# The 2623 is a 2622 with extra graphics hardware. +-hp2623|hp2623a|hp 2623, +- use=hp2622, ++#### MGR ++# ++# MGR is a Bell Labs window system lighter-weight than X. ++# These entries describe MGR's xterm-equivalent. ++# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 ++# + +-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer, +- use=hp+printer, use=hp2624, ++mgr|Bellcore MGR (non X) window system terminal emulation, ++ am, km, ++ bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M, ++ csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er, ++ cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h, ++ dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>, ++ dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u, ++ ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>, ++ il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S, ++ rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n, ++ smul=\E4n, ++mgr-sun|Mgr window with Sun keyboard, ++ ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z, ++ kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z, ++ kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, ++ kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, ++ kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, ++ kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z, ++ kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr, ++mgr-linux|Mgr window with Linux keyboard, ++ ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~, ++ kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, 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~, use=mgr, + +-# The hewlett packard B can have an optional extra 6 pages of memory. +-hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory, +- lm#240, use=hp2624, ++#### SIMPLETERM ++# st.suckless.org ++# st-0.1.1 ++# ++# Note: the original terminfo description uses leading blank to persuade ++# ncurses to use "st" as its name. Proper fix for that is to use "st" as an ++# alias. ++# ++# Reading the code shows it should work for aixterm 16-colors ++# - added st-16color ++# ++# Using tack: ++# - set eo (erase-overstrike) ++# - set xenl ++# - tbc doesn't work ++# - hts works ++# - cbt doesn't work ++# - shifted cursor-keys send sequences like rxvt ++# - sgr referred to unimplemented "invis" mode. ++# Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis ++simpleterm|st| simpleterm, ++ am, eo, mir, msgr, ul, xenl, ++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J, ++ cnorm=\E[?12l\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ 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, ++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=\177, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8, ++ rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, ++ sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m, ++st-16color|simpleterm with 16-colors, ++ use=ibm+16color, use=simpleterm, ++# 256 colors "works", but when running xterm's test-scripts, some garbage is ++# shown in the titlebar. ++st-256color|simpleterm with 256 colors, ++ ccc@, ++ initc@, use=xterm+256color, use=simpleterm, + +-hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer, +- lm#240, use=hp2624b-p, ++#### TERMINATOR ++# http://software.jessies.org/terminator/ ++# Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit ++# Debian/current -TD (2011/8/20) ++# ++# There are some packaging problems: ++# a) using Java, the program starts off using 50Mb, and climbs from there, ++# up to 114Mb after testing (no scrollback). ++# b) it insists on reinstalling its terminal description in $HOME/.terminfo ++# (two copies, just in case the host happens to be Mac OS X). ++# I deleted this after testing with tack. ++# ++# Issues/features found with tack: ++# a) tbc does not work (implying that hts also is broken). ++# Comparing with the tabs utility shows a problem with the last tabstop on ++# a line. ++# b) has xterm-style shifted function-key strings ++# meta also is used, but control is ignored. ++# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta) ++# d) some combinations of shift/control send xterm-style sequences for ++# insert/delete/home/end. ++# e) numeric keypad sends only numbers (compare with vttest). ++# f) meta mode (km) is not implemented. ++# ++# Issues found with ncurses test-program: ++# a) bce is inconsistently implemented ++# b) widths of Unicode values above 256 do not always agree with wcwidth. ++# ++# Checked with vttest, found low degree of compatibility there. ++# ++# Checked with xterm's scripts, found that the 256-color palette is fixed. ++# ++# Fixes: ++# a) add sgr string ++# b) corrected sgr0 to reset alternate character set ++# c) modified smacs/rmacs to use SCS rather than SI/SO ++# d) removed bce ++# e) removed km ++terminator|Terminator no line wrap, ++ eo, mir, msgr, xenl, xon, ++ colors#256, cols#80, it#8, lines#24, lm#0, pairs#32767, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J, ++ cnorm=\E[?25h, 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, ++ enacs=\E(B\E)0, flash=^G, home=\E[H, hpa=\E[%i%p1%dG, ++ ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is1=\E[?47l\E=\E[?1l, ++ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, ++ rmcup=\E[?47l\E8, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, ++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, ++ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>, ++ s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[48;5;%p1%dm, ++ setaf=\E[38;5;%p1%dm, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\E[m\E(B, smacs=\E(0, smcup=\E7\E[?47h, smir=\E[4h, ++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, ++ use=xterm+sl-twm, ++ ++#### TERMINOLOGY ++# http://enlightenment.org ++# ++# Tested terminology-0.3.0, using tack and vttest. This is not a vt100 ++# emulator, nor is it compatible with xterm, but it uses a few features from ++# both -TD ++# ++# General comments: ++# cursor does not fill on focus ++# there are pervasive problems with clearing/erasing parts of the screen ++# resizing the window causes it to stop listening to the keyboard ++# tack - ++# doesn't understand vt100 CPR needed for resize ++# no CBT ++# no cvvis ++# has invis ++# no blink ++# uses bce model for colors, but (see below) fails the vttest screens ++# has partial support for 256color feature. ++# tack cursor-keys: ++# ctrl+shift (ignored) ++# 2 shift ++# shift-alt modifier -> shift (2) ++# 3 alt ++# 4 ++# 5 ctrl ++# tack modifiers do not work for fkeys ++# ctrl + khome/kend works - none of the other modifiers do ++# vttest - ++# spits lots of messages from termptyesc.c especially in vttest. ++# no 132-column mode ++# fails menu 1, 2 (definitely not vt100-compatible) ++# primary and ++# secondary report says (perhaps... vt420): \E[>41;285;0c ++# CHA, HPR, VPA, CNL, CPL work ++# BCE with ED/EL - fail ++# BCE with ECH/indexing - fail ++# SD/SU work ++# unlike teken, background light/dark works ++# can set title ++# X10 and Normal mouse work ++# Any-event mouse works ++# Mouse button-event works ++terminology|EFL-based terminal emulator, ++ ccc@, mc5i@, xon@, ++ blink@, ed@, el@, el1@, initc@, invis=\E[8m, kLFT=\E[1;2D, ++ kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ kind=\E[1;2B, kri=\E[1;2A, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>, ++ vpa=\E[%i%p1%dd, kDC3=\E[3;3~, kDC4=\E[3;4~, ++ kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B, ++ kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B, ++ kDN7=\E[1;7B, kEND5=\E[1;5F, kHOM5=\E[1;5H, ++ kLFT3=\E[1;3D, kLFT4=\E[1;4D, kLFT5=\E[1;5D, ++ kLFT6=\E[1;6D, kLFT7=\E[1;7D, kRIT3=\E[1;3C, ++ kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C, ++ kRIT7=\E[1;7C, kUP=\E[1;2A, use=vt100, ++ use=xterm+256color, + +-# Color manipulations for HP terminals +-hp+color|hp with colors, +- ccc, +- colors#16, ncv#17, pairs#7, +- initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI, +- oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I, +- op=\E&v0S, scp=\E&v%p1%dS, ++######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS ++# + +-# <is2> sets the screen to be 80 columns wide +-hp2397a|hp2397|hewlett packard 2397A color terminal, +- is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color, ++# Columbus UNIX virtual terminal. This terminal also appears in ++# UNIX 4.0 and successors as line discipline 1 (?), but is ++# undocumented and does not really work quite right. ++cbunix|cb unix virtual terminal, ++ OTbs, am, da, db, ++ cols#80, lines#24, lm#0, ++ bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL, ++ el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A, ++ smso=\Ea^D, smul=\Ea^A, ++# (vremote: removed obsolete ":nl@:" -- esr) ++vremote|virtual remote terminal, ++ am@, ++ cols#79, use=cbunix, + +-# HP 700/44 Setup parameters: +-# Terminal Mode HP-PCterm +-# Inhibit Auto Wrap NO +-# Status Line Host Writable +-# PC Character Set YES +-# Twenty-Five Line Mode YES +-# XON/XOFF @128 or 64 (sc) +-# Keycode Mode NO or YES (sc) +-# Backspace Key BS or BS/DEL ++pty|4bsd pseudo teletype, ++ cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!, ++ smso=\Ea$, smul=\Ea!, use=cbunix, ++ ++#### Emacs ++ ++# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 ++eterm|gnu emacs term.el terminal emulation, ++ am, mir, xenl, ++ cols#80, lines#24, ++ bel=^G, 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, rev=\E[7m, ++ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m, ++ 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, ++ ++#### Screen ++ ++# 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 ++# come from University of Wisconsin and may be older. ++# (screen: added <cnorm> on ANSI model -- esr) + # +-# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; +-# \E\\? does not turn off keycode mode +-# <smsc> sets alternate start/stop; keycode on +-hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode, +- am, eo, xenl, xon, +- cols#80, lines#25, +- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, +- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H, +- cnorm=\E[?25h, cr=^M, cub1=\E[D, 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, ich1=\E[@, il1=\E[L, +- ind=^J, +- is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\, +- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~, +- kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, +- kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~, +- kpp=\E[5~, rmam=\E[?7l, +- rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m, +- rmul=\E[m, sgr0=\E[m, smam=\E[?7h, +- smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m, +- smul=\E[4m, xoffc=g, xonc=e, ++# 'screen' defines extensions to termcap. Some are used in its terminal ++# description: ++# G0 (bool) Terminal can deal with ISO 2022 font selection sequences. ++# AX (bool) Does understand ANSI set default fg/bg color ++# (\E[39m / \E[49m). ++# S0 (str) Switch charset 'G0' to the specified charset. ++# E0 (str) Switch charset 'G0' back to standard charset. + # +-# (hp2392: copied <rmir> here from hpex -- esr) +-hp2392|239x series, +- cols#80, +- cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r, +- kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, +- kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV, +- rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY, +- use=hpsub, ++# tested with screen 3.09.08 ++screen|VT 100/ANSI X3.64 virtual terminal, ++ OTbs, OTpt, am, km, mir, msgr, xenl, G0, ++ colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1, ++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[34h\E[?25h, 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=\EM, ++ cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, ++ flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, ++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, ++ rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B, ++ S0=\E(%p1%c, use=ecma+color, ++# The bce and status-line entries are from screen 3.9.13 (and require some ++# changes to .screenrc). ++screen-bce|VT 100/ANSI X3.64 virtual terminal with bce, ++ bce, ++ ech@, use=screen, ++screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line, ++ dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen, + +-hpsub|hp terminals -- capability subset, +- am, da, db, mir, xhp, xon, +- lines#24, +- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC, +- cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, +- ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, +- is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@, +- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, ++# ====================================================================== ++# Entries for GNU Screen with 16 colors. ++# Those variations permit to benefit from 16 colors palette, and from ++# bold font and blink attribute separated from bright colors. But they ++# are less portable than the generic "screen" 8 color entries: Their ++# usage makes real sense only if the terminals you attach and reattach ++# do all support 16 color palette. + +-# hpex: +-# May be used for most 24 x 80 hp terminals, +-# but has no padding added, so may allow runover in some terminals at high +-# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and +-# hp98x5 terminal emulators or hp98x6 consoles. +-# Adds xy-cursor addressing, vertical cursor addressing, home, +-# last line, and underline capabilities. +-# +-# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:", +-# moved <rmir> here from hpsub -- esr) +-hpex|hp extended capabilites, +- cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H, +- kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ, +- smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub, ++screen-16color|GNU Screen with 16 colors, ++ use=ibm+16color, use=screen, + +-# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996 +-hp2|hpex2|hewlett-packard extended capabilities newer version, +- am, da, db, mir, xhp, +- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0, +- bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB, +- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, +- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, +- il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, +- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, +- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ, +- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET, +- krmir=\ER, ktbc=\E3, meml=\El, memu=\Em, +- pfkey=\E&f%p1%dk%p2%l%dL%p2%s, +- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s, +- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s, +- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A, +- rmln=\E&j@, rmso=\E&d@, rmul=\E&d@, +- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;, +- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB, +- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, ++screen-16color-s|GNU Screen with 16 colors and status line, ++ use=ibm+16color, use=screen-s, + +-# HP 236 console +-# From: <ddavis@ic.berkeley.edu> +-hp236|hp236 internal terminal emulator, +- OTbs, am, +- cols#80, lines#24, +- clear=\EF, cnorm=\EDE, cub1=^H, +- cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB, +- dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI, +- sgr0=\ECI, smso=\EBI, ++screen-16color-bce|GNU Screen with 16 colors and BCE, ++ use=ibm+16color, use=screen-bce, + +-# This works on a hp300 console running Utah 4.3 BSD +-# From: Craig Leres <leres@okeeffe.berkeley.edu> +-hp300h|HP Catseye console, +- OTbs, am, da, db, mir, xhp, +- cols#128, lines#51, lm#0, xmc#0, +- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB, +- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, +- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, +- if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh, +- rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, +- smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3, +- vpa=\E&a%p1%dY, +-# From: Greg Couch <gregc@ernie.berkeley.edu> +-hp9837|hp98720|hp98721|HP 9000/300 workstations, +- OTbs, am, da, db, mir, xhp, +- cols#128, it#8, lines#46, lm#0, +- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB, +- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, +- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, +- il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, +- ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU, +- kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@, +- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD, +- tbc=\E3, vpa=\E&a%p1%dY, +-# HP 9845 desktop computer from BRL +-# (hp9845: removed unknown capability :gu: -- esr) +-hp9845|HP 9845, +- OTbs, am, da, db, eo, mir, xhp, +- cols#80, lines#21, +- OTbc=\ED, clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM, +- ed=\EJ, el=\EK, if=/usr/share/tabset/std, il1=\EL, +- rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB, +-# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90 +-# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>; +-# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr) +-hp98550|hp98550a|HP 9000 Series 300 color console, +- OTbs, am, da, db, mir, xhp, +- cols#128, it#8, lines#49, lm#0, +- acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR, +- clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH, +- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, +- if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds, +- kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep, +- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, +- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF, +- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ, +- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, +- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ, +- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, +-# From: Victor Duchovni <vic@fine.princeton.edu> +-# (hp700-wy: removed obsolete ":nl=^J:"; +-# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr) +-hp700-wy|HP700/41 emulating wyse30, +- OTbs, am, bw, mir, msgr, +- cols#80, it#8, lines#24, xmc#1, +- cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1, +- if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>, +- is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI, +- kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY, +- kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K, +- ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>, +- sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>, +- smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c, +-hp70092|hp70092a|hp70092A|HP 700/92, +- am, da, db, xhp, +- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, +- acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA, +- bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, +- cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, +- dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I, +- hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, +- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, +- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ, +- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET, +- krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER, +- rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@, +- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB, +- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, ++screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line, ++ bce, use=ibm+16color, use=screen-s, + +-bobcat|sbobcat|HP 9000 model 300 console, +- am, da, db, mir, xhp, +- cols#128, it#8, lines#47, xmc#0, +- cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC, +- cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP, +- dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I, +- il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER, +- rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ, +- smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>, +-gator-t|HP 9000 model 237 emulating extra-tall AAA, +- lines#94, use=gator, +-gator|HP 9000 model 237 emulating AAA, +- bw, km, mir, ul, +- cols#128, it#8, lines#47, +- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, +- dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>, +- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, +- ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>, +- il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, +- rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m, +- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, +-gator-52|HP 9000 model 237 emulating VT52, +- cols#128, lines#47, use=vt52, +-gator-52t|HP 9000 model 237 emulating extra-tall VT52, +- lines#94, use=gator-52, ++# ====================================================================== ++# Entries for GNU Screen 4.02 with --enable-colors256. + +-#### Honeywell-Bull +-# +-# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93 +-# ++screen-256color|GNU Screen with 256 colors, ++ ccc@, ++ initc@, use=xterm+256color, use=screen, + +-# Honeywell Bull terminal. Its cursor and function keys send single +-# control characters and it has standout/underline glitch. Most programs +-# do not like these features/bugs. Visual bell is realized by flashing the +-# "keyboard locked" LED. +-dku7003-dumb|Honeywell Bull DKU 7003 dumb mode, +- cols#80, lines#25, +- clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X, +- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K, +- flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y, +- kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J, +-dku7003|Honeywell Bull DKU 7003 all features described, +- msgr, +- xmc#1, +- blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m, +- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, +- use=dku7003-dumb, ++screen-256color-s|GNU Screen with 256 colors and status line, ++ ccc@, ++ initc@, use=xterm+256color, use=screen-s, + +-#### Lear-Siegler (adm) +-# +-# These guys are long since out of the terminals business, but +-# in 1995 many current terminals still have an adm type as one of their +-# emulations (usually their stupidest, and usually labeled adm3, though +-# these `adm3' emulations normally have adm3a+ capabilities). +-# +-# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a +-# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator') +-# was being held to ground would trigger a send of the top line on the screen. +-# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22 +-# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>, +-# for clearing up this point.) ++screen-256color-bce|GNU Screen with 256 colors and BCE, ++ ccc@, ++ initc@, use=xterm+256color, use=screen-bce, + +-adm1a|adm1|lsi adm1a, +- am, +- cols#80, lines#24, +- bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^, +- ind=^J, +-adm2|lsi adm2, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, +-# (adm3: removed obsolete ":ma=^K^P:" -- esr) +-adm3|lsi adm3, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J, +-# The following ADM-3A switch settings are assumed for normal operation: +-# SPACE U/L_DISP CLR_SCRN 24_LINE +-# CUR_CTL LC_EN AUTO_NL FDX +-# Other switches may be set for operator convenience or communication +-# requirements. I recommend +-# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF +-# ETX_OFF EOT_OFF +-# Most of these terminals required an option ROM to support lower case display. +-# Open the case and look at the motherboard; if you see an open 24-pin DIP +-# socket, you may be out of luck. ++screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line, ++ bce, ccc@, ++ initc@, use=xterm+256color, use=screen-s, ++ ++# ====================================================================== ++ ++# Read the fine manpage: ++# When screen tries to figure out a terminal name for ++# itself, it first looks for an entry named "screen.<term>", ++# where <term> is the contents of your $TERM variable. If ++# no such entry exists, screen tries "screen" (or "screen-w" ++# if the terminal is wide (132 cols or more)). If even this ++# entry cannot be found, "vt100" is used as a substitute. + # +-# (adm3a: some capabilities merged in from BRl entry -- esr) +-adm3a|lsi adm3a, +- OTbs, am, +- cols#80, lines#24, +- OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H, +- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, +- kcuu1=^K, rs2=^N, +-adm3a+|adm3a plus, +- kbs=^H, use=adm3a, +-# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr) +-adm5|lsi adm5, +- xmc#1, +- bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^, +- rmso=\EG, smso=\EG, use=adm3a+, +-# A lot of terminals other than adm11s use these. Wherever you see +-# use=adm+sgr with some of its capabilities disabled, try the +-# disabled ones. They may well work but not have been documented or +-# expressed in the using entry. We'd like to cook up an <sgr> but the +-# <rmacs>/<smacs> sequences of the using entries vary too much. +-adm+sgr|adm style highlight capabilities, +- invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0, +- smso=\EG4, smul=\EG8, +-# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL +-# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs> +-# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. <clear> could also +-# be ^Z, according to his entry. +-# (adm11: <smul>=\EG4 was obviously erroneous because it also said +-# <rev>=\EG4. Looking at other ADMs confirms this -- esr) +-adm11|LSI ADM-11, +- OTbs, am, hs, +- OTkn#8, cols#80, lines#24, +- OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H, +- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I, +- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E), +- use=adm+sgr, +-# From: Andrew Scott Beals <bandy@lll-crg.ARPA> +-# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995 +-# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996 +-# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had +-# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost> +-# via BRL. That entry asserted <xmc#1>, but I've left that out because +-# neither earlier nor later ADMSs have it -- esr) ++# Notwithstanding the manpage, screen uses its own notion of the termcap ++# and some keys from "screen.<term>" are ignored. Here is an entry which ++# covers those (tested with screen 4.00.02) -TD ++screen+fkeys|function-keys according to screen, ++ kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@, ++ khome=\E[1~, kslt@, + # +-# You will need to get into the supervisor setup before you can set +-# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should +-# see a lot more setup options. ++# Here are a few customized entries which are useful -TD + # +-# While in supervisor setup you can also use following codes: ++# Notes: ++# (a) screen does not support invis. ++# (b) screen's implementation of bw is incorrect according to tack. ++# (c) screen appears to hardcode the strings for khome/kend, making it ++# necessary to override the "use=" clause's values (screen+fkeys). ++# (d) screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry, ++# which is NOT the same as the terminfo screen.<term>. ++# (e) when screen finds one of these customized entries, it sets $TERM to ++# match. Hence, no "screen.xterm" entry is provided, since that would ++# create heartburn for people running remote xterm's. + # +-# Ctrl-P Personality character selections (configure for example what +-# arrow keys send, if I recall correctly) +-# Ctrl-T tabs 1-80 use left&right to move and up to set and +-# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor +-# Ctrl-B Binary setup (probably not needed. I think that everything can +-# be set using normal setup) +-# Ctrl-A Answerback mode (enter answerback message) +-# Ctrl-U User friendly mode (normal setup) +-# Ctrl-D Defaults entire setup and function keys from EPROM tables +-# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds. +-# Ctrl-R Reads both setup and functions keys from NVM. +-# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status +-# +-# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to +-# RTS/CTS used nowadays with virtually every modem and computer. 19200 +-# bps works fine with hardware flow control. +-# +-# The following null-modem cable should fix this and enable you to use +-# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also +-# set ADM-12+ for DTR handshaking from supervisor setup. ++# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV ++# since the default translations override the built-in keycode ++# translation. They are suppressed here to show what is tested by tack. ++screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm, ++ bce@, bw, ++ invis@, kIC@, kNXT@, kPRV@, meml@, memu@, ++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m, ++ E3@, use=screen+fkeys, use=xterm-new, ++# xterm-r6 does not really support khome/kend unless it is propped up by ++# the translations resource. ++screen.xterm-r6|screen customized for X11R6 xterm, ++ bw, use=screen+fkeys, use=xterm-r6, ++# Color applications running in screen and TeraTerm do not play well together ++# on Solaris because Sun's curses implementation gets confused. ++screen.teraterm|disable ncv in teraterm, ++ ncv#127, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ use=screen+fkeys, use=screen, ++# Other terminals ++screen.rxvt|screen in rxvt, ++ bw, XT, ++ 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, ++screen.mrxvt|screen in mrxvt, ++ use=screen+fkeys, use=mrxvt, ++screen.vte|screen in any VTE-based terminal, ++ use=screen+fkeys, use=vte, ++screen.gnome|screen in GNOME Terminal, ++ use=screen+fkeys, use=gnome, ++screen.konsole|screen in KDE console window, ++ use=screen+fkeys, use=konsole, ++# fix the backspace key ++screen.linux|screen in linux console, ++ bw, ++ kbs=\177, kcbt@, use=screen+fkeys, use=screen, ++screen.mlterm|screen in mlterm, ++ use=screen+fkeys, use=mlterm, ++ ++# The default "screen" entry is reasonably portable, but not optimal for the ++# most widely-used terminal emulators. The "bce" capability is supported in ++# screen since 3.9.13, and when used, will require fewer characters to be sent ++# to the terminal for updates. + # +-# PC Serial ADM-12+ +-# -------- ------- +-# 2 - 3 +-# 3 - 2 +-# 4 - 5 +-# 5 - 20 +-# 6,8 - 4 +-# 7 - 7 +-# 20 - 6,8 ++# If you are using only terminals which support bce, then you can use this ++# feature in your screen configuration. + # +-adm12|lsi adm12, +- OTbs, OTpt, am, mir, +- OTug#1, cols#80, it#8, lines#24, +- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE, +- is2=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r, +- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r, +- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0, +- use=adm+sgr, +-# (adm20: removed obsolete ":kn#7:" -- esr) +-adm20|lear siegler adm20, +- OTbs, am, ++# Adding these lines to your ".screenrc" file will allow using these customized ++# entries: ++# term screen-bce ++# bce on ++# defbce on ++screen-bce.xterm-new|screen optimized for modern xterm, ++ bce, ++ ech@, use=screen.xterm-new, ++screen-bce.rxvt|screen optimized for rxvt, ++ bce, ++ ech@, use=screen.rxvt, ++screen-bce.Eterm|screen optimized for Eterm, ++ bce, ++ ech@, use=screen.Eterm, ++screen-bce.mrxvt|screen optimized for mrxvt, ++ bce, ++ ech@, use=screen.mrxvt, ++screen-bce.gnome|screen optimized for GNOME-Terminal, ++ bce, ++ ech@, use=screen.gnome, ++screen-bce.konsole|screen optimized for KDE console window, ++ bce, ++ ech@, use=screen.konsole, ++screen-bce.linux|screen optimized for linux console, ++ bce, ++ ech@, use=screen.linux, ++screen-bce.mlterm|screen optimized for mlterm, ++ bce, ++ ech@, use=screen.mlterm, ++ ++screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols, ++ cols#132, use=screen, ++ ++screen2|old VT 100/ANSI X3.64 virtual terminal, + cols#80, it#8, lines#24, +- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L, +- cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE, +- kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(, +- sgr0=\E(, smso=\E), +-adm21|lear siegler adm21, +- xmc#1, +- bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET, +- ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr, +- use=adm3a, +-# (adm22: ":em=:" was an obvious typo for ":ei=:"; also, +-# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :"; +-# removed bogus-looking \200 from before <cup>. -- esr) +-adm22|lsi adm22, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE, +- is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0, +- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5, +- lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E), +-# ADM 31 DIP Switches +-# +-# This information comes from two versions of the manual for the +-# Lear-Siegler ADM 31. +-# +-# Main board: +-# rear of case +-# +-||||-------------------------------------+ +-# + S1S2 ||S + +-# + ||3 + +-# + + +-# + ||S + +-# + ||4 + +-# + + +-# + + +-# + + +-# + + +-# + + +-# +-+ +-+ +-# + + +-# + S5 S6 S7 + +-# + == == == + +-# +----------------------------------------------+ +-# front of case (keyboard) +-# +-# S1 - Data Rate - Modem +-# S2 - Data Rate - Printer +-# ------------------------ +-# Data Rate Setting +-# ------------------- +-# 50 0 0 0 0 +-# 75 1 0 0 0 +-# 110 0 1 0 0 +-# 134.5 1 1 0 0 +-# 150 0 0 1 0 +-# 300 1 0 1 0 +-# 600 0 1 1 0 +-# 1200 1 1 1 0 +-# 1800 0 0 0 1 +-# 2000 1 0 0 1 +-# 2400 0 1 0 1 +-# 3600 1 1 0 1 +-# 4800 0 0 1 1 +-# 7200 1 0 1 1 +-# 9600 0 1 1 1 +-# x 1 1 1 1 +-# +-# S3 - Interface/Printer/Attributes +-# --------------------------------- +-# Printer Busy Control +-# sw1 sw2 sw3 +-# --------------- +-# off off off Busy not active, CD disabled +-# off off on Busy not active, CD enabled +-# off on off Busy active on J5-20, CD disabled +-# on off off Busy active on J5-19, CD disabled - Factory Set. +-# on off on Busy active on J5-19, CD enabled ++ cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, 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, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, ++ kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH, ++ nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m, ++ rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h, ++ smso=\E[3m, smul=\E[4m, tbc=\E[3g, ++# (screen3: removed unknown ":xv:LP:G0:" -- esr) ++screen3|older VT 100/ANSI X3.64 virtual terminal, ++ km, mir, msgr, ++ cols#80, it#8, lines#24, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, 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=\EM, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, ++ el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, ++ kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, ++ rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec, ++ sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m, ++ smul=\E[4m, tbc=\E[3g, ++ ++#### NCSA Telnet ++ ++# Francesco Potorti <F.Potorti@cnuce.cnr.it>: ++# NCSA telnet is one of the most used telnet clients for the Macintosh. It has ++# been maintained until recently by the National Center for Supercomputer ++# Applications, and it is feature rich, stable and free. It can be downloaded ++# from www.ncsa.edu. This terminfo description file is based on xterm-vt220, ++# xterm+sl, and the docs at NCSA. It works well. + # +-# sw4 Used in conjuction with S4 for comm interface control - Fact 0 ++# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode ++# The terminal options should be set as follows: ++# Xterm sequences ON ++# use VT wrap mode ON ++# use Emacs arrow keys OFF ++# CTRL-COMND is Emacs meta ON ++# 8 bit mode ON ++# answerback string: "ncsa-vt220-8" ++# setup keys: all disabled + # +-# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0 ++# Application mode is not used. + # +-# sw6 ON enables printer BUSY active LOW - Factory Setting +-# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses ++# Other special mappings: ++# Apple VT220 ++# HELP Find ++# HOME Insert here ++# PAGEUP Remove ++# DEL Select ++# END Prev Screen ++# PAGEDOWN Next Screen + # +-# sw7 ON - steady cursor - Factory Setting +-# OFF - blinking cursor ++# Though it supports ANSI color, NCSA Telnet uses color to represent blinking ++# text. + # +-# sw8 ON causes selected attribute character to be displayed +-# OFF causes SPACE to be displayed instead - Factory Setting +-# +-# S4 - Interface +-# -------------- +-# Modem Interface +-# S3 S4 S4 S4 S4 +-# sw4 sw1 sw2 sw3 sw4 +-# --------------------------- +-# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and +-# Current Loop disabled - Factory Setting +-# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect +-# disabled +-# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and +-# Current Loop Disabled +-# +-# sw5 ON disables dot stretching mode - Factory Setting +-# OFF enables dot stretching mode +-# sw6 ON enables blanking function +-# OFF enables underline function - Factory Setting +-# sw7 ON causes NULLS to be displayed as NULLS +-# OFF causes NULLS to be displayed as SPACES - Factory Setting +-# +-# S5 - Word Structure +-# ------------------- +-# sw1 ON enables BREAK key - Factory Setting +-# OFF disables BREAK key +-# sw2 ON selects 50Hz monitor refresh rate +-# OFF selects 60Hz monitor refresh rate - Factory Setting +-# +-# Modem Port Selection +-# sw3 sw4 sw5 +-# --------------- +-# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits +-# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits +-# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set. +-# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit +-# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits +-# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit +-# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit +-# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit +-# +-# sw6 ON sends bit 8 a 1 (mark) +-# OFF sends bit 8 as 0 (space) - Factory Setting +-# sw7 ON selects Block Mode +-# OFF selects Conversation Mode - Factory Setting +-# sw8 ON selects Full Duplex operation +-# OFF selects Half Duplex operation - Factory Setting +-# +-# S6 - Printer +-# ------------ +-# sw1, sw2, sw6, sw7 Reserved - Factory 0 +-# +-# Printer Port Selection +-# same as Modem above, bit 8 (when 8 DATA bits) is always = 0 +-# +-# sw8 ON enables Printer Port +-# OFF disables Printer Port - Factory Setting +-# +-# S7 - Polling Address +-# -------------------- +-# sw1-7 Establish ASCII character which designates terminal polling address +-# ON = logic 0 +-# OFF = logic 1 - Factory Setting +-# sw8 ON enables Polling Option +-# OFF disables Polling Option - Factory Setting ++# The status-line manipulation is a mapping of the xterm-compatible control ++# sequences for setting the window-title. So you must use tsl and fsl in ++# pairs, since the latter ends the string that is loaded to the window-title. ++ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode, ++ am, km, mir, msgr, xenl, ++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, 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, enacs=\E)0, flash=\E[?5h\E[?5l, ++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L, ++ ind=\n$<150*>, ++ is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~, ++ kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~, ++ kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, ++ kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~, ++ khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i, ++ rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM, ++ rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l, ++ rmso=\E[27m, rmul=\E[24m, ++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7, ++ smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ u8=\E[?62;1;6c, use=xterm+sl, use=ansi+enq, ++ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode, ++ use=ncsa-m, use=klone+color, ++ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode, ++ hs@, ++ dsl@, fsl@, tsl@, use=ncsa, ++ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode, ++ hs@, ++ dsl@, fsl@, tsl@, use=ncsa-m, ++# alternate -TD: ++# The documented function-key mapping refers to the Apple Extended Keyboard ++# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style ++# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on ++# some keyboards and many applications require these as F1-F4. + # ++ncsa-vt220|NCSA Telnet using vt220-compatible function keys, ++ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, ++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, ++ kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, use=ncsa, ++ ++#### Pilot Pro Palm-Top + # +-# On some older adm31s, S4 does not exist, and S5-sw6 is not defined. ++# Termcap for Top Gun Telnet and SSH on the Palm Pilot. ++# http://www.ai/~iang/TGssh/ ++pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional, ++ OTbs, am, xenl, ++ cols#39, lines#16, ++ bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J, ++ cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I, ++ ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s, ++ rmso=\EB, smso=\Eb, ++ ++# From: Federico Bianchi <bianchi@www.arte.unipi.it> ++# These entries are for the Embeddable Linux Kernel System (ELKS) ++# project - an heavily stripped down Linux to be run on 16 bit ++# boxes or, eventually, to be used in embedded systems - and have been ++# adapted from the stock ELKS termcap. The project itself looks stalled, ++# and the latest improvements I know of date back to March 2000. + # +-# This adm31 entry uses underline as the standout mode. +-# If the adm31 gives you trouble with standout mode, check the DIP switch in +-# position 6, bank @c11, 25% from back end of the circuit board. Should be +-# OFF. If there is no such switch, you have an old adm31 and must use oadm31. +-# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) +-adm31|lsi adm31 with sw6 set for underline mode, +- OTbs, am, mir, +- cols#80, lines#24, +- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r, +- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r, +- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0, +- rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1, +-adm31-old|o31|old adm31, +- rmul@, smso=\EG4, smul@, use=adm31, +-# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL +-adm36|LSI ADM36, +- OTbs, OTpt, +- OTkn#4, +- if=/usr/share/tabset/vt100, +- is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l, +- use=vt100, +-# (adm42: removed obsolete ":ma=^K^P:" -- esr) +-adm42|lsi adm42, ++# To cope with the ELKS dumb console I added an "elks-glasstty" entry; ++# as an added bonus, this deals with all the capabilities common to ++# both VT52 and ANSI (or, eventually, "special") modes. ++ ++elks-glasstty|ELKS glass-TTY capabilities, + OTbs, am, +- cols#80, lines#24, +- bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I, +- il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J, +- kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@, +- smir=\Eq, smul@, use=adm+sgr, +-# The following termcap for the Lear Siegler ADM-42 leaves the +-# "system line" at the bottom of the screen blank (for those who +-# find it distracting otherwise) +-adm42-ns|lsi adm-42 with no system line, +- cbt=\EI\EF \011, clear=\E;\EF \011, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011, +- dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011, +- el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011, +- smir=\Eq\EF \011, use=adm42, +-# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985. +-# The insert mode of this terminal is commented out because it's broken for our +-# purposes in that it will shift the position of every character on the page, +-# not just the cursor line! +-# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996 +-adm1178|1178|lsi adm1178, +- am, +- cols#80, lines#24, xmc#1, +- bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, +- home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H, +- kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0, +- sgr0=\E), smso=\EG4, smul=\EG1, ++ cols#80, it#8, lines#25, ++ bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ++ nel=^M^J, + +-#### Prime +-# +-# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings +-# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr. +-# Prime merged with ComputerVision in the late 1980s; you can reach them at: +-# +-# ComputerVision Services +-# 500 Old Connecticut Path +-# Framingham, Mass. +-# ++elks-vt52|ELKS vt52 console, ++ clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK, ++ home=\EH, use=elks-glasstty, + +-# Standout mode is dim reverse-video. +-pt100|pt200|wren|fenix|prime pt100/pt200, +- am, bw, mir, msgr, +- cols#80, it#8, lines#24, +- cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA, +- cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M, +- ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P, +- home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J, +- rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, +- smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q, +- smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m, +-pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH, use=pt100, +-pt250|Prime PT250, +- rmso@, smso@, use=pt100, +-pt250w|Prime PT250 in 132-column mode, +- rmso@, smso@, use=pt100w, ++elks-ansi|ELKS ANSI console, ++ clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, ++ rmso=\E[m, smso=\E[7m, use=elks-glasstty, + +-#### Qume (qvt) ++# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation ++# instead of VT52, but the "elks" entry still refers to the latter. ++ ++elks|default ELKS console, ++ use=elks-vt52, ++ ++# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS ++# one but in screen size ++ ++sibo|ELKS SIBO console, ++ cols#61, it#8, lines#20, use=elks-vt52, ++ ++######## COMMERCIAL WORKSTATION CONSOLES + # +-# Qume, Inc. +-# 3475-A North 1st Street +-# San Jose CA 95134 +-# Vox: (800)-457-4447 +-# Fax: (408)-473-1510 +-# Net: josed@techsupp.wyse.com (Jose D'Oliveira) ++ ++#### Alpha consoles + # +-# Qume was bought by Wyse, but still (as of early 1995) has its own support +-# group and production division. +-# +-# Discontinued Qume models: +-# +-# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+ +-# built to replace them, and a qvt119+ which was a 101+ with available wide +-# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations +-# and an ANSI-compatible qvt203 that replaced it. Qume started producing +-# ANSI-compatible terminals with the qvt323 and qvt61. +-# +-# Current Qume models (as of February 1995): +-# +-# All current Qume terminals have ANSI-compatible operation modes. +-# Qume is still producing the qvt62, which features emulations for other +-# popular lines such as ADDS, and dual-host capabilities. The qvt82 is +-# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal +-# with many emulations including Wyse370, Wyse 325, etc. Their newest +-# model is the qvt520, which is vt420-compatible. +-# +-# There are some ancient printing Qume terminals under `Daisy Wheel Printers' +-# +-# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its +-# setup mode. Shift-s should be a configuration save to NVRAM. + +-qvt101|qvt108|qume qvt 101 and QVT 108, +- xmc#1, use=qvt101+, ++# This is from the OSF/1 Release 1.0 termcap file ++pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation, ++ am, xon, ++ cols#80, lines#25, ++ bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, ++ el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ++ nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m, + +-# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap +-# file had <cvvis=\EM4 \200\200\200>. I've done the safe thing and yanked +-# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E). +-# What seems to be going on here is that this entry was designed so that +-# the normal highlight is bold and standout is dim plus something else +-# (reverse-video maybe? But then, are there two <rev> sequences?) +-qvt101+|qvt101p|qume qvt 101 PLUS product, +- am, bw, hs, ul, +- cols#80, lines#24, xmc#0, +- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET, +- flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1, +- ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET, +- kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, +- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, +- khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(, +- smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr, +-qvt102|qume qvt 102, +- cnorm=\E., use=qvt101, +-# (qvt103: added <rmam>/<smam> based on init string -- esr) +-qvt103|qume qvt 103, +- am, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[2J$<50>, 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$<2>, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, +- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, +- hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, +- rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>, +- rmso=\E[m$<2>, rmul=\E[m$<2>, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>, +- sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=, +- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, +-qvt103-w|qume qvt103 132 cols, +- cols#132, lines#24, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103, +-qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals, +- am, hs, mir, msgr, +- cols#80, lines#24, xmc#0, +- bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H, +- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, +- el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I, +- hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX, +- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, +- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8, +- tbc=\E3, tsl=\Eg\Ef, use=adm+sgr, +-qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines, +- lines#25, use=qvt119+, +-qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode, +- cols#132, +- is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+, +-qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25, +- lines#25, use=qvt119+, +-qvt203|qvt203+|qume qvt 203 Plus, +- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>, +- ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~, +- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, +- kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103, +-qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video), +- cols#132, lines#24, +- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203, +-# +-# Since a command is present for enabling 25 data lines, +-# a specific terminfo entry may be generated for the 203. +-# If one is desired for the QVT 119 PLUS then 25 lines must +-# be selected in the status line (setup line 9). ++#### Sun consoles + # +-qvt203-25|QVT 203 PLUS with 25 by 80 column mode, +- cols#80, lines#25, +- is2=\E[=40h\E[?3l, use=qvt203, +-qvt203-25-w|QVT 203 PLUS with 25 by 132 columns, +- cols#132, lines#25, +- rs2=\E[?3h\E[=40h, use=qvt203, + +-#### Televideo (tvi) ++# :is1: resets scrolling region in case a previous user had used "tset vt100" ++oldsun|Sun Microsystems Workstation console, ++ OTbs, am, km, mir, msgr, ++ cols#80, it#8, lines#34, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, ++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I, ++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ++ rmso=\E[m, sgr0=\E[m, smso=\E[7m, ++# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995 ++# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com> ++# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998) ++sun-il|Sun Microsystems console with working insert-line, ++ am, km, msgr, ++ cols#80, lines#34, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, ++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I, ++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z, ++ kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z, ++ kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z, ++ kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z, ++ kich1=\E[247z, knp=\E[222z, kopt=\E[194z, kpp=\E[216z, ++ kres=\E[193z, kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, ++ rs2=\E[s, sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, ++ smso=\E[7m, u8=\E[1t, u9=\E[11t, ++# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il> ++# flake out on the last line. Unfortunately, without them the terminal has no ++# way to scroll. ++sun-cgsix|sun-ss5|Sun SparcStation 5 console, ++ il@, il1@, use=sun-il, ++# If you are using an SS5, change the sun definition to use sun-ss5. ++sun|sun1|sun2|Sun Microsystems Inc. workstation console, ++ use=sun-il, ++ ++sun+sl|Sun Workstation window status line, ++ hs, ++ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, ++ ++# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985 ++sun-s|Sun Microsystems Workstation window with status line, ++ hs, ++ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun, ++sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs, ++ hs, ++ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e, ++sun-48|Sun 48-line window, ++ cols#80, lines#48, use=sun, ++sun-34|Sun 34-line window, ++ cols#80, lines#34, use=sun, ++sun-24|Sun 24-line window, ++ cols#80, lines#24, use=sun, ++sun-17|Sun 17-line window, ++ cols#80, lines#17, use=sun, ++sun-12|Sun 12-line window, ++ cols#80, lines#12, use=sun, ++sun-1|Sun 1-line window for sysline, ++ eslok, hs, ++ cols#80, lines#1, ++ dsl=^L, fsl=\E[K, tsl=^M, use=sun, ++sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character, ++ ich1@, rmir@, smir@, use=sun, ++sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history, ++ lines#35, ++ rmcup=\E[>4h, smcup=\E[>4l, use=sun, ++sun-type4|Sun Workstation console with type 4 keyboard, ++ kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z, ++ kcuu1=\E[215z, use=sun-il, ++ ++# Most of the current references to sun-color are from users wondering why this ++# is the default on install. Details from reading the wscons manpage, adding ++# cub, etc., here (rather than in the base sun-il entry) since it is not clear ++# when those were added -TD (2005-05-28) + # +-# TeleVideo +-# 550 East Brokaw Road +-# PO Box 49048 95161 +-# San Jose CA 95112 +-# Vox: (408)-954-8333 +-# Fax: (408)-954-0623 ++# According to wscons manpage, color is supported only on IA systems. ++# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons ++# does not list these. It also sets ncv#3, however that corresponds to ++# underline and standout. + # ++# Since the documentation and terminfo do not agree, see also current code at ++# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c + # +-# These require incredible amounts of padding. ++# That (actually a different driver which "supports" sun-color) also supports ++# these features: ++# vpa=\E[%i%p1%dd ++# hpa=\E[%i%p1%d` ++# cbt=\E[Z ++# dim=\E[2m ++# blink=\E[5m ++# It supports bold, but not underline -TD (2009-09-19) ++sun-color|Sun Microsystems Workstation console with color support (IA systems), ++ colors#8, ncv#3, pairs#64, ++ bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC, ++ cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, ++ 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%;%?%p1%p3%|%t;7%;m, sgr0=\E[m, ++ smso=\E[7m, use=sun, ++ ++#### Iris consoles + # +-# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer +-# Televideo terminals are ANSI and PC-ANSI compatible. + +-tvi803|televideo 803, +- clear=\E*$<10>, use=tvi950, ++# (wsiris: this had extension capabilities ++# :HS=\E7F2:HE=\E7F7:\ ++# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite: ++# See the note on Iris extensions near the end of this file. ++# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> & ++# <flash> from BRL -- esr) ++wsiris|iris40|iris emulating a 40 line visual 50 (approximately), ++ OTbs, OTnc, OTpt, am, ++ OTkn#3, cols#80, it#8, lines#40, ++ OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB, ++ cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ++ cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK, ++ flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL, ++ ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, ++ kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI, ++ rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P, ++ smul=\E7R2\E9P, + +-# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86 +-# Switch settings are: +-# +-# S1 1 2 3 4 +-# D D D D 9600 +-# D D D U 50 +-# D D U D 75 +-# D D U U 110 +-# D U D D 135 +-# D U D U 150 +-# D U U D 300 +-# D U U U 600 +-# U D D D 1200 +-# U D D U 1800 +-# U D U D 2400 +-# U D U U 3600 +-# U U D D 4800 +-# U U D U 7200 +-# U U U D 9600 +-# U U U U 19200 ++#### NeWS consoles + # +-# S1 5 6 7 8 +-# U D X D 7N1 (data bits, parity, stop bits) (X means ignored) +-# U D X U 7N2 +-# U U D D 7O1 +-# U U D U 7O2 +-# U U U D 7E1 +-# U U U U 7E2 +-# D D X D 8N1 +-# D D X U 8N2 +-# D U D D 8O1 +-# D U U U 8E2 ++# Console terminal windows under the NeWS (Sun's Display Postscript windowing ++# environment). Note: these have nothing to do with Sony's News workstation ++# line. + # +-# S1 9 Autowrap +-# U on +-# D off ++ ++# Entry for NeWS's psterm from Eric Messick & Hugh Daniel ++# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr) ++psterm|psterm-basic|NeWS psterm-80x34, ++ OTbs, am, hs, km, ul, ++ cols#80, it#8, lines#34, ++ blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;, ++ cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY, ++ dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl, ++ home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr, ++ ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^], ++ sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu, ++ tsl=\EOl, ++psterm-96x48|NeWS psterm 96x48, ++ cols#96, lines#48, use=psterm, ++psterm-90x28|NeWS psterm 90x28, ++ cols#90, lines#28, use=psterm, ++psterm-80x24|NeWS psterm 80x24, ++ cols#80, lines#24, use=psterm, ++# This is a faster termcap for psterm. Warning: if you use this termcap, ++# some control characters you type will do strange things to the screen. ++# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr) ++psterm-fast|NeWS psterm fast version (flaky ctrl chars), ++ OTbs, am, hs, km, ul, ++ cols#80, it#8, lines#34, ++ blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;, ++ cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y, ++ dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I, ++ il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni, ++ rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi, ++ smso=^Oo, smul=^Ou, tsl=^Ol, ++ ++#### NeXT consoles + # +-# S1 10 CR/LF +-# U do CR/LF when CR received +-# D do CR when CR received ++# Use `glasstty' for the Workspace application + # +-# S2 1 Mode +-# U block +-# D conversational ++ ++# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995 ++next|NeXT console, ++ am, xt, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, ++ ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, ++ rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m, ++nextshell|NeXT Shell application, ++ am, ++ cols#80, ++ bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H, ++ kcud1=^J, nel=^M^J, ++ ++#### Sony NEWS workstations + # +-# S2 2 Duplex +-# U half +-# D full ++ ++# (news-unk: this had :KB=news: -- esr) ++news-unk|SONY NEWS vt100 emulator common entry, ++ OTbs, OTpt, am, xenl, ++ cols#80, ++ OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, ++ cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, ++ if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L, ++ is2=\E[?7h\E[?1h\E[?3l\E7\E8, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, ++ kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM, ++ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7, ++ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, + # +-# S2 3 Hertz +-# U 50 +-# D 60 ++# (news-29: this had :TY=ascii: --esr) ++news-29, ++ lines#29, use=news-unk, ++# (news-29-euc: this had :TY=euc: --esr) ++news-29-euc, ++ use=news-29, ++# (news-29-sjis: this had :TY=sjis: --esr) ++news-29-sjis, ++ use=news-29, + # +-# S2 4 Edit mode +-# U local +-# D duplex ++# (news-33: this had :TY=ascii: --esr) ++news-33, ++ lines#33, use=news-unk, ++# (news-33-euc: this had :TY=euc: --esr) ++news-33-euc, ++ use=news-33, ++# (news-33-sjis: this had :TY=sjis: --esr) ++news-33-sjis, ++ use=news-33, + # +-# S2 5 Cursor type +-# U underline +-# D block ++# (news-42: this had :TY=ascii: --esr) ++news-42, ++ lines#42, use=news-unk, ++# (news-42-euc: this had :TY=euc: --esr) ++news-42-euc, ++ use=news-42, ++# (news-42-sjis: this had :TY=sjis: --esr) ++news-42-sjis, ++ use=news-42, + # +-# S2 6 Cursor down key +-# U send ^J +-# D send ^V ++# NEWS-OS old termcap entry + # +-# S2 7 Screen colour +-# U green on black +-# D black on green ++# (news-old-unk: this had :KB=news:TY=sjis: --esr) ++news-old-unk|SONY NEWS vt100 emulator common entry, ++ OTbs, OTpt, am, xenl, ++ cols#80, vt#3, ++ OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J, ++ cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM, ++ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, + # +-# S2 8 DSR status (pin 6) +-# U disconnected +-# D connected ++# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr) ++nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines, ++ OTbs, ++ lines#40, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8, ++ use=news-old-unk, + # +-# S2 9 DCD status (pin 8) +-# U disconnected +-# D duplex ++# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr) ++nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line, ++ lines#42, ++ is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8, ++ use=news-old-unk, + # +-# S2 10 DTR status (pin 20) +-# U disconnected +-# D duplex +-# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>, +-# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr) +-tvi910|televideo model 910, +- OTbs, am, msgr, +- cols#80, it#8, lines#24, xmc#1, +- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET, +- home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I, +- if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- vpa=\E[%p1%{32}%+%c, use=adm+sgr, +-# From: Alan R. Rogers <rogers%albany@csnet-relay> +-# as subsequently hacked over by someone at SCO +-# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr) ++# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr) ++nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines, ++ OTbs, ++ lines#40, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8, ++ use=news-old-unk, + # +-# Here are the 910+'s DIP switches (U = up, D = down, X = don't care): ++# (nwp513: this had :DE=^H: and the alias vt100-bm --esr) ++nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines, ++ OTbs, ++ lines#31, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8, ++ use=news-old-unk, + # +-# S1 1 2 3 4: +-# D D D D 9600 D D D U 50 D D U D 75 D D U U 110 +-# D U D D 135 D U D U 150 D U U D 300 D U U U 600 +-# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600 +-# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200 ++# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr) ++# also the alias vt100-bm. ++nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines, ++ OTbs, ++ lines#33, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8, ++ use=news-old-unk, + # +-# S1 5 6 7 8: +-# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2 +-# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2 +-# D U D D 8O1 D U U U 8E2 ++# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr) ++nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines, ++ OTbs, ++ lines#31, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8, ++ use=news-old-unk, + # +-# S1 9 Autowrap (U = on, D = off) +-# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received) +-# S2 1 Mode (U = block, D = conversational) +-# S2 2 Duplex (U = half, D = full) +-# S2 3 Hertz (U = 50, D = 60) +-# S2 4 Edit mode (U = local, D = duplex) +-# S2 5 Cursor type (U = underline, D = block) +-# S2 6 Cursor down key (U = send ^J, D = send ^V) +-# S2 7 Screen colour (U = green on black, D = black on green) +-# S2 8 DSR status (pin 6) (U = disconnected, D = connected) +-# S2 9 DCD status (pin 8) (U = disconnected, D = connected) +-# S2 10 DTR status (pin 20) (U = disconnected, D = connected) ++# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr) ++news28|sony vt100 emulator 28 lines, ++ OTbs, ++ lines#28, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8, ++ use=news-old-unk, + # +-tvi910+|televideo 910+, +- dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>, +- kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, +- kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, +- ll=\E=7\s, use=tvi910, +- +-# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and +-# <khome> from BRL entry -- esr) +-tvi912|tvi914|tvi920|old televideo 912/914/920, +- OTbs, OTpt, am, msgr, +- cols#80, it#8, lines#24, xmc#1, +- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^, +- ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt, +- il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, +- kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, +- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, +- kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El, +- tbc=\E3, +-# We got some new tvi912c terminals that act really weird on the regular +-# termcap, so one of our gurus worked this up. Seems that cursor +-# addressing is broken. +-tvi912cc|tvi912 at cowell college, +- cup@, use=tvi912c, +- +-# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C +-# From: Benjamin C. W. Sittler +-# +-# Someone has put a scanned copy of the manual online at: +-# http://vt100.net/televideo/912b-om/ +-# +-# These terminals were produced ca. 1979, and had a 12" monochrome +-# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit +-# ASCII, and were generally similar to adm3a but with attributes +-# (including some with magic cookies), fancy half-duplex mode, and +-# different bugs. +-# +-# Some operations reqire truly incredible amounts of padding. The +-# insert_line (<il1>) and delete_line (<dl1>) operations in particular +-# are so slow as to be nearly unusable. ++# (news29: this had :TY=ascii:KB=nws1200:\ --esr) ++news29|news28-a|sony vt100 emulator 29 lines, ++ lines#29, ++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8, ++ use=news-old-unk, + # +-# There may or may not have been a separate, earlier series of 912/920 +-# terminals (without the "B" and "C" suffix); I have never seen one, +-# and the manual only describes the "B" and "C" series. The 912 and 920 +-# are quite distinct from the 914 and 924, which were much nicer non- +-# magic-cookie terminals similar to the 950. ++# (news511: this had :TY=sjis: --esr) ++nwp511|nwp-511|nwp-511 vt100, ++ OTbs, OTpt, am, xenl, ++ cols#80, lines#24, ++ clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M, ++ ed=\E[J$<30/>, el=\E[K$<3/>, ++ flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l, ++ il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, ++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H, ++ ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>, ++ rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h, ++ smso=\E[7m$<2/>, smul=\E[4m$<2/>, ++# (news517: this had :TY=sjis:. --esr) ++nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows, ++ eslok, hs, ++ cols#80, lines#30, ++ OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$}, ++ is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ tsl=\E[1$}\E[;%df, use=vt200, ++# (news517-w: this had :TY=sjis:. --esr) ++nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows, ++ eslok, hs, ++ cols#132, lines#50, ++ OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$}, ++ is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, ++ tsl=\E[1$}\E[;%df, use=vt200, ++ ++#### Common Desktop Environment + # +-# This is a new description for the following TeleVideo terminals, +-# distinguished chiefly by their keyboards: ++ ++# This ships with Sun's CDE in Solaris 2.5 ++# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net> ++dtterm|CDE desktop terminal, ++ am, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, lm#0, ncv@, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h, 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, dim=\E[2m, dl=\E[%p1%dM, ++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, ++ enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H, ++ ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ++ ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l, ++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m, ++ sc=\E7, ++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color, ++ ++######## Non-Unix Consoles + # +-# TVI-912B - very odd layout, no function keys (84 keys) +-# TVI-920B - typewriter layout, no function keys (103 keys) +-# TVI-912C - very odd layout, function keys F1-F11 (82 keys) +-# TVI-920C - typewriter layout, function keys F1-F11 (101 keys) ++ ++#### EMX termcap.dat compatibility modes + # +-# To choose a setting for the TERM variable, start with the model: ++# 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, 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 ++# names longer than 14 characters, the nominal maximum). + # +-# Model || base name +-# ----------||----------- +-# TVI-912B || tvi912b +-# TVI-912C || tvi912c +-# TVI-920B || tvi920b +-# TVI-920C || tvi920c ++# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs. ++ansi-emx|ANSI.SYS color, ++ am, bce, eo, mir, msgr, xon, ++ colors#8, cols#80, it#8, lines#25, pairs#64, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, ++ cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, ++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J, ++ kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J, ++ rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m, ++ rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m, ++ smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c, ++ u9=\E[c, use=emx-base, ++# nice colors for Emacs (white on blue, mode line white on cyan) ++ansi-color-2-emx|ANSI.SYS color 2, ++ clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m, ++ rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec, ++ setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m, ++ smul=\E[1;36;44m, use=ansi-emx, ++# nice colors for Emacs (white on black, mode line black on cyan) ++ansi-color-3-emx|ANSI.SYS color 3, ++ clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m, ++ rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec, ++ setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m, ++ smul=\E[0;36;40m, use=ansi-emx, ++mono-emx|stupid monochrome ansi terminal with only one kind of emphasis, ++ am, ++ cols#80, it#8, lines#24, ++ clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, ++ ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, ++ kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, ++ kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, ++ kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m, ++ sgr0=\E[0m, ++ ++#### Cygwin ++ ++# Use this for cygwin32 (tested with beta 19.1) ++# underline is colored bright magenta ++# shifted kf1-kf12 are kf11-kf22 ++cygwinB19|ansi emulation for cygwin32, ++ 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[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, ++ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, ++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@, ++ use=ansi.sys, ++ ++# Use this for cygwin (tested with version 1.1.0). ++# I've combined pcansi and linux. Some values of course were different and ++# I've indicated which of these were and which I used. ++# Cheers, earnie_boyd@yahoo.com ++# several changes based on running with tack and comparing with older entry -TD ++# more changes from csw: ++# add cbt [backtab] ++# remove eo [erase overstrike with blank] ++# change clear was \E[H\E[J now \E[2J (faster?) ++# remove cols ++# remove lines ++# remove ncv#3 [colors collide with highlights, bitmask] not applicable ++# to MSDOS box? ++# add cub [cursor back param] ++# add cuf [cursor forward param] ++# add cuu [cursor up param] ++# add cud [cursor down param] ++# add hs [has status line] ++# add fsl [return from status line] ++# add tsl [go to status line] ++# add smacs [Start alt charset] (not sure if this works) ++# add rmacs [End alt charset] (ditto) ++# add smcup [enter_ca_mode] (save console; thanks Corinna) ++# add rmcup [exit_ca_mode] (restore console; thanks Corinna) ++# add kb2 [center of keypad] ++# add u8 [user string 8] \E[?6c ++# add el [clear to end of line] \E[K ++# Notes: ++# cnorm [make cursor normal] not implemented ++# flash [flash] not implemented ++# blink [blink] not implemented very usefully in cygwin? \E[5m ++# dim [dim] not implemented very usefully in cygwin? \E[2m ++# cub1 [cursor back 1] typically \E[D, but ^H is faster? ++# kNXT [shifted next key] not implemented ++# kPRV [shifted prev key] not implemented ++# khome [home key] really is \E[1~ NOT \E[H ++# tbc [clear tab stops] not implemented ++# xenl [newline ignnored after 80 cols] messes up last line? Ehud Karni ++# smpch [Start PC charset] is \E[11m, same as smacs ++# rmpch [End PC charset] is \E[10m, same as rmacs ++# mir [move in insert mode] fails in tack? ++# bce [back color erase] causes problems with change background color? ++# cvvis [make cursor very visible] causes a stackdump when testing with ++# testcurs using the output option? \E[?25h\E[?8c ++# civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c ++# ech [erase characters param] broken \E[%p1%dX ++# kcbt [back-tab key] not implemented in cygwin? \E[Z + # +-# Then add a suffix from the following table describing installed options +-# and how you'd like to use the terminal: ++# 2005/11/12 -TD ++# Remove cbt since it does not work in current cygwin ++# Add 'mir' and 'in' flags based on tack ++cygwin|ansi emulation for Cygwin, ++ am, hs, mir, msgr, xon, ++ colors#8, it#8, pairs#64, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, ++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, 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, fsl=^G, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, ++ kbs=^H, 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[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, ++ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, ++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, ++ nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, ++ rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, ++ rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, ++ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, ++ sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h, ++ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, ++ vpa=\E[%i%p1%dd, use=vt102+enq, ++ ++# I've supplied this so that you can help test new values and add other ++# features. Cheers, earnie_boyd@yahoo.com. + # +-# Use Video | Second | Visual | Magic | Page || feature +-# Attributes | Page | Bell | Cookies | Print || suffix +-# ------------|--------|--------|---------|-------||--------- +-# No | No | N/A | N/A | No || -unk +-# No | No | N/A | N/A | Yes || -p +-# No | Yes | No | N/A | No || -2p-unk +-# No | Yes | No | N/A | Yes || -2p-p +-# No | Yes | Yes | N/A | No || -vb-unk +-# No | Yes | Yes | N/A | Yes || -vb-p +-# Yes | No | N/A | No | N/A || +-# Yes | No | N/A | Yes | N/A || -mc +-# Yes | Yes | No | No | N/A || -2p +-# Yes | Yes | No | Yes | N/A || -2p-mc +-# Yes | Yes | Yes | No | N/A || -vb +-# Yes | Yes | Yes | Yes | N/A || -vb-mc +-# +-# So e.g. a model 920 C with second page memory option, visual bell +-# and no magic cookies would be tvi920c-vb; a model 912 B without the +-# second page memory option and using magic cookies would be +-# tvi912b-mc +-# +-# PADDING +-# +-# At 9600 baud, the terminal is prone to overflow its input buffer +-# during complex operations (insert/delete +-# character/line/screen/page), and it does not signal this over the +-# RS232 cable. The typical symptom of an overrun is that the terminal +-# starts beeping, and output becomes garbled. +-# +-# The padding delays in this terminfo were derived using tack(1) +-# running on a Linux box connected to a TVI-920C with a later-model +-# (A49C1-style) ROM running at 9600 baud, so your mileage may +-# vary. The numbers below seem to give the terminal enough time so +-# that it doesn't overflow its input buffer and start losing +-# characters. +-# +-# KEYS +-# +-# If you want to use the FUNCT key on a tvi912[bc], use the +-# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from +-# the following table (these also work on the 920 series): +-# +-# Unshifted Function Keys: +-# +-# Key | capname|| Equivalent +-# -----|--------||------------ +-# F1 | <kf1> || FUNCT + @ +-# F2 | <kf2> || FUNCT + A +-# F3 | <kf3> || FUNCT + B +-# F4 | <kf4> || FUNCT + C +-# F5 | <kf5> || FUNCT + D +-# F6 | <kf6> || FUNCT + E +-# F7 | <kf7> || FUNCT + F +-# F8 | <kf8> || FUNCT + G +-# F9 | <kf9> || FUNCT + H +-# F10 | <kf10> || FUNCT + I +-# F11 | <kf11> || FUNCT + J +-# +-# Shifted Function Keys: +-# +-# SHIFT + Key | capname|| Equivalent +-# -------------|--------||------------ +-# SHIFT + F1 | <kf12> || FUNCT + ` +-# SHIFT + F2 | <kf13> || FUNCT + a +-# SHIFT + F3 | <kf14> || FUNCT + b +-# SHIFT + F4 | <kf15> || FUNCT + c +-# SHIFT + F5 | <kf16> || FUNCT + d +-# SHIFT + F6 | <kf17> || FUNCT + e +-# SHIFT + F7 | <kf18> || FUNCT + f +-# SHIFT + F8 | <kf19> || FUNCT + g +-# SHIFT + F9 | <kf20> || FUNCT + h +-# SHIFT + F10 | <kf21> || FUNCT + i +-# SHIFT + F11 | <kf22> || FUNCT + j +-# +-# PORTS AND SWITCH SETTINGS +-# +-# Here are the switch settings for the TVI-912B/TVI-920B and +-# TVI-912C/TVI-920C: +-# +-# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down: +-# 2: 9600 3: 4800 4: 2400 5: 1200 +-# 6: 600 7: 300 8: 150 9: 75 +-# 10: 110 +-# +-# S2 UART/Terminal options: +-# Up Down +-# 1: Not used Not allowed +-# 2: Alternate character set Standard character set +-# 3: Full duplex Half duplex +-# 4: 50 Hz refresh 60 Hz refresh +-# 5: No parity Send parity +-# 6: 2 stop bits 1 stop bit +-# 7: 8 data bits 7 data bits +-# 8: Not used Not allowed on Rev E or lower +-# 9: Even parity Odd parity +-# 10: Steady cursor Blinking cursor +-# (On Rev E or lower, use W25 instead of switch 10.) +-# +-# S5 UART/Terminal options: +-# Open Closed +-# 1: P3-6 Not connected DSR received on P3-6 +-# 2: P3-8 Not connected DCD received on P3-8 +-# +-# 3 Open, 4 Open: P3-20 Not connected +-# 3 Open, 4 Closed: DTR on when terminal is on +-# 3 Closed, 4 Open: DTR is connected to RTS +-# 3 Closed, 4 Closed: Not allowed +-# +-# 5 Closed: HDX printer (hardware control) Rev. K with extension port off, +-# all data transmitted out of the modem port (P3) will also be +-# transmitted out of the printer port (P4). +-# +-# 6 Open, 7 Open: Not allowed +-# 6 Open, 7 Closed: 20ma current loop input +-# 6 Closed, 7 Open: RS232 input +-# 6 Closed, 7 Closed: Not allowed +-# +-# Jumper options: +-# If the jumper is installed, the effect will occur (the next time the terminal +-# is switched on). ++# Some features are from pcansi. The op value is from linux. Function-keys ++# are from linux. These have been tested not to cause problems. xenl was in ++# this list, but DOES cause problems so it has been removed ++cygwinDBG|Debug Version for Cygwin, ++ am, eo, mir, msgr, xon, ++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, ++ cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, 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, dim=\E[2m, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG, ++ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$, ++ kb2=\E[G, kbs=^H, kcbt=\E[Z, 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[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, ++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, ++ knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, ++ rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l, ++ rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7, ++ 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%;%?%p5%t;2%;%?%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[3g, vpa=\E[%i%p1%dd, use=vt102+enq, ++ ++#### DJGPP ++ ++# Key definitions: ++# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc. match the ++# encodings used by other x86 environments. All others are invented for DJGPP. ++# Oddly enough, while several combinations of modifiers are tabulated, there is ++# none for shifted cursor keys. + # +-# S4/W31: Enables automatic LF upon receipt of CR from +-# remote or keyboard. +-# S4/W32: Enables transmission of EOT at the end of Send. If not +-# installed, a carriage return is sent. +-# S4/W33: Disables automatic carriage return in column 80. +-# S4/W34: Selects Page Print Mode as initial condition. If not +-# installed, Extension Mode is selected. ++# F1 \E[[A ++# F2 \E[[B ++# F3 \E[[C ++# F4 \E[[D ++# F5 \E[[E ++# F6 \E[17~ ++# F7 \E[18~ ++# F8 \E[19~ ++# F9 \E[20~ ++# F10 \E[21~ ++# F11 \E[23~ ++# F12 \E[24~ + # +-# NON-STANDARD CAPABILITIES ++# Delete \E[3~ ++# Down Arrow \E[B ++# End \E[4~ ++# Home \E[1~ ++# Insert \E[2~ ++# Left Arrow \E[D ++# Page Down \E[6~ ++# Page Up \E[5~ ++# Right Arrow \E[C ++# Up Arrow \E[A + # +-# Sending <u9> or <u7> returns a cursor position report in the format +-# YX\r, where Y and X are as in <cup>. This format is described in +-# <u8> and <u6>, but it's not clear how one should write an +-# appropriate scanf string, since we need to subtract %' ' from the +-# character after reading it. The <u9> capability is used by tack(1) +-# to synchronize during padding tests, and seems to work for that +-# purpose. ++# Shift-F1 \E[25~ ++# Shift-F2 \E[26~ ++# Shift-F3 \E[27~ ++# Shift-F4 \E[28~ ++# Shift-F5 \E[29~ ++# Shift-F6 \E[30~ ++# Shift-F7 \E[31~ ++# Shift-F8 \E[32~ ++# Shift-F9 \E[33~ ++# Shift-F10 \E[34~ ++# Shift-F11 \E[35~ ++# Shift-F12 \E[36~ + # +-# This description also includes the obsolete termcap capabilities +-# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>). ++# Ctrl-F1 \E[47~ ++# Ctrl-F2 \E[48~ ++# Ctrl-F3 \E[49~ ++# Ctrl-F4 \E[50~ ++# Ctrl-F5 \E[51~ ++# Ctrl-F6 \E[52~ ++# Ctrl-F7 \E[53~ ++# Ctrl-F8 \E[54~ ++# Ctrl-F9 \E[55~ ++# Ctrl-F10 \E[56~ ++# Ctrl-F11 \E[57~ ++# Ctrl-F12 \E[58~ + # +-# FEATURES NOT YET DESCRIBED IN THIS TERMINFO ++# Ctrl-Delete \E[43~ ++# Ctrl-Down Arrow \E[38~ ++# Ctrl-End \E[44~ ++# Ctrl-Home \E[41~ ++# Ctrl-Insert \E[42~ ++# Ctrl-Left Arrow \E[39~ ++# Ctrl-Page Down \E[46~ ++# Ctrl-Page Up \E[45~ ++# Ctrl-Right Arrow \E[40~ ++# Ctrl-Up Arrow \E[37~ + # +-# The FUNCT modifier actually works with every normal key by sending +-# ^AX\r, where X is the sequence normally sent by that key. This is a +-# sort of meta key not currently describable in terminfo. ++# Alt-F1 \E[59~ ++# Alt-F2 \E[60~ ++# Alt-F3 \E[61~ ++# Alt-F4 \E[62~ ++# Alt-F5 \E[63~ ++# Alt-F6 \E[64~ ++# Alt-F7 \E[65~ ++# Alt-F8 \E[66~ ++# Alt-F9 \E[67~ ++# Alt-F10 \E[68~ ++# Alt-F11 \E[79~ ++# Alt-F12 \E[80~ + # +-# There are quite a few other keys (especially on the 920 models,) but +-# they are for the most part only useful in block mode. ++# Alt-Delete \E[65~ ++# Alt-Down Arrow \E[60~ ++# Alt-End \E[66~ ++# Alt-Home \E[41~ ++# Alt-Insert \E[64~ ++# Alt-Left Arrow \E[61~ ++# Alt-Page Down \E[68~ ++# Alt-Page Up \E[67~ ++# Alt-Right Arrow \E[62~ ++# Alt-Up Arrow \E[59~ + # +-# These terminals have lots of forms manipulation features, mainly +-# useful in block mode, including "clear X to nulls" (vs. "clear X to +-# spaces"; nulls are sentinels for "send X" operations); "send X" +-# operations for uploading all or part of the screen; and block-mode +-# editing keys (they don't send escape sequences, but manipulate video +-# memory directly). Block mode is used for local editing, and protect +-# mode (in conjunction with the "write protect" attribute, +-# a.k.a. half-intensity outside of protect mode) is used to control +-# which parts of the screen are edited/sent/printed (by <mc0>). +-# +-# There are at least two major families of ROM, "early" and +-# A49B1/A49C1; the major difference seems to be that the latter ROMs +-# support a few extra escape sequences for manipulating the off-screen +-# memory page, and for sending whole pages back to the host (mainly +-# useful in block mode.) The descriptions in this file don't use any +-# of those sequences: set cursor position including page (\E-PYX, +-# where P is \s for page 0 and ! for page 1 [actually only the LSB of +-# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are +-# as in <cup>); read cursor position (\E/), which is analogous to <u9> +-# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX +-# are as in <cup>, and some "send page" features mainly useful for +-# forms manipulation. +-# +-# The keyboard enable (\E") and disable (\E#) sequences are unused, +-# except that a terminal reset (<is2>) enables the keyboard. ++# Also: ++# Alt-A \E[82~ ++# Alt-B \E[82~ ++# Alt-C \E[83~ ++# Alt-D \E[84~ ++# Alt-E \E[85~ ++# Alt-F \E[86~ ++# Alt-G \E[87~ ++# Alt-H \E[88~ ++# Alt-I \E[89~ ++# Alt-J \E[90~ ++# Alt-K \E[91~ ++# Alt-L \E[92~ ++# Alt-M \E[93~ ++# Alt-N \E[94~ ++# Alt-O \E[95~ ++# Alt-P \E[96~ ++# Alt-Q \E[97~ ++# Alt-R \E[98~ ++# Alt-S \E[99~ ++# Alt-T \E[100~ ++# Alt-U \E[101~ ++# Alt-V \E[102~ ++# Alt-W \E[103~ ++# Alt-X \E[104~ ++# Alt-Y \E[105~ ++# Alt-Z \E[106~ ++djgpp|ansi emulation for DJGPP alpha, ++ am, bce, msgr, xhp, xon, xt, ++ colors#8, it#8, pairs#64, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v, ++ clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, ++ indn=\E[%p1%dS, invis=\E[8m, kbs=^H, 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[23~, ++ kf12=\E[24~, 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~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J, ++ op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m, ++ sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, ++ ++djgpp203|Entry for DJGPP 2.03, ++ OTbs, am, ++ cols#80, it#8, lines#25, ++ bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, ++ kcud1=^J, nel=^M^J, ++ ++djgpp204|Entry for DJGPP 2.04, ++ OTbs, am, AX, ++ colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v, ++ clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, ++ cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, ++ cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, ++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, ++ il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, 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~, kich1=\E[2~, ++ kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m, ++ ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm, ++ setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++ ++#### U/Win ++ ++# This is tested using U/Win's telnet. Scrolling is omitted because it is ++# buggy. Another odd bug appears when displaying "~" in alternate character ++# set (the emulator spits out error messages). Compare with att6386 -TD ++uwin|U/Win 3.2 console, ++ am, eo, in, msgr, xenl, xon, ++ colors#8, it#8, ncv#58, pairs#64, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX, ++ ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP, ++ kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR, ++ kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, ++ khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8, ++ rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m, ++ rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m, ++ smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, ++ ++#### Microsoft (miscellaneous) ++ ++# This entry fits the Windows NT console when the _POSIX_TERM environment ++# variable is set to 'on'. While the Windows NT POSIX console is seldom used, ++# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP ++# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating ++# systems is not, and (surprise!) they match very well. + # +-# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew) +-# enabled in <is2>, but auto-flip is very jarring so we don't use it. ++# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up ++# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only ++# are the installation instructions a pile of mind-numbing bureaucratese, ++# but the termcap entry is actually broken and unusable as given; the :do: ++# capability is misspelled "d". + # +-# BUGS ++# To use this, you need to a bunch of environment variables: + # +-# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed +-# sequences (I infer that in some TeleVideo terminal they may invert +-# and uninvert the display) so the <flash> sequence given here is a +-# cheesy page-flip instead. ++# SET _POSIX_TERM=on ++# SET TERM=ansi ++# SET TERMCAP=location of termcap file in POSIX file format ++# which is case-sensitive. ++# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap ++# SET TMP=//C/TEMP + # +-# The back_tab (<cbt>) sequence (\EI) doesn't work according to +-# tack(1), so it is not included in the descriptions below. ++# Important note: setting the TMP environment variable in POSIX style renders ++# it incompatible with a lot of other applications, including Visual C++. So ++# you should have a separate command window just for vi. All the other ++# variables may be permanently set in the Control Panel\System applet. + # +-# It's not clear whether auto_left_margin (<bw>) flag should be set +-# for these terminals; tack says yes, so it is set here, but this +-# differs from other descriptions I've seen. ++# You can find out more about the restrictions of this facility at ++# <http://www.nentug.org/unix-to-nt/ntposix.htm>. + # +-# Extension print mode (<mc5>) echoes all characters to the printer +-# port [in addition to displaying them] except for the page print mode +-# sequence (<mc4>); this is a slight violation of the terminfo +-# definition for <mc5> but I don't expect it to cause problems. We +-# reset to page print mode in <rs1> since it may have been enabled +-# accidentally. ++# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997 ++ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode, ++ am, bw, msgr, ++ cols#80, it#8, lines#25, ++ bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V, ++ kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m, ++ ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m, ++# From: jew@venus.sunquest.com ++# Date: 19 Feb 93 23:41:07 GMT ++# Here's a combination of ansi and vt100 termcap ++# entries that works nearly perfectly for me ++# (Gateway 2000 Handbook and Microsoft Works 3.0): ++pcmw|PC running Microsoft Works, ++ am, xenl, ++ cols#80, it#8, lines#24, vt#3, ++ bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>, ++ clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>, ++ cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ++ ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>, ++ rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/tabset/vt100, ++ ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>, ++ tbc=\E[3g$<2/>, ++ ++# From: Federico Bianchi ++# This is the entry for the OpenNT terminal. ++# The ntconsole name is for backward compatability. ++# This is for OpenNT 2.0 and later. ++# Later OpenNT was renamed to Interix. + # +-# The descriptions with plus signs (+) are building blocks. ++# Presently it is distributed by Microsoft as Services For Unix (SFU). ++# The 3.5 beta contains ncurses 4.2 (that is header files and executables, ++# the documentation dates from 1.9.9e) -TD + +-tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes), +- OTbs, OTpt, am, bw, +- cols#80, it#8, lines#24, +- bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>, +- dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>, +- home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>, +- if=/usr/share/tabset/stdcrt, il1=\EE$<1*>$<100>, +- ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J, +- kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA, +- mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r, +- u7=\E?, u8=%c%c\r, u9=\E?, ++interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color, ++ am, bw, msgr, ++ colors#8, cols#80, lines#25, ncv#3, pairs#64, ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD, ++ cub1=\E[D, 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, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ++ home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S, ++ indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA, ++ kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD, ++ kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI, ++ kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM, ++ kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR, ++ kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV, ++ kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa, ++ kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe, ++ kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj, ++ kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5, ++ kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt, ++ kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy, ++ kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-, ++ kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9, ++ kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J, ++ op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, ++ rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec, ++ sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm, ++ sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m, + +-# This isn't included in the basic capabilities because it is +-# typically unusable in combination with the full range of video +-# attributes, since the magic cookie attributes turn into ASCII +-# control characters, and the half-intensity ("protected") attribute +-# converts all affected characters to spaces. ++opennt-35|ntconsole-35|OpenNT-term35 compatible with color, ++ lines#35, use=opennt, + +-tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support, +- mc0=\EP, ++opennt-50|ntconsole-50|OpenNT-term50 compatible with color, ++ lines#50, use=opennt, + +-# This uses half-intensity mode (<dim>) for standout (<smso>), and +-# exposes no other attributes (half-intensity is the only attribute +-# that does not generate a magic cookie.) +- +-tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support, +- msgr, +- dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(, +- smso=\E), +- +-# Full magic-cookie attribute support, with half-intensity reverse +-# video for standout. Note that we add a space in the <dim> sequence +-# to give a consistent magic-cookie count. Also note that <sgr> uses +-# backspacing (in the TVI-supported order) to apply all requested +-# attributes with only a single magic cookie. +- +-tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support, +- xmc#1, +- blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek, +- rmul=\Em, +- sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;, +- sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El, ++opennt-60|ntconsole-60|OpenNT-term60 compatible with color, ++ lines#60, use=opennt, + +-# This uses the second page memory option to save & restore screen +-# contents. If your terminal is missing the option, this description +-# should still work, but that has not been tested. ++opennt-100|ntconsole-100|OpenNT-term100 compatible with color, ++ lines#100, use=opennt, + +-tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support, +- flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s, +- smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>, ++# OpenNT wide terminals ++opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color, ++ cols#125, use=opennt, + +-# This simulates flashing by briefly toggling to the other page +-# (kludge!) ++opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color, ++ lines#35, use=opennt-w, + +-tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support, +- bel=\EK$<100>\EK, use=tvi912b+2p, ++opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color, ++ lines#50, use=opennt-w, + +-# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>) ++opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color, ++ lines#60, use=opennt-w, + +-tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support, +- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r, +- kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r, +- kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r, +- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, ++opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color, ++ cols#132, use=opennt, + +-# Combinations of the basic building blocks ++# OpenNT terminals with no smcup/rmcup (names match termcap entries) ++interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color, ++ rmcup@, smcup@, use=opennt, + +-tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes), +- use=tvi912b+2p, use=tvi912b-unk, ++opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color, ++ lines#35, use=opennt-nti, + +-tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes), +- use=tvi912b+vb, use=tvi912b-unk, ++opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color, ++ lines#50, use=opennt-nti, + +-tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print), +- use=tvi912b+printer, use=tvi912b-unk, ++opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color, ++ lines#60, use=opennt-nti, + +-tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print), +- use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk, ++opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color, ++ lines#100, use=opennt-nti, + +-tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print), +- use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk, ++######## COMMON TERMINAL TYPES ++# ++# This section describes terminal classes and maker brands that are still ++# quite common, but have proprietary command sets not blessed by ANSI. ++# + +-tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute), +- use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk, ++#### Altos ++# ++# Altos made a moderately successful line of UNIX boxes. In 1990 they were ++# bought out by Acer, a major Taiwanese manufacturer of PC-clones. ++# Acer has a web site at http://www.acer.com. ++# ++# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993 ++# His comments suggest they were shipped with the system. ++# + +-tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies), +- use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk, ++# (altos2: had extension capabilities ++# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ ++# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ ++# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ ++# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: ++# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ ++# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\ ++# :HL=^AP\r:SP=\E[i:\ ++# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ ++# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\ ++# Comparison with the k* capabilities makes it obvious that the c* things are ++# shift keys. I have renamed them to keys 32 and up accordingly. Also, ++# :sr: was given as a boolean-- esr) ++altos2|alt2|altos-2|altos II, ++ cols#80, it#8, lines#24, xmc#0, ++ clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M, ++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, ++ if=/usr/share/tabset/vt100, il1=\E[L, ind=^J, ++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r, ++ kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r, ++ kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r, ++ kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r, ++ kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r, ++ kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r, ++ nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m, ++ smam=\E[?7h, smso=\E[7m, smul=\E[4m, ++# (altos3: had extension capabilities ++# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ ++# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ ++# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ ++# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: ++# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ ++# :HL=^AP\r:SP=\E[i:\ ++# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T: ++altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V, ++ blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2, ++altos4|alt4|altos-4|altos IV, ++ use=wy50, ++# (altos7: had extension capabilities: ++# :GG#0:GI=\EH8:GF=\EH7:\ ++# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ ++# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ ++# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ ++# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: ++# Comparison with the k* capabilities makes it obvious that the c* things are ++# shift keys. I have renamed them to keys 32 and up accordingly. I have ++# also made this entry relative to adm12 in order to give it an <sgr>. The ++# <invis> imported by use=adm+sgr may work, let me know. -- esr) ++altos7|alt7|altos VII, ++ am, mir, ++ cols#80, lines#24, xmc#0, ++ acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt, ++ clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE, ++ ind=^J, invis=\EG1, ++ is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r, ++ kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r, ++ kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r, ++ kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r, ++ kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r, ++ kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r, ++ knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej, ++ rmir=\Er, smir=\Eq, use=adm+sgr, ++altos7pc|alt7pc|altos PC VII, ++ kend=\ET, use=altos7, + +-tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute), +- use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk, ++#### Hewlett-Packard (hp) ++# ++# Hewlett-Packard ++# 8000 Foothills Blvd ++# Roseville, CA 95747 ++# Vox: 1-(916)-785-4363 (Technical response line for VDTs) ++# 1-(800)-633-3600 (General customer support) ++# ++# ++# As of March 1998, HP no longer has any terminals in production. ++# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being ++# supported (they still have parts). So are the 2392a and 2394a. ++# See the WORKSTATION CONSOLES section for the 700s. ++# + +-tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies), +- use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk, ++# Generic HP terminal - this should (hopefully) work on any HP terminal. ++hpgeneric|hp|hewlett-packard generic terminal, ++ OTbs, OTpt, am, da, db, mir, xhp, ++ cols#80, lines#24, lm#0, vt#6, ++ bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM, ++ ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ++ ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@, ++ sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3, ++ vpa=\E&a%p1%dY, + +-tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute), +- use=tvi912b+dim, use=tvi912b-unk, ++hp110|hewlett-packard model 110 portable, ++ lines#16, use=hpgeneric, + +-tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies), +- use=tvi912b+mc, use=tvi912b-unk, ++hp+pfk+cr|hp function keys with CR, ++ kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, ++ kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, + +-tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes), +- use=tvi920b+fn, use=tvi912b-unk, ++hp+pfk-cr|hp function keys w/o CR, ++ kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, ++ kf8=\Ew, + +-tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes), +- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk, ++# The hp2621s use the same keys for the arrows and function keys, ++# but not separate escape sequences. These definitions allow the ++# user to use those keys as arrow keys rather than as function ++# keys. ++hp+pfk+arrows|hp alternate arrow definitions, ++ kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@, ++ kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r, ++ kll=\Eq\r, kri=\Es\r, + +-tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes), +- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk, ++hp+arrows|hp arrow definitions, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh, ++ kind=\ES, kll=\EF, kri=\ET, + +-tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print), +- use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk, ++# Generic stuff from the HP 262x series ++# ++hp262x|HP 262x terminals, ++ xhp, ++ blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES, ++ invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh, ++ kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET, ++ krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, ++ sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c, ++ sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, + +-tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print), +- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer, +- use=tvi912b-unk, ++# Note: no <home> on HPs since that homes to top of memory, not screen. ++# Due to severe 2621 braindamage, the only way to get the arrow keys to ++# transmit anything at all is to turn on the function key labels ++# with <smkx>, and even then the user has to hold down shift! ++# The default 2621 turns off the labels except when it has to to ++# enable the function keys. If your installation prefers labels ++# on all the time, or off all the time (at the "expense" of the ++# function keys), use 2621-nl or 2621-wl. ++# ++# Note: there are newer ROMs for 2621's that allow you to set ++# strap A so the regular arrow keys xmit \EA, etc, as with the ++# 2645. However, even with this strap set, the terminal stops ++# xmitting if you reset it, until you unset and reset the strap! ++# Since there is no way to set/unset the strap with an escape ++# sequence, we don't use it in the default. ++# If you like, you can use 2621-ba (brain-damaged arrow keys). ++hp2621-ba|2621 w/new rom and strap A set, ++ rmkx@, smkx@, use=hp+arrows, use=hp2621, + +-tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print), +- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer, +- use=tvi912b-unk, +- +-tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute), +- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim, +- use=tvi912b-unk, +- +-tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies), +- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc, +- use=tvi912b-unk, ++# hp2621 with function labels. Most of the time they are off, ++# but inside vi, the function key labels appear. You have to ++# hold down shift to get them to xmit. ++hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels, ++ is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl, ++hp2621-fl|hp 2621, ++ xhp@, xon, ++ pb#19200, ++ cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>, ++ ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@, ++ sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD, ++ use=hp+pfk+cr, use=hpgeneric, + +-tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute), +- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim, +- use=tvi912b-unk, ++# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p ++hp2621p|hp 2621 with printer, ++ mc4=\E&p13C, mc5=\E&p11C, use=hp2621, + +-tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies), +- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc, +- use=tvi912b-unk, ++hp2621p-a|hp2621p with fn as arrows, ++ use=hp+pfk+arrows, use=hp2621p, + +-tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute), +- use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk, ++# hp2621 with k45 keyboard ++hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard, ++ kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621, + +-tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies), +- use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk, ++# 2621 using all 48 lines of memory, only 24 visible at any time. ++hp2621-48|48 line 2621, ++ lines#48, ++ cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR, ++ use=hp2621, + +-# Televideo 921 and variants +-# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995 +-# (tvi921: removed :ko=bt: before translation, I see no backtab cap; +-# also added empty <acsc> to suppress tic warning -- esr) +-tvi921|televideo model 921 with sysline same as page & real vi function, +- OTbs, OTpt, am, hs, xenl, xhp, +- cols#80, lines#24, xmc#0, +- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K, +- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY, +- el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ, +- if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@, +- is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H, +- kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>, +- ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%, +- rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr, +-# without the beeper +-# (tvi92B: removed :ko=bt: before translation, I see no backtab cap; +-# also added empty <acsc> to suppress tic warning -- esr) +-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper, +- am, hs, xenl, xhp, +- cols#80, lines#24, xmc#0, +- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K, +- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY, +- el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I, +- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, +- invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, +- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, +- kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, +- nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr, +-# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr) +-tvi92D|tvi92B with DTR instead of XON/XOFF & better padding, +- dl1=\ER$<2*/>, il1=\EE$<2*/>, +- is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>, +- kil1=\EE$<2*/>, use=tvi92B, ++# 2621 with no labels ever. Also prevents vi delays on escape. ++hp2621-nl|hp 2621 with no labels, ++ kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@, ++ use=hp2621-fl, + +-# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings +-# in from a BSD termcap file because it looks like they do something the +-# old ones skip -- esr) +-tvi924|televideo tvi924, +- am, bw, hs, in, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, wsl#80, xmc#0, +- bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0, +- cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c, +- cub1=^H, cud1=^V, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1, +- dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et, +- flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1, +- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, +- invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0, +- kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, +- kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r, +- kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r, +- kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r, +- kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^, +- kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4, +- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, +- pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef, +- use=adm+sgr, ++# Needed for UCB ARPAVAX console, since lsi-11 expands tabs ++# (wrong). ++# ++hp2621-nt|hp 2621 w/no tabs, ++ ht@, use=hp2621, + +-# TVI925 DIP switches. In each of these, D = Down and U = Up, ++# Hp 2624 B with 4 or 10 pages of memory. + # +-# Here are the settings for the external (baud) switches (S1): ++# Some assumptions are made with this entry. These settings are ++# NOT set up by the initialization strings. + # +-# Position Baud +-# 7 8 9 10 [Printer] +-# 1 2 3 4 [Main RS232] +-# ----------------------------------------------------- +-# D D D D 9600 +-# D D D U 50 +-# D D U D 75 +-# D D U U 110 +-# D U D D 135 +-# D U D U 150 +-# D U U D 300 +-# D U U U 600 +-# U D D D 1200 +-# U D D U 1800 +-# U D U D 2400 +-# U D U U 3600 +-# U U D D 4800 +-# U U D U 7200 +-# U U U D 9600 +-# U U U U 19200 ++# Port Configuration ++# RecvPace=Xon/Xoff ++# XmitPace=Xon/Xoff ++# StripNulDel=Yes + # ++# Terminal Configuration ++# InhHndShk=Yes ++# InhDC2=Yes ++# XmitFnctn(A)=No ++# InhEolWrp=No + # +-# Settings for word length and stop-bits (S1) ++# Note: the 2624 DOES have a true <home>, believe it or not! + # +-# Position Description +-# 5 6 +-# --------------------------- +-# U - 7-bit word +-# D - 8-bit word +-# - U 2 stop bits +-# - D 1 stop bit ++# The 2624 has an "error line" to which messages can be sent. ++# This is CLOSE to what is expected for a "status line". However, ++# after a message is sent to the "error line", the next carriage ++# return is EATEN and the "error line" is turned back off again! ++# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>. + # ++# This entry supports emacs (and any other program that uses raw ++# mode) at 4800 baud and less. I couldn't get the padding right ++# for 9600. + # +-# S2 (external) settings ++# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr) ++hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B, ++ da, db, ++ lm#96, ++ flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F, ++ use=hp+labels, use=scrhp, ++ ++# This hp2626 entry does not use any of the fancy windowing stuff ++# of the 2626. + # +-# Position Up Dn Description +-# -------------------------------------------- +-# 1 X Local edit +-# X Duplex edit (transmit editing keys) +-# -------------------------------------------- +-# 2 X 912/920 emulation +-# X 925 +-# -------------------------------------------- +-# 3 X +-# 4 X No parity +-# 5 X +-# -------------------------------------------- +-# 3 X +-# 4 X Odd parity +-# 5 X +-# -------------------------------------------- +-# 3 X +-# 4 X Even parity +-# 5 X +-# -------------------------------------------- +-# 3 X +-# 4 X Mark parity +-# 5 X +-# -------------------------------------------- +-# 3 X +-# 4 X Space parity +-# 5 X +-# -------------------------------------------- +-# 6 X White on black display +-# X Black on white display +-# -------------------------------------------- +-# 7 X Half Duplex +-# 8 X +-# -------------------------------------------- +-# 7 X Full Duplex +-# 8 X +-# -------------------------------------------- +-# 7 X Block mode +-# 8 X +-# -------------------------------------------- +-# 9 X 50 Hz +-# X 60 Hz +-# -------------------------------------------- +-# 10 X CR/LF (Auto LF) +-# X CR only ++# Indeed, terminfo does not yet handle such stuff. Since changing ++# any window clears memory, it is probably not possible to use ++# this for screen opt. + # +-# S3 (internal switch) settings: ++# ed is incredibly slow most of the time - I am guessing at the ++# exact padding. Since the terminal uses xoff/xon this is intended ++# only for cost computation, so that the terminal will prefer el ++# or even dl1 which is probably faster! + # +-# Position Up Dn Description +-# -------------------------------------------- +-# 1 X Keyclick off +-# X Keyclick on +-# -------------------------------------------- +-# 2 X English +-# 3 X +-# -------------------------------------------- +-# 2 X German +-# 3 X +-# -------------------------------------------- +-# 2 X French +-# 3 X +-# -------------------------------------------- +-# 2 X Spanish +-# 3 X +-# -------------------------------------------- +-# 4 X Blinking block cursor +-# 5 X +-# -------------------------------------------- +-# 4 X Blinking underline cursor +-# 5 X +-# -------------------------------------------- +-# 4 X Steady block cursor +-# 5 X +-# -------------------------------------------- +-# 4 X Steady underline cursor +-# 5 X +-# -------------------------------------------- +-# 6 X Screen blanking timer (ON) +-# X Screen blanking timer (OFF) +-# -------------------------------------------- +-# 7 X Page attributes +-# X Line attributes +-# -------------------------------------------- +-# 8 X DCD disconnected +-# X DCD connected +-# -------------------------------------------- +-# 9 X DSR disconnected +-# X DSR connected +-# -------------------------------------------- +-# 10 X DTR Disconnected +-# X DTR connected +-# -------------------------------------------- +-# +-# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr) +-tvi925|televideo 925, +- OTbs, am, bw, hs, ul, +- cols#80, lines#24, xmc#1, +- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET, +- flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1, +- ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z, +- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, +- ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, +- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, +- kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3, +- tsl=\Eh\Ef, use=adm+sgr, +-# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL +-# to avoid "magic cookie" standout glitch: +-tvi925-hi|TeleVideo Model 925 with half intensity standout mode, +- xmc@, +- kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925, +- +-# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993 +-# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82 +-# for additional capabilities, +-# The following tvi descriptions from B:pjphar and virus!mike +-# is for all 950s. It sets the following attributes: +-# full duplex (\EDF) write protect off (\E() +-# conversation mode (\EC) graphics mode off (\E%) +-# white on black (\Ed) auto page flip off (\Ew) +-# turn off status line (\Eg) clear status line (\Ef\r) +-# normal video (\E0) monitor mode off (\EX or \Eu) +-# edit mode (\Er) load blank char to space (\Ee\040) +-# line edit mode (\EO) enable buffer control (^O) +-# protect mode off (\E\047) duplex edit keys (\El) +-# program unshifted send key to send line all (\E016) +-# program shifted send key to send line unprotected (\E004) +-# set the following to nulls: +-# field delimiter (\Ex0\200\200) +-# line delimiter (\Ex1\200\200) +-# start-protected field delimiter (\Ex2\200\200) +-# end-protected field delimiter (\Ex3\200\200) +-# set end of text delimiter to carriage return/null (\Ex4\r\200) +-# +-# TVI 950 Switch Setting Reference Charts +-# +-# TABLE 1: +-# +-# S1 1 2 3 4 5 6 7 8 9 10 +-# +-----------------------+-----+-----+-----------------------+ +-# | Computer Baud Rate |Data |Stop | Printer Baud Rate | +-# | |Bits |Bits | | +-# +------+-----------------------+-----+-----+-----------------------+ +-# | Up | See | 7 | 2 | See | +-# +------+-----------------------+-----+-----+-----------------------+ +-# | Down | TABLE 2 | 8 | 1 | TABLE 2 | +-# +------+-----------------------+-----+-----+-----------------------+ +-# +-# +-# S2 1 2 3 4 5 6 7 8 9 10 +-# +-----+-----+-----------------+-----+-----------+-----+-----+ +-# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click| +-# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +-# | Up | Dplx|Blink| See |GonBk| See | 60 | Off | +-# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +-# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On | +-# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +-# +-# TABLE 2: +-# +-# +-----------+-----+-----+-----+-----+-----------+ +-# | Display | 1 | 2 | 3 | 4 | Baud | +-# +-----------+-----+-----+-----+-----+ | +-# | Printer | 7 | 8 | 9 | 10 | Rate | +-# +-----------+-----+-----+-----+-----+-----------+ +-# | D | D | D | D | 9600 | +-# | U | D | D | D | 50 | +-# | D | U | D | D | 75 | +-# | U | U | D | D | 110 | +-# | D | D | U | D | 135 | +-# | U | D | U | D | 150 | +-# | D | U | U | D | 300 | +-# | U | U | U | D | 600 | +-# | D | D | D | U | 1200 | +-# | U | D | D | U | 1800 | +-# | D | U | D | U | 2400 | +-# | U | U | D | U | 3600 | +-# | D | D | U | U | 4800 | +-# | U | D | U | U | 7200 | +-# | D | U | U | U | 9600 | +-# | U | U | U | U | 19200 | +-# +-----+-----+-----+-----+-----------+ +-# +-# TABLE 3: +-# +-----+-----+-----+-----------+ +-# | 3 | 4 | 5 | Parity | +-# +-----+-----+-----+-----------+ +-# | X | X | D | None | +-# | D | D | U | Odd | +-# | D | U | U | Even | +-# | U | D | U | Mark | +-# | U | U | U | Space | +-# +-----+-----+-----+-----------+ +-# X = don't care +-# +-# CHART: +-# +-----+-----+-----------------+ +-# | 7 | 8 | Communication | +-# +-----+-----+-----------------+ +-# | D | D | Half Duplex | +-# | D | U | Full Duplex | +-# | U | D | Block | +-# | U | U | Local | +-# +-----+-----+-----------------+ +-# +-# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". +-# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich> +-# should be present and all tvi native modes use the same string for this. +-# Finally, note that BSD has cud1=^V. -- esr) +-tvi950|televideo 950, +- OTbs, am, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, xmc#1, +- acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*, +- cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed, +- fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J, +- invis@, +- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r, +- kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L, +- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r, +- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X, +- rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef, +- use=adm+sgr, +-# +-# is for 950 with two pages adds the following: +-# set 48 line page (\E\\2) +-# place cursor at page 0, line 24, column 1 (\E-07 ) +-# set local (no send) edit keys (\Ek) +-# +-# two page 950 adds the following: +-# when entering ex, set 24 line page (\E\\1) +-# when exiting ex, reset 48 line page (\E\\2) +-# place cursor at 0,24,1 (\E-07 ) +-# set duplex (send) edit keys (\El) when entering vi +-# set local (no send) edit keys (\Ek) when exiting vi ++# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only ++# extra slow on the last line of the window. + # +-tvi950-2p|televideo950 w/2 pages, +- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011, +- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, +- smkx=\El, use=tvi950, ++# The padding probably should be changed. + # +-# is for 950 with four pages adds the following: +-# set 96 line page (\E\\3) +-# place cursor at page 0, line 24, column 1 (\E-07 ) ++hp2626|hp2626a|hp2626p|hp 2626, ++ da, db, ++ lm#0, pb#19200, ++ ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>, ++ is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk-cr, ++ use=hp+labels, use=scrhp, ++ ++# This entry is for sysline. It allocates a 23 line window with ++# a 115 line workspace for regular use, and a 1 line window for ++# the status line. + # +-# four page 950 adds the following: +-# when entering ex, set 24 line page (\E\\1) +-# when exiting ex, reset 96 line page (\E\\3) +-# place cursor at 0,24,1 (\E-07 ) ++# This assumes port 2 is being used. ++# Turn off horizontal line, Create ws #1 with 115 lines, ++# Create ws #2 with 1 line, Create window #1 lines 1-23, ++# Create window #2 lines 24-24, Attach cursor to workspace #1. ++# Note that this clears the tabs so it must be done by tset before ++# it sets the tabs. + # +-tvi950-4p|televideo950 w/4 pages, +- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011, +- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, +- smkx=\El, use=tvi950, ++hp2626-s|hp 2626 using only 23 lines, ++ eslok, hs, ++ lines#23, ++ fsl=\E&d@\E&w7f2p1I\E&w4f1I, ++ is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r, ++ tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626, ++# Force terminal back to 24 lines after being 23. ++hp2626-ns|hp 2626 using all 24 lines, ++ is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r, ++ use=hp2626, ++# Various entries useful for small windows on 2626. ++hp2626-12|hewlett-packard 2626 12 lines, ++ lines#12, use=hp2626, ++hp2626-12x40|hewlett-packard 2626 12 lines 40 columns, ++ cols#40, lines#12, use=hp2626, ++hp2626-x40|hewlett-packard 2626 40 columns, ++ cols#40, use=hp2626, ++hp2626-12-s|hewlett-packard 2626 11 lines plus status, ++ lines#11, use=hp2626-s, ++ + # +-# <is2> for reverse video 950 changes the following: +-# set reverse video (\Ed) ++# hp2627 color tubes from University of Wisconsin + # +-# set vb accordingly (\Ed ...delay... \Eb) ++hp2627a-rev|hp 2627 with reverse video colors, ++ cr=^M, cud1=^J, ht=^I, ind=^J, ++ is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r, ++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@, ++ smul=\E&dD\E&v1S, use=hp2621-nl, ++hp2627a|hp 2627 color terminal with no labels, ++ cr=^M, cud1=^J, ht=^I, ind=^J, ++ is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r, ++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S, ++ rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S, ++ use=hp2621-nl, ++hp2627c|hp 2627 color (cyan) terminal with no labels, ++ cr=^M, cud1=^J, ht=^I, ind=^J, ++ is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r, ++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a, ++ ++# hp2640a doesn't have the Y cursor addressing feature, and C is ++# memory relative instead of screen relative, as we need. + # +-tvi950-rv|televideo950 rev video, +- flash=\Ed$<200/>\Eb, +- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0, +- use=tvi950, ++hp2640a|hp 2640a, ++ cup@, rmkx@, smkx@, use=hp2645, + +-# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv +-tvi950-rv-2p|televideo950 rev video w/2 pages, +- flash=\Ed$<200/>\Eb, +- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s, +- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, +- smkx=\El, use=tvi950, ++hp2640b|hp2644a|hp 264x series, ++ rmkx@, smkx@, use=hp2645, + +-# tvi950-rv uses the appropriate entries from 950-4p and 950-rv +-tvi950-rv-4p|televideo950 rev video w/4 pages, +- flash=\Ed$<200/>\Eb, +- is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s, +- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, +- smkx=\El, use=tvi950, +-# From: Andreas Stolcke <stolcke@icsi.berkeley.edu> +-# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H"; +-# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in +-# the :rs: string, inserted the <ich> implied by the termcap :ko: string. Note +-# the :ko: string had :cl: in it, which means that one of the original +-# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what +-# the 950 has. Finally, corrected the <kel> string to match the 950 and what +-# ko implies -- esr) +-# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would +-# also work. +-tvi955|televideo 955, +- OTbs, mc5i, msgr@, +- it#8, xmc@, +- acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2, +- civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH, +- cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1, +- is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1, +- knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%, +- rmam=\E[=7l, rmxon=^N, +- rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r, +- sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O, +- use=tvi950, +-tvi955-w|955-w|televideo955 w/132 cols, +- cols#132, +- is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955, +-# use half-intensity as normal mode, full intensity as <bold> +-tvi955-hb|955-hb|televideo955 half-bright, +- bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El, +- sgr0=\EG0\E[=5h, use=tvi955, +-# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin +-# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m; +-# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL. +-# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what +-# it does to the function keys. I deduced <rmam>/<smam>. +-# also added empty <acsc> to suppress tic warning, -- esr) +-tvi970|televideo 970, +- OTbs, OTpt, am, da, db, mir, msgr, +- cols#80, it#8, lines#24, +- acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df, +- cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r, +- ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H, +- hpa=\E[%i%p1%dG, ht=^I, il1=\E[L, +- is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J, +- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f, +- kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B, +- rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smacs=\E(B, smam=\E[?7l, +- smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m, +- smul=\E[4m, vpa=\E[%i%p1%dd, +-tvi970-vb|televideo 970 with visual bell, +- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l, +- use=tvi970, +-tvi970-2p|televideo 970 with using 2 pages of memory, +- rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q, +- use=tvi970, +-# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars +-# per line (rather than 40), Esc K chooses the normal character set. Not sure +-# padding is needed, but adapted from the tvi920c termcap. The <smso> and +-# <smul> strings are klutzy, but at least use no screen space. +-# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>, +-# its absence means <smam>=\Ev isn't safe to use. -- esr) +-# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. +-# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says: +-# F1 and F2 should be programmed as ^A and ^B; required for UNIFY. +-tvipt|televideo personal terminal, +- OTbs, am, ++# (hp2641a: removed unknown :gu: -- esr) ++hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry, ++ am, da, db, mir, xhp, + cols#80, lines#24, +- cbt=\EI, clear=^Z, cub1=^H, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>, +- ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt, +- il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J, +- kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R, +- rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH, +-# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996 +-tvi9065|televideo 9065, +- am, bw, chts, hs, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0, +- wnum#0, wsl#30, +- acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G, +- blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z, +- cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, +- cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA, +- cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp, +- dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY, +- el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1, +- ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt, +- il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1, +- ip=$<3>, +- is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er, +- is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s, +- kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, +- kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H, +- mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J, +- pfkey=\E|%p1%{48}%+%c3%p2%s\031, +- pfloc=\E|%p1%{48}%+%c2%p2%s\031, +- pfx=\E|%p1%{48}%+%c1%p2%s\031, +- pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&, +- rep=\E[%p2%db%p1%c, rev=\EG4, +- rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT, +- rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H, +- rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0, +- rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l, +- rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1, +- rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0, +- sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;, +- sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er, +- smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O, +- tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0, ++ bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM, ++ ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I, ++ if=/usr/share/tabset/std, il1=\EL, ind=^J, ++ is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, ++ rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB, ++ vpa=\E&a%p1%2dY, + +-#### Visual (vi) ++# This terminal should be used at 4800 baud or less. It needs padding for ++# plain characters at 9600, I guessed at an appropriate cr delay. It really ++# wants ^E/^F handshaking, but that doesn't work well even if you write ++# software to support it. ++hp2645|hp45|HP 2645 series, ++ pb#9600, ++ blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, ++ ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, ++ kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB, ++ rmkx=\E&s0A, ++ sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c, ++ sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric, ++# You should use this terminal at 4800 baud or less. ++hp2648|hp2648a|HP 2648a graphics terminal, ++ clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>, ++ dch1=\EP$<7>, ip=$<5>, use=hp2645, ++ ++# The HP 150 terminal is a fairly vanilla HP terminal, with the ++# clreol standout problem. It also has graphics capabilities and ++# a touch screen, which we don't describe here. ++hp150|hewlett packard Model 150, ++ OTbs, use=hp2622, ++ ++# HP 2382a terminals, "the little ones." They don't have any ++# alternate character set support and sending out ^N/^O will ++# leave the screen blank. ++hp2382a|hp2382|hewlett packard 2382a, ++ da, db, ++ lh#1, lm#48, ++ acsc@, ++ pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s, ++ rmacs@, ++ sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c, ++ sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp, ++ ++hp2621-a|hp2621a-a|hp2621 with fn as arrows, ++ use=hp+pfk+arrows, use=hp2621-fl, ++ ++# newer hewlett packard terminals ++ ++newhpkeyboard|generic entry for HP extended keyboard, ++ kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh, ++ kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV, ++ kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A, ++ use=hp+pfk-cr, ++ ++newhp|generic entry for new hewlett packard terminals, ++ am, bw, mir, xhp, xon, ++ cols#80, lines#24, pb#4800, ++ acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x., ++ bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H, ++ cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH, ++ dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J, ++ invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J, ++ pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s, ++ pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s, ++ pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET, ++ rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg, ++ sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;, ++ sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD, ++ tbc=\E3, use=newhpkeyboard, ++ ++memhp|memory relative addressing for new HP ttys, ++ vt#6, ++ clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR, ++ cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR, ++ home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r, ++ mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp, ++ ++scrhp|screen relative addressing for new HP ttys, ++ clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC, ++ cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC, ++ cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR, ++ home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA, ++ mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp, ++ ++# (hp+labels: added label values from a BRL termcap -- esr) ++hp+labels|"standard" label info for new HP ttys, ++ lh#2, lw#8, nlab#8, ++ lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, ++ pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s, ++ rmln=\E&j@, smln=\E&jB, ++ ++hp+printer|"standard" printer info for HP ttys, ++ ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C, ++ ++ ++# The new hp2621b is kind of a cross between the old 2621 and the ++# new 262x series of machines. It has dip-switched options. ++# The firmware has a bug in it such that if you give it a null ++# length label, the following character is eaten! ++hp2621b|hp 2621b with old style keyboard, ++ lh#1, lm#48, lw#8, nlab#8, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh, ++ kind=\ET, kll=\EF, kri=\ES, ++ pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r, ++ smln=\E&jB, use=hp2621, ++ ++hp2621b-p|hp 2621b with printer, ++ use=hp+printer, use=hp2621b, ++ ++# hp2621b - new 2621b with new extended keyboard ++# these are closer to the new 26xx series than the other 2621b ++hp2621b-kx|hp 2621b with extended keyboard, ++ use=newhpkeyboard, use=hp2621b, ++ ++hp2621b-kx-p|hp 2621b with new keyboard & printer, ++ use=hp+printer, use=hp2621b-kx, ++ ++# Some assumptions are made in the following entries. ++# These settings are NOT set up by the initialization strings. + # +-# In September 1993, Visual Technology of Westboro, Massachusetts, +-# merged with White Pine Software of Nashua, New Hampshire. ++# Port Configuration ++# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes ++# ++# Terminal Configuration ++# InhHndShk(G)=Yes InhDC2(H)=Yes ++# XmitFnctn(A)=No InhEolWrp=No + # +-# White Pine Software may be contacted at +1 603/886-9050. +-# Or visit White Pine on the World Wide Web at URL http://www.wpine.com. + # ++# Hp 2622a & hp2623a display and graphics terminals ++# ++hp2622|hp2622a|hp 2622, ++ da, db, ++ lm#0, pb#19200, ++ is2=\E&dj@\r, use=hp+pfk-cr, use=hp+labels, use=scrhp, + +-# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs> +-# Recently I hacked together the following termcap for Visual +-# Technology's Visual 50 terminal. It's a slight modification of +-# the vt52 termcap. +-# It's intended to run when the Visual 50 is in vt52 emulation mode +-# (I know what you're thinking; if it's emulating a vt52, then why +-# another termcap? Well, it turns out that the Visual 50 can handle +-# <dl1> and db(?) among other things, which the vt52 can't) +-# The termcap works OK for the most part. The only problem is on +-# character inserts. The whole line gets painfully redrawn for each +-# character typed. Any suggestions? +-# Beau's entry is combined with the vi50 entry from University of Wisconsin. +-# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in +-# disguise; <kf7>-<kf9> are really l1-l3. +-vi50|visual 50, +- OTbs, OTpt, am, da, db, msgr, +- cols#80, it#8, lines#24, +- OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H, +- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH, +- ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV, +- kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH, +- nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES, +-# this one was BSD & SCO's vi50 +-vi50adm|visual 50 in adm3a mode, +- am, msgr, +- cols#80, it#8, lines#24, +- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM, +- ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, +- rmso=\ET, smso=\EU, +-# From: Jeff Siegal <jbs@quiotix.com> +-vi55|Visual 55, +- OTbs, am, mir, msgr, +- cols#80, it#8, lines#24, +- clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H, +- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, +- il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET, +- smir=\Ea, smso=\EU, ++# The 2623 is a 2622 with extra graphics hardware. ++hp2623|hp2623a|hp 2623, ++ use=hp2622, + +-# Visual 200 from BRL +-# The following switch settings are assumed for normal operation: +-# FULL_DUPLEX SCROLL CR +-# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE +-# Other switches may be set for operator convenience or communication +-# requirements. +-# Character insertion is kludged in order to get around the "beep" misfeature. +-# (This cap is commented out because <smir>/<rmir> is more efficient -- esr) +-# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>, +-# and <dl1> strings, but we seem to get along fine without them. +-vi200|visual 200, +- OTbs, OTpt, am, mir, msgr, +- OTkn#10, cols#80, it#8, lines#24, +- acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H, +- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey, +- el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea, +- kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p, +- kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, +- kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei, +- kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI, +- rmacs=\EG, rmkx=\E>, rmso=\E3, +- rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF, +- smkx=\E=, smso=\E4, tbc=\Eg, +-# The older Visuals didn't come with function keys. This entry uses +-# <smkx> and <rmkx> so that the keypad keys can be used as function keys. +-# If your version of vi doesn't support function keys you may want +-# to use vi200-f. +-vi200-f|visual 200 no function keys, +- is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q, +- kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w, +- kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@, +- use=vi200, +-vi200-rv|visual 200 reverse video, +- cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200, ++hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer, ++ use=hp+printer, use=hp2624, + +-# the function keys are programmable but we don't reprogram them to their +-# default values with <is2> because programming them is very verbose. maybe +-# an initialization file should be made for the 300 and they could be stuck +-# in it. +-# (vi300: added <rmam>/<smam> based on init string -- esr) +-vi300|visual 300 ansi x3.64, +- am, bw, mir, xenl, +- cols#80, lines#24, +- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, +- il1=\E[L, ind=^J, +- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\, +- kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\, +- kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l, +- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h, +- smso=\E[1m, smul=\E[4m, +-# some of the vi300s have older firmware that has the command +-# sequence for setting editing extent reversed. +-vi300-old|visual 300 with old firmware (set edit extent reversed), +- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s, +- use=vi300, ++# The hewlett packard B can have an optional extra 6 pages of memory. ++hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory, ++ lm#240, use=hp2624, + +-# Visual 500 prototype entry from University of Wisconsin. +-# The best place to look for the escape sequences is page A1-1 of the +-# Visual 500 manual. The initialization sequence given here may be +-# overkill, but it does leave out some of the initializations which can +-# be done with the menus in set-up mode. +-# The :xp: line below is so that emacs can understand the padding requirements +-# of this slow terminal. :xp: is 10 time the padding factor. +-# (vi500: removed unknown :xp#4: termcap; +-# also added empty <acsc> to suppress tic warning -- esr) +-vi500|visual 500, +- am, mir, msgr, +- cols#80, it#8, lines#33, +- acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M, +- csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB, +- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, +- dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>, +- el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>, +- ind=^J, +- is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\, +- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G, +- rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D, ++hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer, ++ lm#240, use=hp2624b-p, + +-# The visual 550 is a visual 300 with tektronix graphics, +-# and with 33 lines. clear screen is modified here to +-# also clear the graphics. +-vi550|visual 550 ansi x3.64, +- lines#33, +- clear=\030\E[H\E[2J, use=vi300, ++# Color manipulations for HP terminals ++hp+color|hp with colors, ++ ccc, ++ colors#16, ncv#17, pairs#7, ++ initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI, ++ oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I, ++ op=\E&v0S, scp=\E&v%p1%dS, + +-vi603|visual603|visual 603, +- hs, mir, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, +- csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, +- dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L, +- ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r, +- rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, +- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~, +- use=vt100, ++# <is2> sets the screen to be 80 columns wide ++hp2397a|hp2397|hewlett packard 2397A color terminal, ++ is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color, + +-#### Wyse (wy) +-# +-# Wyse Technology +-# 3471 North First Street +-# San Jose, CA 95134 +-# Vox: (408)-473-1200 +-# Fax: (408) 473-1222 +-# Web: http://www.wyse.com +-# +-# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at +-# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the +-# obvious address, <http://www.wyse.com>. They keep terminfo entries at +-# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>. +-# +-# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995. +-# They now own the Qume and Amdek brands, too. So these are the people to +-# talk with about all Link, Qume, and Amdek terminals. +-# +-# These entries include a few small fixes. +-# I canceled the bel capacities in the vb entries. +-# I made two trivial syntax fixes in the wyse30 entry. +-# I made some entries relative to adm+sgr. ++# HP 700/44 Setup parameters: ++# Terminal Mode HP-PCterm ++# Inhibit Auto Wrap NO ++# Status Line Host Writable ++# PC Character Set YES ++# Twenty-Five Line Mode YES ++# XON/XOFF @128 or 64 (sc) ++# Keycode Mode NO or YES (sc) ++# Backspace Key BS or BS/DEL + # ++# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; ++# \E\\? does not turn off keycode mode ++# <smsc> sets alternate start/stop; keycode on ++hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode, ++ am, eo, xenl, xon, ++ cols#80, lines#25, ++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, ++ bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H, ++ cnorm=\E[?25h, cr=^M, cub1=\E[D, 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, ich1=\E[@, il1=\E[L, ++ ind=^J, ++ is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\, ++ kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~, ++ kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, ++ kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~, ++ kpp=\E[5~, rmam=\E[?7l, ++ rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m, ++ rmul=\E[m, sgr0=\E[m, smam=\E[?7h, ++ smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m, ++ smul=\E[4m, xoffc=g, xonc=e, + # +-# Note: The wyse75, wyse85, and wyse99 have been discontinued. ++# (hp2392: copied <rmir> here from hpex -- esr) ++hp2392|239x series, ++ cols#80, ++ cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r, ++ kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, ++ kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV, ++ rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY, ++ use=hpsub, + +-# Although the Wyse 30 can support more than one attribute +-# it requires magic cookies to do so. Many applications do not +-# function well with magic cookies. The following terminfo uses +-# the protect mode to support one attribute (dim) without cookies. +-# If more than one attribute is needed then the wy30-mc terminfo +-# should be used. ++hpsub|hp terminals -- capability subset, ++ am, da, db, mir, xhp, xon, ++ lines#24, ++ bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC, ++ cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ++ ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, ++ is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@, ++ sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, ++ ++# hpex: ++# May be used for most 24 x 80 hp terminals, ++# but has no padding added, so may allow runover in some terminals at high ++# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and ++# hp98x5 terminal emulators or hp98x6 consoles. ++# Adds xy-cursor addressing, vertical cursor addressing, home, ++# last line, and underline capabilities. + # +-wy30|wyse30|Wyse 30, +- am, bw, hs, mc5i, mir, msgr, xon, +- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45, +- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI, +- civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H, +- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>, +- dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9, +- fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>, +- ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024, +- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, +- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, +- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ, +- kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T, +- mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>, +- rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(, +- sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, +- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10, +- smso=\E`7\E), tbc=\E0, tsl=\EF, ++# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:", ++# moved <rmir> here from hpsub -- esr) ++hpex|hp extended capabilites, ++ cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H, ++ kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ, ++ smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub, ++ ++# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996 ++hp2|hpex2|hewlett-packard extended capabilities newer version, ++ am, da, db, mir, xhp, ++ cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0, ++ bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB, ++ cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, ++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, ++ il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, ++ ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, ++ kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ, ++ kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET, ++ krmir=\ER, ktbc=\E3, meml=\El, memu=\Em, ++ pfkey=\E&f%p1%dk%p2%l%dL%p2%s, ++ pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s, ++ pfx=\E&f2a%p1%dk%p2%l%dL%p2%s, ++ pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A, ++ rmln=\E&j@, rmso=\E&d@, rmul=\E&d@, ++ sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;, ++ sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB, ++ smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, ++ ++# HP 236 console ++# From: <ddavis@ic.berkeley.edu> ++hp236|hp236 internal terminal emulator, ++ OTbs, am, ++ cols#80, lines#24, ++ clear=\EF, cnorm=\EDE, cub1=^H, ++ cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB, ++ dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI, ++ sgr0=\ECI, smso=\EBI, ++ ++# This works on a hp300 console running Utah 4.3 BSD ++# From: Craig Leres <leres@okeeffe.berkeley.edu> ++hp300h|HP Catseye console, ++ OTbs, am, da, db, mir, xhp, ++ cols#128, lines#51, lm#0, xmc#0, ++ bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB, ++ cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, ++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, ++ if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh, ++ rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, ++ smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3, ++ vpa=\E&a%p1%dY, ++# From: Greg Couch <gregc@ernie.berkeley.edu> ++hp9837|hp98720|hp98721|HP 9000/300 workstations, ++ OTbs, am, da, db, mir, xhp, ++ cols#128, it#8, lines#46, lm#0, ++ bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB, ++ cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, ++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, ++ il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, ++ ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU, ++ kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@, ++ sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD, ++ tbc=\E3, vpa=\E&a%p1%dY, ++# HP 9845 desktop computer from BRL ++# (hp9845: removed unknown capability :gu: -- esr) ++hp9845|HP 9845, ++ OTbs, am, da, db, eo, mir, xhp, ++ cols#80, lines#21, ++ OTbc=\ED, clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM, ++ ed=\EJ, el=\EK, if=/usr/share/tabset/std, il1=\EL, ++ rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB, ++# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90 ++# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>; ++# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr) ++hp98550|hp98550a|HP 9000 Series 300 color console, ++ OTbs, am, da, db, mir, xhp, ++ cols#128, it#8, lines#49, lm#0, ++ acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR, ++ clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH, ++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, ++ if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds, ++ kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep, ++ kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, ++ khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF, ++ knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ, ++ rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, ++ sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ, ++ smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, ++# From: Victor Duchovni <vic@fine.princeton.edu> ++# (hp700-wy: removed obsolete ":nl=^J:"; ++# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr) ++hp700-wy|HP700/41 emulating wyse30, ++ OTbs, am, bw, mir, msgr, ++ cols#80, it#8, lines#24, xmc#1, ++ cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1, ++ if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>, ++ is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI, ++ kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY, ++ kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K, ++ ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>, ++ sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>, ++ smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c, ++hp70092|hp70092a|hp70092A|HP 700/92, ++ am, da, db, xhp, ++ cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, ++ acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA, ++ bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, ++ cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, ++ dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I, ++ hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM, ++ ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, ++ kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ, ++ kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET, ++ krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER, ++ rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@, ++ sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB, ++ smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, ++ ++bobcat|sbobcat|HP 9000 model 300 console, ++ am, da, db, mir, xhp, ++ cols#128, it#8, lines#47, xmc#0, ++ cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC, ++ cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP, ++ dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I, ++ il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER, ++ rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ, ++ smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>, ++gator-t|HP 9000 model 237 emulating extra-tall AAA, ++ lines#94, use=gator, ++gator|HP 9000 model 237 emulating AAA, ++ bw, km, mir, ul, ++ cols#128, it#8, lines#47, ++ bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, ++ dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>, ++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ++ ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>, ++ il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, ++ rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m, ++ rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++gator-52|HP 9000 model 237 emulating VT52, ++ cols#128, lines#47, use=vt52, ++gator-52t|HP 9000 model 237 emulating extra-tall VT52, ++ lines#94, use=gator-52, ++ ++#### Honeywell-Bull + # +-# This terminal description uses the non-hidden attribute mode +-# (with magic cookie). ++# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93 + # +-# (wy30-mc: added <smcup> to suppress tic warning --esr) +-wy30-mc|wyse30-mc|wyse 30 with magic cookies, +- msgr@, +- ma@, xmc#1, +- blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003, +- rmcup=\EG0, rmso=\EG0, +- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, +- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=, +- smso=\EG4, use=wy30, use=adm+sgr, +-# The mandatory pause used by <flash> does not work with +-# older versions of terminfo. If you see this effect then +-# unset xon and delete the / from the delay. +-# i.e. change $<100/> to $<100> +-wy30-vb|wyse30-vb|wyse 30 visible bell, +- bel@, use=wy30, ++ ++# Honeywell Bull terminal. Its cursor and function keys send single ++# control characters and it has standout/underline glitch. Most programs ++# do not like these features/bugs. Visual bell is realized by flashing the ++# "keyboard locked" LED. ++dku7003-dumb|Honeywell Bull DKU 7003 dumb mode, ++ cols#80, lines#25, ++ clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K, ++ flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y, ++ kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J, ++dku7003|Honeywell Bull DKU 7003 all features described, ++ msgr, ++ xmc#1, ++ blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m, ++ rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++ use=dku7003-dumb, ++ ++#### Lear-Siegler (adm) + # +-# The Wyse 50 can support one attribute (e.g. Dim, Inverse, +-# Normal) without magic cookies by using the protect mode. +-# The following description uses this feature, but when more +-# than one attribute is put on the screen at once, all attributes +-# will be changed to be the same as the last attribute given. +-# The Wyse 50 can support more attributes when used with magic +-# cookies. The wy50-mc terminal description uses magic cookies +-# to correctly handle multiple attributes on a screen. ++# These guys are long since out of the terminals business, but ++# in 1995 many current terminals still have an adm type as one of their ++# emulations (usually their stupidest, and usually labeled adm3, though ++# these `adm3' emulations normally have adm3a+ capabilities). + # +-wy50|wyse50|Wyse 50, +- am, bw, hs, mc5i, mir, msgr, xon, +- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45, +- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI, +- civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H, ++# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a ++# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator') ++# was being held to ground would trigger a send of the top line on the screen. ++# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22 ++# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>, ++# for clearing up this point.) ++ ++adm1a|adm1|lsi adm1a, ++ am, ++ cols#80, lines#24, ++ bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^, ++ ind=^J, ++adm2|lsi adm2, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, ++# (adm3: removed obsolete ":ma=^K^P:" -- esr) ++adm3|lsi adm3, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J, ++# The following ADM-3A switch settings are assumed for normal operation: ++# SPACE U/L_DISP CLR_SCRN 24_LINE ++# CUR_CTL LC_EN AUTO_NL FDX ++# Other switches may be set for operator convenience or communication ++# requirements. I recommend ++# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF ++# ETX_OFF EOT_OFF ++# Most of these terminals required an option ROM to support lower case display. ++# Open the case and look at the motherboard; if you see an open 24-pin DIP ++# socket, you may be out of luck. ++# ++# (adm3a: some capabilities merged in from BRl entry -- esr) ++adm3a|lsi adm3a, ++ OTbs, am, ++ cols#80, lines#24, ++ OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H, + cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r, +- ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M, +- home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>, +- is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H, +- kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, +- kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, +- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, +- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, +- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, +- pfx=\Ez%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E), +- ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(, +- sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, +- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10, +- smso=\E`6\E), tbc=\E0, tsl=\EF, ++ cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, ++ kcuu1=^K, rs2=^N, ++adm3a+|adm3a plus, ++ kbs=^H, use=adm3a, ++# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr) ++adm5|lsi adm5, ++ xmc#1, ++ bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^, ++ rmso=\EG, smso=\EG, use=adm3a+, ++# A lot of terminals other than adm11s use these. Wherever you see ++# use=adm+sgr with some of its capabilities disabled, try the ++# disabled ones. They may well work but not have been documented or ++# expressed in the using entry. We'd like to cook up an <sgr> but the ++# <rmacs>/<smacs> sequences of the using entries vary too much. ++adm+sgr|adm style highlight capabilities, ++ invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0, ++ smso=\EG4, smul=\EG8, ++# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL ++# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs> ++# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. <clear> could also ++# be ^Z, according to his entry. ++# (adm11: <smul>=\EG4 was obviously erroneous because it also said ++# <rev>=\EG4. Looking at other ADMs confirms this -- esr) ++adm11|LSI ADM-11, ++ OTbs, am, hs, ++ OTkn#8, cols#80, lines#24, ++ OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H, ++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I, ++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E), ++ use=adm+sgr, ++# From: Andrew Scott Beals <bandy@lll-crg.ARPA> ++# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995 ++# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996 ++# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had ++# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost> ++# via BRL. That entry asserted <xmc#1>, but I've left that out because ++# neither earlier nor later ADMSs have it -- esr) + # +-# This terminal description uses the non-hidden attribute mode +-# (with magic cookie). ++# You will need to get into the supervisor setup before you can set ++# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should ++# see a lot more setup options. + # +-# The mandatory pause used by flash does not work with some +-# older versions of terminfo. If you see this effect then +-# unset <xon> and delete the / from the delay. +-# i.e. change $<100/> to $<100> +-# (wy50-mc: added <smcup> to suppress tic warning --esr) +-wy50-mc|wyse50-mc|wyse 50 with magic cookies, +- msgr@, +- ma@, xmc#1, +- blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4, +- rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0, +- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, +- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=, +- smso=\EGt, use=wy50, use=adm+sgr, +-wy50-vb|wyse50-vb|wyse 50 visible bell, +- bel@, use=wy50, +-wy50-w|wyse50-w|wyse 50 132-column, +- cols#132, lw#7, nlab#16, wsl#97, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>, +- use=wy50, +-wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell, +- bel@, use=wy50-w, +- ++# While in supervisor setup you can also use following codes: + # +-# The Wyse 350 is a Wyse 50 with color. +-# Unfortunately this means that it has magic cookies. +-# The color attributes are designed to overlap the reverse, dim and +-# underline attributes. This is nice for monochrome applications +-# because you can make underline stuff green (or any other color) +-# but for true color applications it's not so hot because you cannot +-# mix color with reverse, dim or underline. +-# To further complicate things one of the attributes must be +-# black (either the foreground or the background). In reverse video +-# the background changes color with black letters. In normal video +-# the foreground changes colors on a black background. +-# This terminfo uses some of the more advanced features of curses +-# to display both color and blink. In the final analysis I am not +-# sure that the wy350 runs better with this terminfo than it does +-# with the wy50 terminfo (with user adjusted colors). ++# Ctrl-P Personality character selections (configure for example what ++# arrow keys send, if I recall correctly) ++# Ctrl-T tabs 1-80 use left&right to move and up to set and ++# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor ++# Ctrl-B Binary setup (probably not needed. I think that everything can ++# be set using normal setup) ++# Ctrl-A Answerback mode (enter answerback message) ++# Ctrl-U User friendly mode (normal setup) ++# Ctrl-D Defaults entire setup and function keys from EPROM tables ++# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds. ++# Ctrl-R Reads both setup and functions keys from NVM. ++# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status + # +-# The mandatory pause used by flash does not work with +-# older versions of terminfo. If you see this effect then +-# unset xon and delete the / from the delay. +-# i.e. change $<100/> to $<100> ++# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to ++# RTS/CTS used nowadays with virtually every modem and computer. 19200 ++# bps works fine with hardware flow control. + # +-# Bug: The <op> capability resets attributes. +-wy350|wyse350|Wyse 350, +- am, bw, hs, mc5i, mir, xon, +- colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8, +- wsl#45, xmc#1, +- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2, +- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, +- cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>, +- dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET, +- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1, +- il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>, +- is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, +- ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, +- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, +- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, +- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0, +- pfx=\Ez%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej, +- rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=, +- setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c, +- sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, +- sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002, +- smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr, +-wy350-vb|wyse350-vb|wyse 350 visible bell, +- bel@, use=wy350, +-wy350-w|wyse350-w|wyse 350 132-column, +- cols#132, lw#7, nlab#16, wsl#97, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>, +- use=wy350, +-wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell, +- bel@, use=wy350-w, ++# The following null-modem cable should fix this and enable you to use ++# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also ++# set ADM-12+ for DTR handshaking from supervisor setup. + # +-# This terminfo description is untested. +-# The wyse100 emulates an adm31, so the adm31 entry should work. ++# PC Serial ADM-12+ ++# -------- ------- ++# 2 - 3 ++# 3 - 2 ++# 4 - 5 ++# 5 - 20 ++# 6,8 - 4 ++# 7 - 7 ++# 20 - 6,8 + # +-wy100|wyse 100, +- hs, mir, +- cols#80, lines#24, xmc#1, +- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++adm12|lsi adm12, ++ OTbs, OTpt, am, mir, ++ OTug#1, cols#80, it#8, lines#24, ++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, + cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J, +- invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, +- kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, +- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{, +- rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr, +-# +-# The Wyse 120/150 has most of the features of the Wyse 60. +-# This terminal does not need padding up to 9600 baud! +-# <msgr> should be set but the clear screen fails when in +-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear +-# then set <msgr>. +-# +-wy120|wyse120|wy150|wyse150|Wyse 120/150, +- am, bw, hs, km, mc5i, mir, msgr, xon, +- cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45, +- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, +- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>, +- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>, +- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>, +- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>, +- hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1, +- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, +- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, +- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, +- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE, ++ is2=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r, ++ kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r, ++ kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0, ++ use=adm+sgr, ++# (adm20: removed obsolete ":kn#7:" -- esr) ++adm20|lear siegler adm20, ++ OTbs, am, ++ cols#80, it#8, lines#24, ++ bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L, ++ cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE, ++ kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(, ++ sgr0=\E(, smso=\E), ++adm21|lear siegler adm21, ++ xmc#1, ++ bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET, ++ ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr, ++ use=adm3a, ++# (adm22: ":em=:" was an obvious typo for ":ei=:"; also, ++# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :"; ++# removed bogus-looking \200 from before <cup>. -- esr) ++adm22|lsi adm22, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE, ++ is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0, ++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, + kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, +- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K, +- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>, +- pfloc=\EZ2%p1%{63}%+%c%p2%s\177, +- pfx=\EZ1%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>, +- rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11, +- rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>, +- rs3=\EwG\Ee($<100>, +- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, +- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, +- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21, +- tbc=\E0, tsl=\EF, use=adm+sgr, ++ kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5, ++ lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E), ++# ADM 31 DIP Switches + # +-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column, +- cols#132, lw#7, nlab#16, wsl#97, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>, +- rs2=\E`;$<70>, use=wy120, ++# This information comes from two versions of the manual for the ++# Lear-Siegler ADM 31. + # +-wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy120, +-# +-wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy120-w, +-# +-wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell, +- bel@, use=wy120, +-# +-wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell, +- bel@, use=wy120-w, +-# +-# The Wyse 60 is like the Wyse 50 but with more padding. +-# The reset strings are slow and the pad times very depending +-# on other parameters such as font loading. I have tried +-# to follow the following outline: ++# Main board: ++# rear of case ++# +-||||-------------------------------------+ ++# + S1S2 ||S + ++# + ||3 + ++# + + ++# + ||S + ++# + ||4 + ++# + + ++# + + ++# + + ++# + + ++# + + ++# +-+ +-+ ++# + + ++# + S5 S6 S7 + ++# + == == == + ++# +----------------------------------------------+ ++# front of case (keyboard) + # +-# <rs1> -> set personality +-# <rs2> -> set number of columns +-# <rs3> -> set number of lines +-# <is1> -> select the proper font +-# <is2> -> do the initialization +-# <is3> -> set up display memory (2 pages) ++# S1 - Data Rate - Modem ++# S2 - Data Rate - Printer ++# ------------------------ ++# Data Rate Setting ++# ------------------- ++# 50 0 0 0 0 ++# 75 1 0 0 0 ++# 110 0 1 0 0 ++# 134.5 1 1 0 0 ++# 150 0 0 1 0 ++# 300 1 0 1 0 ++# 600 0 1 1 0 ++# 1200 1 1 1 0 ++# 1800 0 0 0 1 ++# 2000 1 0 0 1 ++# 2400 0 1 0 1 ++# 3600 1 1 0 1 ++# 4800 0 0 1 1 ++# 7200 1 0 1 1 ++# 9600 0 1 1 1 ++# x 1 1 1 1 + # +-# The Wyse 60's that have vt100 emulation are slower than the +-# older Wyse 60's. This change happened mid-1987. +-# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri> ++# S3 - Interface/Printer/Attributes ++# --------------------------------- ++# Printer Busy Control ++# sw1 sw2 sw3 ++# --------------- ++# off off off Busy not active, CD disabled ++# off off on Busy not active, CD enabled ++# off on off Busy active on J5-20, CD disabled ++# on off off Busy active on J5-19, CD disabled - Factory Set. ++# on off on Busy active on J5-19, CD enabled + # +-# The meta key is only half right. This terminal will return the +-# high order bit set when you hit CTRL-function_key ++# sw4 Used in conjuction with S4 for comm interface control - Fact 0 + # +-# It may be useful to assign two function keys with the +-# values \E=(\s look at old data in page 1 +-# \E=W, look at bottom of page 1 +-# where \s is a space ( ). ++# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0 + # +-# Note: +-# The Wyse 60 runs faster when the XON/XOFF +-# handshake is turned off. ++# sw6 ON enables printer BUSY active LOW - Factory Setting ++# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses + # +-# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid +-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) +-wy60|wyse60|Wyse 60, +- am, bw, hs, km, mc5i, mir, msgr, +- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45, +- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, +- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>, +- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r, +- ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M, +- home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>, +- ip=$<3>, is1=\EcB0\EcC1, +- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, +- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, +- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, +- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, +- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K, +- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>, +- pfloc=\EZ2%p1%{63}%+%c%p2%s\177, +- pfx=\EZ1%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>, +- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er, +- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>, +- rs2=\EeG$<150>, rs3=\EwG\Ee($<200>, +- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, +- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, +- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21, +- tbc=\E0, tsl=\EF, use=adm+sgr, ++# sw7 ON - steady cursor - Factory Setting ++# OFF - blinking cursor + # +-wy60-w|wyse60-w|wyse 60 132-column, +- cols#132, lw#7, nlab#16, wsl#97, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>, +- rs2=\EeF$<150>\E`;$<150>, use=wy60, ++# sw8 ON causes selected attribute character to be displayed ++# OFF causes SPACE to be displayed instead - Factory Setting + # +-wy60-25|wyse60-25|wyse 60 80-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<200>, use=wy60, +-wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<200>, use=wy60-w, ++# S4 - Interface ++# -------------- ++# Modem Interface ++# S3 S4 S4 S4 S4 ++# sw4 sw1 sw2 sw3 sw4 ++# --------------------------- ++# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and ++# Current Loop disabled - Factory Setting ++# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect ++# disabled ++# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and ++# Current Loop Disabled + # +-wy60-42|wyse60-42|wyse 60 80-column 42-lines, +- lines#42, +- clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>, +- dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>, +- ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>, +- ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60, +-wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines, +- cols#132, lw#7, nlab#16, wsl#97, +- clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>, +- dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>, +- nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42, ++# sw5 ON disables dot stretching mode - Factory Setting ++# OFF enables dot stretching mode ++# sw6 ON enables blanking function ++# OFF enables underline function - Factory Setting ++# sw7 ON causes NULLS to be displayed as NULLS ++# OFF causes NULLS to be displayed as SPACES - Factory Setting + # +-wy60-43|wyse60-43|wyse 60 80-column 43-lines, +- lh@, lines#43, lw@, nlab@, +- pln@, rs3=\Ee+$<150>, use=wy60-42, +-wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines, +- lh@, lines#43, lw@, nlab@, +- pln@, rs3=\Ee+$<150>, use=wy60-42-w, ++# S5 - Word Structure ++# ------------------- ++# sw1 ON enables BREAK key - Factory Setting ++# OFF disables BREAK key ++# sw2 ON selects 50Hz monitor refresh rate ++# OFF selects 60Hz monitor refresh rate - Factory Setting + # +-wy60-vb|wyse60-vb|Wyse 60 visible bell, +- bel@, use=wy60, +-wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell, +- bel@, use=wy60-w, +- +-# The Wyse-99GT looks at lot like the Wyse 60 except that it +-# does not have the 42/43 line mode. In the Wyse-60 the "lines" +-# setup parameter controls the number of lines on the screen. +-# For the Wyse 99GT the "lines" setup parameter controls the +-# number of lines in a page. The screen can display 25 lines max. +-# The Wyse-99GT also has personalities for the VT220 and +-# Tektronix 4014. But this has no bearing on the native mode. ++# Modem Port Selection ++# sw3 sw4 sw5 ++# --------------- ++# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits ++# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits ++# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set. ++# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit ++# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits ++# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit ++# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit ++# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit + # +-# (msgr) should be set but the clear screen fails when in +-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear +-# then set msgr, else use msgr@. ++# sw6 ON sends bit 8 a 1 (mark) ++# OFF sends bit 8 as 0 (space) - Factory Setting ++# sw7 ON selects Block Mode ++# OFF selects Conversation Mode - Factory Setting ++# sw8 ON selects Full Duplex operation ++# OFF selects Half Duplex operation - Factory Setting + # +-# u0 -> enter Tektronix mode +-# u1 -> exit Tektronix mode ++# S6 - Printer ++# ------------ ++# sw1, sw2, sw6, sw7 Reserved - Factory 0 + # +-wy99gt|wyse99gt|Wyse 99gt, +- msgr@, +- clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>, +- el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>, +- il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@, +- ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1, +- u0=\E~>\E8, u1=\E[42h, use=wy60, ++# Printer Port Selection ++# same as Modem above, bit 8 (when 8 DATA bits) is always = 0 + # +-wy99gt-w|wyse99gt-w|wyse 99gt 132-column, +- cols#132, lw#7, nlab#16, wsl#97, +- clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>, +- dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>, +- use=wy99gt, ++# sw8 ON enables Printer Port ++# OFF disables Printer Port - Factory Setting + # +-wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt, ++# S7 - Polling Address ++# -------------------- ++# sw1-7 Establish ASCII character which designates terminal polling address ++# ON = logic 0 ++# OFF = logic 1 - Factory Setting ++# sw8 ON enables Polling Option ++# OFF disables Polling Option - Factory Setting + # +-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs2=\E`;$<150>, use=wy99gt-w, + # +-wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell, +- bel@, use=wy99gt, ++# On some older adm31s, S4 does not exist, and S5-sw6 is not defined. + # +-wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell, +- bel@, use=wy99gt-w, +- +-# Can't set tabs! Other bugs (ANSI mode only): +-# - can't redefine function keys (anyway, key redefinition in ANSI mode +-# is too much complex to be described); +-# - meta key can't be described (the terminal forgets it when reset); +-# The xon-xoff handshaking can't be disabled while in ansi personality, so +-# emacs can't work at speed greater than 9600 baud. No padding is needed at +-# this speed. +-# dch1 has been commented out because it causes annoying glittering when +-# vi deletes one character at the beginning of a line with tabs in it. +-# dch makes sysgen(1M) have a horrible behaviour when deleting +-# a screen and makes screen(1) behave badly, so it is disabled too. The nice +-# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are +-# not, so smir and rmir are commented out as well. +-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +-wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard), +- am, km, mc5i, mir, msgr, xenl, +- cols#80, it#8, lines#25, vt#3, +- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>, +- cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED, +- cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, +- cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, +- ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>, +- enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H, +- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, +- il1=\E[L, ind=\n$<1>, invis=\E[8m, +- is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i, +- kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ, +- kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~, +- kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h, +- mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8, +- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, +- rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m, +- rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i, +- sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;, +- sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, +- +-# This is the american terminal. Here tabs work fine. +-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +-wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard), +- hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi, +- +-# This terminal (firmware version 02) has a lot of bugs: +-# - can't set tabs; +-# - other bugs in ANSI modes (see above). +-# This description disables handshaking when using cup. This is because +-# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal +-# cannot be used at speeds greater than 9600 baud, because at greater +-# speeds handshaking is needed even for character sending. If you use +-# DTR handshaking, you can use even greater speeds. +-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +-wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard), +- am, bw, hs, km, mc5i, mir, msgr, xon, +- cols#80, it#8, lines#25, wsl#46, +- acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G, +- blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032, +- cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L, ++# This adm31 entry uses underline as the standout mode. ++# If the adm31 gives you trouble with standout mode, check the DIP switch in ++# position 6, bank @c11, 25% from back end of the circuit board. Should be ++# OFF. If there is no such switch, you have an old adm31 and must use oadm31. ++# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) ++adm31|lsi adm31 with sw6 set for underline mode, ++ OTbs, am, mir, ++ cols#80, lines#24, ++ bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r, ++ kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r, ++ kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0, ++ rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1, ++adm31-old|o31|old adm31, ++ rmul@, smso=\EG4, smul@, use=adm31, ++# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL ++adm36|LSI ADM36, ++ OTbs, OTpt, ++ OTkn#4, ++ if=/usr/share/tabset/vt100, ++ is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l, ++ use=vt100, ++# (adm42: removed obsolete ":ma=^K^P:" -- esr) ++adm42|lsi adm42, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L, + cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r, +- ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>, +- flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE, +- ind=^J, invis=\EG3, +- is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024, +- ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, +- kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r, +- kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r, +- kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r, +- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#, +- nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed., +- rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30, +- rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024, +- sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;, +- sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30, +- smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF, +- +-# This is the american terminal. Here tabs work. +-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +-wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard), +- hts=\E1, tbc=\E0, use=wy99f, ++ cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I, ++ il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J, ++ kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@, ++ smir=\Eq, smul@, use=adm+sgr, ++# The following termcap for the Lear Siegler ADM-42 leaves the ++# "system line" at the bottom of the screen blank (for those who ++# find it distracting otherwise) ++adm42-ns|lsi adm-42 with no system line, ++ cbt=\EI\EF \011, clear=\E;\EF \011, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011, ++ dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011, ++ el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011, ++ smir=\Eq\EF \011, use=adm42, ++# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985. ++# The insert mode of this terminal is commented out because it's broken for our ++# purposes in that it will shift the position of every character on the page, ++# not just the cursor line! ++# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996 ++adm1178|1178|lsi adm1178, ++ am, ++ cols#80, lines#24, xmc#1, ++ bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ++ home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H, ++ kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0, ++ sgr0=\E), smso=\EG4, smul=\EG1, + ++#### Prime + # +-# The Wyse 160 is combination of the WY-60 and the WY-99gt. +-# The reset strings are slow and the pad times very depending +-# on other parameters such as font loading. I have tried +-# to follow the following outline: ++# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings ++# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr. ++# Prime merged with ComputerVision in the late 1980s; you can reach them at: + # +-# <rs1> -> set personality +-# <rs2> -> set number of columns +-# <rs3> -> set number of lines +-# <is1> -> select the proper font +-# <is2> -> do the initialization +-# <is3> -> set up display memory (2 pages) ++# ComputerVision Services ++# 500 Old Connecticut Path ++# Framingham, Mass. + # +-# The display memory may be used for either text or graphics. +-# When "Display Memory = Shared" the terminal will have more pages +-# but garbage may be left on the screen when you switch from +-# graphics to text. If "Display Memory = Unshared" then the +-# text area will be only one page long. ++ ++# Standout mode is dim reverse-video. ++pt100|pt200|wren|fenix|prime pt100/pt200, ++ am, bw, mir, msgr, ++ cols#80, it#8, lines#24, ++ cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA, ++ cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M, ++ ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P, ++ home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J, ++ rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, ++ smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q, ++ smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m, ++pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode, ++ cols#132, ++ cup=\E[%i%p1%d;%p2%dH, use=pt100, ++pt250|Prime PT250, ++ rmso@, smso@, use=pt100, ++pt250w|Prime PT250 in 132-column mode, ++ rmso@, smso@, use=pt100w, ++ ++#### Qume (qvt) + # +-# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid +-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) +-wy160|wyse160|Wyse 160, +- am, bw, hs, km, mc5i, mir, msgr, +- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38, +- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, +- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>, +- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>, +- dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>, +- el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I, +- hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1, +- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, +- is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, +- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, +- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, +- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K, +- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>, +- pfloc=\EZ2%p1%{63}%+%c%p2%s\177, +- pfx=\EZ1%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>, +- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er, +- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>, +- rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>, +- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, +- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, +- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21, +- tbc=\E0, tsl=\EF, use=adm+sgr, ++# Qume, Inc. ++# 3475-A North 1st Street ++# San Jose CA 95134 ++# Vox: (800)-457-4447 ++# Fax: (408)-473-1510 ++# Net: josed@techsupp.wyse.com (Jose D'Oliveira) + # +-wy160-w|wyse160-w|wyse 160 132-column, +- cols#132, lw#7, nlab#16, wsl#90, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>, +- rs2=\EeF$<150>\E`;$<150>, use=wy160, ++# Qume was bought by Wyse, but still (as of early 1995) has its own support ++# group and production division. + # +-wy160-25|wyse160-25|wyse 160 80-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<200>, use=wy160, +-wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<200>, use=wy160-w, ++# Discontinued Qume models: + # +-wy160-42|wyse160-42|wyse 160 80-column 42-lines, +- lines#42, +- clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>, +- ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>, +- rs3=\Ee*$<150>, use=wy160, +-wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines, +- cols#132, lw#7, nlab#16, wsl#90, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>, +- rs2=\EeF$<150>\E`;$<150>, use=wy160-42, ++# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+ ++# built to replace them, and a qvt119+ which was a 101+ with available wide ++# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations ++# and an ANSI-compatible qvt203 that replaced it. Qume started producing ++# ANSI-compatible terminals with the qvt323 and qvt61. + # +-wy160-43|wyse160-43|wyse 160 80-column 43-lines, +- lh@, lines#43, lw@, nlab@, +- pln@, rs3=\Ee+$<150>, use=wy160-42, +-wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines, +- lh@, lines#43, lw@, nlab@, +- pln@, rs3=\Ee+$<150>, use=wy160-42-w, ++# Current Qume models (as of February 1995): + # +-wy160-vb|wyse160-vb|Wyse 160 visible bell, +- bel@, use=wy160, +-wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell, +- bel@, use=wy160-w, ++# All current Qume terminals have ANSI-compatible operation modes. ++# Qume is still producing the qvt62, which features emulations for other ++# popular lines such as ADDS, and dual-host capabilities. The qvt82 is ++# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal ++# with many emulations including Wyse370, Wyse 325, etc. Their newest ++# model is the qvt520, which is vt420-compatible. + # +-# The Wyse 75 is a vt100 lookalike without advanced video. ++# There are some ancient printing Qume terminals under `Daisy Wheel Printers' + # +-# The Wyse 75 can support one attribute (e.g. Dim, Inverse, +-# Underline) without magic cookies. The following description +-# uses this capability, but when more than one attribute is +-# put on the screen at once, all attributes will be changed +-# to be the same as the last attribute given. +-# The Wyse 75 can support more attributes when used with magic +-# cookies. The wy75-mc terminal description uses magic cookies +-# to correctly handle multiple attributes on a screen. ++# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its ++# setup mode. Shift-s should be a configuration save to NVRAM. ++ ++qvt101|qvt108|qume qvt 101 and QVT 108, ++ xmc#1, use=qvt101+, ++ ++# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap ++# file had <cvvis=\EM4 \200\200\200>. I've done the safe thing and yanked ++# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E). ++# What seems to be going on here is that this entry was designed so that ++# the normal highlight is bold and standout is dim plus something else ++# (reverse-video maybe? But then, are there two <rev> sequences?) + # +-wy75|wyse75|wyse 75, +- am, hs, mc5i, mir, msgr, xenl, xon, +- cols#80, lines#24, ma#1, pb#1201, wsl#78, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>, +- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>, ++# Added kdch1, kil1, kdl1 based on screenshot -TD: ++# http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg ++qvt101+|qvt101p|qume qvt 101 PLUS product, ++ am, bw, hs, ul, ++ cols#80, lines#24, xmc#0, ++ bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET, ++ flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1, ++ ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, ++ kel=\ET, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, ++ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, ++ kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, ++ rmso=\E(, smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr, ++qvt102|qume qvt 102, ++ cnorm=\E., use=qvt101, ++# (qvt103: added <rmam>/<smam> based on init string -- esr) ++qvt103|qume qvt 103, ++ am, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, ++ clear=\E[H\E[2J$<50>, 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$<3*>, +- dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>, +- dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001, +- ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>, +- enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, +- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>, +- ind=\n$<2>, ip=$<1>, +- is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h, +- is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K, +- kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, +- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i, +- kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, +- khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~, +- kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i, +- mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, +- rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l, +- sc=\E7, +- sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m, +- tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad, ++ cuf=\E[%p1%dC, cuf1=\E[C$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, ++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I, ++ hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, ++ rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>, ++ rmso=\E[m$<2>, rmul=\E[m$<2>, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>, ++ sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=, ++ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, ++qvt103-w|qume qvt103 132 cols, ++ cols#132, lines#24, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103, ++qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals, ++ am, hs, mir, msgr, ++ cols#80, lines#24, xmc#0, ++ bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H, ++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, ++ el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I, ++ hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX, ++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, ++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8, ++ tbc=\E3, tsl=\Eg\Ef, use=adm+sgr, ++qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines, ++ lines#25, use=qvt119+, ++qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode, ++ cols#132, ++ is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+, ++qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25, ++ lines#25, use=qvt119+, ++qvt203|qvt203+|qume qvt 203 Plus, ++ dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>, ++ ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~, ++ kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, ++ kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103, ++qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video), ++ cols#132, lines#24, ++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203, + # +-# This terminal description uses the non-hidden attribute mode +-# (with magic cookie). ++# Since a command is present for enabling 25 data lines, ++# a specific terminfo entry may be generated for the 203. ++# If one is desired for the QVT 119 PLUS then 25 lines must ++# be selected in the status line (setup line 9). + # +-wy75-mc|wyse75-mc|wyse 75 with magic cookies, +- msgr@, +- ma@, xmc#1, +- blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p, +- rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p, +- sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;, +- sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p, +- use=wy75, +-wy75-vb|wyse75-vb|wyse 75 with visible bell, +- pb@, +- bel@, use=wy75, +-wy75-w|wyse75-w|wyse 75 in 132 column mode, +- cols#132, wsl#130, +- rs2=\E[35h\E[?3h$<80>, use=wy75, +-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns, +- pb@, +- bel@, use=wy75-w, ++qvt203-25|QVT 203 PLUS with 25 by 80 column mode, ++ cols#80, lines#25, ++ is2=\E[=40h\E[?3l, use=qvt203, ++qvt203-25-w|QVT 203 PLUS with 25 by 132 columns, ++ cols#132, lines#25, ++ rs2=\E[?3h\E[=40h, use=qvt203, ++ ++#### Televideo (tvi) + # +-# Wyse 85 emulating a vt220 7 bit mode. +-# 24 line screen with status line. ++# TeleVideo ++# 550 East Brokaw Road ++# PO Box 49048 95161 ++# San Jose CA 95112 ++# Vox: (408)-954-8333 ++# Fax: (408)-954-0623 + # +-# The vt220 mode permits more function keys but it wipes out +-# the escape key. I strongly recommend that <f11> be set to +-# escape (esc). +-# The terminal may have to be set for 8 data bits and 2 stop +-# bits for the arrow keys to work. +-# The Wyse 85 runs faster with XON/XOFF enabled. Also the +-# <dch> and <ich> work best when XON/XOFF is set. <ich> and +-# <dch> leave trash on the screen when used without XON/XOFF. + # +-wy85|wyse85|wyse 85, +- am, hs, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J$<110>, cnorm=\E[?25h, 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$<1>, cuu=\E[%p1%dA, cuu1=\E[A, +- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m, +- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l, +- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K, +- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>, +- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH, +- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>, +- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W, +- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>, +- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, +- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, +- kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, +- khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, +- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>, +- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, +- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>, +- rs3=\E[?5l, sc=\E7, +- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad, ++# These require incredible amounts of padding. + # +-# Wyse 85 with visual bell. +-wy85-vb|wyse85-vb|wyse 85 with visible bell, +- bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85, ++# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer ++# Televideo terminals are ANSI and PC-ANSI compatible. ++ ++tvi803|televideo 803, ++ clear=\E*$<10>, use=tvi950, ++ ++# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86 ++# Switch settings are: + # +-# Wyse 85 in 132-column mode. +-wy85-w|wyse85-w|wyse 85 in 132-column mode, +- cols#132, wsl#132, +- rs2=\E[35h\E[?3h$<70>, use=wy85, ++# S1 1 2 3 4 ++# D D D D 9600 ++# D D D U 50 ++# D D U D 75 ++# D D U U 110 ++# D U D D 135 ++# D U D U 150 ++# D U U D 300 ++# D U U U 600 ++# U D D D 1200 ++# U D D U 1800 ++# U D U D 2400 ++# U D U U 3600 ++# U U D D 4800 ++# U U D U 7200 ++# U U U D 9600 ++# U U U U 19200 + # +-# Wyse 85 in 132-column mode with visual bell. +-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns, +- bel@, use=wy85-w, +- +-# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998 +-# This copes with an apparent firmware bug in the wy85. He writes: +-# "What I did was change leave the terminal cursor keys set to Normal +-# (instead of application), and change \E[ to \233 for all the keys in +-# terminfo. At one point, I found some reference indicating that this +-# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just +-# me), but I can't find that and the server under my bookmark to "Wyse +-# Technical" isn't responding. So there's the question of wether the wy85 +-# terminfo should reflect the manufactuer's intended behaviour of the terminal +-# or the actual." +-wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode, +- am, hs, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J$<110>, cnorm=\E[?25h, 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$<1>, cuu=\E[%p1%dA, cuu1=\E[A, +- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m, +- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l, +- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K, +- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>, +- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH, +- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>, +- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W, +- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>, +- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu, +- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B, +- kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM, +- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~, +- kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~, +- kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ, +- kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~, +- kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~, +- khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~, +- kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, +- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>, +- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, +- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>, +- rs3=\E[?5l, sc=\E7, +- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[40h\E7\E[25;%i%p1%dH, ++# S1 5 6 7 8 ++# U D X D 7N1 (data bits, parity, stop bits) (X means ignored) ++# U D X U 7N2 ++# U U D D 7O1 ++# U U D U 7O2 ++# U U U D 7E1 ++# U U U U 7E2 ++# D D X D 8N1 ++# D D X U 8N2 ++# D U D D 8O1 ++# D U U U 8E2 + # +-# Wyse 185 emulating a vt320 7 bit mode. ++# S1 9 Autowrap ++# U on ++# D off + # +-# This terminal always displays 25 lines. These lines may be used +-# as 24 data lines and a terminal status line (top or bottom) or +-# 25 data lines. The 48 and 50 line modes change the page size +-# and not the number of lines on the screen. ++# S1 10 CR/LF ++# U do CR/LF when CR received ++# D do CR when CR received + # +-# The Compose Character key can be used as a meta key if changed +-# by set-up. ++# S2 1 Mode ++# U block ++# D conversational + # +-wy185|wyse185|wyse 185, +- am, hs, km, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr$<20>, 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, +- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>, +- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, +- dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>, +- el=\E[K, el1=\E[1K, enacs=\E)0, +- flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8, +- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH, +- ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>, +- ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W, +- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h, +- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, +- kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~, +- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, +- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, +- ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l, +- rmkx=\E>, rmso=\E[27m, rmul=\E[24m, +- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l, +- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7, +- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q, +- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd, +- use=vt220+keypad, ++# S2 2 Duplex ++# U half ++# D full + # +-# Wyse 185 with 24 data lines and top status (terminal status) +-wy185-24|wyse185-24|wyse 185 with 24 data lines, +- hs@, +- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@, +- use=wy185, ++# S2 3 Hertz ++# U 50 ++# D 60 + # +-# Wyse 185 with visual bell. +-wy185-vb|wyse185-vb|wyse 185+flash, +- bel@, use=wy185, ++# S2 4 Edit mode ++# U local ++# D duplex + # +-# Wyse 185 in 132-column mode. +-wy185-w|wyse185-w|wyse 185 in 132-column mode, +- cols#132, wsl#132, +- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>, +- ip=$<7>, rs2=\E[35h\E[?3h, use=wy185, ++# S2 5 Cursor type ++# U underline ++# D block + # +-# Wyse 185 in 132-column mode with visual bell. +-wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols, +- bel@, use=wy185-w, +- +-# wy325 terminfo entries +-# Done by Joe H. Davis 3-9-92 +- +-# lines 25 columns 80 ++# S2 6 Cursor down key ++# U send ^J ++# D send ^V + # +-wy325|wyse325|Wyse epc, +- am, bw, hs, mc5i, mir, +- cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45, +- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, +- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>, +- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>, +- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>, +- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1, +- il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1, +- is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, +- is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, +- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, +- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, +- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, +- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, +- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K, +- mc0=\EP, mc4=^T, mc5=\Ed#, +- pfloc=\EZ2%p1%{63}%+%c%p2%s\177, +- pfx=\EZ1%p1%{63}%+%c%p2%s\177, +- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>, +- rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11, +- rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>, +- rs3=\EwG\Ee($<100>, +- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, +- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, +- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0, +- tsl=\EF, use=adm+sgr, +- ++# S2 7 Screen colour ++# U green on black ++# D black on green + # +-# lines 24 columns 80 vb ++# S2 8 DSR status (pin 6) ++# U disconnected ++# D connected + # +-wy325-vb|wyse325-vb|wyse-325 with visual bell, +- bel@, use=wy325, +- ++# S2 9 DCD status (pin 8) ++# U disconnected ++# D duplex + # +-# lines 24 columns 132 ++# S2 10 DTR status (pin 20) ++# U disconnected ++# D duplex ++# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>, ++# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr) ++tvi910|televideo model 910, ++ OTbs, am, msgr, ++ cols#80, it#8, lines#24, xmc#1, ++ bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET, ++ home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I, ++ if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ vpa=\E[%p1%{32}%+%c, use=adm+sgr, ++# From: Alan R. Rogers <rogers%albany@csnet-relay> ++# as subsequently hacked over by someone at SCO ++# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr) + # +-wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode, +- cols#132, lw#7, nlab#16, wsl#97, +- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>, +- rs2=\E`;$<70>, use=wy325, ++# Here are the 910+'s DIP switches (U = up, D = down, X = don't care): + # +-# lines 25 columns 80 ++# S1 1 2 3 4: ++# D D D D 9600 D D D U 50 D D U D 75 D D U U 110 ++# D U D D 135 D U D U 150 D U U D 300 D U U U 600 ++# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600 ++# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200 + # +-wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy325, ++# S1 5 6 7 8: ++# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2 ++# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2 ++# D U D D 8O1 D U U U 8E2 + # +-# lines 25 columns 132 ++# S1 9 Autowrap (U = on, D = off) ++# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received) ++# S2 1 Mode (U = block, D = conversational) ++# S2 2 Duplex (U = half, D = full) ++# S2 3 Hertz (U = 50, D = 60) ++# S2 4 Edit mode (U = local, D = duplex) ++# S2 5 Cursor type (U = underline, D = block) ++# S2 6 Cursor down key (U = send ^J, D = send ^V) ++# S2 7 Screen colour (U = green on black, D = black on green) ++# S2 8 DSR status (pin 6) (U = disconnected, D = connected) ++# S2 9 DCD status (pin 8) (U = disconnected, D = connected) ++# S2 10 DTR status (pin 20) (U = disconnected, D = connected) + # +-wy325-25w|wyse325-25w|wy325 132 columns, +- lh@, lines#25, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w, ++tvi910+|televideo 910+, ++ dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>, ++ kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, ++ kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, ++ ll=\E=7\s, use=tvi910, ++ ++# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and ++# <khome> from BRL entry -- esr) ++tvi912|tvi914|tvi920|old televideo 912/914/920, ++ OTbs, OTpt, am, msgr, ++ cols#80, it#8, lines#24, xmc#1, ++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^, ++ ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt, ++ il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, ++ kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, ++ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, ++ kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El, ++ tbc=\E3, ++# We got some new tvi912c terminals that act really weird on the regular ++# termcap, so one of our gurus worked this up. Seems that cursor ++# addressing is broken. ++tvi912cc|tvi912 at cowell college, ++ cup@, use=tvi912c, ++ ++# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C ++# From: Benjamin C. W. Sittler + # +-# lines 25 columns 132 vb ++# Someone has put a scanned copy of the manual online at: ++# http://vt100.net/televideo/912b-om/ + # +-wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video, +- bel@, use=wy325-w, +- +-# +-# lines 42 columns 80 ++# These terminals were produced ca. 1979, and had a 12" monochrome ++# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit ++# ASCII, and were generally similar to adm3a but with attributes ++# (including some with magic cookies), fancy half-duplex mode, and ++# different bugs. + # +-wy325-42|wyse325-42|wyse-325 42 lines, +- lh@, lines#42, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy325, ++# Some operations reqire truly incredible amounts of padding. The ++# insert_line (<il1>) and delete_line (<dl1>) operations in particular ++# are so slow as to be nearly unusable. + # +-# lines 42 columns 132 ++# There may or may not have been a separate, earlier series of 912/920 ++# terminals (without the "B" and "C" suffix); I have never seen one, ++# and the manual only describes the "B" and "C" series. The 912 and 920 ++# are quite distinct from the 914 and 924, which were much nicer non- ++# magic-cookie terminals similar to the 950. + # +-wy325-42w|wyse325-42w|wyse-325 42 lines wide mode, +- lh@, lines#42, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w, ++# This is a new description for the following TeleVideo terminals, ++# distinguished chiefly by their keyboards: + # +-# lines 42 columns 132 vb ++# TVI-912B - very odd layout, no function keys (84 keys) ++# TVI-920B - typewriter layout, no function keys (103 keys) ++# TVI-912C - very odd layout, function keys F1-F11 (82 keys) ++# TVI-920C - typewriter layout, function keys F1-F11 (101 keys) + # +-wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell, +- bel@, use=wy325-w, ++# To choose a setting for the TERM variable, start with the model: + # +-# lines 43 columns 80 ++# Model || base name ++# ----------||----------- ++# TVI-912B || tvi912b ++# TVI-912C || tvi912c ++# TVI-920B || tvi920b ++# TVI-920C || tvi920c + # +-wy325-43|wyse325-43|wyse-325 43 lines, +- lh@, lines#43, lw@, nlab@, +- pln@, use=wy325, ++# Then add a suffix from the following table describing installed options ++# and how you'd like to use the terminal: + # +-# lines 43 columns 132 ++# Use Video | Second | Visual | Magic | Page || feature ++# Attributes | Page | Bell | Cookies | Print || suffix ++# ------------|--------|--------|---------|-------||--------- ++# No | No | N/A | N/A | No || -unk ++# No | No | N/A | N/A | Yes || -p ++# No | Yes | No | N/A | No || -2p-unk ++# No | Yes | No | N/A | Yes || -2p-p ++# No | Yes | Yes | N/A | No || -vb-unk ++# No | Yes | Yes | N/A | Yes || -vb-p ++# Yes | No | N/A | No | N/A || ++# Yes | No | N/A | Yes | N/A || -mc ++# Yes | Yes | No | No | N/A || -2p ++# Yes | Yes | No | Yes | N/A || -2p-mc ++# Yes | Yes | Yes | No | N/A || -vb ++# Yes | Yes | Yes | Yes | N/A || -vb-mc + # +-wy325-43w|wyse325-43w|wyse-325 43 lines wide mode, +- lh@, lines#43, lw@, nlab@, +- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w, ++# So e.g. a model 920 C with second page memory option, visual bell ++# and no magic cookies would be tvi920c-vb; a model 912 B without the ++# second page memory option and using magic cookies would be ++# tvi912b-mc + # +-# lines 43 columns 132 vb ++# PADDING + # +-wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell, +- bel@, use=wy325-w, +- +-# Wyse 370 -- 24 line screen with status line. ++# At 9600 baud, the terminal is prone to overflow its input buffer ++# during complex operations (insert/delete ++# character/line/screen/page), and it does not signal this over the ++# RS232 cable. The typical symptom of an overrun is that the terminal ++# starts beeping, and output becomes garbled. + # +-# The terminal may have to be set for 8 data bits and 2 stop +-# bits for the arrow keys to work. ++# The padding delays in this terminfo were derived using tack(1) ++# running on a Linux box connected to a TVI-920C with a later-model ++# (A49C1-style) ROM running at 9600 baud, so your mileage may ++# vary. The numbers below seem to give the terminal enough time so ++# that it doesn't overflow its input buffer and start losing ++# characters. + # +-# If you change keyboards the terminal will send different +-# escape sequences. +-# The following definition is for the basic terminal without +-# function keys. ++# KEYS + # +-# <u0> -> enter Tektronix 4010/4014 mode +-# <u1> -> exit Tektronix 4010/4014 mode +-# <u2> -> enter ASCII mode (from any ANSI mode) +-# <u3> -> exit ASCII mode (goto native ANSI mode) +-# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode) +-# <u5> -> exit Tek 4207 mode (goto native ANSI mode) ++# If you want to use the FUNCT key on a tvi912[bc], use the ++# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from ++# the following table (these also work on the 920 series): + # +-# Bug: The <op> capability resets attributes. +-wy370-nk|wyse 370 without function keys, +- am, ccc, hs, mc5i, mir, msgr, xenl, xon, +- colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, 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$<1>, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>, +- dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, +- dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>, +- el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0, +- flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8, +- home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH, +- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>, +- ind=\n$<2>, +- initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw, +- invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>, +- is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h, +- is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i, +- mc5=\E[5i, +- oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w, +- op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, +- rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l, +- rmkx=\E>, rmso=\E[27m, rmul=\E[24m, +- rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>, +- rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw, +- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q, +- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH, +- u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B, +- u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd, ++# Unshifted Function Keys: + # +-# Function key set for the ASCII (wy-50 compatible) keyboard +-# This is the default 370. ++# Key | capname|| Equivalent ++# -----|--------||------------ ++# F1 | <kf1> || FUNCT + @ ++# F2 | <kf2> || FUNCT + A ++# F3 | <kf3> || FUNCT + B ++# F4 | <kf4> || FUNCT + C ++# F5 | <kf5> || FUNCT + D ++# F6 | <kf6> || FUNCT + E ++# F7 | <kf7> || FUNCT + F ++# F8 | <kf8> || FUNCT + G ++# F9 | <kf9> || FUNCT + H ++# F10 | <kf10> || FUNCT + I ++# F11 | <kf11> || FUNCT + J + # +-wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard, +- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i, +- kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP, +- knp=\E[U, kpp=\E[V, use=wy370-nk, ++# Shifted Function Keys: + # +-# Function key set for the VT-320 (and wy85) compatible keyboard ++# SHIFT + Key | capname|| Equivalent ++# -------------|--------||------------ ++# SHIFT + F1 | <kf12> || FUNCT + ` ++# SHIFT + F2 | <kf13> || FUNCT + a ++# SHIFT + F3 | <kf14> || FUNCT + b ++# SHIFT + F4 | <kf15> || FUNCT + c ++# SHIFT + F5 | <kf16> || FUNCT + d ++# SHIFT + F6 | <kf17> || FUNCT + e ++# SHIFT + F7 | <kf18> || FUNCT + f ++# SHIFT + F8 | <kf19> || FUNCT + g ++# SHIFT + F9 | <kf20> || FUNCT + h ++# SHIFT + F10 | <kf21> || FUNCT + i ++# SHIFT + F11 | <kf22> || FUNCT + j + # +-wy370-105k|Wyse 370 with 105 key keyboard, +- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, +- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, +- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, +- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~, +- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, +- use=wy370-nk, use=vt220+keypad, ++# PORTS AND SWITCH SETTINGS + # +-# Function key set for the PC compatible keyboard ++# Here are the switch settings for the TVI-912B/TVI-920B and ++# TVI-912C/TVI-920C: + # +-wy370-EPC|Wyse 370 with 102 key keyboard, +- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, +- kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk, ++# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down: ++# 2: 9600 3: 4800 4: 2400 5: 1200 ++# 6: 600 7: 300 8: 150 9: 75 ++# 10: 110 + # +-# Wyse 370 with visual bell. +-wy370-vb|Wyse 370 with visible bell, +- bel@, use=wy370, ++# S2 UART/Terminal options: ++# Up Down ++# 1: Not used Not allowed ++# 2: Alternate character set Standard character set ++# 3: Full duplex Half duplex ++# 4: 50 Hz refresh 60 Hz refresh ++# 5: No parity Send parity ++# 6: 2 stop bits 1 stop bit ++# 7: 8 data bits 7 data bits ++# 8: Not used Not allowed on Rev E or lower ++# 9: Even parity Odd parity ++# 10: Steady cursor Blinking cursor ++# (On Rev E or lower, use W25 instead of switch 10.) + # +-# Wyse 370 in 132-column mode. +-wy370-w|Wyse 370 in 132-column mode, +- cols#132, wsl#132, +- rs2=\E[35h\E[?3h$<70>, use=wy370, ++# S5 UART/Terminal options: ++# Open Closed ++# 1: P3-6 Not connected DSR received on P3-6 ++# 2: P3-8 Not connected DCD received on P3-8 + # +-# Wyse 370 in 132-column mode with visual bell. +-wy370-wvb|Wyse 370 with visible bell 132-columns, +- flash=\E[30h\E\,\E[30l$<300>, use=wy370-w, +-wy370-rv|Wyse 370 reverse video, +- rs3=\E[32h\E[?5h, use=wy370, ++# 3 Open, 4 Open: P3-20 Not connected ++# 3 Open, 4 Closed: DTR on when terminal is on ++# 3 Closed, 4 Open: DTR is connected to RTS ++# 3 Closed, 4 Closed: Not allowed + # +-# Wyse 99gt Tektronix 4010/4014 emulator, ++# 5 Closed: HDX printer (hardware control) Rev. K with extension port off, ++# all data transmitted out of the modem port (P3) will also be ++# transmitted out of the printer port (P4). + # +-wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator, +- am, os, +- cols#74, lines#35, +- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, +- cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037, +- cuu1=^K, ff=^L, +- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037, +- home=^]7`x @\037, +- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037, +- is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h, ++# 6 Open, 7 Open: Not allowed ++# 6 Open, 7 Closed: 20ma current loop input ++# 6 Closed, 7 Open: RS232 input ++# 6 Closed, 7 Closed: Not allowed + # +-# Wyse 160 Tektronix 4010/4014 emulator, ++# Jumper options: ++# If the jumper is installed, the effect will occur (the next time the terminal ++# is switched on). + # +-wy160-tek|Wyse 160 Tektronix 4010/4014 emulator, +- cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037, +- home=^]8`g @\037, use=wy99gt-tek, +-# +-# Wyse 370 Tektronix 4010/4014 emulator, +-# +-wy370-tek|Wyse 370 Tektronix 4010/4014 emulator, +- am, os, +- cols#80, lines#36, +- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, +- cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037, +- cuu1=^K, ff=^L, +- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037, +- home=^]8g @\037, +- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037, +- is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K, +- nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0, +- +-# Vendor-supplied Wyse entries end here. +- +-# +-#TITLE: TERMINFO ENTRY WY520 +-#DATE: 8/5/93 +-# The WY520 terminfo is based on the WY285 entry published on the WYSE +-# BBS with the addition of more function keys and special keys. +-# +-# rs1 -> set personality +-# rs2 -> set number of columns +-# rs3 -> set number of lines +-# is1 -> select the proper font +-# is2 -> do the initialization +-# is3 -> If this string is empty then rs3 gets sent. +-# +-# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard +-# - The BS key is programmed to generate BS in smcup since +-# is2 doesn't seem to work. +-# - Remove and shift/Remove: delete a character +-# - Insert : enter insert mode +-# - Find : delete to end of file +-# - Select : clear a line +-# - F11, F12, F13: send default sequences (not ESC, BS, LF) +-# - F14 : Home key +-# - Bottom status line (host writable line) is used. +-# - smkx,rmkx are removed because this would put the numeric +-# keypad in Dec application mode which doesn't seem to work +-# with SCO applications. +-# +-wy520|wyse520|wyse 520, +- am, hs, km, mc5i, mir, xenl, xon, +- cols#80, it#8, lines#24, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr$<20>, 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, +- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>, +- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~, +- ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K, +- enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, +- hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, +- il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W, +- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h, +- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~, +- kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, +- kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, +- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, +- lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, +- rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, +- rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m, +- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l, +- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7, +- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, +- smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`, +- vpa=\E[%i%p1%dd, use=vt220+keypad, +-# +-# Wyse 520 with 24 data lines and status (terminal status) +-wy520-24|wyse520-24|wyse 520 with 24 data lines, +- hs@, +- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@, +- use=wy520, +-# +-# Wyse 520 with visual bell. +-wy520-vb|wyse520-vb|wyse 520 with visible bell, +- flash=\E[30h\E\,\E[30l$<100>, use=wy520, +-# +-# Wyse 520 in 132-column mode. +-wy520-w|wyse520-w|wyse 520 in 132-column mode, +- cols#132, wsl#132, +- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>, +- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520, ++# S4/W31: Enables automatic LF upon receipt of CR from ++# remote or keyboard. ++# S4/W32: Enables transmission of EOT at the end of Send. If not ++# installed, a carriage return is sent. ++# S4/W33: Disables automatic carriage return in column 80. ++# S4/W34: Selects Page Print Mode as initial condition. If not ++# installed, Extension Mode is selected. + # +-# Wyse 520 in 132-column mode with visual bell. +-wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns, +- flash=\E[30h\E\,\E[30l$<100>, use=wy520-w, ++# NON-STANDARD CAPABILITIES + # ++# Sending <u9> or <u7> returns a cursor position report in the format ++# YX\r, where Y and X are as in <cup>. This format is described in ++# <u8> and <u6>, but it's not clear how one should write an ++# appropriate scanf string, since we need to subtract %' ' from the ++# character after reading it. The <u9> capability is used by tack(1) ++# to synchronize during padding tests, and seems to work for that ++# purpose. + # +-# Wyse 520 emulating a vt420 7 bit mode. +-# The DEL key is programmed to generate BS in is2. +-# With EPC keyboard. +-# - 'End' key will clear till end of line on EPC keyboard +-# - Shift/End : ignored. +-# - Insert : enter insert mode. +-# - Delete : delete a character (have to change interrupt character +-# to CTRL-C: stty intr '^c') for it to work since the +-# Delete key sends 7FH. +-wy520-epc|wyse520-epc|wyse 520 with EPC keyboard, +- kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~, +- kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H, +- use=wy520, ++# This description also includes the obsolete termcap capabilities ++# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>). + # +-# Wyse 520 with 24 data lines and status (terminal status) +-# with EPC keyboard. +-wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard, +- hs@, +- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@, +- use=wy520-epc, ++# FEATURES NOT YET DESCRIBED IN THIS TERMINFO + # +-# Wyse 520 with visual bell. +-wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard, +- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc, ++# The FUNCT modifier actually works with every normal key by sending ++# ^AX\r, where X is the sequence normally sent by that key. This is a ++# sort of meta key not currently describable in terminfo. + # +-# Wyse 520 in 132-column mode. +-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard, +- cols#132, wsl#132, +- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>, +- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc, ++# There are quite a few other keys (especially on the 920 models,) but ++# they are for the most part only useful in block mode. + # +-# Wyse 520 in 132-column mode with visual bell. +-wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard, +- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w, ++# These terminals have lots of forms manipulation features, mainly ++# useful in block mode, including "clear X to nulls" (vs. "clear X to ++# spaces"; nulls are sentinels for "send X" operations); "send X" ++# operations for uploading all or part of the screen; and block-mode ++# editing keys (they don't send escape sequences, but manipulate video ++# memory directly). Block mode is used for local editing, and protect ++# mode (in conjunction with the "write protect" attribute, ++# a.k.a. half-intensity outside of protect mode) is used to control ++# which parts of the screen are edited/sent/printed (by <mc0>). + # +-# Wyse 520 in 80-column, 36 lines +-wy520-36|wyse520-36|wyse 520 with 36 data lines, +- hs@, +- lines#36, +- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@, +- use=wy520, ++# There are at least two major families of ROM, "early" and ++# A49B1/A49C1; the major difference seems to be that the latter ROMs ++# support a few extra escape sequences for manipulating the off-screen ++# memory page, and for sending whole pages back to the host (mainly ++# useful in block mode.) The descriptions in this file don't use any ++# of those sequences: set cursor position including page (\E-PYX, ++# where P is \s for page 0 and ! for page 1 [actually only the LSB of ++# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are ++# as in <cup>); read cursor position (\E/), which is analogous to <u9> ++# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX ++# are as in <cup>, and some "send page" features mainly useful for ++# forms manipulation. + # +-# Wyse 520 in 80-column, 48 lines +-wy520-48|wyse520-48|wyse 520 with 48 data lines, +- hs@, +- lines#48, +- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@, +- use=wy520, ++# The keyboard enable (\E") and disable (\E#) sequences are unused, ++# except that a terminal reset (<is2>) enables the keyboard. + # +-# Wyse 520 in 132-column, 36 lines +-wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines, +- cols#132, wsl#132, +- rs2=\E[?3h, +- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|, +- use=wy520-36, ++# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew) ++# enabled in <is2>, but auto-flip is very jarring so we don't use it. + # +-# Wyse 520 in 132-column, 48 lines +-wy520-48w|wyse520-48w|wyse 520 with 48 data lines, +- cols#132, wsl#132, +- rs2=\E[?3h, +- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|, +- use=wy520-48, ++# BUGS + # ++# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed ++# sequences (I infer that in some TeleVideo terminal they may invert ++# and uninvert the display) so the <flash> sequence given here is a ++# cheesy page-flip instead. + # +-# Wyse 520 in 80-column, 36 lines with EPC keyboard +-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard, +- hs@, +- lines#36, +- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@, +- use=wy520-epc, ++# The back_tab (<cbt>) sequence (\EI) doesn't work according to ++# tack(1), so it is not included in the descriptions below. + # +-# Wyse 520 in 80-column, 48 lines with EPC keyboard +-wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard, +- hs@, +- lines#48, +- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@, +- use=wy520-epc, ++# It's not clear whether auto_left_margin (<bw>) flag should be set ++# for these terminals; tack says yes, so it is set here, but this ++# differs from other descriptions I've seen. + # +-# Wyse 520 in 132-column, 36 lines with EPC keyboard +-wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard, +- cols#132, wsl#132, +- rs2=\E[?3h, +- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|, +- use=wy520-36pc, ++# Extension print mode (<mc5>) echoes all characters to the printer ++# port [in addition to displaying them] except for the page print mode ++# sequence (<mc4>); this is a slight violation of the terminfo ++# definition for <mc5> but I don't expect it to cause problems. We ++# reset to page print mode in <rs1> since it may have been enabled ++# accidentally. + # +-# Wyse 520 in 132-column, 48 lines with EPC keyboard +-wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard, +- cols#132, wsl#132, +- rs2=\E[?3h, +- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|, +- use=wy520-48pc, ++# The descriptions with plus signs (+) are building blocks. + +-# From: John Gilmore <hoptoad!gnu@lll-crg.arpa> +-# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such +-# file and we don't know what <hts> is -- esr) +-wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on, +- OTbs, am, ++tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes), ++ OTbs, OTpt, am, bw, + cols#80, it#8, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW, +- dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J, +- is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F, +- kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O, +- rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N, +- smul=^N, +- +-wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad, +- is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>, +- use=wy75, ++ bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>, ++ dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>, ++ home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>, ++ if=/usr/share/tabset/stdcrt, il1=\EE$<1*>$<100>, ++ ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J, ++ kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA, ++ mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r, ++ u7=\E?, u8=%c%c\r, u9=\E?, + +-# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu> +-wy100q|Wyse 100 for Quotron, +- OTbs, +- cols#80, lines#24, xmc#1, +- cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@, +- is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J, +- kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr, ++# This isn't included in the basic capabilities because it is ++# typically unusable in combination with the full range of video ++# attributes, since the magic cookie attributes turn into ASCII ++# control characters, and the half-intensity ("protected") attribute ++# converts all affected characters to spaces. + +-#### Kermit terminal emulations +-# +-# Obsolete Kermit versions may be listed in the section describing obsolete +-# non-ANSI terminal emulators later in the file. +-# ++tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support, ++ mc0=\EP, + +-# KERMIT standard all versions. +-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. +-# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) +-# From: greg small <gts@populi.berkeley.edu> 9-25-84 +-kermit|standard kermit, +- OTbs, +- cols#80, lines#24, +- clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, +- el=\EK, home=\EH, is2=K0 Standard Kermit 9-25-84\n, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, +-kermit-am|standard kermit plus auto-margin, +- am, +- is2=K1 Standard Kermit plus Automatic Margins\n, +- use=kermit, +-# IBMPC Kermit 1.2. +-# Bugs: <ed>, <el>: do not work except at beginning of line! <clear> does +-# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of +-# line). +-# From: greg small <gts@populi.berkeley.edu> 8-30-84 +-pckermit|pckermit12|UCB IBMPC Kermit 1.2, +- am, +- lines#25, +- clear=\EH\EJ, ed@, el@, +- is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit, +-# IBMPC Kermit 1.20 +-# Cannot use line 25, now acts funny like ansi special scrolling region. +-# Initialization must escape from that region by cursor position to line 24. +-# Cannot use character insert because 1.20 goes crazy if insert at col 80. +-# Does not use :am: because autowrap is lost when kermit dropped and restarted. +-# From: greg small <gts@populi.berkeley.edu> 12-19-84 +-pckermit120|UCB IBMPC Kermit 1.20, +- it#8, lines#24, +- cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I, +- il1=\EL, +- is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n, +- rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit, +-# MS-DOS Kermit 2.27 for the IBMPC +-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. +-# Cannot use line 25, now acts funny like ansi special scrolling region. +-# Initialization must escape from that region by cursor position to line 24. +-# Does not use am: because autowrap is lost when kermit dropped and restarted. +-# Reverse video for standout like H19. +-# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) +-# From: greg small <gts@populi.berkeley.edu> 3-17-85 +-msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC, +- OTbs, am@, +- cols#80, it#8, lines#24, +- clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, +- cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK, +- home=\EH, ht=^I, il1=\EL, +- is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek, +- rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep, +-# MS-DOS Kermit 2.27 with automatic margins +-# From: greg small <gts@populi.berkeley.edu> 3-17-85 +-msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins, +- am, +- cvvis=\EO\Eq\EG\EvK5, +- is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n, +- use=msk227, +-# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC +-# Automatic margins now default. Use ansi <sgr> for highlights. +-# Define function keys. +-# (msk22714: removed obsolete ":kn#10:" -- esr) +-# From: greg small <gts@populi.berkeley.edu> 3-17-85 +-msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC, +- am, +- bold=\E[1m, cvvis=\EO\Eq\EG\EvK6, +- is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n, +- kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, +- kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227, +-# This was designed for a VT320 emulator, but it is probably a good start +-# at support for the VT320 itself. +-# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu. +-# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr) +-vt320-k3|MS-Kermit 3.00's vt320 emulation, +- am, eslok, hs, km, mir, msgr, xenl, +- cols#80, it#8, lines#49, pb#9600, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, 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, +- dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K, +- flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l, +- fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~, +- kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8, +- rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l, +- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, +- rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~, +- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd, +-# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991 +-# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996 +-# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr) +-vt320-k311|dec vt320 series as defined by kermit 3.11, +- am, eslok, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[;H\E[2J, cnorm=\E[?25h, 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, +- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K, +- flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED, +- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2, +- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m, +- rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, +- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N, +- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH, ++# This uses half-intensity mode (<dim>) for standout (<smso>), and ++# exposes no other attributes (half-intensity is the only attribute ++# that does not generate a magic cookie.) + +-######## NON-ANSI TERMINAL EMULATIONS +-# ++tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support, ++ msgr, ++ dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(, ++ smso=\E), + +-#### Avatar +-# +-# These entries attempt to describe Avatar, a terminal emulation used with +-# MS-DOS bulletin-board systems. It was designed to give ANSI-like +-# capabilities, but with cheaper (shorter) control sequences. Messy design, +-# excessively dependent on PC idiosyncracies, but apparently rather popular +-# in the BBS world. +-# +-# No color support. Avatar doesn't fit either of the Tektronix or HP color +-# models that terminfo knows about. An Avatar color attribute is the +-# low 7 bits of the IBM-PC display-memory attribute. Bletch. +-# +-# I wrote these entries while looking at the Avatar spec. I don't have +-# the facilities to test them. Let me know if they work, or don't. +-# +-# Avatar escapes not used by these entries (because maybe you're smarter +-# and more motivated than I am and can figure out how to wrap terminfo +-# around some of them, and because they are weird enough to be funny): +-# level 0: +-# ^L -- clear window/reset current attribute to default +-# ^V^A%p1%c -- set current color attribute, parameter decodes as follows: +-# +-# bit: 6 5 4 3 2 1 0 +-# | | | | | +-# +---+---+ | +---+---+ +-# | | | +-# | | foreground color +-# | foreground intensity +-# background color +-# level 0+: +-# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines +-# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines +-# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1 +-# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1 +-# (^V^L and ^V^M set the current attribute as a side-effect.) +-# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes +-# in the pattern, <c> the number of times the pattern +-# should be repeated. If either value is 0, no-op. +-# The pattern can contain Avatar console codes, +-# including other ^V ^Y patterns. +-# level 1: +-# ^V^O -- clockwise mode on; turn print direction right each time you +-# hit a window edge (yes, really). Turned off by CR +-# ^V^P -- no-op +-# ^V^Q%c -- query the driver +-# ^V^R -- driver reset +-# ^V^S -- Sound tone (PC-specific) +-# ^V^T -- change highlight at current cursor poition to %c +-# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b> +-# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c +-# -- define window +-# +-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +-# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to +-# tell ncurses that the corresponding highlights exist; it should use <sgr>, +-# which is the only method that will actually work for multiple highlights.) +-# +-# Update by TD - 2004: half of this was inconsistent. Found documentation +-# and repaired most of the damage. sgr0 is probably incorrect, but the +-# available documentation gives no clues for a workable string. +-avatar0|avatar terminal emulator level 0, +- am, bce, msgr, +- cols#80, it#8, lines#25, +- blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D, +- cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G, +- ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap, +- rmacs@, rs2=^L, +- sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;, +- sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A, +- use=klone+acs, +-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +-avatar0+|avatar terminal emulator level 0+, +- dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0, +-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +-avatar|avatar1|avatar terminal emulator level 1, +- civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+, +- rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+, ++# Full magic-cookie attribute support, with half-intensity reverse ++# video for standout. Note that we add a space in the <dim> sequence ++# to give a consistent magic-cookie count. Also note that <sgr> uses ++# backspacing (in the TVI-supported order) to apply all requested ++# attributes with only a single magic cookie. + +-#### RBcomm +-# +-# RBComm is a lean and mean terminal emulator written by the Interrupt List +-# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early +-# '90s), especially in the BBS world, and still has some loyal users due to +-# its very small memory footprint and to a cute macro language. +-rbcomm|IBM PC with RBcomm and EMACS keybindings, +- am, bw, mir, msgr, xenl, +- cols#80, it#8, lines#25, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=^C, cuf1=^B, +- cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W, +- dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I, +- il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m, +- is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H, +- kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED, +- rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=, +- rmir=^], rmkx=\E>, rmso=^U, rmul=^U, +- rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m, +- smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T, +-rbcomm-nam|IBM PC with RBcomm without autowrap, +- am@, +- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, +- is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H, +- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm, +-rbcomm-w|IBM PC with RBcomm in 132 column mode, +- cols#132, +- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, +- is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H, +- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm, +- +-######## LCD DISPLAYS +-# ++tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support, ++ xmc#1, ++ blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek, ++ rmul=\Em, ++ sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;, ++ sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El, + +-#### Matrix Orbital +-# from: Eric Z. Ayers (eric@ale.org) +-# +-# Matrix Orbital 20x4 LCD display +-# Command Character is 0xFE (decimal 254, octal 376) +-# +-# On this device, cursor addressability isn't possible. The LCD expects: +-# 0xfe G <col> <row> +-# for cup: %p1 == row and %p2 is column +-# +-# This line: +-# cup=\376G%p2%c%p1%c +-# LOOKS like it will work, but sometimes only one of the two numbers is sent. +-# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'. +-# +-# Alas, there is no cursor upline capability on this display. +-# +-# These entries add some 'sanity stuff' to the clear function. That is, it +-# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping, +-# and turns off the cursor blinking and stuff like that. +-# +-# NOTE: calling 'beep' turns on the backlight (bell) +-# NOTE: calling 'flash' turns it on and back off (visual bell) +-# +-MtxOrb|Generic Matrix Orbital LCD display, +- bel=\376B^A, clear=\376X\376C\376R\376K\376T, +- cnorm=\376K\376T, cub1=\376L, cuf1=\376M, +- flash=\376B\001$<200>\376F, home=\376H, +-MtxOrb204|20x4 Matrix Orbital LCD display, +- cols#20, lines#4, use=MtxOrb, +-MtxOrb162|16x2 Matrix Orbital LCD display, +- cols#16, lines#2, use=MtxOrb, +-# The end ++# This uses the second page memory option to save & restore screen ++# contents. If your terminal is missing the option, this description ++# should still work, but that has not been tested. + +-######## OLDER TERMINAL TYPES +-# +-# This section is devoted to older commercial terminal brands that are now +-# discontinued, but known to be still in use or represented by emulations. +-# ++tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support, ++ flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s, ++ smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>, + +-#### AT&T (att, tty) +-# +-# This section also includes Teletype-branded VDTs. +-# +-# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now +-# Boundless Technologies); for details, see the header comment on the ADDS +-# section. +-# +-# These are AT&T's official terminfo entries. All-caps aliases have been +-# removed. +-# +-att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode, +- am, eo, mir, msgr, xon, +- cols#80, it#8, lines#24, +- bel=^G, clear=\E[H\E[J, cr=^M, 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, kbs=^H, kcbt=\E[Z, kclr=\E[J, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, +- kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r, +- kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r, +- kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r, +- kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H, +- kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, +- rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h, +- smso=\E[7m, +-att2350|AT&T 2350 Video Information Terminal 80 column mode, +- mc0@, mc4@, mc5@, use=att2300, ++# This simulates flashing by briefly toggling to the other page ++# (kludge!) + +-# Must setup RETURN KEY - CR, REC'VD LF - INDEX. +-# Seems upward compatible with vt100, plus ins/del line/char. +-# On sgr, the protection parameter is ignored. +-# No check is made to make sure that only 3 parameters are output. +-# standout= reverse + half-intensity = 3 | 5. +-# bold= reverse + underline = 2 | 3. +-# note that half-bright blinking doesn't look different from normal blinking. +-# NOTE:you must program the function keys first, label second! +-# (att4410: a BSD entry has been seen with the following capabilities: +-# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>, +-# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr) +-att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1, +- am, hs, mir, msgr, xon, +- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, +- acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m, +- dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I, +- ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0, +- is3=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW, +- kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, +- kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, +- ll=\E[24H, nel=^M^J, +- pfx=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s, +- pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, +- sc=\E7, +- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m, +- tsl=\E7\E[25;%p1%{1}%+%dH, ++tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support, ++ bel=\EK$<100>\EK, use=tvi912b+2p, + +-att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1, +- cols#132, wsl#132, +- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1, ++# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>) + +-att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2, +- OTbs, +- pfx=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s, +- use=att5410v1, ++tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support, ++ kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r, ++ kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r, ++ kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r, ++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, + +-att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode, +- cols#132, wsl#132, +- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410, ++# Combinations of the basic building blocks + +-# 5410 in terms of a vt100 +-# (v5410: added <rmam>/<smam> based on init string -- esr) +-v5410|att5410 in terms of a vt100, +- am, mir, msgr, xon, +- cols#80, it#8, lines#24, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=^J, cuf1=\E[C$<2>, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P, +- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, +- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@, +- il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, +- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>, +- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, +- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, +- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, +- use=vt100+fnkeys, ++tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes), ++ use=tvi912b+2p, use=tvi912b-unk, + +-# +-# Teletype Model 5420 -- A souped up 5410, with multiple windows, +-# even! the 5420 has three modes: scroll, window or page mode +-# this terminfo should work in scroll or window mode, but doesn't +-# take advantage of any of the differences between them. +-# +-# Has memory below (2 lines!) +-# 3 pages of memory (plus some spare) +-# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>, +-# <hpa>, <hts> would work for these, but these work in both scroll and window +-# mode... Unset insert character so insert mode works +-# <is1> sets 80 column mode, +-# <is2> escape sequence: +-# 1) turn off all fonts +-# 2) function keys off, keyboard lock off, control display off, +-# insert mode off, erasure mode off, +-# 3) full duplex, monitor mode off, send graphics off, nl on lf off +-# 4) reset origin mode +-# 5) set line wraparound +-# 6) exit erasure mode, positional attribute mode, and erasure extent mode +-# 7) clear margins +-# 8) program ENTER to transmit ^J, +-# We use \212 to program the ^J because a bare ^J will get translated by +-# UNIX into a CR/LF. The enter key is needed for AT&T uOMS. +-# 1 2 3 4 5 6 7 8 +-# <is3> set screen color to black, +-# No representation in terminfo for the delete word key: kdw1=\Ed +-# Key capabilities assume the power-up send sequence... +-# This <rmcup> is not strictly necessary, but it helps maximize +-# memory usefulness: <rmcup=\Ez>, +-# Alternate sgr0: <sgr0=\E[m\EW^O>, +-# Alternate sgr: <sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>, +-# smkx programs the SYS PF keys to send a set sequence. +-# It also sets up labels f1, f2, ..., f8, and sends edit keys. +-# This string causes them to send the strings <kf1>-<kf8> +-# when pressed in SYS PF mode. +-# (att4415: I added <rmam>/<smam> based on the init string -- esr) +-att4415|tty5420|att5420|AT&T 4415/5420 80 cols, +- OTbs, db, mir, xon, +- lh#2, lm#78, lw#8, nlab#8, wsl#55, +- cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD, +- cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx, +- cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP, +- dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD, +- flash=\E[?5h$<200>\E[?5l, home=\E[x, +- hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@, +- il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>, +- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212, +- is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M, +- kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd, +- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, +- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U, +- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5, +- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i, +- mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt, +- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, +- rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l, +- rmkx=\E[19;0j\E[21;1j\212, rmln=\E|, +- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h, +- smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g, +- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd, +- use=att4410, ++tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes), ++ use=tvi912b+vb, use=tvi912b-unk, + +-att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols, +- cols#132, lm#54, wsl#97, +- is1=\E[?3h$<100>, use=att4415, ++tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print), ++ use=tvi912b+printer, use=tvi912b-unk, + +-att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv, +- flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415, ++tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print), ++ use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk, + +-att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv, +- cols#132, lm#54, wsl#97, +- flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h, +- use=att4415, ++tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print), ++ use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk, + +-# Note that this mode permits programming USER PF KEYS and labels +-# However, when you program user pf labels you have to reselect +-# user pf keys to make them appear! +-att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels, +- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, +- pfx=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s, +- pln=\E[%p1%d;0;0;1q%p2%:-16.16s, ++tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute), ++ use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk, + +-att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels, +- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, +- use=att4415, ++tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies), ++ use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk, + +-att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels, +- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, +- use=att4415-rv, ++tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute), ++ use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk, + +-att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels, +- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, +- use=att4415-w, ++tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies), ++ use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk, + +-att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels, +- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, +- use=att4415-w-rv, ++tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute), ++ use=tvi912b+dim, use=tvi912b-unk, + +-att5420_2|AT&T 5420 model 2 80 cols, +- am, db, hs, mir, msgr, xon, +- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j, +- cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A, +- cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, +- el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, +- home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, +- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- indn=\E[%p1%dE, invis=\E[8m, +- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r, +- kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, +- kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe, +- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H, +- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U, +- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5, +- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i, +- mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J, +- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8, +- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j, +- rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, +- sc=\E7, +- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~, +- smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd, +-att5420_2-w|AT&T 5420 model 2 in 132 column mode, +- cols#132, +- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r, +- use=att5420_2, ++tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies), ++ use=tvi912b+mc, use=tvi912b-unk, + +-att4418|att5418|AT&T 5418 80 cols, +- am, xon, +- cols#80, lines#24, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD, +- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, 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[1P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, +- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J, +- is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@, +- kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h, +- kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I, +- kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E, +- kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j, +- kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8, +- rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7, +- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m, +-att4418-w|att5418-w|AT&T 5418 132 cols, +- cols#132, +- is1=\E[?3h, use=att5418, ++tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes), ++ use=tvi920b+fn, use=tvi912b-unk, + +-att4420|tty4420|teletype 4420, +- OTbs, da, db, eo, msgr, ul, xon, +- cols#80, lines#24, lm#72, +- bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP, +- dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s, +- kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH, +- kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET, +- lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~, +- rmul=\EZ, smdc@, smso=\E}, smul=\E\\, ++tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes), ++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk, + +-# The following is a terminfo entry for the Teletype 4424 +-# asynchronous keyboard-display terminal. It supports +-# the vi editor. The terminal must be set up as follows, +-# +-# HIGHLIGHT DEFINITION 3-TONE +-# DISPLAY FUNCTION GROUP III +-# +-# The second entry below provides limited (a la adm3a) +-# operation under GROUP II. +-# +-# This must be used with DISPLAY FUNCTION GROUP I or III +-# and HIGHLIGHT DEFINITION 3-TONE +-# The terminal has either bold or blink, depending on options +-# +-# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr) +-att4424|tty4424|teletype 4424, +- OTbs, am, xon, +- cols#80, lines#24, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA, +- dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM, +- ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h, +- kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, +- khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~, +- rmul=\EZ, +- sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m, +- sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\, +- tbc=\EF, ++tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes), ++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk, + +-att4424-1|tty4424-1|teletype 4424 in display function group I, +- kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@, +- use=att4424, ++tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print), ++ use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk, + +-# This entry is not one of AT&T's official ones, it was translated from the +-# 4.4BSD termcap file. The highlight strings are different from att4424. +-# I have no idea why this is -- older firmware version, maybe? +-# The following two lines are the comment originally attached to the entry: +-# This entry appears to avoid the top line - I have no idea why. +-# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp +-att4424m|tty4424m|teletype 4424M, +- am, da, db, mir, +- cols#80, it#8, lines#23, +- bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP, +- dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>, +- is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print), ++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer, ++ use=tvi912b-unk, + +-# The Teletype 5425 is really version 2 of the Teletype 5420. It +-# is quite similar, except for some minor differences. No page +-# mode, for example, so all of the <cup> sequences used above have +-# to change back to what's being used for the 5410. Many of the +-# option settings have changed their numbering as well. +-# +-# This has been tested on a preliminary model. +-# +-# (att5425: added <rmam>/<smam> based on the init string -- esr) +-att5425|tty5425|att4425|AT&T 4425/5425, +- am, da, db, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, +- clear=\E[H\E[J, cnorm=\E[12;0j, 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, +- cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J, +- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, +- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, +- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE, +- invis=\E[8m, is1=\E<\E[?3l$<100>, +- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212, +- is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, +- kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, +- kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, +- kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T, +- kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i, +- nel=^M^J, +- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8, +- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l, +- rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|, +- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7, +- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH, +- vpa=\E[%p1%{1}%+%dd, ++tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print), ++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer, ++ use=tvi912b-unk, + +-att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels, +- smkx=\E[21;1j\E[25;4j\Eent, use=att4425, ++tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute), ++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim, ++ use=tvi912b-unk, + +-att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode, +- cols#132, lm#54, wsl#97, +- is1=\E[?3h$<100>, use=tty5425, ++tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies), ++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc, ++ use=tvi912b-unk, + +-# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. +-# I also added <rmam>/<smam> -- esr) +-att4426|tty4426|teletype 4426S, +- am, da, db, xon, +- cols#80, lines#24, lm#48, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V, +- cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, +- 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=\EP, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H, +- hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^, +- il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS, +- is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO, +- kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, +- kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H, +- nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT, +- rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, +- rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0, +- smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g, +- vpa=\E[%p1%dd, ++tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute), ++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim, ++ use=tvi912b-unk, + +-# Terminfo entry for the AT&T 510 A Personal Terminal +-# Function keys 9 - 16 are available only after the +-# screen labeled (soft keys/action blocks) are labeled. Function key +-# 9 corresponds to the leftmost touch target on the screen, +-# function key 16 corresponds to the rightmost. +-# +-# This entry is based on one done by Ernie Rice at Summit, NJ and +-# changed by Anne Gallup, Skokie, IL, ttrdc!anne +-att510a|bct510a|AT&T 510A Personal Terminal, +- am, mir, msgr, xenl, xon, +- cols#80, lh#2, lines#24, lw#7, nlab#8, +- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, +- civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, +- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, +- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, +- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, +- el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I, +- hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l, +- is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, +- kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, +- kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, +- kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, +- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE, +- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM, +- rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7, +- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, ++tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies), ++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc, ++ use=tvi912b-unk, + +-# Terminfo entry for the AT&T 510 D Personal Terminal +-# Function keys 9 through 16 are accessed by bringing up the +-# system blocks. +-# Function key 9 corresponds to the leftmost touch target on the screen, +-# function key 16 corresponds to the rightmost. +-# +-# There are problems with soft key labeling. These are due to +-# strangenesses in the native terminal that are impossible to +-# describe in a terminfo. +-att510d|bct510d|AT&T 510D Personal Terminal, +- am, da, db, mir, msgr, xenl, xon, +- cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8, +- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, +- clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD, +- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, +- cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P, +- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, +- el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, +- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, +- invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212, +- kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd, +- kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi, +- kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf, +- kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2, +- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE, +- pln=\E[%p1%dp%p2%:-16s, rc=\E8, +- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, +- rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|, +- rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|, +- rs2=\E[5;0|, sc=\E7, +- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h, +- smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m, +- smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd, ++tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute), ++ use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk, + +-# (att500: I merged this with the att513 entry, att500 just used att513 -- esr) +-att500|att513|AT&T 513 using page mode, +- am, chts, mir, msgr, xenl, xon, +- cols#80, lh#2, lines#24, lw#8, nlab#8, +- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, +- clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M, +- csr=%i\E[%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, +- cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, +- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, +- indn=\E[%p1%dE, invis=\E[8m, +- is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l, +- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON, +- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK, +- kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK, +- kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ, +- kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY, +- kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw, +- kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, +- kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent, +- kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, +- kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm, +- khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi, +- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, +- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, +- kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB, +- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2, +- mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i, +- nel=\EE, +- pfkey=\E[%p1%d;%p2%l%d;3;0p F%p1%d %p2%s, +- pfloc=\E[%p1%d;%p2%l%d;2;0p F%p1%d %p2%s, +- pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s, +- pln=\E[%p1%dp%p2%:-16s, rc=\E8, +- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, +- rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l, +- rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m, +- rmul=\E[m, +- rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l, +- rs2=\E[5;0|, sc=\E7, +- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smir=\E[4h, +- smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd, ++tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies), ++ use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk, + +-# 01-07-88 +-# printer must be set to EMUL ANSI to accept ESC codes +-# <cuu1> stops at top margin +-# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font +-# and alt font ascii,wrap on,tabs cleared +-# <is2> disables newline on LF,Emphasized off +-# The <u0> capability sets form length +-att5310|att5320|AT&T Model 53210 or 5320 matrix printer, +- xhpa, xvpa, +- bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10, +- orhi#100, orl#12, orvi#72, +- cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;, +- cr=^M, +- csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;, +- cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM, +- ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r, +- lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;, +- rshm=\E[m, +- scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;, +- smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds, +- smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m, +- u0=\E[%p1%dt, vpa=\E[%p1%dd, ++# Televideo 921 and variants ++# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995 ++# (tvi921: removed :ko=bt: before translation, I see no backtab cap; ++# also added empty <acsc> to suppress tic warning -- esr) ++tvi921|televideo model 921 with sysline same as page & real vi function, ++ OTbs, OTpt, am, hs, xenl, xhp, ++ cols#80, lines#24, xmc#0, ++ acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K, ++ cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY, ++ el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ, ++ if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@, ++ is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H, ++ kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>, ++ ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%, ++ rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr, ++# without the beeper ++# (tvi92B: removed :ko=bt: before translation, I see no backtab cap; ++# also added empty <acsc> to suppress tic warning -- esr) ++tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper, ++ am, hs, xenl, xhp, ++ cols#80, lines#24, xmc#0, ++ acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K, ++ cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY, ++ el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I, ++ ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, ++ invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, ++ kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, ++ kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, ++ nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr, ++# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr) ++tvi92D|tvi92B with DTR instead of XON/XOFF & better padding, ++ dl1=\ER$<2*/>, il1=\EE$<2*/>, ++ is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>, ++ kil1=\EE$<2*/>, use=tvi92B, + +-# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL +-# The following SET-UP modes are assumed for normal operation: +-# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL +-# Other SET-UP modes may be set for operator convenience or communication +-# requirements. This termcap description is for the Resident Terminal Mode. +-# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +-# The BRL entry also said: UNSAFE :ll=\E[70H: +-att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs, +- am, xon, +- cols#88, it#8, lines#70, vt#3, +- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, +- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, +- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, +- il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, +- kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT, +- rs1=\Ec, sc=\E7, ++# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings ++# in from a BSD termcap file because it looks like they do something the ++# old ones skip -- esr) ++tvi924|televideo tvi924, ++ am, bw, hs, in, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, wsl#80, xmc#0, ++ bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0, ++ cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c, ++ cub1=^H, cud1=^V, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1, ++ dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et, ++ flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1, ++ ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, ++ invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0, ++ kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ++ kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r, ++ kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r, ++ kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r, ++ kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^, ++ kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4, ++ lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ++ pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef, ++ use=adm+sgr, + +-# 5620 terminfo (2.0 or later ROMS with char attributes) +-# The following SET-UP modes are assumed for normal operation: +-# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR +-# Other SET-UP modes may be set for operator convenience or communication +-# requirements. This termcap description is for Resident Terminal Mode. No +-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +-# assumptions: <ind> (scroll forward one line) is only done at screen bottom +-# Be aware that older versions of the dmd have a firmware bug that affects +-# parameter defaulting; for this terminal, the 0 in \E[0m is not optional. +-# <msgr> is from an otherwise inferior BRL for this terminal. That entry +-# also has <ll>=\E[70H commented out and marked unsafe. +-# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>. +-att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns, +- OTbs, am, msgr, npc, xon, +- cols#88, it#8, lines#70, +- bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H, +- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, +- indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J, +- pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T, +- rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7, +- sgr0=\E[0m, smso=\E[7m, smul=\E[4m, +-att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer, +- lines#24, use=att5620, +-att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer, +- lines#34, use=att5620, +-# 5620 layer running the "S" system's downloaded graphics handler: +-att5620-s|tty5620-s|layer|vitty|5620 S layer, +- OTbs, OTpt, am, +- cols#80, it#8, lines#72, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, +- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED, +- el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, +- kll=\E[70;1H, +- +-# Entries for <kf15> thru <kf28> refer to the shifted system pf keys. +-# +-# Entries for <kf29> thru <kf46> refer to the alternate keypad mode +-# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER +-att605|AT&T 605 80 column 102key keyboard, +- am, eo, xon, +- cols#80, lines#24, lw#8, nlab#8, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, +- cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, +- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, +- el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@, +- il1=\E[L, ind=^J, invis=\E[8m, +- is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017, +- kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, +- kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq, +- kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, +- kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, +- kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, +- kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, +- kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, +- kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, +- kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, +- kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, +- kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@, +- kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H, +- mc4=\E[?4i, mc5=\E[?5i, nel=\EE, +- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m, +- rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m, +- rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016, +- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m, +- tsl=\E7\E[25;%i%p1%dx, +-att605-pc|ATT 605 in pc term mode, +- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, +- cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A, +- dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, +- kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N, +- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, +- kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I, +- rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g, +- xonc=e, use=att605, +-att605-w|AT&T 605-w 132 column 102 key keyboard, +- cols#132, wsl#132, +- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0, +- use=att605, +-# (att610: I added <rmam>/<smam> based on the init string. I also +-# added <indn> and <rin> because the BSD file says the att615s have them, +-# and the 615 is like a 610 with a big keyboard, and most of their other +-# smart terminals support the same sequence -- esr) +-att610|AT&T 610; 80 column; 98key keyboard, +- am, eslok, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, +- indn=\E[%p1%dS, invis=\E[8m, +- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0, +- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H, +- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr, +- kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, +- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, +- kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i, +- nel=\EE, +- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m, +- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, +- rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx, +-att610-w|AT&T 610; 132 column; 98key keyboard, +- cols#132, wsl#132, +- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, +- use=att610, +- +-att610-103k|AT&T 610; 80 column; 103key keyboard, +- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON, +- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK, +- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, +- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, +- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, +- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn, +- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M, +- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx, +- khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl, +- knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V, +- kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq, +- krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo, +- kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610, +-att610-103k-w|AT&T 610; 132 column; 103key keyboard, +- cols#132, wsl#132, +- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, +- use=att610-103k, +-att615|AT&T 615; 80 column; 98key keyboard, +- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE, +- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ, +- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS, +- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS, +- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt, +- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr, +- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610, +-att615-w|AT&T 615; 132 column; 98key keyboard, +- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE, +- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ, +- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS, +- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS, +- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt, +- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr, +- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w, +-att615-103k|AT&T 615; 80 column; 103key keyboard, +- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k, +-att615-103k-w|AT&T 615; 132 column; 103key keyboard, +- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w, +-# (att620: I added <rmam>/<smam> based on the init string and +-# <rin>/<indn> from a BSD termcap -- esr) +-att620|AT&T 620; 80 column; 98key keyboard, +- am, eslok, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, +- indn=\E[%p1%dS, invis=\E[8m, +- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h, +- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, +- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr, +- kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE, +- kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI, +- kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, +- kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ, +- kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy, +- kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf, +- kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp, +- kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, +- kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H, +- mc4=\E[?4i, mc5=\E[?5i, nel=\EE, +- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m, +- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l, +- rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m, +- rs2=\Ec\E[?3l, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h, +- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m, +- tsl=\E7\E[25;%i%p1%dx, +-att620-w|AT&T 620; 132 column; 98key keyboard, +- cols#132, wsl#132, +- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, +- use=att620, +-att620-103k|AT&T 620; 80 column; 103key keyboard, +- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON, +- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK, +- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, +- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, +- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, +- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn, +- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M, +- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@, +- kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@, +- kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@, +- kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@, +- kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, +- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, +- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, +- kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, +- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620, +- +-att620-103k-w|AT&T 620; 132 column; 103key keyboard, +- cols#132, wsl#132, +- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, +- use=att620-103k, +- +-# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal +-# The following SETUP modes are assumed for normal operation: +-# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF +-# Font_Size=Large Non-Layers_Window_Cols=80 +-# Non-Layers_Window_Rows=60 +-# Other SETUP modes may be set for operator convenience or communication +-# requirements. Some capabilities assume a printer attached to the Aux EIA +-# port. This termcap description is for the Fixed Non-Layers Window. No +-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +-# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr) +-att630|AT&T 630 windowing terminal, +- OTbs, am, da, db, mir, msgr, npc, xon, +- cols#80, it#8, lines#60, lm#0, +- bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M, +- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, +- 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, +- dim=\E[2m, 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@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m, +- kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M, +- kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, +- kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy, +- kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~, +- kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i, +- mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, +- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m, +- rmul=\E[m, rs2=\Ec, sc=\E7, +- sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m, +- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, +-att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines, +- lines#24, use=att630, +- +-# This is the att700 entry for 700 native emulation of the AT&T 700 +-# terminal. Comments are relative to changes from the 605V2 entry and +-# att730 on which the entry is based. Comments show the terminfo +-# capability name, termcap name, and description. ++# TVI925 DIP switches. In each of these, D = Down and U = Up, + # +-# Here is what's going onm in the init string: +-# ESC [ 50;4| set 700 native mode (really is 605) +-# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) +-# ESC [ 53;0| set GenFlow to Xon/Xoff +-# ESC [ 8 ;0| set CR on NL +-# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h) +-# ESC [ ? 4 l jump scroll +-# ESC [ ? 5 l/h video: normal (l); reverse (h) +-# ESC [ ?13 l Labels on +-# ESC [ ?15 l parity check = no +-# ESC [ 13 l monitor mode off +-# ESC [ 20 l LF on NL (not CRLF on NL) +-# ESC [ ? 7 h autowrap on +-# ESC [ 12 h local echo off +-# ESC ( B GO = ASCII +-# ESC ) 0 G1 = Special Char & Line Drawing +-# ESC [ ? 31 l Set 7 bit controls ++# Here are the settings for the external (baud) switches (S1): + # +-# Note: Most terminals, especially the 600 family use Reverse Video for +-# standout mode. DEC also uses reverse video. The VT100 uses bold in addition +-# Assume we should stay with reverse video for 70.. However, the 605V2 exits +-# standout mode with \E[m (all normal attributes). The 730 entry simply +-# exits reverse video which would leave other current attributes intact. It +-# was assumed the 730 entry to be more correct so rmso has changed. The +-# 605V2 has no sequences to turn individual attributes off, thus its setting +-# and the rmso/smso settings from the 730. ++# Position Baud ++# 7 8 9 10 [Printer] ++# 1 2 3 4 [Main RS232] ++# ----------------------------------------------------- ++# D D D D 9600 ++# D D D U 50 ++# D D U D 75 ++# D D U U 110 ++# D U D D 135 ++# D U D U 150 ++# D U U D 300 ++# D U U U 600 ++# U D D D 1200 ++# U D D U 1800 ++# U D U D 2400 ++# U D U U 3600 ++# U U D D 4800 ++# U U D U 7200 ++# U U U D 9600 ++# U U U U 19200 + # +-# Note: For the same reason as above in rmso I changed exit under-score mode +-# to specifically turn off underscore, rather than return to all normal +-# attributes + # +-# Note: The following pkey_xmit is taken from the 605V2 which contained the +-# capability as pfxl. It was changed here to pfx since pfxl +-# will only compile successfully with Unix 4.0 tic. Also note that pfx only +-# allows strings to be parameters and label values must be programmed as +-# constant strings. Supposedly the pfxl of Version 4.0 allows both labels +-# and strings to be parameters. The 605V2 pfx entry should be examined later +-# in this regard. For reference the 730 pfxl entry is shown here for comparison +-# 730 pfx entry: +-# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s +-# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s, ++# Settings for word length and stop-bits (S1) + # +-# (for 4.0 tic) +-# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, ++# Position Description ++# 5 6 ++# --------------------------- ++# U - 7-bit word ++# D - 8-bit word ++# - U 2 stop bits ++# - D 1 stop bit + # +-# (for <4.0 tic) +-# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, + # +-# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9 ++# S2 (external) settings + # +-# Port1 Interface ++# Position Up Dn Description ++# -------------------------------------------- ++# 1 X Local edit ++# X Duplex edit (transmit editing keys) ++# -------------------------------------------- ++# 2 X 912/920 emulation ++# X 925 ++# -------------------------------------------- ++# 3 X ++# 4 X No parity ++# 5 X ++# -------------------------------------------- ++# 3 X ++# 4 X Odd parity ++# 5 X ++# -------------------------------------------- ++# 3 X ++# 4 X Even parity ++# 5 X ++# -------------------------------------------- ++# 3 X ++# 4 X Mark parity ++# 5 X ++# -------------------------------------------- ++# 3 X ++# 4 X Space parity ++# 5 X ++# -------------------------------------------- ++# 6 X White on black display ++# X Black on white display ++# -------------------------------------------- ++# 7 X Half Duplex ++# 8 X ++# -------------------------------------------- ++# 7 X Full Duplex ++# 8 X ++# -------------------------------------------- ++# 7 X Block mode ++# 8 X ++# -------------------------------------------- ++# 9 X 50 Hz ++# X 60 Hz ++# -------------------------------------------- ++# 10 X CR/LF (Auto LF) ++# X CR only + # +-# modular 10 pin Connector +-# Left side Right side +-# Pin 1 2 3 4 5 6 7 8 9 10 ++# S3 (internal switch) settings: + # +-# Key (notch) at bottom ++# Position Up Dn Description ++# -------------------------------------------- ++# 1 X Keyclick off ++# X Keyclick on ++# -------------------------------------------- ++# 2 X English ++# 3 X ++# -------------------------------------------- ++# 2 X German ++# 3 X ++# -------------------------------------------- ++# 2 X French ++# 3 X ++# -------------------------------------------- ++# 2 X Spanish ++# 3 X ++# -------------------------------------------- ++# 4 X Blinking block cursor ++# 5 X ++# -------------------------------------------- ++# 4 X Blinking underline cursor ++# 5 X ++# -------------------------------------------- ++# 4 X Steady block cursor ++# 5 X ++# -------------------------------------------- ++# 4 X Steady underline cursor ++# 5 X ++# -------------------------------------------- ++# 6 X Screen blanking timer (ON) ++# X Screen blanking timer (OFF) ++# -------------------------------------------- ++# 7 X Page attributes ++# X Line attributes ++# -------------------------------------------- ++# 8 X DCD disconnected ++# X DCD connected ++# -------------------------------------------- ++# 9 X DSR disconnected ++# X DSR connected ++# -------------------------------------------- ++# 10 X DTR Disconnected ++# X DTR connected ++# -------------------------------------------- + # +-# Pin 1 DSR +-# 3 DCD +-# 4 DTR +-# 5 Sig Ground +-# 6 RD +-# 7 SD +-# 8 CTS +-# 9 RTS +-# 10 Frame Ground ++# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr) ++tvi925|televideo 925, ++ OTbs, am, bw, hs, ul, ++ cols#80, lines#24, xmc#1, ++ bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET, ++ flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1, ++ ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z, ++ kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ++ ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, ++ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, ++ kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3, ++ tsl=\Eh\Ef, use=adm+sgr, ++# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL ++# to avoid "magic cookie" standout glitch: ++tvi925-hi|TeleVideo Model 925 with half intensity standout mode, ++ xmc@, ++ kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925, ++ ++# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993 ++# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82 ++# for additional capabilities, ++# The following tvi descriptions from B:pjphar and virus!mike ++# is for all 950s. It sets the following attributes: ++# full duplex (\EDF) write protect off (\E() ++# conversation mode (\EC) graphics mode off (\E%) ++# white on black (\Ed) auto page flip off (\Ew) ++# turn off status line (\Eg) clear status line (\Ef\r) ++# normal video (\E0) monitor mode off (\EX or \Eu) ++# edit mode (\Er) load blank char to space (\Ee\040) ++# line edit mode (\EO) enable buffer control (^O) ++# protect mode off (\E\047) duplex edit keys (\El) ++# program unshifted send key to send line all (\E016) ++# program shifted send key to send line unprotected (\E004) ++# set the following to nulls: ++# field delimiter (\Ex0\200\200) ++# line delimiter (\Ex1\200\200) ++# start-protected field delimiter (\Ex2\200\200) ++# end-protected field delimiter (\Ex3\200\200) ++# set end of text delimiter to carriage return/null (\Ex4\r\200) + # +-# The manual is 189 pages and is loaded with details about the escape codes, +-# etc..... Available from AT&T CIC 800-432-6600... +-# ask for Document number 999-300-660.. ++# TVI 950 Switch Setting Reference Charts + # +-att700|AT&T 700 24x80 column display w/102key keyboard, +- am, eslok, hs, mir, msgr, xenl, xon, +- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4, +- fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, +- il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m, +- is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017, +- is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, +- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, +- kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, +- kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, +- kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, +- kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq, +- kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu, +- kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu, +- kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, +- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, +- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, +- kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H, +- mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE, +- pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, +- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O, +- rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m, +- rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m, +- smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g, +- tsl=\E7\E[99;%i%p1%dx, +- +-# This entry was modified 3/13/90 by JWE. +-# fixes include additions of <enacs>, correcting <rep>, and modification +-# of <kHOM>. (See comments below) +-# att730 has status line of 80 chars +-# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>, +-# the <kf25> and up keys are used for shifted system Fkeys +-# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is +-# currently the same as <khome> (unshifted HOME or \E[H). On the 102, 102+1 +-# and 122 key keyboards, the 730's translation is \E[2J. For consistency +-# <kHOM> has been commented out. The user can uncomment <kHOM> if using the +-# 102, 102+1, or 122 key keyboards +-# kHOM=\E[2J, +-# (att730: I added <rmam>/<smam> based on the init string -- esr) +-att730|AT&T 730 windowing terminal, +- am, da, db, eslok, hs, mir, msgr, npc, xenl, xon, +- cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, +- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8, +- home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, +- ind=\ED, invis=\E[8m, +- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B, +- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H, +- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr, +- kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw, +- kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{, +- kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD, +- kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH, +- kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ, +- kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf, +- kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ, +- kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg, +- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, +- kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T, +- mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE, +- pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq SYS F%p1%:-2d %e;0;3q%;%p2%s, +- pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s, +- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, +- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O, +- rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m, +- rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h, +- swidm=\E#6, tsl=\E7\E[;%i%p1%dx, +-att730-41|730MTG-41|AT&T 730-41 windowing terminal Version, +- lines#41, use=att730, +-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version, +- lines#24, use=att730, +-att730r|730MTGr|AT&T 730 rev video windowing terminal Version, +- flash=\E[?5l$<200>\E[?5h, +- is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B, +- use=att730, +-att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version, +- lines#41, use=att730r, +-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version, +- lines#24, use=att730r, +- +-# The following represents the screen layout along with the associated +-# bezel buttons for the 5430/pt505 terminal. The "kf" designations do +-# not appear on the screen but are shown to reference the bezel buttons. +-# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate +-# position relative to the screen. +-# +-# +-# +-# +----------------------------------------------------------------+ +-# | | +-# XXXX | kf0 kf24 | XXXX +-# | | +-# | | +-# XXXX | kf1 kf23 | XXXX +-# | | +-# | | +-# XXXX | kf2 kf22 | XXXX +-# | | +-# | | +-# XXXX | kf3 kf21 | XXXX +-# | | +-# | | +-# XXXX | kf4 kf20 | XXXX +-# | | +-# | | +-# XXXX | kf5 kf19 | XXXX +-# | | +-# | | +-# XXXX | kf6 kf18 | XXXX +-# | | +-# | | +-# XXXX | | XXXX +-# | | +-# | | +-# +----------------------------------------------------------------+ +-# +-# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +-# +-# Note: XXXX represents the screen buttons +-# CMD REDRAW ++# TABLE 1: + # +-# MAIL ++# S1 1 2 3 4 5 6 7 8 9 10 ++# +-----------------------+-----+-----+-----------------------+ ++# | Computer Baud Rate |Data |Stop | Printer Baud Rate | ++# | |Bits |Bits | | ++# +------+-----------------------+-----+-----+-----------------------+ ++# | Up | See | 7 | 2 | See | ++# +------+-----------------------+-----+-----+-----------------------+ ++# | Down | TABLE 2 | 8 | 1 | TABLE 2 | ++# +------+-----------------------+-----+-----+-----------------------+ + # +-# version 1 note: +-# The character string sent by key 'kf26' may be user programmable +-# to send either \E[16s, or \E[26s. +-# The character string sent by key 'krfr' may be user programmable +-# to send either \E[17s, or \E[27s. + # +-# Depression of the "CMD" key sends \E! (kcmd) +-# Depression of the "MAIL" key sends \E[26s (kf26) +-# "REDRAW" same as "REFRESH" (krfr) ++# S2 1 2 3 4 5 6 7 8 9 10 ++# +-----+-----+-----------------+-----+-----------+-----+-----+ ++# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click| ++# +------+-----+-----+-----------------+-----+-----------+-----+-----+ ++# | Up | Dplx|Blink| See |GonBk| See | 60 | Off | ++# +------+-----+-----+-----------------+-----+-----------+-----+-----+ ++# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On | ++# +------+-----+-----+-----------------+-----+-----------+-----+-----+ + # +-# "kf" functions adds carriage return to output string if terminal is in +-# 'new line' mode. ++# TABLE 2: + # +-# The following are functions not covered in the table above: ++# +-----------+-----+-----+-----+-----+-----------+ ++# | Display | 1 | 2 | 3 | 4 | Baud | ++# +-----------+-----+-----+-----+-----+ | ++# | Printer | 7 | 8 | 9 | 10 | Rate | ++# +-----------+-----+-----+-----+-----+-----------+ ++# | D | D | D | D | 9600 | ++# | U | D | D | D | 50 | ++# | D | U | D | D | 75 | ++# | U | U | D | D | 110 | ++# | D | D | U | D | 135 | ++# | U | D | U | D | 150 | ++# | D | U | U | D | 300 | ++# | U | U | U | D | 600 | ++# | D | D | D | U | 1200 | ++# | U | D | D | U | 1800 | ++# | D | U | D | U | 2400 | ++# | U | U | D | U | 3600 | ++# | D | D | U | U | 4800 | ++# | U | D | U | U | 7200 | ++# | D | U | U | U | 9600 | ++# | U | U | U | U | 19200 | ++# +-----+-----+-----+-----+-----------+ + # +-# Set keyboard character (SKC): \EPn1;Pn2w +-# Pn1= 0 Back Space key +-# Pn1= 1 Break key +-# Pn2= Program char (hex) ++# TABLE 3: ++# +-----+-----+-----+-----------+ ++# | 3 | 4 | 5 | Parity | ++# +-----+-----+-----+-----------+ ++# | X | X | D | None | ++# | D | D | U | Odd | ++# | D | U | U | Even | ++# | U | D | U | Mark | ++# | U | U | U | Space | ++# +-----+-----+-----+-----------+ ++# X = don't care + # +-# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t +-# Pn1= Window number (1-39) +-# Pn2-Pn5= Y;X;Y;X coordinates ++# CHART: ++# +-----+-----+-----------------+ ++# | 7 | 8 | Communication | ++# +-----+-----+-----------------+ ++# | D | D | Half Duplex | ++# | D | U | Full Duplex | ++# | U | D | Block | ++# | U | U | Local | ++# +-----+-----+-----------------+ + # +-# Screen Selection (SSL): \E[Pnu +-# Pn= Window number ++# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". ++# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich> ++# should be present and all tvi native modes use the same string for this. ++# Finally, note that BSD has cud1=^V. -- esr) ++tvi950|televideo 950, ++ OTbs, am, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, xmc#1, ++ acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*, ++ cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed, ++ fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J, ++ invis@, ++ is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r, ++ kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L, ++ kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r, ++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X, ++ rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef, ++ use=adm+sgr, + # +-# Set Terminal Modes (SM): \E[Pnh +-# Pn= 3 Graphics mode +-# Pn= > Cursor blink +-# Pn= < Enter new line mode +-# Pn= = Enter reverse insert/replace mode +-# Pn= ? Enter no scroll mode ++# is for 950 with two pages adds the following: ++# set 48 line page (\E\\2) ++# place cursor at page 0, line 24, column 1 (\E-07 ) ++# set local (no send) edit keys (\Ek) + # +-# Reset Terminal Mode (RM): \E[Pnl +-# Pn= 3 Exit graphics mode +-# Pn= > Exit cursor blink +-# Pn= < Exit new line mode +-# Pn= = Exit reverse insert/replace mode +-# Pn= ? Exit no scroll mode ++# two page 950 adds the following: ++# when entering ex, set 24 line page (\E\\1) ++# when exiting ex, reset 48 line page (\E\\2) ++# place cursor at 0,24,1 (\E-07 ) ++# set duplex (send) edit keys (\El) when entering vi ++# set local (no send) edit keys (\Ek) when exiting vi + # +-# Screen Status Report (SSR): \E[Pnp +-# Pn= 0 Request current window number +-# Pn= 1 Request current window dimensions ++tvi950-2p|televideo950 w/2 pages, ++ is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011, ++ rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, ++ smkx=\El, use=tvi950, + # +-# Device Status Report (DSR): \E[6n Request cursor position ++# is for 950 with four pages adds the following: ++# set 96 line page (\E\\3) ++# place cursor at page 0, line 24, column 1 (\E-07 ) + # +-# Call Status Report (CSR): \E[Pnv +-# Pn= 0 Call failed +-# Pn= 1 Call successful ++# four page 950 adds the following: ++# when entering ex, set 24 line page (\E\\1) ++# when exiting ex, reset 96 line page (\E\\3) ++# place cursor at 0,24,1 (\E-07 ) + # +-# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string +-# Pn1= Button number to be loaded +-# Pn2= Character count of "string" +-# Pn3= Key mode being loaded: +-# 0= Unshifted +-# 1= Shifted +-# 2= Control +-# String= Text string (15 chars max) ++tvi950-4p|televideo950 w/4 pages, ++ is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011, ++ rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, ++ smkx=\El, use=tvi950, + # +-# Screen Number Report (SNR): \E[Pnp +-# Pn= Screen number ++# <is2> for reverse video 950 changes the following: ++# set reverse video (\Ed) + # +-# Screen Dimension Report (SDR): \E[Pn1;Pn2r +-# Pn1= Number of rows available in window +-# Pn2= Number of columns available in window +-# +-# Cursor Position Report (CPR): \E[Pn1;Pn2R +-# Pn1= "Y" Position of cursor +-# Pn2= "X" Position of cursor +-# +-# Request Answer Back (RAB): \E[c +-# +-# Answer Back Response (ABR): \E[?;*;30;VSV +-# *= 0 No printer available +-# *= 2 Printer available +-# V= Software version number +-# SV= Software sub version number +-# (printer-available field not documented in v1) +-# +-# Screen Alignment Aid: \En +-# +-# Bell (lower pitch): \E[x +-# +-# Dial Phone Number: \EPdstring\ +-# string= Phone number to be dialed +-# +-# Set Phone Labels: \EPpstring\ +-# string= Label for phone buttons +-# +-# Set Clock: \EPchour;minute;second\ +-# +-# Position Clock: \EPsY;X\ +-# Y= "Y" coordinate +-# X= "X" coordinate +-# +-# Delete Clock: \Epr\ +-# +-# Programming The Function Buttons: \EPfPn;string\ +-# Pn= Button number (00-06, 18-24) +-# (kf00-kf06, kf18-kf24) +-# string= Text to sent on button depression +-# +-# The following in version 2 only: +-# +-# Request For Local Directory Data: \EPp12;\ +-# +-# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\ +-# +-# Request for Local Directory Data in print format: \EPp13;\ +-# +-# Enable 'Prt on Line' mode: \022 (DC2) +-# +-# Disable 'Prt on Line' mode: \024 (DC4) ++# set vb accordingly (\Ed ...delay... \Eb) + # ++tvi950-rv|televideo950 rev video, ++ flash=\Ed$<200/>\Eb, ++ is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0, ++ use=tvi950, + +-# 05-Aug-86: +-# The following Terminfo entry describes functions which are supported by +-# the AT&T 5430/pt505 terminal software version 2 and later. +-att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal, +- am, xon, ++# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv ++tvi950-rv-2p|televideo950 rev video w/2 pages, ++ flash=\Ed$<200/>\Eb, ++ is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s, ++ rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, ++ smkx=\El, use=tvi950, ++ ++# tvi950-rv uses the appropriate entries from 950-4p and 950-rv ++tvi950-rv-4p|televideo950 rev video w/4 pages, ++ flash=\Ed$<200/>\Eb, ++ is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s, ++ rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s, ++ smkx=\El, use=tvi950, ++# From: Andreas Stolcke <stolcke@icsi.berkeley.edu> ++# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H"; ++# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in ++# the :rs: string, inserted the <ich> implied by the termcap :ko: string. Note ++# the :ko: string had :cl: in it, which means that one of the original ++# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what ++# the 950 has. Finally, corrected the <kel> string to match the 950 and what ++# ko implies -- esr) ++# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would ++# also work. ++tvi955|televideo 955, ++ OTbs, mc5i, msgr@, ++ it#8, xmc@, ++ acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2, ++ civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH, ++ cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1, ++ is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1, ++ knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%, ++ rmam=\E[=7l, rmxon=^N, ++ rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r, ++ sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O, ++ use=tvi950, ++tvi955-w|955-w|televideo955 w/132 cols, ++ cols#132, ++ is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955, ++# use half-intensity as normal mode, full intensity as <bold> ++tvi955-hb|955-hb|televideo955 half-bright, ++ bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El, ++ sgr0=\EG0\E[=5h, use=tvi955, ++# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin ++# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m; ++# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL. ++# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what ++# it does to the function keys. I deduced <rmam>/<smam>. ++# also added empty <acsc> to suppress tic warning, -- esr) ++tvi970|televideo 970, ++ OTbs, OTpt, am, da, db, mir, msgr, + cols#80, it#8, lines#24, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H, +- cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I, +- il=\E[%p1%dL, il1=\E[L, ind=^J, +- is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l, +- kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s, +- kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s, +- kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s, +- kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s, +- krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, +- rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m, +- rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m, +- smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m, ++ acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr, ++ cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df, ++ cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r, ++ ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, il1=\E[L, ++ is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J, ++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f, ++ kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B, ++ rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smacs=\E(B, smam=\E[?7l, ++ smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m, ++ smul=\E[4m, vpa=\E[%i%p1%dd, ++tvi970-vb|televideo 970 with visual bell, ++ flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l, ++ use=tvi970, ++tvi970-2p|televideo 970 with using 2 pages of memory, ++ rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q, ++ use=tvi970, ++# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars ++# per line (rather than 40), Esc K chooses the normal character set. Not sure ++# padding is needed, but adapted from the tvi920c termcap. The <smso> and ++# <smul> strings are klutzy, but at least use no screen space. ++# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>, ++# its absence means <smam>=\Ev isn't safe to use. -- esr) ++# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. ++# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says: ++# F1 and F2 should be programmed as ^A and ^B; required for UNIFY. ++tvipt|televideo personal terminal, ++ OTbs, am, ++ cols#80, lines#24, ++ cbt=\EI, clear=^Z, cub1=^H, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>, ++ ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt, ++ il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J, ++ kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R, ++ rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH, ++# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996 ++tvi9065|televideo 9065, ++ am, bw, chts, hs, mc5i, mir, msgr, xenl, xon, ++ cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0, ++ wnum#0, wsl#30, ++ acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G, ++ blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z, ++ cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, ++ cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA, ++ cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp, ++ dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY, ++ el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1, ++ ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt, ++ il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1, ++ ip=$<3>, ++ is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er, ++ is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s, ++ kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ++ kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H, ++ mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J, ++ pfkey=\E|%p1%{48}%+%c3%p2%s\031, ++ pfloc=\E|%p1%{48}%+%c2%p2%s\031, ++ pfx=\E|%p1%{48}%+%c1%p2%s\031, ++ pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&, ++ rep=\E[%p2%db%p1%c, rev=\EG4, ++ rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT, ++ rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H, ++ rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0, ++ rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l, ++ rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1, ++ rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0, ++ sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p8%t\E&%;%?%p9%t\E$%e\E%%%;, ++ sgr0=\EG0\E%, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er, ++ smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O, ++ tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0, + +-# The following Terminfo entry describes functions which are supported by +-# the AT&T 5430/pt505 terminal software version 1. +-att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines, +- lines#24, +- mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505, +-tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines, +- lines#22, use=att505, +-# +-#### ------------------ TERMINFO FILE CAN BE SPLIT HERE --------------------- +-# This cut mark helps make life less painful for people running ncurses tic +-# on machines with relatively little RAM. The file can be broken in half here +-# cleanly and compiled in sections -- no `use' references cross this cut +-# going forward. ++#### Visual (vi) + # +- +-#### Ampex (Dialogue) ++# In September 1993, Visual Technology of Westboro, Massachusetts, ++# merged with White Pine Software of Nashua, New Hampshire. + # +-# Yes, these are the same people who are better-known for making audio- and +-# videotape. I'm told they are located in Redwood City, CA. ++# White Pine Software may be contacted at +1 603/886-9050. ++# Or visit White Pine on the World Wide Web at URL http://www.wpine.com. + # + +-# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981 +-# (ampex80: some capabilities merged in from SCO's entry -- esr) +-ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80, +- OTbs, am, bw, ul, ++# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs> ++# Recently I hacked together the following termcap for Visual ++# Technology's Visual 50 terminal. It's a slight modification of ++# the vt52 termcap. ++# It's intended to run when the Visual 50 is in vt52 emulation mode ++# (I know what you're thinking; if it's emulating a vt52, then why ++# another termcap? Well, it turns out that the Visual 50 can handle ++# <dl1> and db(?) among other things, which the vt52 can't) ++# The termcap works OK for the most part. The only problem is on ++# character inserts. The whole line gets painfully redrawn for each ++# character typed. Any suggestions? ++# Beau's entry is combined with the vi50 entry from University of Wisconsin. ++# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in ++# disguise; <kf7>-<kf9> are really l1-l3. ++vi50|visual 50, ++ OTbs, OTpt, am, da, db, msgr, + cols#80, it#8, lines#24, +- bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1, +- ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em, +- smso=\Ej, smul=\El, tbc=\E3, +-# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote: +-ampex175|ampex d175, +- am, +- cols#80, lines#24, +- bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J, +- is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, +- kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K, +- rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El, +-# No backspace key in the main QWERTY cluster. Fortunately, it has a +-# NEWLINE/PAGE key just above RETURN that sends a strange single-character +-# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS +-# mode), this key can be used as the erase key; I find I like this. Because +-# some people and some systems may not, there is another termcap ("ampex175") +-# that suppresses this little eccentricity by omitting the relevant capability. +-ampex175-b|ampex d175 using left arrow for erase, +- kbs=^_, use=ampex175, +-# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu> +-# (ampex210: removed obsolete ":kn#10:" -- esr) +-ampex210|a210|ampex a210, +- OTbs, am, hs, xenl, +- cols#80, it#8, lines#24, xmc#1, +- cbt=\EI, clear=\E*, cub1=^H, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX, +- fsl=\E.2, home=^^, ht=^I, ich1=\EQ, +- if=/usr/share/tabset/std, il1=\EE, invis@, +- is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H, +- kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r, +- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r, +- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^, +- tsl=\E.0\Eg\E}\Ef, use=adm+sgr, +-# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis> +-# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>, +-# and moved the padding to be *after* the caps -- esr) +-ampex219|ampex-219|amp219|Ampex with Automargins, +- hs, xenl, ++ OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H, ++ cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH, ++ ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV, ++ kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH, ++ nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES, ++# this one was BSD & SCO's vi50 ++vi50adm|visual 50 in adm3a mode, ++ am, msgr, + cols#80, it#8, lines#24, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z, +- clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M, +- csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, +- cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>, +- cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>, +- el=\E[K$<3>, home=\E[H, ht=^I, ind=^J, +- is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~, +- kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H, +- rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>, +- rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h, +- smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>, +-ampex219w|ampex-219w|amp219w|Ampex 132 cols, +- cols#132, lines#24, +- bel=^G, cr=^M, cud1=^J, ind=^J, +- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219, +-# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr) +-ampex232|ampex-232|Ampex Model 232, +- am, +- cols#80, lines#24, xmc#1, +- cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET, +- flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>, +- invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L, +- kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, +- kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, +- kf9=^AI\r, khome=^^, use=adm+sgr, +-# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr) +-ampex232w|Ampex Model 232 / 132 columns, +- cols#132, lines#24, +- is2=\E\034Eg\El, use=ampex232, ++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM, ++ ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, ++ rmso=\ET, smso=\EU, ++# From: Jeff Siegal <jbs@quiotix.com> ++vi55|Visual 55, ++ OTbs, am, mir, msgr, ++ cols#80, it#8, lines#24, ++ clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H, ++ cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ++ il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET, ++ smir=\Ea, smso=\EU, + +-#### Ann Arbor (aa) +-# +-# Ann Arbor made dream terminals for hackers -- large screen sizes and huge +-# numbers of function keys. At least some used monitors in portrait mode, +-# allowing up to 76-character screen heights! They were reachable at: +-# +-# Ann Arbor Terminals +-# 6175 Jackson Road +-# Ann Arbor, MI 48103 +-# (313)-663-8000 +-# +-# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor +-# can't be found on the Web; I fear they're long dead. R.I.P. +-# ++# Visual 200 from BRL ++# The following switch settings are assumed for normal operation: ++# FULL_DUPLEX SCROLL CR ++# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE ++# Other switches may be set for operator convenience or communication ++# requirements. ++# Character insertion is kludged in order to get around the "beep" misfeature. ++# (This cap is commented out because <smir>/<rmir> is more efficient -- esr) ++# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>, ++# and <dl1> strings, but we seem to get along fine without them. ++vi200|visual 200, ++ OTbs, OTpt, am, mir, msgr, ++ OTkn#10, cols#80, it#8, lines#24, ++ acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H, ++ cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey, ++ el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea, ++ kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p, ++ kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, ++ kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei, ++ kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI, ++ rmacs=\EG, rmkx=\E>, rmso=\E3, ++ rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF, ++ smkx=\E=, smso=\E4, tbc=\Eg, ++# The older Visuals didn't come with function keys. This entry uses ++# <smkx> and <rmkx> so that the keypad keys can be used as function keys. ++# If your version of vi doesn't support function keys you may want ++# to use vi200-f. ++vi200-f|visual 200 no function keys, ++ is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q, ++ kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w, ++ kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@, ++ use=vi200, ++vi200-rv|visual 200 reverse video, ++ cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200, + ++# the function keys are programmable but we don't reprogram them to their ++# default values with <is2> because programming them is very verbose. maybe ++# an initialization file should be made for the 300 and they could be stuck ++# in it. ++# (vi300: added <rmam>/<smam> based on init string -- esr) ++vi300|visual 300 ansi x3.64, ++ am, bw, mir, xenl, ++ cols#80, lines#24, ++ bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ++ il1=\E[L, ind=^J, ++ is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\, ++ kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\, ++ kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l, ++ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h, ++ smso=\E[1m, smul=\E[4m, ++# some of the vi300s have older firmware that has the command ++# sequence for setting editing extent reversed. ++vi300-old|visual 300 with old firmware (set edit extent reversed), ++ is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s, ++ use=vi300, + +-# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs. +-# Highly modified 6/22 by Mike O'Brien. +-# split out into several for the various screen sizes by dave-yost@rand +-# Modifications made 3/82 by Mark Horton +-# Modified by Tom Quarles at UCB for greater efficiency and more diversity +-# status line moved to top of screen, <flash> removed 5/82 +-# Some unknown person at SCO then hacked the init strings to make them more +-# efficient. +-# +-# assumes the following setup: +-# A menu: 0000 1010 0001 0000 +-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 +-# C menu: 56 66 0 0 9600 0110 1100 +-# D menu: 0110 1001 1 0 +-# +-# Briefly, the settings are for the following modes: +-# (values are for bit set/clear with * indicating our preference +-# and the value used to test these termcaps) +-# Note that many of these settings are irrelevent to the terminfo +-# and are just set to the default mode of the terminal as shipped +-# by the factory. ++# Visual 500 prototype entry from University of Wisconsin. ++# The best place to look for the escape sequences is page A1-1 of the ++# Visual 500 manual. The initialization sequence given here may be ++# overkill, but it does leave out some of the initializations which can ++# be done with the menus in set-up mode. ++# The :xp: line below is so that emacs can understand the padding requirements ++# of this slow terminal. :xp: is 10 time the padding factor. ++# (vi500: removed unknown :xp#4: termcap; ++# also added empty <acsc> to suppress tic warning -- esr) ++vi500|visual 500, ++ am, mir, msgr, ++ cols#80, it#8, lines#33, ++ acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M, ++ csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB, ++ cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ++ dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>, ++ el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>, ++ ind=^J, ++ is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\, ++ kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G, ++ rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D, ++ ++# The visual 550 is a visual 300 with tektronix graphics, ++# and with 33 lines. clear screen is modified here to ++# also clear the graphics. ++vi550|visual 550 ansi x3.64, ++ lines#33, ++ clear=\030\E[H\E[2J, use=vi300, ++ ++vi603|visual603|visual 603, ++ hs, mir, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, ++ csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, ++ dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L, ++ ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r, ++ rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, ++ sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~, ++ use=vt100, ++ ++#### Wyse (wy) + # +-# A menu: 0000 1010 0001 0000 +-# Block/underline cursor* +-# blinking/nonblinking cursor* +-# key click/no key click* +-# bell/no bell at column 72* ++# Wyse Technology ++# 3471 North First Street ++# San Jose, CA 95134 ++# Vox: (408)-473-1200 ++# Fax: (408) 473-1222 ++# Web: http://www.wyse.com + # +-# key pad is cursor control*/key pad is numeric +-# return and line feed/return for <cr> key * +-# repeat after .5 sec*/no repeat +-# repeat at 25/15 chars per sec. * ++# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at ++# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the ++# obvious address, <http://www.wyse.com>. They keep terminfo entries at ++# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>. + # +-# hold data until pause pressed/process data unless pause pressed* +-# slow scroll/no slow scroll* +-# Hold in area/don't hold in area* +-# functions keys have default*/function keys disabled on powerup ++# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995. ++# They now own the Qume and Amdek brands, too. So these are the people to ++# talk with about all Link, Qume, and Amdek terminals. + # +-# show/don't show position of cursor during page transmit* +-# unused +-# unused +-# unused ++# These entries include a few small fixes. ++# I canceled the bel capacities in the vb entries. ++# I made two trivial syntax fixes in the wyse30 entry. ++# I made some entries relative to adm+sgr. + # +-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 +-# Baud rate (9600*) + # +-# 2 bits of parity - 00=odd,01=even*,10=space,11=mark +-# 1 stop bit*/2 stop bits +-# parity error detection off*/on +-# +-# keyboard local/on line* +-# half/full duplex* +-# disable/do not disable keyboard after data transmission* ++# Note: The wyse75, wyse85, and wyse99 have been discontinued. ++ ++# Although the Wyse 30 can support more than one attribute ++# it requires magic cookies to do so. Many applications do not ++# function well with magic cookies. The following terminfo uses ++# the protect mode to support one attribute (dim) without cookies. ++# If more than one attribute is needed then the wy30-mc terminfo ++# should be used. + # +-# transmit entire page/stop transmission at cursor* +-# transfer/do not transfer protected characters* +-# transmit all characters/transmit only selected characters* +-# transmit all selected areas/transmit only 1 selected area* ++wy30|wyse30|Wyse 30, ++ am, bw, hs, mc5i, mir, msgr, xon, ++ cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45, ++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI, ++ civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H, ++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>, ++ dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9, ++ fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>, ++ ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024, ++ kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, ++ kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, ++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ, ++ kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T, ++ mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>, ++ rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(, ++ sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, ++ sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10, ++ smso=\E`7\E), tbc=\E0, tsl=\EF, + # +-# transmit/do not transmit line separators to host* +-# transmit/do not transmit page tab stops tabs to host* +-# transmit/do not transmit column tab stop tabs to host* +-# transmit/do not transmit graphics control (underline,inverse..)* ++# This terminal description uses the non-hidden attribute mode ++# (with magic cookie). + # +-# enable*/disable auto XON/XOFF control +-# require/do not require receipt of a DC1 from host after each LF* +-# pause key acts as a meta key/pause key is pause* +-# unused ++# (wy30-mc: added <smcup> to suppress tic warning --esr) ++wy30-mc|wyse30-mc|wyse 30 with magic cookies, ++ msgr@, ++ ma@, xmc#1, ++ blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003, ++ rmcup=\EG0, rmso=\EG0, ++ sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, ++ sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=, ++ smso=\EG4, use=wy30, use=adm+sgr, ++# The mandatory pause used by <flash> does not work with ++# older versions of terminfo. If you see this effect then ++# unset xon and delete the / from the delay. ++# i.e. change $<100/> to $<100> ++wy30-vb|wyse30-vb|wyse 30 visible bell, ++ bel@, use=wy30, + # +-# unused +-# unused +-# unused +-# unused ++# The Wyse 50 can support one attribute (e.g. Dim, Inverse, ++# Normal) without magic cookies by using the protect mode. ++# The following description uses this feature, but when more ++# than one attribute is put on the screen at once, all attributes ++# will be changed to be the same as the last attribute given. ++# The Wyse 50 can support more attributes when used with magic ++# cookies. The wy50-mc terminal description uses magic cookies ++# to correctly handle multiple attributes on a screen. + # +-# XON character (17*) +-# XOFF character (19*) ++wy50|wyse50|Wyse 50, ++ am, bw, hs, mc5i, mir, msgr, xon, ++ cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45, ++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI, ++ civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H, ++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r, ++ ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M, ++ home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>, ++ is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H, ++ kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, ++ kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, ++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, ++ kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ++ ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, ++ pfx=\Ez%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E), ++ ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(, ++ sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, ++ sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10, ++ smso=\E`6\E), tbc=\E0, tsl=\EF, + # +-# C menu: 56 66 0 0 9600 0110 1100 +-# number of lines to print data on (printer) (56*) ++# This terminal description uses the non-hidden attribute mode ++# (with magic cookie). + # +-# number of lines on a sheet of paper (printer) (66*) ++# The mandatory pause used by flash does not work with some ++# older versions of terminfo. If you see this effect then ++# unset <xon> and delete the / from the delay. ++# i.e. change $<100/> to $<100> ++# (wy50-mc: added <smcup> to suppress tic warning --esr) ++wy50-mc|wyse50-mc|wyse 50 with magic cookies, ++ msgr@, ++ ma@, xmc#1, ++ blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4, ++ rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0, ++ sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, ++ sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=, ++ smso=\EGt, use=wy50, use=adm+sgr, ++wy50-vb|wyse50-vb|wyse 50 visible bell, ++ bel@, use=wy50, ++wy50-w|wyse50-w|wyse 50 132-column, ++ cols#132, lw#7, nlab#16, wsl#97, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>, ++ use=wy50, ++wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell, ++ bel@, use=wy50-w, ++ + # +-# left margin (printer) (0*) ++# The Wyse 350 is a Wyse 50 with color. ++# Unfortunately this means that it has magic cookies. ++# The color attributes are designed to overlap the reverse, dim and ++# underline attributes. This is nice for monochrome applications ++# because you can make underline stuff green (or any other color) ++# but for true color applications it's not so hot because you cannot ++# mix color with reverse, dim or underline. ++# To further complicate things one of the attributes must be ++# black (either the foreground or the background). In reverse video ++# the background changes color with black letters. In normal video ++# the foreground changes colors on a black background. ++# This terminfo uses some of the more advanced features of curses ++# to display both color and blink. In the final analysis I am not ++# sure that the wy350 runs better with this terminfo than it does ++# with the wy50 terminfo (with user adjusted colors). + # +-# number of pad chars on new line to printer (0*) ++# The mandatory pause used by flash does not work with ++# older versions of terminfo. If you see this effect then ++# unset xon and delete the / from the delay. ++# i.e. change $<100/> to $<100> + # +-# printer baud rate (9600*) ++# Bug: The <op> capability resets attributes. ++wy350|wyse350|Wyse 350, ++ am, bw, hs, mc5i, mir, xon, ++ colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8, ++ wsl#45, xmc#1, ++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2, ++ cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, ++ cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>, ++ dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET, ++ flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1, ++ il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>, ++ is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ++ ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, ++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, ++ kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ++ ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0, ++ pfx=\Ez%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej, ++ rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=, ++ setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c, ++ sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;, ++ sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002, ++ smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr, ++wy350-vb|wyse350-vb|wyse 350 visible bell, ++ bel@, use=wy350, ++wy350-w|wyse350-w|wyse 350 132-column, ++ cols#132, lw#7, nlab#16, wsl#97, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>, ++ use=wy350, ++wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell, ++ bel@, use=wy350-w, + # +-# printer parity: 00=odd,01=even*,10=space,11=mark +-# printer stop bits: 2*/1 +-# print/do not print guarded areas* ++# This terminfo description is untested. ++# The wyse100 emulates an adm31, so the adm31 entry should work. + # +-# new line is: 01=LF,10=CR,11=CRLF* +-# unused +-# unused ++wy100|wyse 100, ++ hs, mir, ++ cols#80, lines#24, xmc#1, ++ bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J, ++ invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, ++ kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, ++ kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{, ++ rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr, + # +-# D menu: 0110 1001 1 0 +-# LF is newline/LF is down one line, same column* +-# wrap to preceding line if move left from col 1*/don't wrap +-# wrap to next line if move right from col 80*/don't wrap +-# backspace is/is not destructive* ++# The Wyse 120/150 has most of the features of the Wyse 60. ++# This terminal does not need padding up to 9600 baud! ++# <msgr> should be set but the clear screen fails when in ++# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear ++# then set <msgr>. + # +-# display*/ignore DEL character +-# display will not/will scroll* +-# page/column tab stops* +-# erase everything*/erase unprotected only ++wy120|wyse120|wy150|wyse150|Wyse 120/150, ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45, ++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, ++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>, ++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>, ++ dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>, ++ flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>, ++ hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1, ++ is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, ++ is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, ++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, ++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, ++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K, ++ mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>, ++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177, ++ pfx=\EZ1%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>, ++ rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11, ++ rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>, ++ rs3=\EwG\Ee($<100>, ++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, ++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, ++ smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21, ++ tbc=\E0, tsl=\EF, use=adm+sgr, + # +-# editing extent: 0=display,1=line*,2=field,3=area ++wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column, ++ cols#132, lw#7, nlab#16, wsl#97, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>, ++ rs2=\E`;$<70>, use=wy120, + # +-# unused ++wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy120, + # ++wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy120-w, ++# ++wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell, ++ bel@, use=wy120, ++# ++wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell, ++ bel@, use=wy120-w, ++# ++# The Wyse 60 is like the Wyse 50 but with more padding. ++# The reset strings are slow and the pad times very depending ++# on other parameters such as font loading. I have tried ++# to follow the following outline: ++# ++# <rs1> -> set personality ++# <rs2> -> set number of columns ++# <rs3> -> set number of lines ++# <is1> -> select the proper font ++# <is2> -> do the initialization ++# <is3> -> set up display memory (2 pages) ++# ++# The Wyse 60's that have vt100 emulation are slower than the ++# older Wyse 60's. This change happened mid-1987. ++# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri> ++# ++# The meta key is only half right. This terminal will return the ++# high order bit set when you hit CTRL-function_key ++# ++# It may be useful to assign two function keys with the ++# values \E=(\s look at old data in page 1 ++# \E=W, look at bottom of page 1 ++# where \s is a space ( ). ++# ++# Note: ++# The Wyse 60 runs faster when the XON/XOFF ++# handshake is turned off. ++# ++# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid ++# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) ++wy60|wyse60|Wyse 60, ++ am, bw, hs, km, mc5i, mir, msgr, ++ cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45, ++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, ++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>, ++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r, ++ ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M, ++ home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>, ++ ip=$<3>, is1=\EcB0\EcC1, ++ is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, ++ is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, ++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, ++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, ++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K, ++ mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>, ++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177, ++ pfx=\EZ1%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>, ++ rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er, ++ rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>, ++ rs2=\EeG$<150>, rs3=\EwG\Ee($<200>, ++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, ++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, ++ smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21, ++ tbc=\E0, tsl=\EF, use=adm+sgr, ++# ++wy60-w|wyse60-w|wyse 60 132-column, ++ cols#132, lw#7, nlab#16, wsl#97, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>, ++ rs2=\EeF$<150>\E`;$<150>, use=wy60, ++# ++wy60-25|wyse60-25|wyse 60 80-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<200>, use=wy60, ++wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<200>, use=wy60-w, ++# ++wy60-42|wyse60-42|wyse 60 80-column 42-lines, ++ lines#42, ++ clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>, ++ dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>, ++ ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>, ++ ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60, ++wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines, ++ cols#132, lw#7, nlab#16, wsl#97, ++ clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>, ++ dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>, ++ nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42, ++# ++wy60-43|wyse60-43|wyse 60 80-column 43-lines, ++ lh@, lines#43, lw@, nlab@, ++ pln@, rs3=\Ee+$<150>, use=wy60-42, ++wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines, ++ lh@, lines#43, lw@, nlab@, ++ pln@, rs3=\Ee+$<150>, use=wy60-42-w, ++# ++wy60-vb|wyse60-vb|Wyse 60 visible bell, ++ bel@, use=wy60, ++wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell, ++ bel@, use=wy60-w, + +-annarbor4080|aa4080|ann arbor 4080, +- OTbs, am, +- cols#80, lines#40, +- bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_, +- cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c, +- cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H, +- kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P, ++# The Wyse-99GT looks at lot like the Wyse 60 except that it ++# does not have the 42/43 line mode. In the Wyse-60 the "lines" ++# setup parameter controls the number of lines on the screen. ++# For the Wyse 99GT the "lines" setup parameter controls the ++# number of lines in a page. The screen can display 25 lines max. ++# The Wyse-99GT also has personalities for the VT220 and ++# Tektronix 4014. But this has no bearing on the native mode. ++# ++# (msgr) should be set but the clear screen fails when in ++# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear ++# then set msgr, else use msgr@. ++# ++# u0 -> enter Tektronix mode ++# u1 -> exit Tektronix mode ++# ++wy99gt|wyse99gt|Wyse 99gt, ++ msgr@, ++ clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>, ++ el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>, ++ il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@, ++ ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1, ++ u0=\E~>\E8, u1=\E[42h, use=wy60, ++# ++wy99gt-w|wyse99gt-w|wyse 99gt 132-column, ++ cols#132, lw#7, nlab#16, wsl#97, ++ clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>, ++ dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>, ++ use=wy99gt, ++# ++wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt, ++# ++wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs2=\E`;$<150>, use=wy99gt-w, ++# ++wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell, ++ bel@, use=wy99gt, ++# ++wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell, ++ bel@, use=wy99gt-w, + +-# Strange Ann Arbor terminal from BRL +-aas1901|Ann Arbor K4080 w/S1901 mod, +- am, +- cols#80, lines#40, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N, +- home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c, +- nel=^M^J, ++# Can't set tabs! Other bugs (ANSI mode only): ++# - can't redefine function keys (anyway, key redefinition in ANSI mode ++# is too much complex to be described); ++# - meta key can't be described (the terminal forgets it when reset); ++# The xon-xoff handshaking can't be disabled while in ansi personality, so ++# emacs can't work at speed greater than 9600 baud. No padding is needed at ++# this speed. ++# dch1 has been commented out because it causes annoying glittering when ++# vi deletes one character at the beginning of a line with tabs in it. ++# dch makes sysgen(1M) have a horrible behaviour when deleting ++# a screen and makes screen(1) behave badly, so it is disabled too. The nice ++# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are ++# not, so smir and rmir are commented out as well. ++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 ++wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard), ++ am, km, mc5i, mir, msgr, xenl, ++ cols#80, it#8, lines#25, vt#3, ++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>, ++ cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED, ++ cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, ++ cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>, ++ enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, ++ il1=\E[L, ind=\n$<1>, invis=\E[8m, ++ is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i, ++ kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ, ++ kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~, ++ kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h, ++ mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8, ++ rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, ++ rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m, ++ rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i, ++ sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, + +-# If you're using the GNU termcap library, add +-# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp: +-# to these capabilities. This is the nonstandard GNU termcap scrolling +-# capability, arguments are: +-# 1. Total number of lines on the screen. +-# 2. Number of lines above desired scroll region. +-# 3. Number of lines below (outside of) desired scroll region. +-# 4. Total number of lines on the screen, the same as the first parameter. +-# The generic Ann Arbor entry is the only one that uses this. +-aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly), +- OTbs, am, km, mc5i, mir, xon, +- cols#80, it#8, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=^K, 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$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, +- hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL, +- il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8, +- is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z, +- kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK, +- kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP, +- kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT, +- kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC, +- kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI, +- khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i, +- mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8, +- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, +- rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\, +- rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7, +- 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[3g, +- vpa=\E[%p1%{1}%+%dd, ++# This is the american terminal. Here tabs work fine. ++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 ++wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard), ++ hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi, + +-aaa+rv|ann arbor ambassador in reverse video, +- blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m, +- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m, +- rs1=\E[H\E[7m\E[J$<156>, +- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m, +- sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m, +-# Ambassador with the DEC option, for partial vt100 compatibility. +-aaa+dec|ann arbor ambassador in dec vt100 mode, +- acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}, +- csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N, +- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;, +- smacs=^O, +-aaa-18|ann arbor ambassador/18 lines, +- lines#18, +- is2=\E7\E[60;0;0;18p\E8, +- rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p, +- use=aaa+unk, +-aaa-18-rv|ann arbor ambassador/18 lines+reverse video, +- use=aaa+rv, use=aaa-18, +-aaa-20|ann arbor ambassador/20 lines, +- lines#20, +- is2=\E7\E[60;0;0;20p\E8, +- rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p, +- use=aaa+unk, +-aaa-22|ann arbor ambassador/22 lines, +- lines#22, +- is2=\E7\E[60;0;0;22p\E8, +- rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p, +- use=aaa+unk, +-aaa-24|ann arbor ambassador/24 lines, +- lines#24, +- is2=\E7\E[60;0;0;24p\E8, +- rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p, +- use=aaa+unk, +-aaa-24-rv|ann arbor ambassador/24 lines+reverse video, +- use=aaa+rv, use=aaa-24, +-aaa-26|ann arbor ambassador/26 lines, +- lines#26, +- is2=\E7\E[60;0;0;26p\E8, +- rmcup=\E[60;0;0;26p\E[26;1H\E[K, +- smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk, +-aaa-28|ann arbor ambassador/28 lines, +- lines#28, +- is2=\E7\E[60;0;0;28p\E8, +- rmcup=\E[60;0;0;28p\E[28;1H\E[K, +- smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk, +-aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status, +- eslok, hs, +- lines#29, +- dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K, +- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8, +- rmcup=\E[60;1;0;30p\E[29;1H\E[K, +- smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K, +- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk, +-aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video, +- use=aaa+rv, use=aaa-30-s, +-aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context, +- rmcup=\E[60;1;0;30p\E[59;1H\E[K, +- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s, +-aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video, +- rmcup=\E[60;1;0;30p\E[59;1H\E[K, +- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv, +-aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines, +- lines#30, +- is2=\E7\E[60;0;0;30p\E8, +- rmcup=\E[60;0;0;30p\E[30;1H\E[K, +- smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk, +-aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video, +- use=aaa+rv, use=aaa-30, +-aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context, +- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p, +- use=aaa-30, +-aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context, +- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p, +- use=aaa+rv, use=aaa-30, +-aaa-36|ann arbor ambassador/36 lines, +- lines#36, +- is2=\E7\E[60;0;0;36p\E8, +- rmcup=\E[60;0;0;36p\E[36;1H\E[K, +- smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk, +-aaa-36-rv|ann arbor ambassador/36 lines+reverse video, +- use=aaa+rv, use=aaa-36, +-aaa-40|ann arbor ambassador/40 lines, +- lines#40, +- is2=\E7\E[60;0;0;40p\E8, +- rmcup=\E[60;0;0;40p\E[40;1H\E[K, +- smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk, +-aaa-40-rv|ann arbor ambassador/40 lines+reverse video, +- use=aaa+rv, use=aaa-40, +-aaa-48|ann arbor ambassador/48 lines, +- lines#48, +- is2=\E7\E[60;0;0;48p\E8, +- rmcup=\E[60;0;0;48p\E[48;1H\E[K, +- smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk, +-aaa-48-rv|ann arbor ambassador/48 lines+reverse video, +- use=aaa+rv, use=aaa-48, +-aaa-60-s|ann arbor ambassador/59 lines+status, +- eslok, hs, +- lines#59, +- dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K, +- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8, +- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk, +-aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video, +- use=aaa+rv, use=aaa-60-s, +-aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video, +- use=aaa+dec, use=aaa+rv, use=aaa-60-s, +-aaa-60|ann arbor ambassador/60 lines, +- lines#60, +- is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8, +- use=aaa+unk, +-aaa-60-rv|ann arbor ambassador/60 lines+reverse video, +- use=aaa+rv, use=aaa-60, +-aaa-db|ann arbor ambassador 30/destructive backspace, +- OTbs@, +- cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30, ++# This terminal (firmware version 02) has a lot of bugs: ++# - can't set tabs; ++# - other bugs in ANSI modes (see above). ++# This description disables handshaking when using cup. This is because ++# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal ++# cannot be used at speeds greater than 9600 baud, because at greater ++# speeds handshaking is needed even for character sending. If you use ++# DTR handshaking, you can use even greater speeds. ++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 ++wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard), ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ cols#80, it#8, lines#25, wsl#46, ++ acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G, ++ blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032, ++ cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r, ++ ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>, ++ flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE, ++ ind=^J, invis=\EG3, ++ is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024, ++ ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, ++ kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r, ++ kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r, ++ kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r, ++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#, ++ nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed., ++ rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30, ++ rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024, ++ sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;, ++ sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30, ++ smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF, + +-guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols, +- lines#33, +- flash=\E[>59h$<100>\E[>59l, +- is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l, +- rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk, +-guru+rv|guru changes for reverse video, +- flash=\E[>59l$<100>\E[>59h, is3=\E[>59h, +-guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video, +- use=guru+rv, use=guru-33, +-guru+s|guru status line, +- eslok, hs, +- dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l, +- rmcup=\E[255;1p\E[255;1H\E[K, smcup=, +- tsl=\E[>51h\E[1;%p1%dH\E[2K, +-guru-nctxt|guru with no saved context, +- smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru, +-guru-s|guru-33-s|ann arbor guru/33 lines+status, +- lines#32, +- is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J, +- smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, +-guru-24|ann arbor guru 24 lines, +- cols#80, lines#24, +- is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p, +- use=guru+unk, +-guru-44|ann arbor guru 44 lines, +- cols#97, lines#44, +- is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p, +- use=guru+unk, +-guru-44-s|ann arbor guru/44 lines+status, +- lines#43, +- is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J, +- smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, +-guru-76|guru with 76 lines by 89 cols, +- cols#89, lines#76, +- is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p, +- use=guru+unk, +-guru-76-s|ann arbor guru/76 lines+status, +- cols#89, lines#75, +- is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J, +- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, +-guru-76-lp|guru-lp|guru with page bigger than line printer, +- cols#134, lines#76, +- is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p, +- use=guru+unk, +-guru-76-w|guru 76 lines by 178 cols, +- cols#178, lines#76, +- is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p, +- use=guru+unk, +-guru-76-w-s|ann arbor guru/76 lines+status+wide, +- cols#178, lines#75, +- is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J, +- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, +-guru-76-wm|guru 76 lines by 178 cols with 255 cols memory, +- cols#178, lines#76, +- is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p, +- use=guru+unk, +-aaa-rv-unk|ann arbor unknown type, +- lh#0, lw#0, nlab#0, +- blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m, +- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m, +- rs1=\E[H\E[7m\E[J, +- sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m, +- sgr0=\E[7m, smso=\E[m, smul=\E[4;7m, ++# This is the american terminal. Here tabs work. ++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 ++wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard), ++ hts=\E1, tbc=\E0, use=wy99f, + +-#### Applied Digital Data Systems (adds) + # +-# ADDS itself is long gone. ADDS was bought by NCR, and the same group made +-# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for +-# terminals was merged again. Then AT&T sold the terminal business to +-# SunRiver, which later changed its name to Boundless Technologies. The +-# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there +-# as of early 1995) are at: ++# The Wyse 160 is combination of the WY-60 and the WY-99gt. ++# The reset strings are slow and the pad times very depending ++# on other parameters such as font loading. I have tried ++# to follow the following outline: + # +-# Boundless Technologies +-# 100 Marcus Boulevard +-# Hauppauge, NY 11788-3762 +-# Vox: (800)-231-5445 +-# Fax: (516)-342-7378 +-# Web: http://boundless.com ++# <rs1> -> set personality ++# <rs2> -> set number of columns ++# <rs3> -> set number of lines ++# <is1> -> select the proper font ++# <is2> -> do the initialization ++# <is3> -> set up display memory (2 pages) + # +-# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". +-# In 1995 Boundless acquired DEC's terminals business. ++# The display memory may be used for either text or graphics. ++# When "Display Memory = Shared" the terminal will have more pages ++# but garbage may be left on the screen when you switch from ++# graphics to text. If "Display Memory = Unshared" then the ++# text area will be only one page long. + # +- +-# Regent: lowest common denominator, works on all regents. +-# (regent: renamed ":bc:" to ":le:" -- esr) +-regent|Adds Regent Series, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z, +- home=\EY\s\s, ind=^J, ll=^A, +-# Regent 100 has a bug where if computer sends escape when user is holding +-# down shift key it gets confused, so we avoid escape. +-regent100|Adds Regent 100, +- xmc#1, +- bel=^G, +- cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c, +- kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, +- kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, +- lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, +- sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent, +-regent20|Adds Regent 20, +- bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK, +- use=regent, +-regent25|Adds Regent 25, +- bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A, +- use=regent20, +-regent40|Adds Regent 40, +- xmc#1, +- bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r, +- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r, +- kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6, +- lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P, +- smul=\E0`, use=regent25, +-regent40+|Adds Regent 40+, +- is2=\EB, use=regent40, +-regent60|regent200|Adds Regent 60, +- dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF, +- rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV, +- use=regent40+, +-# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981 +-# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr) +-viewpoint|addsviewpoint|adds viewpoint, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J, +- cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, +- cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>, +- ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, +- kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A, +- rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N, +-# Some viewpoints have bad ROMs that foo up on ^O +-screwpoint|adds viewpoint with ^O bug, +- cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint, +- +-# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92 +-# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs. +-# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000, +-# underline=01100000, rev=01010000, blink=01000010,dim=01000001, +-# invis=01000100 and %c is the logical or of desired attributes. +-# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(. ++# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid ++# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) ++wy160|wyse160|Wyse 160, ++ am, bw, hs, km, mc5i, mir, msgr, ++ cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38, ++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, ++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>, ++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>, ++ dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>, ++ el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I, ++ hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1, ++ is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, ++ is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, ++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, ++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, ++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K, ++ mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>, ++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177, ++ pfx=\EZ1%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>, ++ rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er, ++ rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>, ++ rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>, ++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, ++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, ++ smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21, ++ tbc=\E0, tsl=\EF, use=adm+sgr, + # +-# Update by TD - 2004: +-# Adapted from +-# http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt ++wy160-w|wyse160-w|wyse 160 132-column, ++ cols#132, lw#7, nlab#16, wsl#90, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>, ++ rs2=\EeF$<150>\E`;$<150>, use=wy160, + # +-# COMMANDS ASCII CODE ++wy160-25|wyse160-25|wyse 160 80-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<200>, use=wy160, ++wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<200>, use=wy160-w, + # +-# Address, Absolute ESC,=,row,column +-# Beep BEL +-# Aux Port Enable ESC,@ +-# Aux Port Disable ESC,A +-# Backspace BS +-# Cursor back BS +-# Cursor down LF +-# Cursor forward FF +-# Cursor home RS +-# Cursor up VT +-# Cursor supress ETB +-# Cursor enable CAN +-# Erase to end of line ESC,T +-# Erase to end of page ESC,Y +-# Erase screen SUB +-# Keyboard lock SI +-# Keyboard unlock SO +-# Read current cursor position ESC,? +-# Set Attribute ESC,0,x (see below for values of x) +-# Tag bit reset ESC,( +-# Tag bit set ESC,) +-# Transparent Print on ESC,3 +-# Transparent Print off ESC,4 ++wy160-42|wyse160-42|wyse 160 80-column 42-lines, ++ lines#42, ++ clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>, ++ ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>, ++ rs3=\Ee*$<150>, use=wy160, ++wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines, ++ cols#132, lw#7, nlab#16, wsl#90, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>, ++ rs2=\EeF$<150>\E`;$<150>, use=wy160-42, + # ++wy160-43|wyse160-43|wyse 160 80-column 43-lines, ++ lh@, lines#43, lw@, nlab@, ++ pln@, rs3=\Ee+$<150>, use=wy160-42, ++wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines, ++ lh@, lines#43, lw@, nlab@, ++ pln@, rs3=\Ee+$<150>, use=wy160-42-w, + # +-# ATTRIBUTES ++wy160-vb|wyse160-vb|Wyse 160 visible bell, ++ bel@, use=wy160, ++wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell, ++ bel@, use=wy160-w, + # +-# Normal @ 0100 +-# Half Intensity A 0101 +-# Blinking B 0102 +-# Half Intensity Blinking C 0103 +-# Reverse Video P 0120 +-# Reverse Video Half Intensity Q 0121 +-# Reverse Video Blinking R 0122 +-# Reverse Video Half Intensity +-# Blinking S 0123 +-# Underlined ` 0140 +-# Underlined Half Intensity a 0141 +-# Underlined Blinking b 0142 +-# Underlined Half Intensity +-# Blinking c 0143 +-# Video suppress D 0104 +-vp3a+|viewpoint3a+|adds viewpoint 3a+, +- am, bw, +- cols#80, it#8, lines#24, +- blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M, +- cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E), +- ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E), +- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, +- nel=^M^J, rev=\E0P\E), rmso=\E(, +- sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;, +- sgr0=\E(, smso=\E0Q\E), smul=\E0`\E), +-vp60|viewpoint60|addsvp60|adds viewpoint60, +- use=regent40, ++# The Wyse 75 is a vt100 lookalike without advanced video. + # +-# adds viewpoint 90 - from cornell +-# Note: emacs sends ei occasionally to insure the terminal is out of +-# insert mode. This unfortunately puts the viewpoint90 IN insert +-# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also, +-# - :ei=:im=: must be present in the termcap translation.) +-# - <xhp> indicates glitch that attributes stick to location +-# - <msgr> means it's safe to move in standout mode +-# - <clear=\EG\Ek>: clears screen and visual attributes without affecting +-# the status line +-# Function key and label capabilities merged in from SCO. +-vp90|viewpoint90|adds viewpoint 90, +- OTbs, bw, msgr, xhp, +- cols#80, lines#24, +- clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE, +- dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I, +- ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J, +- kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r, +- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r, +- kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2, +- lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, +- lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV, +- sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV, +-# Note: if return acts weird on a980, check internal switch #2 +-# on the top chip on the CONTROL pc board. +-adds980|a980|adds consul 980, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J, +- cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d, +- dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1, +- kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, +- kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N, +- +-#### C. Itoh Electronics ++# The Wyse 75 can support one attribute (e.g. Dim, Inverse, ++# Underline) without magic cookies. The following description ++# uses this capability, but when more than one attribute is ++# put on the screen at once, all attributes will be changed ++# to be the same as the last attribute given. ++# The Wyse 75 can support more attributes when used with magic ++# cookies. The wy75-mc terminal description uses magic cookies ++# to correctly handle multiple attributes on a screen. + # +-# As of 1995 these people no longer make terminals (they're still in the +-# printer business). Their terminals were all clones of the DEC VT series. +-# They're located in Orange County, CA. ++wy75|wyse75|wyse 75, ++ am, hs, mc5i, mir, msgr, xenl, xon, ++ cols#80, lines#24, ma#1, pb#1201, wsl#78, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>, ++ cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>, ++ 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$<3*>, ++ dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>, ++ dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001, ++ ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>, ++ enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ++ ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>, ++ ind=\n$<2>, ip=$<1>, ++ is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h, ++ is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K, ++ kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, ++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i, ++ kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M, ++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, ++ khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~, ++ kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i, ++ mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, ++ rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l, ++ sc=\E7, ++ sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m, ++ tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad, + # +- +-# CIT 80 - vt-52 emulator, the termcap has been modified to remove +-# the delay times and do an auto tab set rather than the indirect +-# file used in vt100. +-cit80|cit-80|citoh 80, +- OTbs, am, +- cols#80, lines#24, +- clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L, +- ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=, +-# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985 +-# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr) +-cit101|citc|C.itoh fast vt100, +- OTbs, am, xenl, +- cols#80, lines#24, +- bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, +- flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L, +- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, +- smul=\E[4m, +-# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL +-# The following termcap entry was created from the Callan cd100 entry. The +-# last two lines (with the capabilities in caps) are used by RM-cobol to allow +-# full selection of combinations of reverse video, underline, and blink. +-# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\ +-# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\ +-# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr) +-cit101e|C. Itoh CIT-101e, +- OTbs, OTpt, am, mir, msgr, +- cols#80, it#8, lines#24, +- acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr, +- cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, +- cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, +- ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl, +- kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l, +- rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h, +- smkx=\E=, smso=\E[7m, smul=\E[4m, +-# From: David S. Lawyer, June 1997: +-# The CIT 101-e was made in Japan in 1983-4 and imported by CIE +-# Terminals in Irvine, CA. It was part of CITOH Electronics. In the +-# late 1980's CIT Terminals went out of business. +-# There is no need to use the initialization string is=... (by invoking +-# tset or setterm etc.) provided that the terminal has been manually set +-# up (and the setup saved with ^S) to be compatible with this termcap. To be +-# compatible it should be in ANSI mode (not VT52). A set-up that +-# works is to set all the manually setable stuff to factory defaults +-# by pressing ^D in set-up mode. Then increse the brighness with the +-# up-arrow key since the factory default will likely be dim on an old +-# terminal. Then change any options you want (provided that they are +-# compatible with the termcap). For my terminal I set: Screen +-# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver: +-# on. I also set up mine for parity (but you may not need it). Then +-# save the setup with ^S. +-# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr) +-cit101e-rv|Citoh CIT-101e (sets reverse video), +- am, eo, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, +- OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>, +- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, +- is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H, +- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, +- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l, +- rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7, +- sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h, +- smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR, +- u7=\E[6n, u8=\E[?6c, u9=\E[c, +-cit101e-n|CIT-101e w/o am, +- am@, +- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J, +- use=cit101e, +-cit101e-132|CIT-101e with 132 cols, +- cols#132, +- kbs=^H, kcub1=^H, kcud1=^J, use=cit101e, +-cit101e-n132|CIT-101e with 132 cols w/o am, +- am@, +- cols#132, +- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J, +- use=cit101e, +-# CIE Terminals CIT-500 from BRL +-# The following SET-UP modes are assumed for normal operation: +-# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF +-# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES +-# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF +-# Other SET-UP modes may be set for operator convenience or communication +-# requirements. +-# Hardware tabs are assumed to be set every 8 columns; they can be set up +-# by the "reset", "tset", or "tabs" utilities. No delays are specified; use +-# "stty ixon -ixany" to enable DC3/DC1 flow control! +-# (cit500: I added <rmam>/<smam> based on the init string -- esr) +-cit500|CIE Terminals CIT-500, +- OTbs, OTpt, mir, msgr, xon, +- OTkn#10, cols#80, it#8, lines#64, vt#3, +- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- 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=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, +- ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, +- il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M, +- ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS, +- kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ, +- khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1, +- lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18, +- lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m, +- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, +- rmso=\E[m, rmul=\E[m, +- rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>, +- sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- +-# C. Itoh printers begin here +-citoh|ci8510|8510|c.itoh 8510a, +- cols#80, it#8, +- bold=\E!, cub1@, +- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073., +- rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY, +- smul=\EX, use=lpr, +-citoh-pica|citoh in pica, +- is1=\EN, use=citoh, +-citoh-elite|citoh in elite, +- cols#96, +- is1=\EE, +- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089., +- use=citoh, +-citoh-comp|citoh in compressed, +- cols#136, +- is1=\EQ, +- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129., +- use=citoh, +-# citoh has infinite cols because we don't want lp ever inserting \n\t**. +-citoh-prop|citoh-ps|ips|citoh in proportional spacing mode, +- cols#32767, +- is1=\EP, use=citoh, +-citoh-6lpi|citoh in 6 lines per inch mode, +- is3=\EA, use=citoh, +-citoh-8lpi|citoh in 8 lines per inch mode, +- lines#88, +- is3=\EB, use=citoh, +- +-#### Control Data (cdc) ++# This terminal description uses the non-hidden attribute mode ++# (with magic cookie). + # +- +-cdc456|cdc 456 terminal, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X, +- el=^V, home=^Y, il1=\EL, ind=^J, +- +-# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick) +-cdc721|CDC Viking, +- OTbs, am, +- cols#80, lines#24, +- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, +- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I, +- kcuu1=^W, khome=^Y, +-cdc721ll|CDC Vikingll, +- OTbs, am, +- cols#132, lines#24, +- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, +- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I, +- kcuu1=^W, khome=^Y, +-# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out +-cdc752|CDC 752, +- OTbs, am, bw, xhp, +- cols#80, lines#24, +- bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U, +- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V, +- home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1 \030\002\003\017, +-# CDC 756 +-# The following switch/key settings are assumed for normal operation: +-# 96 chars SCROLL FULL duplex not BLOCK +-# Other switches may be set according to communication requirements. +-# Insert/delete-character cannot be used, as the whole display is affected. +-# "so" & "se" are commented out until jove handles "sg" correctly. +-cdc756|CDC 756, +- OTbs, am, bw, +- OTkn#10, cols#80, lines#24, +- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U, +- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, +- dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J, +- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI, +- kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, +- kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y, +- khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4, +- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z, +- rs1=\031\030\002\003\017, ++wy75-mc|wyse75-mc|wyse 75 with magic cookies, ++ msgr@, ++ ma@, xmc#1, ++ blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p, ++ rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p, ++ sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;, ++ sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p, ++ use=wy75, ++wy75-vb|wyse75-vb|wyse 75 with visible bell, ++ pb@, ++ bel@, use=wy75, ++wy75-w|wyse75-w|wyse 75 in 132 column mode, ++ cols#132, wsl#130, ++ rs2=\E[35h\E[?3h$<80>, use=wy75, ++wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns, ++ pb@, ++ bel@, use=wy75-w, + # +-# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL. ++# Wyse 85 emulating a vt220 7 bit mode. ++# 24 line screen with status line. + # +-# Part of the long initialization string defines the "DOWN" key to the left +-# of the tab key to send an ESC. The real ESC key is positioned way out +-# in right field. ++# The vt220 mode permits more function keys but it wipes out ++# the escape key. I strongly recommend that <f11> be set to ++# escape (esc). ++# The terminal may have to be set for 8 data bits and 2 stop ++# bits for the arrow keys to work. ++# The Wyse 85 runs faster with XON/XOFF enabled. Also the ++# <dch> and <ich> work best when XON/XOFF is set. <ich> and ++# <dch> leave trash on the screen when used without XON/XOFF. + # +-# The termcap won't work in 132 column mode due to the way it it moves the +-# cursor. Termcap doesn't have the capability (as far as I could tell) to +-# handle the 721 in 132 column mode. ++wy85|wyse85|wyse 85, ++ am, hs, mc5i, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J$<110>, cnorm=\E[?25h, 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$<1>, cuu=\E[%p1%dA, cuu1=\E[A, ++ dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m, ++ dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l, ++ ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K, ++ enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>, ++ fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH, ++ ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>, ++ ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W, ++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>, ++ is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, ++ kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, ++ khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, ++ mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>, ++ rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, ++ rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>, ++ rs3=\E[?5l, sc=\E7, ++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad, + # +-# (cdc721: changed :ri: to :sr: -- esr) +-cdc721-esc|Control Data 721, +- OTbs, OTpt, am, bw, msgr, xon, +- OTkn#10, cols#80, it#8, lines#30, +- bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z, +- cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W, +- dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW, +- ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[, +- is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o, +- kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q, +- kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x, +- kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D, +- ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^], +- sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk, +- smso=^^D, smul=^\, tbc=^^^RY, +- +-#### Getronics ++# Wyse 85 with visual bell. ++wy85-vb|wyse85-vb|wyse 85 with visible bell, ++ bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85, + # +-# Getronics is a Dutch electronics company that at one time was called +-# `Geveke' and made async terminals; but (according to the company itself!) +-# they've lost all their documentation on the command set. The hardware +-# documentation suggests the terminals were actually manufactured by a +-# Taiwanese electronics company named Cal-Comp. There are known +-# to have been at least two models, the 33 and the 50. ++# Wyse 85 in 132-column mode. ++wy85-w|wyse85-w|wyse 85 in 132-column mode, ++ cols#132, wsl#132, ++ rs2=\E[35h\E[?3h$<70>, use=wy85, + # ++# Wyse 85 in 132-column mode with visual bell. ++wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns, ++ bel@, use=wy85-w, + +-# The 50 seems to be a top end vt220 clone, with the addition of a higher +-# screen resolution, a larger screen, at least 1 page of memory above and +-# below the screen, apparently pages of memory right and left of the screen +-# which can be panned, and about 75 function keys (15 function keys x normal, +-# shift, control, func A, func B). It also has more setup possibilities than +-# the vt220. The monitor case is dated November 1978 and the keyboard case is +-# May 1982. ++# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998 ++# This copes with an apparent firmware bug in the wy85. He writes: ++# "What I did was change leave the terminal cursor keys set to Normal ++# (instead of application), and change \E[ to \233 for all the keys in ++# terminfo. At one point, I found some reference indicating that this ++# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just ++# me), but I can't find that and the server under my bookmark to "Wyse ++# Technical" isn't responding. So there's the question of wether the wy85 ++# terminfo should reflect the manufactuer's intended behaviour of the terminal ++# or the actual." ++wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode, ++ am, hs, mc5i, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J$<110>, cnorm=\E[?25h, 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$<1>, cuu=\E[%p1%dA, cuu1=\E[A, ++ dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m, ++ dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l, ++ ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K, ++ enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>, ++ fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH, ++ ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>, ++ ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W, ++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>, ++ is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu, ++ kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B, ++ kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM, ++ kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~, ++ kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~, ++ kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ, ++ kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~, ++ kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~, ++ khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~, ++ kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, ++ mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>, ++ rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, ++ rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>, ++ rs3=\E[?5l, sc=\E7, ++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E[40h\E7\E[25;%i%p1%dH, + # +-# The vt100 emulation works as is. The entry below describes the rather +-# non-conformant (but more featureful) ANSI mode. ++# Wyse 185 emulating a vt320 7 bit mode. + # +-# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995 +-visa50|geveke visa 50 terminal in ansi 80 character mode, +- bw, mir, msgr, +- cols#80, lines#25, +- acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G, +- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++# This terminal always displays 25 lines. These lines may be used ++# as 24 data lines and a terminal status line (top or bottom) or ++# 25 data lines. The 48 and 50 line modes change the page size ++# and not the number of lines on the screen. ++# ++# The Compose Character key can be used as a meta key if changed ++# by set-up. ++# ++wy185|wyse185|wyse 185, ++ am, hs, km, mc5i, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr$<20>, 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%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H, +- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, +- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, +- is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h, +- ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS, +- kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, +- kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002, +- kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007, +- kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char, +- lf3=A insert line, lf4=A delete line, lf5=A clear, +- lf6=A ce of/cf gn, lf7=A print, lf8=A on-line, +- lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m, +- rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h, +- smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, +- vpa=\E[%i%p1%dd, +- +-#### Human Designed Systems (Concept) ++ cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>, ++ dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, ++ dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>, ++ el=\E[K, el1=\E[1K, enacs=\E)0, ++ flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8, ++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH, ++ ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>, ++ ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W, ++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h, ++ is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, ++ kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~, ++ knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, ++ lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ++ ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l, ++ rmkx=\E>, rmso=\E[27m, rmul=\E[24m, ++ rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l, ++ rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7, ++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q, ++ smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd, ++ use=vt220+keypad, + # +-# Human Designed Systems +-# 400 Fehley Drive +-# King of Prussia, PA 19406 +-# Vox: (610)-277-8300 +-# Fax: (610)-275-5739 +-# Net: support@hds.com ++# Wyse 185 with 24 data lines and top status (terminal status) ++wy185-24|wyse185-24|wyse 185 with 24 data lines, ++ hs@, ++ dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@, ++ use=wy185, + # +-# John Martin <john@hds.com> is their termcap expert. They're mostly out of +-# the character-terminal business now (1995) and making X terminals. In +-# particular, the whole `Concept' line described here was discontinued long +-# ago. ++# Wyse 185 with visual bell. ++wy185-vb|wyse185-vb|wyse 185+flash, ++ bel@, use=wy185, + # ++# Wyse 185 in 132-column mode. ++wy185-w|wyse185-w|wyse 185 in 132-column mode, ++ cols#132, wsl#132, ++ dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>, ++ ip=$<7>, rs2=\E[35h\E[?3h, use=wy185, ++# ++# Wyse 185 in 132-column mode with visual bell. ++wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols, ++ bel@, use=wy185-w, + +-# From: <vax135!hpk> Sat Jun 27 07:41:20 1981 +-# Extensive changes to c108 by arpavax:eric Feb 1982 +-# Some unknown person at SCO then translated it to terminfo. ++# wy325 terminfo entries ++# Done by Joe H. Davis 3-9-92 ++ ++# lines 25 columns 80 + # +-# There seem to be a number of different versions of the C108 PROMS +-# (with bug fixes in its Z-80 program). ++wy325|wyse325|Wyse epc, ++ am, bw, hs, mc5i, mir, ++ cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45, ++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~, ++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>, ++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>, ++ dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>, ++ flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1, ++ il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1, ++ is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El, ++ is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, ++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, ++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, ++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, ++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K, ++ mc0=\EP, mc4=^T, mc5=\Ed#, ++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177, ++ pfx=\EZ1%p1%{63}%+%c%p2%s\177, ++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>, ++ rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11, ++ rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>, ++ rs3=\EwG\Ee($<100>, ++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, ++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/, ++ smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0, ++ tsl=\EF, use=adm+sgr, ++ + # +-# The first one that we had would lock out the keyboard of you +-# sent lots of short lines (like /usr/dict/words) at 9600 baud. +-# Try that on your C108 and see if it sends a ^S when you type it. +-# If so, you have an old version of the PROMs. ++# lines 24 columns 80 vb + # +-# You should configure the C108 to send ^S/^Q before running this. +-# It is much faster (at 9600 baud) than the c100 because the delays +-# are not fixed. +-# new status line display entries for c108-8p: +-# <is3> - init str #3 - setup term for status display - +-# set programmer mode, select window 2, define window at last +-# line of memory, set bkgnd stat mesg there, select window 0. ++wy325-vb|wyse325-vb|wyse-325 with visual bell, ++ bel@, use=wy325, ++ + # +-# <tsl> - to status line - select window 2, home cursor, erase to +-# end-of-window, 1/2 bright on, goto(line#0, col#?) ++# lines 24 columns 132 + # +-# <fsl> - from status line - 1/2 bright off, select window 0 ++wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode, ++ cols#132, lw#7, nlab#16, wsl#97, ++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>, ++ rs2=\E`;$<70>, use=wy325, + # +-# <dsl> - disable status display - set bkgnd status mesg with +-# illegal window # ++# lines 25 columns 80 + # +-# There are probably more function keys that should be added but +-# I don't know what they are. ++wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy325, + # +-# No delays needed on c108 because of ^S/^Q handshaking ++# lines 25 columns 132 + # +-c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages, +- is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n, +- rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p, +-c108-4p|concept108-4p|concept 108 w/4 pages, +- OTbs, eslok, hs, xon, +- pb@, +- acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M, +- cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c, +- cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s, +- ind=^J, is1=\EK\E!\E F, +- is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n, +- rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!, +- smcup=\EU\Ev 8p\Ep\r\E\025, +- tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100, +-c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video, +- rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r, +- use=c108-rv-4p, +-c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video, +- flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE, +- use=c108-4p, +-c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode, +- cols#132, +- is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n, +- smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p, +- +-# Concept 100: +-# These have only window relative cursor addressing, not screen +-# relative. To get it to work right here, smcup/rmcup (which +-# were invented for the concept) lock you into a one page +-# window for screen style programs. ++wy325-25w|wyse325-25w|wy325 132 columns, ++ lh@, lines#25, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy325-w, + # +-# To get out of the one page window, we use a clever trick: +-# we set the window size to zero ("\Ev " in rmcup) which the +-# terminal recognizes as an error and resets the window to all +-# of memory. ++# lines 25 columns 132 vb + # +-# This trick works on c100 but does not on c108, sigh. ++wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video, ++ bel@, use=wy325-w, ++ + # +-# Some tty drivers use cr3 for concept, others use nl3, hence +-# the delays on cr and ind below. This padding is only needed at +-# 9600 baud and up. One or the other is commented out depending on +-# local conventions. ++# lines 42 columns 80 + # +-# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe +-# less than 6 but more than 2 will work. ++wy325-42|wyse325-42|wyse-325 42 lines, ++ lh@, lines#42, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy325, + # +-# Note: can't use function keys f7-f10 because they are +-# indistinguishable from arrow keys (!), also, del char and +-# clear eol use xon/xoff so they probably won't work very well. ++# lines 42 columns 132 + # +-# Also note that we don't define insrt/del char/delline/eop/send +-# because they don't transmit unless we reset them - I figured +-# it was a bad idea to clobber their definitions. ++wy325-42w|wyse325-42w|wyse-325 42 lines wide mode, ++ lh@, lines#42, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy325-w, + # +-# The <mc5> sequence changes the escape character to ^^ so that +-# escapes will be passed through to the printer. Only trouble +-# is that ^^ won't be - ^^ was chosen to be unlikely. +-# Unfortunately, if you're sending raster bits through to be +-# plotted, any character you choose will be likely, so we lose. ++# lines 42 columns 132 vb + # +-# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) +-# cannot be # in is2 because it will hang a c100 with no printer +-# if sent twice. +-c100|concept100|concept|c104|c100-4p|hds concept 100, +- OTbs, am, eo, mir, ul, xenl, +- cols#80, lines#24, pb#9600, vt#8, +- bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r, +- cub1=^H, cud1=^J, cuf1=\E=, +- cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;, +- dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>, +- ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK, +- ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>, +- is1=\EK, +- is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c, +- is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_, +- kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q, +- kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7, +- kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?, +- khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E., +- kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027, +- mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI, +- rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED, +- rmcup=\Ev $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex, +- rmso=\Ed, rmul=\Eg, sgr0=\EN@, +- smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX, +- smso=\ED, smul=\EG, +-c100-rv|c100-rv-4p|concept100-rv|c100 rev video, +- cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, +- smso=\EE, use=c100, +-oc100|oconcept|c100-1p|old 1 page concept 100, +- in, +- is3@, use=c100, +- +-# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996. +-# Lots of notes, originally inline, but ncurses doesn't grok that. ++wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell, ++ bel@, use=wy325-w, + # +-# am: not available in power on mode, but turned on with \E[=107;207h in +-# is2=. Also, \E=124l in is2= could have been used to prevent needing +-# to specify xenl:, but that would have rendered the last space on the +-# last line useless. +-# bw: Not available in power on mode, but turned on with \E[=107;207h in +-# is2=. +-# clear: Could be done with \E[2J alone, except that vi (and probably most +-# other programs) assume that this also homes the cursor. +-# dsl: Go to window 2, go to the beginning of the line, use a line feed to +-# scroll the window, and go back to window 1. +-# is2: the string may cause a warning to be issued by tic that it +-# found a very long line and that it suspects that a comma is missing +-# somewhere. This warning can be ignored (unless it comes up more than +-# once). The initialization string contains the following commands: ++# lines 43 columns 80 + # +-# [Setup mode items changed from factory defaults:] +-# \E)0 set alternate character set to +-# graphics +-# ^O set character set to default +-# [In case it wasn't] +-# \E[m turn off all attributes +-# [In case they weren't off] +-# \E[=107; cursor wrap and +-# 207h character wrap on +-# \E[90;3u set Fkey definitions to "transmit" +-# defaults +-# \E[92;3u set cursor key definitions to +-# "transmit" defaults +-# \E[43;1u set shift F13 to transmit... +-# \177\E$P\177 +-# \E[44;1u set shift F14 to transmit... +-# \177\E$Q\177 +-# \E[45;1u set shift F15 to transmit... +-# \177\E$R\177 +-# \E[46;1u set shift F16 to transmit... +-# \177\E$S\177 +-# \E[200;1u set shift up to transmit... +-# \177\E$A\177 +-# \E[201;1u set shift down to transmit... +-# \177\E$B\177 +-# \E[202;1u set shift right to transmit... +-# \177\E$C\177 +-# \E[203;1u set shift left to transmit... +-# \177\E$D\177 +-# \E[204;1u set shift home to transmit... +-# \177\E$H\177 +-# \E[212;1u set backtab to transmit... +-# \177\E$I\177 +-# \E[213;1u set shift backspace to transmit... +-# \177\E$^H\177 +-# \E[214;1u set shift del to transmit... +-# "\E$\177" +-# [Necessary items not mentioned in setup mode:] +-# \E[2!w move to window 2 +-# \E[25;25w define window as line 25 of memory +-# \E[!w move to window 1 +-# \E[2*w show current line of window 2 as +-# status line +-# \E[2+x set meta key to use high bit +-# \E[;3+} move underline to bottom of character ++wy325-43|wyse325-43|wyse-325 43 lines, ++ lh@, lines#43, lw@, nlab@, ++ pln@, use=wy325, + # +-# All Fkeys are set to their default transmit definitions with \E[90;3u +-# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty +-# setting MUST be redefined or deactivated, because the default is +-# contained in almost all of this terminal's Fkey strings! If for some +-# reason "quit" cannot be altered, the Fkeys can, but it would be +-# necessary to change ^| to ^] in all of these definitions, and add +-# \E[2;029!t to is2. +-# lines: is set to 24 because this terminal refuses to treat the 25th +-# line normally. +-# ll: Not available in power on mode, but turned on with \E[=107;207h in +-# is2=. +-# lm: Pointless, given that this definition locks a single screen of +-# memory into view, but what the hey... +-# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any +-# other attributes alone), but some programs expect this to turn off +-# everything. +-# rmul: Could use \E[4!{ to turn off only underline (leaving any other +-# attributes alone), but some programs expect this to turn off +-# everything. +-# sgr: Attributes are set on this terminal with the string \E[ followed by +-# a list of attribute code numbers (in decimal, separated by +-# semicolons), followed by the character m. The attribute code +-# numbers are: +-# 1 for bold; +-# 2 for dim (which is ignored in power on mode); +-# 4 for underline; +-# 5 for blinking; +-# 7 for inverse; +-# 8 for not displayable; and +-# =99 for protected (except that there are strange side +-# effects to protected characters which make them inadvisable). +-# The mapping of terminfo parameters to attributes is as follows: +-# %p1 (standout) = bold and inverse together; +-# %p2 (underline) = underline; +-# %p3 (reverse) = inverse; +-# %p4 (blink) = blinking; +-# %p5 (dim) is ignored; +-# %p6 (bold) = bold; +-# %p7 (invisible) = not displayable; +-# %p8 (protected) is ignored; and +-# %p9 (alt char set) = alt char set. +-# The code to do this is: +-# \E[0 OUTPUT \E[0 +-# %?%p1%p6%O IF (standout; bold) OR +-# %t;1 THEN OUTPUT ;1 +-# %; ENDIF +-# %?%p2 IF underline +-# %t;4 THEN OUTPUT ;4 +-# %; ENDIF +-# %?%p4 IF blink +-# %t;5 THEN OUTPUT ;5 +-# %; ENDIF +-# %?%p1%p3%O IF (standout; reverse) OR +-# %t;7 THEN OUTPUT ;7 +-# %; ENDIF +-# %?%p7 IF invisible +-# %t;8 THEN OUTPUT ;8 +-# %; ENDIF +-# m OUTPUT m +-# %?%p9 IF altcharset +-# %t^N THEN OUTPUT ^N +-# %e^O ELSE OUTPUT ^O +-# %; ENDIF +-# sgr0: Everything is turned off (including alternate character set), since +-# there is no way of knowing what it is that the program wants turned +-# off. +-# smul: The "underline" attribute is reconfigurable to an overline or +-# strikethru, or (as done with \E[;3+} in is2=), to a line at the true +-# bottom of the character cell. This was done to allow for more readable +-# underlined characters, and to be able to distinguish between an +-# underlined space, an underscore, and an underlined underscore. +-# xenl: Terminal can be configured to not need this, but this "glitch" +-# behavior is actually preferable with autowrap terminals. ++# lines 43 columns 132 + # +-# Parameters kf31= thru kf53= actually contain the strings sent by the shifted +-# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2 +-# string modifies the 'O' in kf43 to kf46 to a '$'. ++wy325-43w|wyse325-43w|wyse-325 43 lines wide mode, ++ lh@, lines#43, lw@, nlab@, ++ pln@, rs3=\EwG\Ee)$<100>, use=wy325-w, + # +-# kcbt was originally ^I but redefined in is2=. +-# kHOM was \E[H originally but redefined in is2=, as were a number of +-# other keys. +-# kDC was originally \177 but redefined in is2=. ++# lines 43 columns 132 vb + # +-# kbs: Shift was also ^H originally but redefined as \E$^H in is2=. +-# tsl: Go to window 2, then do an hpa=. ++wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell, ++ bel@, use=wy325-w, ++ ++# Wyse 370 -- 24 line screen with status line. + # +-#------- flash=\E[8;3!}^G\E[3;3!} +-#------- flash=\E[?5h$<100>\E[?5l +-# There are two ways to flash the screen, both of which have their drawbacks. +-# The first is to set the bell mode to video, transmit a bell character, and +-# set the bell mode back - but to what? There is no way of knowing what the +-# user's old bell setting was before we messed with it. Worse, the command to +-# set the bell mode also sets the key click volume, and there is no way to say +-# "leave that alone", or to know what it's set to, either. +-# The second way to do a flash is to set the screen to inverse video, pad for a +-# tenth of a second, and set it back - but like before, there's no way to know +-# that the screen wasn't ALREADY in inverse video, or that the user may prefer +-# it that way. The point is moot anyway, since vi (and probably other +-# programs) assume that by defining flash=, you want the computer to use it +-# INSTEAD of bel=, rather than as a secondary type of signal. ++# The terminal may have to be set for 8 data bits and 2 stop ++# bits for the arrow keys to work. + # +-#------- cvvis=\E[+{ +-# The is the power on setting, which is also as visible as the cursor +-# gets. +-#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw +-# Windowing is possible, but not defined here because it is also used to +-# emulate status line functions. Allowing a program to set a window could +-# clobber the status line or render it unusable. There is additional memory, +-# but screen scroll functions are destructive and do not make use of it. ++# If you change keyboards the terminal will send different ++# escape sequences. ++# The following definition is for the basic terminal without ++# function keys. + # +-#------- dim= Not available in power on mode. +-# You have a choice of defining low intensity characters as "half bright" and +-# high intensity as "normal", or defining low as "normal" and high as "bold". +-# No matter which you choose, only one of either "half bright" or "bold" is +-# available at any time, so taking the time to override the default is +-# pointless. ++# <u0> -> enter Tektronix 4010/4014 mode ++# <u1> -> exit Tektronix 4010/4014 mode ++# <u2> -> enter ASCII mode (from any ANSI mode) ++# <u3> -> exit ASCII mode (goto native ANSI mode) ++# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode) ++# <u5> -> exit Tek 4207 mode (goto native ANSI mode) + # +-#------- prot=\E[=0;99m +-# Not defined, because it appears to have some strange side effects. +-#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; +-#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; +-#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%; +-# Available, but making them available to programs is inadvisable. +-# The code to do this is: +-# %?%p1%{24}%< IF ((key; 24) <; +-# %p1%{30}%> ((key; 30) >; +-# %p1%{54}%< (key; 54) < +-# %A ) AND +-# %O ) OR +-# [that is, "IF key < 24 OR (key > 30 AND key < 54)",] +-# %t\E[ THEN OUTPUT \E[ +-# %p1%d OUTPUT (key) as decimal +-# [next line applies to pfx only] +-# ;1 OUTPUT ;1 +-# u OUTPUT u +-# \177 OUTPUT \177 +-# %p2%s OUTPUT (string) as string +-# \177 OUTPUT \177 +-# [DEL chosen as delimiter, but could be any character] +-# [implied: ELSE do nothing] +-# %; ENDIF ++# Bug: The <op> capability resets attributes. ++wy370-nk|wyse 370 without function keys, ++ am, ccc, hs, mc5i, mir, msgr, xenl, xon, ++ colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, 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$<1>, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>, ++ dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, ++ dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>, ++ el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0, ++ flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8, ++ home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH, ++ ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>, ++ ind=\n$<2>, ++ initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw, ++ invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>, ++ is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h, ++ is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i, ++ mc5=\E[5i, ++ oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w, ++ op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, ++ rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l, ++ rmkx=\E>, rmso=\E[27m, rmul=\E[24m, ++ rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>, ++ rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw, ++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q, ++ smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH, ++ u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B, ++ u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd, + # +-#------- rs2= +-# Not defined since anything it might do could be done faster and easier with +-# either Meta-Shift-Reset or the main power switch. ++# Function key set for the ASCII (wy-50 compatible) keyboard ++# This is the default 370. + # +-#------- smkx=\E[1!z +-#------- rmkx=\E[!z +-# These sequences apply to the cursor and setup keys only, not to the +-# numeric keypad. But it doesn't matter anyway, since making these +-# available to programs is inadvisable. +-# For the key definitions below, all sequences beginning with \E$ are +-# custom and programmed into the terminal via is2. \E$ also has no +-# meaning to any other terminal. ++wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard, ++ kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i, ++ kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP, ++ knp=\E[U, kpp=\E[V, use=wy370-nk, + # +-#------- cmdch=\E[;%p1%d!t +-# Available, but making it available to programs is inadvisable. +-#------- smxon=\E[1*q +-# Available, but making it available to programs is inadvisable. +-# Terminal will send XON/XOFF on buffer overflow. +-#------- rmxon=\E[*q +-# Available, but making it available to programs is inadvisable. +-# Terminal will not notify on buffer overflow. +-#------- smm=\E[2+x +-#------- rmm=\E[+x +-# Available, but making them available to programs is inadvisable. ++# Function key set for the VT-320 (and wy85) compatible keyboard + # +-# Printing: +-# It's not made clear in the manuals, but based on other ansi/vt type +-# terminals, it's a good guess that this terminal is capable of both +-# "transparent print" (which doesn't copy data to the screen, and +-# therefore needs mc5i: specified to say so) and "auxilliary print" +-# (which does duplicate printed data on the screen, in which case mc4= +-# and mc5= should use the \E[?4i and \E[?5i strings instead). +- +-hds200|Human Designed Systems HDS200, +- am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon, +- cols#80, it#8, lines#24, lm#0, +- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, +- blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{, +- clear=\E[H\E[J, cnorm=\E[+{, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, 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, +- dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K, +- fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, +- invis=\E[0;8m, +- is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+}, +- kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H, +- kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r, +- kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ, +- kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r, +- kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r, +- kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r, +- kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r, +- kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r, +- kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r, +- kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r, +- kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r, +- kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r, +- kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H, +- kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A, +- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8, +- rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017, +- rmul=\E[m\017, sc=\E7, +- sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m, +- smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG, +- vpa=\E[%i%p1%dd, +- +-# <ht> through <el> included to specify padding needed in raw mode. +-# (avt-ns: added empty <acsc> to suppress a tic warning --esr) +-avt-ns|concept avt no status line, +- OTbs, am, eo, mir, ul, xenl, xon, +- cols#80, it#8, lines#24, lm#192, +- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- clear=\E[H\E[J$<38>, cnorm=\E[=119l, 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, +- cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>, +- dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H, +- hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>, +- invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l, +- is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t, ++wy370-105k|Wyse 370 with 105 key keyboard, + kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H, +- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, +- pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#, +- prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, +- ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n, +- rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{, +- sc=\E7, +- 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[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, +-avt-w-ns|concept avt in 132 column mode/no status line, +- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w, +- use=avt-ns, +-avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video, +- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h, +- smcup=\E[H\E[1;24;1;132w, use=avt-ns, +- +-# Concept AVT with status line. We get the status line using the +-# "Background status line" feature of the terminal. We swipe the +-# first line of memory in window 2 for the status line, keeping +-# 191 lines of memory and 24 screen lines for regular use. +-# The first line is used instead of the last so that this works +-# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this +-# assumes an 8 page AVT but lm isn't currently used anywhere.) ++ kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, ++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, ++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, ++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, ++ khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~, ++ kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, ++ use=wy370-nk, use=vt220+keypad, + # +-avt+s|concept avt status line changes, +- eslok, hs, +- lm#191, +- dsl=\E[0*w, fsl=\E[1;1!w, +- is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n, +- rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r, +- tsl=\E[2;1!w\E[;%p1%dH\E[2K, +-avt|avt-s|concept-avt|avt w/80 columns, +- use=avt+s, use=avt-ns, +-avt-rv|avt-rv-s|avt reverse video w/sl, +- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h, +- use=avt+s, use=avt-ns, +-avt-w|avt-w-s|concept avt 132 cols+status, +- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w, +- use=avt+s, use=avt-ns, +-avt-w-rv|avt-w-rv-s|avt wide+status+rv, +- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h, +- smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns, +- +-#### Contel Business Systems. ++# Function key set for the PC compatible keyboard + # +- +-# Contel c300 and c320 terminals. +-contel300|contel320|c300|Contel Business Systems C-300 or C-320, +- am, in, xon, +- cols#80, lines#24, xmc#1, +- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, +- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>, +- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH, +- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>, +- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD, +- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA, +- rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3, +-# Contel c301 and c321 terminals. +-contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321, +- flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>, +- use=contel300, +- +-#### Data General (dg) ++wy370-EPC|Wyse 370 with 102 key keyboard, ++ kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~, ++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk, + # +-# According to James Carlson <carlson@xylogics.com> writing in January 1995, +-# the terminals group at Data General was shut down in 1991; all these +-# terminals have thus been discontinued. ++# Wyse 370 with visual bell. ++wy370-vb|Wyse 370 with visible bell, ++ bel@, use=wy370, + # +-# DG terminals have function keys that respond to the SHIFT and CTRL keys, +-# e.g., SHIFT-F1 generates a different code from F1. To number the keys +-# sequentially, first the unmodified key codes are listed as F1 through F15. +-# Then their SHIFT versions are listed as F16 through F30, their CTRL versions +-# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as +-# F46 through F60. This is done in the private "includes" below whose names +-# start with "dgkeys+". ++# Wyse 370 in 132-column mode. ++wy370-w|Wyse 370 in 132-column mode, ++ cols#132, wsl#132, ++ rs2=\E[35h\E[?3h$<70>, use=wy370, + # +-# DG terminals generally support 8 bit characters. For each of these terminals +-# two descriptions are supplied: +-# 1) A default description for 8 bits/character communications, which +-# uses the default DG international character set and keyboard codes. +-# 2) A description with suffix "-7b" for 7 bits/character communications. +-# This description must use the NON-DEFAULT native keyboard language. +- +-# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33), +-# Ctrl/Shift fdkeys (kf34-kf44). +- +-dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys, +- ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z, +- kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C, +- kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z, +- kf11=\233011z, kf12=\233012z, kf13=\233013z, +- kf14=\233014z, kf15=\233000z, kf16=\233101z, +- kf17=\233102z, kf18=\233103z, kf19=\233104z, +- kf2=\233002z, kf20=\233105z, kf21=\233106z, +- kf22=\233107z, kf23=\233108z, kf24=\233109z, +- kf25=\233110z, kf26=\233111z, kf27=\233112z, +- kf28=\233113z, kf29=\233114z, kf3=\233003z, +- kf30=\233100z, kf31=\233201z, kf32=\233202z, +- kf33=\233203z, kf34=\233204z, kf35=\233205z, +- kf36=\233206z, kf37=\233207z, kf38=\233208z, +- kf39=\233209z, kf4=\233004z, kf40=\233210z, +- kf41=\233211z, kf42=\233212z, kf43=\233213z, +- kf44=\233214z, kf45=\233200z, kf46=\233301z, +- kf47=\233302z, kf48=\233303z, kf49=\233304z, +- kf5=\233005z, kf50=\233305z, kf51=\233306z, +- kf52=\233307z, kf53=\233308z, kf54=\233309z, +- kf55=\233310z, kf56=\233311z, kf57=\233312z, +- kf58=\233313z, kf59=\233314z, kf6=\233006z, +- kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z, +- khome=\233H, kprt=\233i, +- +-dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys, +- ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z, +- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z, +- kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z, +- kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z, +- kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z, +- kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z, +- kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z, +- kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z, +- kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z, +- kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z, +- kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z, +- kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z, +- kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z, +- kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z, +- kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z, +- kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z, +- kf9=\E[009z, khome=\E[H, kprt=\E[i, +- +-dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys, +- kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K, +- kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c, +- kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r, +- kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3, +- kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8, +- kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#, +- kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(, +- kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w, +- kf8=^^x, kf9=^^y, khome=^H, +- +-dgkeys+15|Private entry describing 15 DG mode special keys, +- kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^, +- kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^}, +- kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d, +- kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i, +- kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s, +- kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5, +- kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:, +- kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!, +- kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&, +- kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,, +- kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x, +- kf9=^^y, +- +-# Data General color terminals use the "Tektronix" color model. The total +-# number of colors varies with the terminal model, as does support for +-# attributes used in conjunction with color. +- +-# Removed u7, u8 definitions since they conflict with tack: +-# Preserve user-defined colors in at least some cases. +-# u7=^^Fh, +-# Default is ACM mode. +-# u8=^^F}20^^Fi^^F}21, ++# Wyse 370 in 132-column mode with visual bell. ++wy370-wvb|Wyse 370 with visible bell 132-columns, ++ flash=\E[30h\E\,\E[30l$<300>, use=wy370-w, ++wy370-rv|Wyse 370 reverse video, ++ rs3=\E[32h\E[?5h, use=wy370, + # +-dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode, +- bce, +- colors#16, ncv#53, pairs#256, +- op=\036Ad\036Bd, +- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, +- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, +- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c, +- +-dg+fixed|Fixed color info for DG D430C terminals in DG mode, +- use=dgunix+fixed, +- +-# Video attributes are coordinated using static variables set by "sgr", then +-# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. +-# (D=dim, U=underline, B=blink, R=reverse.) +-dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode, +- bce, +- colors#8, ncv#16, pairs#64, +- op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m, +- setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- +-dg+color|Color info for Data General D470C terminals in ANSI mode, +- colors#16, ncv#53, pairs#256, +- setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, +- use=dg+color8, +- +-dgmode+color8|Color info for Data General D220/D230C terminals in DG mode, +- bce, +- colors#8, ncv#16, pairs#64, +- op=\036Ad\036Bd, +- setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c, +- setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c, +- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c, +- +-dgmode+color|Color info for Data General D470C terminals in DG mode, +- colors#16, pairs#256, +- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, +- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, +- use=dgmode+color8, +- +-dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode, +- bce, ccc, +- colors#52, ncv#53, pairs#26, +- initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X, +- oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00, +- op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D, +- scp=\036RG2%p1%02X, +- +-# Colors are in the order: normal, reverse, dim, dim + reverse. +-dg+ccc|Configurable color info for DG D430C terminals in DG mode, +- bce, ccc, +- colors#52, ncv#53, pairs#26, +- initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c, +- oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00, +- op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=, +- scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c, +- +-# The generic DG terminal type (an 8-bit-clean subset of the 6053) +-# Initialization string 1 sets: +-# ^R - vertical scrolling enabled +-# ^C - blinking enabled +-dg-generic|Generic Data General terminal in DG mode, +- am, bw, msgr, xon, +- cols#80, lines#24, +- bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X, +- cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C, +- mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\, +- smul=^T, use=dgkeys+11, +- +-# According to the 4.4BSD termcap file, the dg200 <cup> should be the +-# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap +-# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious, +-# maybe they were originally nuls (which would fit). ++# Wyse 99gt Tektronix 4010/4014 emulator, ++# ++wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator, ++ am, os, ++ cols#74, lines#35, ++ bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, ++ cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037, ++ cuu1=^K, ff=^L, ++ hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037, ++ home=^]7`x @\037, ++ hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037, ++ is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h, ++# ++# Wyse 160 Tektronix 4010/4014 emulator, ++# ++wy160-tek|Wyse 160 Tektronix 4010/4014 emulator, ++ cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037, ++ home=^]8`g @\037, use=wy99gt-tek, ++# ++# Wyse 370 Tektronix 4010/4014 emulator, ++# ++wy370-tek|Wyse 370 Tektronix 4010/4014 emulator, ++ am, os, ++ cols#80, lines#36, ++ bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, ++ cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037, ++ cuu1=^K, ff=^L, ++ hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037, ++ home=^]8g @\037, ++ hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037, ++ is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K, ++ nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0, + +-dg200|data general dasher 200, +- OTbs, am, bw, +- cols#80, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X, +- cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J, +- kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q, +- kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x, +- kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U, +- smso=^^D, smul=^T, ++# Vendor-supplied Wyse entries end here. + +-# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL +-dg210|dg-ansi|Data General 210/211, +- am, +- cols#80, lines#24, +- OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, +- smso=\E[7;m, smul=\E[4;m, +-# From: Peter N. Wan <ihnp4!gatech!gacsr!wan> +-# courtesy of Carlos Rucalde of Vantage Software, Inc. +-# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover. +-# I suspect the d200 function keys actually work on the dg211, check it out.) +-dg211|Data General d211, +- cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@, +- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L, +- rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200, +- +-# dg450 from Cornell (not official) +-dg450|dg6134|data general 6134, +- cub1@, cuf1=^X, use=dg200, +- +-# Not official... +-# Note: lesser Dasher terminals will not work with vi because vi insists upon +-# having a command to move straight down from any position on the bottom line +-# and scroll the screen up, or a direct vertical scroll command. The 460 and +-# above have both, the D210/211, for instance, has neither. We must use ANSI +-# mode rather than DG mode because standard UNIX tty drivers assume that ^H is +-# backspace on all terminals. This is not so in DG mode. +-# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the +-# grounds that there is no matching ":ml:" +-# fixed garbled ":k9=\E[00\:z:" capability -- esr) +-dg460-ansi|Data General Dasher 460 in ANSI-mode, +- OTbs, am, msgr, ul, +- cols#80, it#8, lines#24, +- OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, +- dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, +- ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z, +- kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z, +- kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3, +- lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m, +- ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m, +- smul=\E[4m, +-# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official) +-# Data General 605x +-# Ought to work for a Model 6242, Type D210 as well as a 605x. +-# Note that the cursor-down key transmits ^Z. Job control users, beware! +-# This also matches a posted description of something called a `Dasher 100' +-# so there's a dg100 alias here. +-# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr) +-dg6053-old|dg100|data general 6053, +- OTbs, am, bw, ul, +- cols#80, lines#24, +- OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z, +- cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K, +- home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X, +- kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, +- kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L, +- rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D, +- smul=^T, +- +-# (Some performance can be gained over the generic DG terminal type) +-dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053, +- xon@, +- home=^P\0\0, ll=^P\0^W, use=dg-generic, +- +-# Like 6053, but adds reverse video and more keypad and function keys. +-d200|d200-dg|Data General DASHER D200, +- bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^], +- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;, +- sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15, +- use=dg6053, +- +-# DASHER D210 series terminals in ANSI mode. +-# Reverse video, no insert/delete character/line, 7 bits/character only. + # +-# Initialization string 1 sets: +-# <0 - scrolling enabled +-# <1 - blink enabled +-# <4 - print characters regardless of attributes +-d210|d214|Data General DASHER D210 series, +- am, bw, msgr, xon, +- cols#80, lines#24, +- bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M, +- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, +- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K, +- el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l, +- ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, +- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m, +- sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b, +- +-# DASHER D210 series terminals in DG mode. +-# Like D200, but adds clear to end-of-screen and needs XON/XOFF. +-d210-dg|d214-dg|Data General DASHER D210 series in DG mode, +- xon, +- ed=^^FF, use=d200-dg, +- +-# DASHER D211 series terminals in ANSI mode. +-# Like the D210, but with 8-bit characters and local printer support. ++#TITLE: TERMINFO ENTRY WY520 ++#DATE: 8/5/93 ++# The WY520 terminfo is based on the WY285 entry published on the WYSE ++# BBS with the addition of more function keys and special keys. + # +-# Initialization string 2 sets: +-# \E[2;1;1;1v +-# 2;1 - 8 bit operations +-# 1;1 - 8 bit (international) keyboard language +-# \E(B - default primary character set (U.S. ASCII) +-# \E)4 - default secondary character set (international) +-# ^O - primary character set ++# rs1 -> set personality ++# rs2 -> set number of columns ++# rs3 -> set number of lines ++# is1 -> select the proper font ++# is2 -> do the initialization ++# is3 -> If this string is empty then rs3 gets sent. + # +-d211|d215|Data General DASHER D211 series, +- km, +- is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b, +- use=d210, +- +-# Initialization string 2 sets: +-# \E[2;0;1;0v +-# 2;0 - 7 bit operations +-# 1;0 - 7 bit (native) keyboard language +-# \E(0 - default character set (the keyboard native language) +-# ^O - primary character set +-d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode, +- km@, +- is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211, +- +-# Like the D210 series, but adds support for 8-bit characters. ++# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard ++# - The BS key is programmed to generate BS in smcup since ++# is2 doesn't seem to work. ++# - Remove and shift/Remove: delete a character ++# - Insert : enter insert mode ++# - Find : delete to end of file ++# - Select : clear a line ++# - F11, F12, F13: send default sequences (not ESC, BS, LF) ++# - F14 : Home key ++# - Bottom status line (host writable line) is used. ++# - smkx,rmkx are removed because this would put the numeric ++# keypad in Dec application mode which doesn't seem to work ++# with SCO applications. + # +-# Reset string 2 sets: +-# ^^N - secondary character set +-# ^^FS0> - 8 bit international character set +-# ^^O - primary character set +-# ^^FS00 - default character set (matching the native keyboard language) ++wy520|wyse520|wyse 520, ++ am, hs, km, mc5i, mir, xenl, xon, ++ cols#80, it#8, lines#24, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr$<20>, 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, ++ cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>, ++ dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~, ++ ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K, ++ enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ++ hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, ++ il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W, ++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h, ++ is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~, ++ kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, ++ kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, ++ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, ++ lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ++ rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, ++ rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m, ++ rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l, ++ rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7, ++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, ++ smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`, ++ vpa=\E[%i%p1%dd, use=vt220+keypad, + # +-d211-dg|d215-dg|Data General DASHER D211 series in DG mode, +- km, +- rs2=\036N\036FS0>\036O\036FS00, use=d210-dg, +- +-d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode, +- use=d211-dg, +- +-# Enhanced DG mode with changes to be more UNIX compatible. +-d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode, +- mc5i, +- it#8, +- acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI, +- clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA, +- el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J, +- is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd, +- kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB, +- kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0, +- mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00, +- rs2=\036N\036FS0E\036O\036FS00, +- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;, +- sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11, +- vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg, +-d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines, +- lines#25, +- is3=\036Fz2, use=d216+, +- +-d217-unix|Data General DASHER D217 in DG-UNIX mode, +- use=d216-unix, +-d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines, +- use=d216-unix-25, +- +-# DASHER D220 color terminal in ANSI mode. +-# Like the D470C but with fewer colors and screen editing features. ++# Wyse 520 with 24 data lines and status (terminal status) ++wy520-24|wyse520-24|wyse 520 with 24 data lines, ++ hs@, ++ dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@, ++ use=wy520, + # +-# Initialization string 1 sets: +-# \E[<0;<1;<4l +-# <0 - scrolling enabled +-# <1 - blink enabled +-# <4 - print characters regardless of attributes +-# \E[m - all attributes off +-# Reset string 1 sets: +-# \Ec - initial mode defaults (RIS) ++# Wyse 520 with visual bell. ++wy520-vb|wyse520-vb|wyse 520 with visible bell, ++ flash=\E[30h\E\,\E[30l$<100>, use=wy520, + # +-d220|Data General DASHER D220, +- mc5i@, +- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec, +- use=dg+color8, use=d470c, +- +-d220-7b|Data General DASHER D220 in 7 bit mode, +- mc5i@, +- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec, +- use=dg+color8, use=d470c-7b, +- +-# Initialization string 3 sets: +-# - default cursor (solid rectangle) +-# Reset string 2 sets: +-# ^^N - secondary character set +-# ^^FS0> - 8 bit international character set +-# ^^O - primary character set +-# ^^FS00 - default character set (matching the native keyboard language) ++# Wyse 520 in 132-column mode. ++wy520-w|wyse520-w|wyse 520 in 132-column mode, ++ cols#132, wsl#132, ++ dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>, ++ ip=$<7>, rs2=\E[35h\E[?3h, use=wy520, + # +-d220-dg|Data General DASHER D220 color terminal in DG mode, +- mc5i@, +- dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@, +- rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8, +- use=d470c-dg, +- +-# DASHER D230C color terminal in ANSI mode. +-# Like the D220 but with minor ANSI compatibility improvements. ++# Wyse 520 in 132-column mode with visual bell. ++wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns, ++ flash=\E[30h\E\,\E[30l$<100>, use=wy520-w, + # +-d230c|d230|Data General DASHER D230C, +- blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J, +- rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m, +- sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;, +- sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m, +- smul=\E[4;50m, use=dgkeys+7b, use=d220, +- +-d230c-dg|d230-dg|Data General DASHER D230C in DG mode, +- use=d220-dg, +- +-# DASHER D400/D450 series terminals. +-# These add intelligent features like insert/delete to the D200 series. + # +-# Initialization string 2 sets: +-# ^^FQ2 - default cursor (solid rectangle) +-# ^^FW - character protection disabled +-# ^^FJ - normal (80 column) mode +-# ^^F\^ - horizontal scrolling enabled (for alignment) +-# ^^FX004? - margins at columns 0 and 79 +-# ^^F] - horizontal scrolling disabled +-# ^^O - primary character set +-# ^^FS00 - default character set (the keyboard native language) +-# - (should reset scrolling regions, but that glitches the screen) +-# Reset string 1 sets: +-# ^^FA - all terminal defaults except scroll rate +-# Reset string 2 sets: +-# ^^F] - horizontal scrolling disabled +-# ^^FT0 - jump scrolling ++# Wyse 520 emulating a vt420 7 bit mode. ++# The DEL key is programmed to generate BS in is2. ++# With EPC keyboard. ++# - 'End' key will clear till end of line on EPC keyboard ++# - Shift/End : ignored. ++# - Insert : enter insert mode. ++# - Delete : delete a character (have to change interrupt character ++# to CTRL-C: stty intr '^c') for it to work since the ++# Delete key sends 7FH. ++wy520-epc|wyse520-epc|wyse 520 with EPC keyboard, ++ kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~, ++ kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H, ++ use=wy520, + # +-d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series, +- mc5i, +- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0, +- cnorm=\036FQ2, dch1=^^K, dl1=^^FI, +- enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177, +- ich1=^^J, il1=^^FH, +- is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00, +- ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O, +- rs1=^^FA, rs2=\036F]\036FT0, +- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;, +- sgr0=\017\025\035\036E\036O, smacs=^^N, +- vpa=\020\177%p1%c, use=d210-dg, +- +-# DASHER D410/D460 series terminals in ANSI mode. +-# These add a large number of intelligent terminal features. ++# Wyse 520 with 24 data lines and status (terminal status) ++# with EPC keyboard. ++wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard, ++ hs@, ++ dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@, ++ use=wy520-epc, + # +-# Initialization string 1 sets: +-# \E[<0;<1;<2;<4l +-# <0 - scrolling enabled +-# <1 - blink enabled +-# <2 - horizontal scrolling enabled (for alignment) +-# <4 - print characters regardless of attributes +-# \E[5;0v - normal (80 column) mode +-# \E[1;1;80w - margins at columns 1 and 80 +-# \E[1;6;<2h +-# 1 - print all characters even if protected +-# 6 - character protection disabled +-# <2 - horizontal scrolling disabled +-# - (should reset scrolling regions, but that glitches the screen) ++# Wyse 520 with visual bell. ++wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard, ++ flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc, + # +-# Initialization string 2 sets: +-# \E[3;2;2;1;1;1v +-# 3;2 - default cursor (solid rectangle) +-# 2;1 - 8 bit operations +-# 1;1 - international keyboard language +-# \E(B - default primary character set (U.S. ASCII) +-# \E)4 - default secondary character set (international) +-# ^O - primary character set ++# Wyse 520 in 132-column mode. ++wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard, ++ cols#132, wsl#132, ++ dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>, ++ ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc, + # +-# Reset string 1 sets: +-# \Ec - initial mode defaults (RIS) +-# \E[<2h - horizontal scrolling disabled ++# Wyse 520 in 132-column mode with visual bell. ++wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard, ++ flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w, + # +-# Reset string 2 sets: +-# \E[4;0;2;1;1;1v +-# 4;0 - jump scrolling +-# 2;1 - 8 bit operations +-# 1;1 - 8 bit (international) keyboard language +-# \E(B - default primary character set (U.S. ASCII) +-# \E)4 - default secondary character set (international) ++# Wyse 520 in 80-column, 36 lines ++wy520-36|wyse520-36|wyse 520 with 36 data lines, ++ hs@, ++ lines#36, ++ dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@, ++ use=wy520, + # +-d410|d411|d460|d461|Data General DASHER D410/D460 series, +- mc5i, +- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v, +- cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, +- is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h, +- is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i, +- ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h, +- rs2=\E[4;0;2;1;1;1v\E(B\E)4, +- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;, +- sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211, +- +-# Initialization string 2 sets: +-# \E[3;2;2;0;1;0v +-# 3;2 - default cursor (solid rectangle) +-# 2;0 - 7 bit operations +-# 1;0 - 7 bit (native) keyboard language +-# \E(0 - default character set (the keyboard native language) +-# ^O - primary character set ++# Wyse 520 in 80-column, 48 lines ++wy520-48|wyse520-48|wyse 520 with 48 data lines, ++ hs@, ++ lines#48, ++ dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@, ++ use=wy520, + # +-# Reset string 2 sets: +-# \E[4;0;2;0;1;0v +-# 4;0 - jump scrolling +-# 2;0 - 7 bit operations +-# 1;0 - 7 bit (native) keyboard language +-# \E(0 - default character set (the keyboard native language) ++# Wyse 520 in 132-column, 36 lines ++wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines, ++ cols#132, wsl#132, ++ rs2=\E[?3h, ++ rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|, ++ use=wy520-36, + # +-d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode, +- km@, +- enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O, +- rs2=\E[4;0;2;0;1;0v\E(0, +- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410, +- +-d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode, +- km, +- enacs@, rmacs=\036FS00, +- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;, +- sgr0=\017\025\035\036E\036FS00, smacs=\036FS11, +- use=d400-dg, +- +-# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode. ++# Wyse 520 in 132-column, 48 lines ++wy520-48w|wyse520-48w|wyse 520 with 48 data lines, ++ cols#132, wsl#132, ++ rs2=\E[?3h, ++ rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|, ++ use=wy520-48, + # +-# Initialization string 1 sets: +-# \E[<0;<1;<2;<4l +-# <0 - scrolling enabled +-# <1 - blink enabled +-# <2 - horizontal scrolling enabled (for alignment) +-# <4 - print characters regardless of attributes +-# \E[5;1v - compressed (135 column) mode +-# \E[1;1;126 - margins at columns 1 and 126 +-# \E[1;6;<2h +-# 1 - print all characters even if protected +-# 6 - character protection disabled +-# <2 - horizontal scrolling disabled +-# - (should reset scrolling regions, but that glitches the screen) + # +-# Reset string 1 sets: +-# \Ec - initial mode defaults (RIS) +-# \E[5;1v - compressed (135 column) mode +-# \E[1;1;126w - margins at columns 1 and 126 +-# \E[<2h - horizontal scrolling disabled ++# Wyse 520 in 80-column, 36 lines with EPC keyboard ++wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard, ++ hs@, ++ lines#36, ++ dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@, ++ use=wy520-epc, + # +-d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode, +- cols#126, +- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h, +- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410, ++# Wyse 520 in 80-column, 48 lines with EPC keyboard ++wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard, ++ hs@, ++ lines#48, ++ dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@, ++ use=wy520-epc, ++# ++# Wyse 520 in 132-column, 36 lines with EPC keyboard ++wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard, ++ cols#132, wsl#132, ++ rs2=\E[?3h, ++ rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|, ++ use=wy520-36pc, ++# ++# Wyse 520 in 132-column, 48 lines with EPC keyboard ++wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard, ++ cols#132, wsl#132, ++ rs2=\E[?3h, ++ rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|, ++ use=wy520-48pc, + +-d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode, +- cols#126, +- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h, +- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b, ++# From: John Gilmore <hoptoad!gnu@lll-crg.arpa> ++# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such ++# file and we don't know what <hts> is -- esr) ++wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on, ++ OTbs, am, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW, ++ dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J, ++ is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F, ++ kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O, ++ rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N, ++ smul=^N, + +-d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode, +- use=d410-dg, ++wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad, ++ is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>, ++ use=wy75, + +-# These add intelligent features like scrolling regions. +-d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode, +- civis=\036FQ0, clear=^^FE, cnorm=\036FQ5, +- cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI, +- home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH, +- is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00, +- ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I, +- rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10, +- vpa=\036FPFF%p1%2.2X, +- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X, +- use=d216+, +-d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode, +- cols#132, +- is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00, +- rs2=\036P@1\036FK\036FX0083, +- wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X, +- use=d412-unix, +-d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines, +- lines#25, +- is3=\036Fz2, +- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X, +- use=d462+, +-d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line, +- eslok, hs, +- clear=\036FG\036PH, fsl=\036F}01\022, +- is3=\036Fz2\036F}00\036FB180000\036F}01, ll@, +- tsl=\036F}00\036FP%p1%2.2X18\036PG, +- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X, +- use=d462+, +- +-# Relative cursor motions are confined to the current window, +-# which is not what the scrolling region specification expects. +-# Thus, relative vertical cursor positioning must be deleted. +-d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region, +- csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;, +- cud1@, cuu1@, ll@, use=d462+, +- +-d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode, +- use=d412-unix, +-d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode, +- use=d412-unix-w, +-d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines, +- use=d412-unix-25, +-d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line, +- use=d412-unix-s, +-d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region, +- use=d412-unix-sr, +- +-d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode, +- use=d413-unix, +-d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode, +- use=d413-unix-w, +-d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines, +- use=d413-unix-25, +-d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line, +- use=d413-unix-s, +-d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region, +- use=d413-unix-sr, +- +-d430c-dg|d430-dg|Data General D430C in DG mode, +- use=d413-dg, use=dg+fixed, +-d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors, +- use=d413-dg, use=dg+ccc, +- +-d430c-unix|d430-unix|Data General D430C in DG-UNIX mode, +- use=d413-unix, use=dgunix+fixed, +-d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode, +- use=d413-unix-w, use=dgunix+fixed, +-d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines, +- use=d413-unix-25, use=dgunix+fixed, +-d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line, +- use=d413-unix-s, use=dgunix+fixed, +-d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region, +- use=d413-unix-sr, use=dgunix+fixed, +-d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors, +- use=d413-unix, use=dgunix+ccc, +-d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors, +- use=d413-unix-w, use=dgunix+ccc, +-d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors, +- use=d413-unix-25, use=dgunix+ccc, +-d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors, +- use=d413-unix-s, use=dgunix+ccc, +-d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors, +- use=d413-unix-sr, use=dgunix+ccc, ++# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu> ++wy100q|Wyse 100 for Quotron, ++ OTbs, ++ cols#80, lines#24, xmc#1, ++ cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@, ++ is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J, ++ kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr, + +-# DASHER D470C color terminal in ANSI mode. +-# Like the D460 but with 16 colors and without a compressed mode. ++#### Kermit terminal emulations + # +-# Initialization string 1 sets: +-# \E[<0;<1;<2;<4l +-# <0 - scrolling enabled +-# <1 - blink enabled +-# <2 - horizontal scrolling enabled (for alignment) +-# <4 - print characters regardless of attributes +-# \E[1;1;80w - margins at columns 1 and 80 +-# \E[1;6;<2h +-# 1 - print all characters even if protected +-# 6 - character protection disabled +-# <2 - horizontal scrolling disabled +-# - (should reset scrolling regions, but that glitches the screen) ++# Obsolete Kermit versions may be listed in the section describing obsolete ++# non-ANSI terminal emulators later in the file. + # +-d470c|d470|Data General DASHER D470C, +- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, +- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;, +- use=dg+color, use=d460, + +-d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode, +- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, +- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;, +- use=dg+color, use=d460-7b, ++# KERMIT standard all versions. ++# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. ++# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) ++# From: greg small <gts@populi.berkeley.edu> 9-25-84 ++kermit|standard kermit, ++ OTbs, ++ cols#80, lines#24, ++ clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, ++ el=\EK, home=\EH, is2=K0 Standard Kermit 9-25-84\n, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, ++kermit-am|standard kermit plus auto-margin, ++ am, ++ is2=K1 Standard Kermit plus Automatic Margins\n, ++ use=kermit, ++# IBMPC Kermit 1.2. ++# Bugs: <ed>, <el>: do not work except at beginning of line! <clear> does ++# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of ++# line). ++# From: greg small <gts@populi.berkeley.edu> 8-30-84 ++pckermit|pckermit12|UCB IBMPC Kermit 1.2, ++ am, ++ lines#25, ++ clear=\EH\EJ, ed@, el@, ++ is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit, ++# IBMPC Kermit 1.20 ++# Cannot use line 25, now acts funny like ansi special scrolling region. ++# Initialization must escape from that region by cursor position to line 24. ++# Cannot use character insert because 1.20 goes crazy if insert at col 80. ++# Does not use :am: because autowrap is lost when kermit dropped and restarted. ++# From: greg small <gts@populi.berkeley.edu> 12-19-84 ++pckermit120|UCB IBMPC Kermit 1.20, ++ it#8, lines#24, ++ cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I, ++ il1=\EL, ++ is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n, ++ rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit, ++# MS-DOS Kermit 2.27 for the IBMPC ++# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. ++# Cannot use line 25, now acts funny like ansi special scrolling region. ++# Initialization must escape from that region by cursor position to line 24. ++# Does not use am: because autowrap is lost when kermit dropped and restarted. ++# Reverse video for standout like H19. ++# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) ++# From: greg small <gts@populi.berkeley.edu> 3-17-85 ++msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC, ++ OTbs, am@, ++ cols#80, it#8, lines#24, ++ clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ++ cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK, ++ home=\EH, ht=^I, il1=\EL, ++ is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek, ++ rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep, ++# MS-DOS Kermit 2.27 with automatic margins ++# From: greg small <gts@populi.berkeley.edu> 3-17-85 ++msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins, ++ am, ++ cvvis=\EO\Eq\EG\EvK5, ++ is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n, ++ use=msk227, ++# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC ++# Automatic margins now default. Use ansi <sgr> for highlights. ++# Define function keys. ++# (msk22714: removed obsolete ":kn#10:" -- esr) ++# From: greg small <gts@populi.berkeley.edu> 3-17-85 ++msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC, ++ am, ++ bold=\E[1m, cvvis=\EO\Eq\EG\EvK6, ++ is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n, ++ kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, ++ kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227, ++# This was designed for a VT320 emulator, but it is probably a good start ++# at support for the VT320 itself. ++# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu. ++# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr) ++vt320-k3|MS-Kermit 3.00's vt320 emulation, ++ am, eslok, hs, km, mir, msgr, xenl, ++ cols#80, it#8, lines#49, pb#9600, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, 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, ++ dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l, ++ fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~, ++ kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8, ++ rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l, ++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, ++ rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~, ++ sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd, ++# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991 ++# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996 ++# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr) ++vt320-k311|dec vt320 series as defined by kermit 3.11, ++ am, eslok, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[;H\E[2J, cnorm=\E[?25h, 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, ++ dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K, ++ flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED, ++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2, ++ lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m, ++ rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, ++ rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N, ++ smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH, + +-# Initialization string 2 sets: +-# ^^FQ2 - default cursor (solid rectangle) +-# ^^FW - character protection disabled +-# ^^F\^ - horizontal scrolling enabled (for alignment) +-# ^^FX004? - margins at columns 0 and 79 +-# ^^F] - horizontal scrolling disabled +-# ^^O - primary character set +-# ^^FS00 - default character set (the keyboard native language) +-# - (should reset scrolling regions, but that glitches the screen) ++######## NON-ANSI TERMINAL EMULATIONS + # +-d470c-dg|d470-dg|Data General DASHER D470C in DG mode, +- is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00, +- use=dgmode+color, use=d460-dg, +- +-# DASHER D555 terminal in ANSI mode. +-# Like a D411, but has an integrated phone. +-d555|Data General DASHER D555, +- use=d411, +-d555-7b|Data General DASHER D555 in 7-bit mode, +- use=d411-7b, +-d555-w|Data General DASHER D555 in wide mode, +- use=d411-w, +-d555-7b-w|Data General DASHER D555 in wide 7-bit mode, +- use=d411-7b-w, +-d555-dg|Data General DASHER D555 series in DG mode, +- use=d411-dg, +- +-# DASHER D577 terminal in ANSI mode. +-# Like a D411, but acts as a keyboard for serial printers ("KSR" modes). +-d577|Data General DASHER D577, +- use=d411, +-d577-7b|Data General DASHER D577 in 7-bit mode, +- use=d411-7b, +-d577-w|Data General DASHER D577 in wide mode, +- use=d411-w, +-d577-7b-w|Data General DASHER D577 in wide 7-bit mode, +- use=d411-7b-w, + +-d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode, +- use=d411-dg, +- +-# DASHER D578 terminal. +-# Like a D577, but without compressed mode; like a D470C in this respect. ++#### Avatar + # +-# Initialization string 1 sets: +-# \E[<0;<1;<2;<4l +-# <0 - scrolling enabled +-# <1 - blink enabled +-# <2 - horizontal scrolling enabled (for alignment) +-# <4 - print characters regardless of attributes +-# \E[1;1;80w - margins at columns 1 and 80 +-# \E[1;6;<2h +-# 1 - print all characters even if protected +-# 6 - character protection disabled +-# <2 - horizontal scrolling disabled +-# - (should reset scrolling regions, but that glitches the screen) ++# These entries attempt to describe Avatar, a terminal emulation used with ++# MS-DOS bulletin-board systems. It was designed to give ANSI-like ++# capabilities, but with cheaper (shorter) control sequences. Messy design, ++# excessively dependent on PC idiosyncracies, but apparently rather popular ++# in the BBS world. + # +-d578|Data General DASHER D578, +- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577, +-d578-7b|Data General DASHER D578 in 7-bit mode, +- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b, +- +-#### Datamedia (dm) ++# No color support. Avatar doesn't fit either of the Tektronix or HP color ++# models that terminfo knows about. An Avatar color attribute is the ++# low 7 bits of the IBM-PC display-memory attribute. Bletch. + # +-# Datamedia was headquartered in Nashua, New Hampshire until it went +-# out of business in 1993, but the ID plates on the terminals referred +-# to the factory in Pennsauken, NJ. The factory was sold to a PCB board +-# manufacturer which threw out all information about the terminals. ++# I wrote these entries while looking at the Avatar spec. I don't have ++# the facilities to test them. Let me know if they work, or don't. ++# ++# Avatar escapes not used by these entries (because maybe you're smarter ++# and more motivated than I am and can figure out how to wrap terminfo ++# around some of them, and because they are weird enough to be funny): ++# level 0: ++# ^L -- clear window/reset current attribute to default ++# ^V^A%p1%c -- set current color attribute, parameter decodes as follows: ++# ++# bit: 6 5 4 3 2 1 0 ++# | | | | | ++# +---+---+ | +---+---+ ++# | | | ++# | | foreground color ++# | foreground intensity ++# background color ++# level 0+: ++# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines ++# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines ++# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1 ++# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1 ++# (^V^L and ^V^M set the current attribute as a side-effect.) ++# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes ++# in the pattern, <c> the number of times the pattern ++# should be repeated. If either value is 0, no-op. ++# The pattern can contain Avatar console codes, ++# including other ^V ^Y patterns. ++# level 1: ++# ^V^O -- clockwise mode on; turn print direction right each time you ++# hit a window edge (yes, really). Turned off by CR ++# ^V^P -- no-op ++# ^V^Q%c -- query the driver ++# ^V^R -- driver reset ++# ^V^S -- Sound tone (PC-specific) ++# ^V^T -- change highlight at current cursor poition to %c ++# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b> ++# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c ++# -- define window ++# ++# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 ++# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to ++# tell ncurses that the corresponding highlights exist; it should use <sgr>, ++# which is the only method that will actually work for multiple highlights.) + # ++# Update by TD - 2004: half of this was inconsistent. Found documentation ++# and repaired most of the damage. sgr0 is probably incorrect, but the ++# available documentation gives no clues for a workable string. ++avatar0|avatar terminal emulator level 0, ++ am, bce, msgr, ++ cols#80, it#8, lines#25, ++ blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D, ++ cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G, ++ ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap, ++ rmacs@, rs2=^L, ++ sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;, ++ sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A, ++ use=klone+acs, ++# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 ++avatar0+|avatar terminal emulator level 0+, ++ dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0, ++# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 ++avatar|avatar1|avatar terminal emulator level 1, ++ civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+, ++ rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+, + +-cs10|colorscan|Datamedia Color Scan 10, +- msgr, +- cols#80, lines#24, +- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smso=\E[7m, smul=\E[4m, +-cs10-w|Datamedia Color Scan 10 with 132 columns, ++#### RBcomm ++# ++# RBComm is a lean and mean terminal emulator written by the Interrupt List ++# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early ++# '90s), especially in the BBS world, and still has some loyal users due to ++# its very small memory footprint and to a cute macro language. ++rbcomm|IBM PC with RBcomm and EMACS keybindings, ++ am, bw, mir, msgr, xenl, ++ cols#80, it#8, lines#25, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ cub1=^H, cud1=^C, cuf1=^B, ++ cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W, ++ dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I, ++ il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m, ++ is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H, ++ kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED, ++ rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=, ++ rmir=^], rmkx=\E>, rmso=^U, rmul=^U, ++ rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m, ++ smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T, ++rbcomm-nam|IBM PC with RBcomm without autowrap, ++ am@, ++ bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, ++ is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H, ++ kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm, ++rbcomm-w|IBM PC with RBcomm in 132 column mode, + cols#132, +- cup=\E[%i%p1%02d;%p2%03dH, use=cs10, ++ bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, ++ is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H, ++ kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm, + +-# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr) +-dm1520|dm1521|datamedia 1520, +- OTbs, am, xenl, +- cols#80, it#8, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_, +- khome=^Y, +-# dm2500: this terminal has both <ich> and <smir>. Applications using +-# termcap/terminfo directly (rather than through ncurses) might be confused. +-dm2500|datamedia2500|datamedia 2500, +- OTbs, OTnc, +- cols#80, lines#24, +- bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\, +- cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z, +- dch1=\020\010\030\035$<10*>, +- dl1=\020\032\030\035$<10*>, el=^W, home=^B, +- ich1=\020\034\030\035$<10*>, +- il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377, +- rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^], +- smdc=^P, smir=^P, smso=^N, +-# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82) +-# also, has a meta-key. +-# From: <goldberger@su-csli.arpa> +-# (dmchat: ":MT:" changed to ":km:" -- esr) +-dmchat|dmchat version of datamedia 2500, +- km, +- dl1=\020\032\030\035$<2/>, +- il1=\020\n\030\035\030\035$<1*/>, use=dm2500, +-# (dm3025: ":MT:" changed to ":km:" -- esr) +-dm3025|datamedia 3025a, +- OTbs, km, +- cols#80, it#8, lines#24, +- bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, +- dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK, +- home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>, +- is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP, +- smir=\EP, smso=\EO1, +-dm3045|datamedia 3045a, +- OTbs, am, eo, km@, ul, xenl, +- dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA, +- kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, +- kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r, +- khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@, +- use=dm3025, +-# Datamedia DT80 soft switches: +-# 1 0=Jump 1=Smooth +-# Autorepeat 0=off 1=on +-# Screen 0=Dark 1=light +-# Cursor 0=u/l 1=block ++######## LCD DISPLAYS + # +-# 2 Margin Bell 0=off 1=on +-# Keyclick 0=off 1=on +-# Ansi/VT52 0=VT52 1=Ansi +-# Xon/Xoff 0=Off 1=On ++ ++#### Matrix Orbital ++# from: Eric Z. Ayers (eric@ale.org) + # +-# 3 Shift3 0=Hash 1=UK Pound +-# Wrap 0=Off 1=On +-# Newline 0=Off 1=On +-# Interlace 0=Off 1=On ++# Matrix Orbital 20x4 LCD display ++# Command Character is 0xFE (decimal 254, octal 376) + # +-# 4 Parity 0=Odd 1=Even +-# Parity 0=Off 1=On +-# Bits/Char 0=7 1=8 +-# Power 0=60Hz 1=50Hz ++# On this device, cursor addressability isn't possible. The LCD expects: ++# 0xfe G <col> <row> ++# for cup: %p1 == row and %p2 is column + # +-# 5 Line Interface 0=EIA 1=Loop +-# Aux Interface 0=EIA 1=Loop +-# Local Copy 0=Off 1=On +-# Spare ++# This line: ++# cup=\376G%p2%c%p1%c ++# LOOKS like it will work, but sometimes only one of the two numbers is sent. ++# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'. + # +-# 6 Aux Parity 0=Odd 1=Even +-# Aux Parity 0=Off 1=On +-# Aux Bits/Char 0=7 1=8 +-# CRT Saver 0=Off 1=On +-# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding. +-dm80|dmdt80|dt80|datamedia dt80/1, +- clear=\E[2J\E[H, cud1=^J, cuf1=\E[C, +- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, +- home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM, +- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, +- use=vt100, +-# except in 132 column mode, where it needs a little padding. +-# This is still less padding than the vt100, and you can always turn on +-# the ^S/^Q handshaking, so you can use vt100 flavors for things like +-# reverse video. +-dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode, +- cols#132, +- clear=\E[H\E[2J$<50/>, cud1=^J, +- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>, +- ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80, +-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +-dt80-sas|Datamedia DT803/DTX for SAS usage, +- am, bw, +- cols#80, lines#24, +- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~, +- bel=^G, clear=^L, cr=^M, +- csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2, +- cub1=^H, cud1=\EB, cuf1=^\, +- cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K, +- el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB, +- is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J, +- kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N, +- rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF, +- smso=\E$2\004, tbc=\E'0, +- +-# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL +-# These aren't end-all Excel termcaps; but do insert/delete char/line +-# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman) +-# The naming convention has been bent somewhat, with the use of E? (where +-# E is for 'Excel') as # a name. This was done to distinguish the entries +-# from the other Datamedias in use here, and yet to associate a model of +-# the Excel terminals with the regular datamedia terminals that share +-# major characteristics. +-excel62|excel64|datamedia Excel 62, +- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv, +- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h, +- use=dt80, +-excel62-w|excel64-w|datamedia Excel 62 in 132 char mode, +- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv, +- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h, +- use=dt80w, +-excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode, +- dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J, +- kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, +- smir=\E[4h, use=dt80, +- +-#### Falco ++# Alas, there is no cursor upline capability on this display. + # +-# Falco Data Products +-# 440 Potrero Avenue +-# Sunnyvale, CA 940864-196 +-# Vox: (800)-325-2648 +-# Fax: (408)-745-7860 +-# Net: techsup@charm.sys.falco.com ++# These entries add some 'sanity stuff' to the clear function. That is, it ++# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping, ++# and turns off the cursor blinking and stuff like that. + # +-# Current Falco models as of 1995 are generally ANSI-compatible and support +-# emulations of DEC VT-series, Wyse, and Televideo types. ++# NOTE: calling 'beep' turns on the backlight (bell) ++# NOTE: calling 'flash' turns it on and back off (visual bell) + # ++MtxOrb|Generic Matrix Orbital LCD display, ++ bel=\376B^A, clear=\376X\376C\376R\376K\376T, ++ cnorm=\376K\376T, cub1=\376L, cuf1=\376M, ++ flash=\376B\001$<200>\376F, home=\376H, ++MtxOrb204|20x4 Matrix Orbital LCD display, ++ cols#20, lines#4, use=MtxOrb, ++MtxOrb162|16x2 Matrix Orbital LCD display, ++ cols#16, lines#2, use=MtxOrb, ++# The end + +-# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info +-# This terminal was released around 1983 and was discontinued long ago. +-# The standout and underline highlights are the same. +-falco|ts1|ts-1|falco ts-1, +- OTbs, am, +- cols#80, it#8, lines#24, +- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE, +- ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, +- kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, +- smir=\Eq, smso=\Eg1, smul=\Eg1, +-falco-p|ts1p|ts-1p|falco ts-1 with paging option, +- OTbs, am, da, db, mir, msgr, ul, ++######## OLDER TERMINAL TYPES ++# ++# This section is devoted to older commercial terminal brands that are now ++# discontinued, but known to be still in use or represented by emulations. ++# ++ ++#### AT&T (att, tty) ++# ++# This section also includes Teletype-branded VDTs. ++# ++# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now ++# Boundless Technologies); for details, see the header comment on the ADDS ++# section. ++# ++# These are AT&T's official terminfo entries. All-caps aliases have been ++# removed. ++# ++att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode, ++ am, eo, mir, msgr, xon, + cols#80, it#8, lines#24, +- bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A, +- dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I, +- il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er, +- rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq, +- smso=\Eg4, smul=\Eg1, +-# (ts100: I added <rmam>/<smam> based on the init string -- esr) +-ts100|ts100-sp|falco ts100-sp, +- am, mir, msgr, xenl, xon, ++ bel=^G, clear=\E[H\E[J, cr=^M, 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, kbs=^H, kcbt=\E[Z, kclr=\E[J, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ++ kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r, ++ kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r, ++ kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r, ++ kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H, ++ kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ++ rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h, ++ smso=\E[7m, ++att2350|AT&T 2350 Video Information Terminal 80 column mode, ++ mc0@, mc4@, mc5@, use=att2300, ++ ++# Must setup RETURN KEY - CR, REC'VD LF - INDEX. ++# Seems upward compatible with vt100, plus ins/del line/char. ++# On sgr, the protection parameter is ignored. ++# No check is made to make sure that only 3 parameters are output. ++# standout= reverse + half-intensity = 3 | 5. ++# bold= reverse + underline = 2 | 3. ++# note that half-bright blinking doesn't look different from normal blinking. ++# NOTE:you must program the function keys first, label second! ++# (att4410: a BSD entry has been seen with the following capabilities: ++# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>, ++# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr) ++att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1, ++ am, hs, mir, msgr, xon, ++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, ++ acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m, ++ dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I, ++ ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0, ++ is3=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW, ++ kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, ++ kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ++ ll=\E[24H, nel=^M^J, ++ pfx=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s, ++ pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM, ++ rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, ++ sc=\E7, ++ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m, ++ tsl=\E7\E[25;%p1%{1}%+%dH, ++ ++att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1, ++ cols#132, wsl#132, ++ is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1, ++ ++att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2, ++ OTbs, ++ pfx=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s, ++ use=att5410v1, ++ ++att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode, ++ cols#132, wsl#132, ++ is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410, ++ ++# 5410 in terms of a vt100 ++# (v5410: added <rmam>/<smam> based on init string -- esr) ++v5410|att5410 in terms of a vt100, ++ am, mir, msgr, xon, + cols#80, it#8, lines#24, vt#3, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, + clear=\E[H\E[J$<50>, 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$<2>, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, +- cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>, +- el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, +- ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, +- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ cub1=^H, cud1=^J, cuf1=\E[C$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P, ++ dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, ++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@, ++ il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, ++ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>, ++ rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ sc=\E7, + sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, + sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, + smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, + use=vt100+fnkeys, +-ts100-ctxt|falco ts-100 saving context, +- rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100, + +-#### Florida Computer Graphics + # ++# Teletype Model 5420 -- A souped up 5410, with multiple windows, ++# even! the 5420 has three modes: scroll, window or page mode ++# this terminfo should work in scroll or window mode, but doesn't ++# take advantage of any of the differences between them. ++# ++# Has memory below (2 lines!) ++# 3 pages of memory (plus some spare) ++# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>, ++# <hpa>, <hts> would work for these, but these work in both scroll and window ++# mode... Unset insert character so insert mode works ++# <is1> sets 80 column mode, ++# <is2> escape sequence: ++# 1) turn off all fonts ++# 2) function keys off, keyboard lock off, control display off, ++# insert mode off, erasure mode off, ++# 3) full duplex, monitor mode off, send graphics off, nl on lf off ++# 4) reset origin mode ++# 5) set line wraparound ++# 6) exit erasure mode, positional attribute mode, and erasure extent mode ++# 7) clear margins ++# 8) program ENTER to transmit ^J, ++# We use \212 to program the ^J because a bare ^J will get translated by ++# UNIX into a CR/LF. The enter key is needed for AT&T uOMS. ++# 1 2 3 4 5 6 7 8 ++# <is3> set screen color to black, ++# No representation in terminfo for the delete word key: kdw1=\Ed ++# Key capabilities assume the power-up send sequence... ++# This <rmcup> is not strictly necessary, but it helps maximize ++# memory usefulness: <rmcup=\Ez>, ++# Alternate sgr0: <sgr0=\E[m\EW^O>, ++# Alternate sgr: <sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>, ++# smkx programs the SYS PF keys to send a set sequence. ++# It also sets up labels f1, f2, ..., f8, and sends edit keys. ++# This string causes them to send the strings <kf1>-<kf8> ++# when pressed in SYS PF mode. ++# (att4415: I added <rmam>/<smam> based on the init string -- esr) ++att4415|tty5420|att5420|AT&T 4415/5420 80 cols, ++ OTbs, db, mir, xon, ++ lh#2, lm#78, lw#8, nlab#8, wsl#55, ++ cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD, ++ cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx, ++ cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP, ++ dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD, ++ flash=\E[?5h$<200>\E[?5l, home=\E[x, ++ hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@, ++ il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>, ++ is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212, ++ is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M, ++ kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd, ++ kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, ++ kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U, ++ kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5, ++ lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i, ++ mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt, ++ pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, ++ rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l, ++ rmkx=\E[19;0j\E[21;1j\212, rmln=\E|, ++ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g, ++ tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd, ++ use=att4410, + +-# Florida Computer Graphics Beacon System, using terminal emulator program +-# "host.com", as provided by FCG. This description is for an early release +-# of the "host" program. Known bug: <ed> clears the whole screen, so it's +-# commented out. ++att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols, ++ cols#132, lm#54, wsl#97, ++ is1=\E[?3h$<100>, use=att4415, + +-# From: David Bryant <cbosg!djb> 1/7/83 +-beacon|FCG Beacon System, +- am, da, db, +- cols#80, lines#32, +- bel=\ESTART\r\E37\r\EEND\r$<1>, +- blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M, +- cub1=^H, cud1=^J, cuf1=\EV, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU, +- dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE, +- ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=, +- rmso=\ESTART\r\E70\,0\r\EEND\r$<20>, +- rmul=\ESTART\r\E60\,0\r\EEND\r, +- sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>, +- smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>, +- smso=\ESTART\r\E70\,6\r\EEND\r$<20>, +- smul=\ESTART\r\E60\,1\r\EEND\r, ++att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv, ++ flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415, + +-#### Fluke +-# ++att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv, ++ cols#132, lm#54, wsl#97, ++ flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h, ++ use=att4415, + +-# The f1720a differences from ANSI: no auto margin, destructive +-# tabs, # of lines, funny highlighting and underlining +-f1720|f1720a|fluke 1720A, +- xt, +- cols#80, lines#16, xmc#1, +- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, +- el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^], +- kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m, +- smso=\E[7m, smul=\E[4m, ++# Note that this mode permits programming USER PF KEYS and labels ++# However, when you program user pf labels you have to reselect ++# user pf keys to make them appear! ++att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels, ++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, ++ pfx=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s, ++ pln=\E[%p1%d;0;0;1q%p2%:-16.16s, + +-#### Liberty Electronics (Freedom) +-# +-# Liberty Electronics +-# 48089 Fremont Blvd +-# Fremont CA 94538 +-# Vox: (510)-623-6000 +-# Fax: (510)-623-7021 ++att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels, ++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, ++ use=att4415, + +-# From: <faletti@berkeley.edu> +-# (f100: added empty <acsc> to suppress a tic warning; +-# made this relative to adm+sgr -- note that <invis> isn't +-# known to work for f100 but does on the f110. --esr) +-f100|freedom|freedom100|freedom model 100, +- OTbs, am, bw, hs, mir, msgr, xon, +- cols#80, lines#24, +- acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET, +- flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c, +- ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>, +- is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, +- kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, +- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er, +- smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef, +- vpa=\E[%p1%{32}%+%c, use=adm+sgr, +-f100-rv|freedom-rv|freedom 100 in reverse video, +- flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100, +-# The f110 and f200 have problems with vi(1). They use the ^V +-# code for the down cursor key. When kcud1 is defined in terminfo +-# as ^V, the Control Character Quoting capability (^V in insert mode) +-# is lost! It cannot be remapped in vi because it is necessary to enter +-# a ^V to to quote the ^V that is being remapped!!! +-# +-# f110/f200 users will have to decide whether +-# to lose the down cursor key or the quoting capability. We will opt +-# initially for leaving the quoting capability out, since use of VI +-# is not generally applicable to most interactive applications +-# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr) +-f110|freedom110|Liberty Freedom 110, +- bw@, eslok, +- it#8, wsl#80, +- blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V, +- dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE, +- ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, +- kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, +- ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq, +- smso=\EG<, tsl=\Ef, use=f100, +-f110-14|Liberty Freedom 110 14inch, +- dch1@, use=f110, +-f110-w|Liberty Freedom 110 - 132 cols, +- cols#132, use=f110, +-f110-14w|Liberty Freedom 110 14in/132 cols, ++att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels, ++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, ++ use=att4415-rv, ++ ++att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels, ++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, ++ use=att4415-w, ++ ++att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels, ++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl, ++ use=att4415-w-rv, ++ ++att5420_2|AT&T 5420 model 2 80 cols, ++ am, db, hs, mir, msgr, xon, ++ cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j, ++ cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A, ++ cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, ++ el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, ++ home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ indn=\E[%p1%dE, invis=\E[8m, ++ is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r, ++ kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, ++ kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe, ++ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H, ++ kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U, ++ kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5, ++ lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i, ++ mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J, ++ pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8, ++ rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j, ++ rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, ++ sc=\E7, ++ sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~, ++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd, ++att5420_2-w|AT&T 5420 model 2 in 132 column mode, + cols#132, +- dch1@, use=f110, +-# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) +-f200|freedom200|Liberty Freedom 200, +- OTbs, am, eslok, hs, mir, msgr, xon, +- cols#80, it#8, lines#24, wsl#80, +- acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0, +- clear=^Z, cnorm=\E.1, cr=^M, +- csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, +- flash=\Eo$<200/>\En, fsl=^M, home=^^, +- hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H, +- kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, +- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, +- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, +- ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<, +- tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr, +-f200-w|Liberty Freedom 200 - 132 cols, +- cols#132, use=f200, +-# The f200 has the ability to reprogram the down cursor key. The key is +-# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM, +-# so powering the terminal off and on will not cause the change to be lost. +-f200vi|Liberty Freedom 200 for vi, +- flash=\Eb$<200/>\Ed, kcud1=^J, use=f200, +-f200vi-w|Liberty Freedom 200 - 132 cols for vi, +- cols#132, use=f200vi, ++ is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r, ++ use=att5420_2, + +-#### GraphOn (go) +-# +-# Graphon Corporation +-# 544 Division Street +-# Campbell, CA 95008 +-# Vox: (408)-370-4080 +-# Fax: (408)-370-5047 +-# Net: troy@graphon.com (Troy Morrison) +-# +-# +-# The go140 and go225 have been discontinued. GraphOn now makes X terminals, +-# including one odd hybrid that starts out life on power-up as a character +-# terminal, than can be switched to X graphics mode (driven over the serial +-# line) by an escape sequence. No info on this beast yet. +-# (go140: I added <rmam>/<smam> based on the init string -- esr) +-go140|graphon go-140, +- OTbs, +- cols#80, it#8, lines#24, +- clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, +- ed=\E[J$<10/>, el=\E[K, ht=^I, +- if=/usr/share/tabset/vt100, il1=\E[L, +- is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, +- rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +-go140w|graphon go-140 in 132 column mode, +- am, ++att4418|att5418|AT&T 5418 80 cols, ++ am, xon, ++ cols#80, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD, ++ cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, 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[1P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, ++ ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J, ++ is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@, ++ kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h, ++ kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I, ++ kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E, ++ kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j, ++ kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8, ++ rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7, ++ sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m, ++att4418-w|att5418-w|AT&T 5418 132 cols, + cols#132, +- is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q, +- use=go140, +-# Hacked up vt200 termcap to handle GO-225/VT220 +-# From: <edm@nwnexus.WA.COM> +-# (go225: I added <rmam>/<smam> based on the init string -- esr) +-go225|go-225|Graphon 225, +- OTbs, am, mir, xenl, +- cols#80, it#8, lines#25, vt#3, +- blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, +- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, 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, il1=\E[L, ind=\ED, +- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m, +- rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l, +- rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>, +- rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w, +- sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r, +- smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, ++ is1=\E[?3h, use=att5418, + +-#### Harris (Beehive) ++att4420|tty4420|teletype 4420, ++ OTbs, da, db, eo, msgr, ul, xon, ++ cols#80, lines#24, lm#72, ++ bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP, ++ dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s, ++ kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH, ++ kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET, ++ lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~, ++ rmul=\EZ, smdc@, smso=\E}, smul=\E\\, ++ ++# The following is a terminfo entry for the Teletype 4424 ++# asynchronous keyboard-display terminal. It supports ++# the vi editor. The terminal must be set up as follows, + # +-# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine. +-# Their terminal group is ancient history now (1995) though the parent +-# company is still in business. ++# HIGHLIGHT DEFINITION 3-TONE ++# DISPLAY FUNCTION GROUP III + # +- +-# Beehive documentation is undated and marked Preliminary and has no figures +-# so we must have early Superbee2 (Model 600, according to phone conversation +-# with mfr.). It has proved reliable except for some missing padding +-# (notably after \EK and <nl> at bottom of screen). ++# The second entry below provides limited (a la adm3a) ++# operation under GROUP II. + # +-# The key idea is that AEP mode is poison for <cup> & that US's in +-# the local memory should be avoided like the plague. That means +-# that the 2048 character local buffer is used as 25 lines of 80 +-# characters, period. No scrolling local memory, folks. It also +-# appears that we cannot use naked INS LINE feature since it uses +-# US. The sbi fakes <il1> with an 80-space insert that may be too +-# slow at low speeds; also spaces get converted to \040 which is +-# too long for some programs (not vi). DEL LINE is ok but slow. +-# +-# The <nl> string is designed for last line of screen ONLY; cup to +-# 25th line corrects the motion inherent in scrolling to Page 1. +-# +-# There is one understood bug. It is that the screen appears to +-# pop to a new (blank) page after a <nel>, or leave a half-line +-# ellipsis to a quad that is the extra 48 memory locations. The +-# data received is dumped into memory but not displayed. Not to +-# worry if <cup> is being used; the lines not displayed will be, +-# whenever the cursor is moved up there. Since <cup> is addressed +-# relative to MEMORY of window, nothing is lost; but beware of +-# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended, +-# therefore, is setenv MORE -c . +-# +-# WARNING: Not all features tested. +-# +-# Timings are assembled from 3 sources. Some timings may reflect +-# SB2/Model 300 that were used if more conservative. +-# Tested on a Model 600 at 1200 and 9600 bd. +-# +-# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly +-# placed on the keyboard and useless because of AEP, is made +-# into a backspace key. In use ESC must be pressed twice (to send) +-# and sending ^C must be prefixed by ESC to avoid that weird +-# transmit mode associated with ENTER key. +-# +-# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across +-# the screen, then it has dropped into ENTER mode; hit +-# RESET--ONLINE--!tset. +-# +-# As delivered this machine has a FATAL feature that will throw +-# it into that strange transmit state (SPOW) if the space bar is +-# hit after a CR is received, but before receiving a LF (or a +-# few others). +-# +-# The circuits MUST be modified to eliminate the SPOW latch. +-# This is done by strapping on chip A46 of the I/O board; cut +-# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that +-# chip. This mod has been checked out on a Mod 600 of Superbee II. +-# With this modification absurdly high timings on cr are +-# unnecessary. +-# +-# NOTE WELL that the rear panel switch should be set to CR/LF, +-# not AEP! ++# This must be used with DISPLAY FUNCTION GROUP I or III ++# and HIGHLIGHT DEFINITION 3-TONE ++# The terminal has either bold or blink, depending on options + # +-sb1|beehive superbee, +- OTbs, am, bw, da, db, mir, ul, xsb, +- cols#80, lines#25, xmc#1, +- bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r, +- cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d, +- cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, +- el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1, +- il1=\EN\EL$<3>\EQ \EP$<3> \EO\ER\EA$<3>, +- ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK, +- kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, +- kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO, +- krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER, +- rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO, +- smso=\E_1, smul=\E_0, tbc=\E3, +-sbi|superbee|beehive superbee at Indiana U., +- xsb, +- cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA, +- use=sb1, +-# Alternate (older) description of Superbee - f1=escape, f2=^C. +-# Note: there are at least 3 kinds of superbees in the world. The sb1 +-# holds onto escapes and botches ^C's. The sb2 is the best of the 3. +-# The sb3 puts garbage on the bottom of the screen when you scroll with +-# the switch in the back set to CRLF instead of AEP. This description +-# is tested on the sb2 but should work on all with either switch setting. +-# The f1/f2 business is for the sb1 and the <xsb> can be taken out for +-# the other two if you want to try to hit that tiny escape key. +-# This description is tricky: being able to use cup depends on there being +-# 2048 bytes of memory and the hairy <nl> string. +-superbee-xsb|beehive super bee, +- am, da, db, xsb, +- cols#80, it#8, lines#25, +- clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J, +- cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>, +- dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>, +- home=\EH, ht=^I, hts=\E1, +- ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq, +- kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, +- khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3, +-# This loses on lines > 80 chars long, use at your own risk +-superbeeic|super bee with insert char, +- ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb, +-sb2|sb3|fixed superbee, +- xsb@, use=superbee, ++# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr) ++att4424|tty4424|teletype 4424, ++ OTbs, am, xon, ++ cols#80, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA, ++ dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM, ++ ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h, ++ kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~, ++ rmul=\EZ, ++ sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m, ++ sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\, ++ tbc=\EF, + +-#### Beehive Medical Electronics +-# +-# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999): +-# Regarding your question though; Beehive terminals weren't made by Harris. +-# They were made by Beehive Medical Electronics in Utah. They went out of +-# business in the early '80s. ++att4424-1|tty4424-1|teletype 4424 in display function group I, ++ kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@, ++ use=att4424, ++ ++# This entry is not one of AT&T's official ones, it was translated from the ++# 4.4BSD termcap file. The highlight strings are different from att4424. ++# I have no idea why this is -- older firmware version, maybe? ++# The following two lines are the comment originally attached to the entry: ++# This entry appears to avoid the top line - I have no idea why. ++# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp ++att4424m|tty4424m|teletype 4424M, ++ am, da, db, mir, ++ cols#80, it#8, lines#23, ++ bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP, ++ dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>, ++ is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, ++ kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++ ++# The Teletype 5425 is really version 2 of the Teletype 5420. It ++# is quite similar, except for some minor differences. No page ++# mode, for example, so all of the <cup> sequences used above have ++# to change back to what's being used for the 5410. Many of the ++# option settings have changed their numbering as well. + # +-# (OK, then, I don't know why a couple of these say "harris beehive".) ++# This has been tested on a preliminary model. + # ++# (att5425: added <rmam>/<smam> based on the init string -- esr) ++att5425|tty5425|att4425|AT&T 4425/5425, ++ am, da, db, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, ++ clear=\E[H\E[J, cnorm=\E[12;0j, 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, ++ cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J, ++ el=\E[K, el1=\E[1K, enacs=\E(B\E)0, ++ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ++ hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE, ++ invis=\E[8m, is1=\E<\E[?3l$<100>, ++ is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212, ++ is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ++ kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, ++ kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, ++ kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T, ++ kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i, ++ nel=^M^J, ++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8, ++ rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l, ++ rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|, ++ rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7, ++ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH, ++ vpa=\E[%p1%{1}%+%dd, + +-# Reports are that most of these Beehive entries (except superbee) have not +-# been tested and do not work right. <rmso> is a trouble spot. Be warned. +- +-# (bee: <ich1> was empty, which is obviously bogus -- esr) +-beehive|bee|harris beehive, +- OTbs, am, mir, +- cols#80, lines#24, +- cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC, +- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP, +- dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>, +- kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL, +- krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@, +- smir=\EQ, smso=\EdP, smul=\Ed`, +-# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs. +-# good grief - does this entry make :sg:/:ug: when it doesn't have to? +-# look at those spaces in <rmso>/<smso>. Seems strange to me... +-# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you +-# really care, cook up one using ^F -- esr) +-beehive3|bh3m|beehiveIIIm|harris beehive 3m, +- OTbs, am, +- cols#80, it#8, lines#20, +- bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K, +- dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F, +- il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s, +-beehive4|bh4|beehive 4, +- am, +- cols#80, lines#24, +- bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC, +- cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J, +-# There was an early Australian kit-built computer called a "Microbee". +-# It's not clear whether this is for one of those or for a relative +-# of the Beehive. +-microb|microbee|micro bee series, +- OTbs, am, +- cols#80, it#8, lines#24, +- bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, +- el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, +- kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, +- kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@, +- rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`, ++att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels, ++ smkx=\E[21;1j\E[25;4j\Eent, use=att4425, + +-# 8675, 8686, and bee from Cyrus Rahman +-# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr) +-ha8675|harris 8675, +- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F, +- kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei, +- kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H, +- kf8=\177, kf9=\Ee, use=bee, +-# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation +-# in :is: -- esr) +-ha8686|harris 8686, +- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#, +- kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003, +- kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003, +- kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003, +- kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(, +- use=bee, ++att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode, ++ cols#132, lm#54, wsl#97, ++ is1=\E[?3h$<100>, use=tty5425, + +-#### Hazeltine +-# +-# Hazeltine appears to be out of the terminal business as of 1995. These +-# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with +-# Harris. They have a hazeltine.com domain (but no web page there ) and can +-# be reached at: +-# +-# Hazeltine +-# 450 East Pulaski Road +-# Greenlawn, New York 11740 +-# +-# As late as 1993, manuals for the terminal product line could still be +-# purchased from: +-# +-# TRW Customer Service Division +-# 15 Law Drive +-# P.O. Box 2076 +-# Fairfield, NJ 07007-2078 +-# +-# They're now (1998) a subsidiary of General Electric, operating under the +-# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page +-# at <http://www.gec.com/cpd/1ncpd.htm#1.55>. +-# ++# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. ++# I also added <rmam>/<smam> -- esr) ++att4426|tty4426|teletype 4426S, ++ am, da, db, xon, ++ cols#80, lines#24, lm#48, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V, ++ cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, ++ 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=\EP, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H, ++ hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^, ++ il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS, ++ is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO, ++ kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, ++ kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H, ++ nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT, ++ rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, ++ rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0, ++ smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g, ++ vpa=\E[%p1%dd, + +-# Since <cuf1> is blank, when you want to erase something you +-# are out of luck. You will have to do ^L's a lot to +-# redraw the screen. h1000 is untested. It doesn't work in +-# vi - this terminal is too dumb for even vi. (The code is +-# there but it isn't debugged for this case.) +-hz1000|hazeltine 1000, +- OTbs, +- cols#80, lines#12, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K, +- ind=^J, +-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981 +-hz1420|hazeltine 1420, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P, +- cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S, +- ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y, +- smso=\E^_, +-# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents +-# freakout with out-of-range args and tn3270. No hz since it needs to +-# receive tildes. +-hz1500|hazeltine 1500, +- OTbs, am, hz, +- cols#80, lines#24, +- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P, +- cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c, +- cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R, +- il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P, +- kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_, +-# h1510 assumed to be in sane escape mode. Else use h1500. +-# (h1510: early versions of this entry apparently had "<rmso=\E^_>, +-# <smso=\E^Y>, but these caps were commented out in 8.3; also, +-# removed incorrect and overridden ":do=^J:" -- esr) +-hz1510|hazeltine 1510, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P, +- cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X, +- el=\E^O, il1=\E^Z, ind=^J, +-# Hazeltine 1520 +-# The following switch settings are assumed for normal operation: +-# FULL CR U/L_CASE ESCAPE +-# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON +-# Other switches may be set for operator convenience or communication +-# requirements. +-hz1520|Hazeltine 1520, +- OTbs, am, bw, msgr, +- cols#80, lines#24, +- bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J, +- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, +- ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H, +- kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, +- kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z, +- rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_, +-# This version works with the escape switch off +-# (h1520: removed incorrect and overridden ":do=^J:" -- esr) +-hz1520-noesc|hazeltine 1520, +- am, hz, +- cols#80, lines#24, +- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P, +- cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O, +- home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_, +-# Note: the h1552 appears to be the first Hazeltine terminal which +-# is not braindamaged. It has tildes and backprimes and everything! +-# Be sure the auto lf/cr switch is set to cr. +-hz1552|hazeltine 1552, +- OTbs, +- cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue, +- lf2=red, lf3=green, use=vt52, +-hz1552-rv|hazeltine 1552 reverse video, +- cud1=^J, rmso=\ET, smso=\ES, use=hz1552, +-# Note: h2000 won't work well because of a clash between upper case and ~'s. +-hz2000|hazeltine 2000, +- OTbs, OTnc, am, +- cols#74, lines#27, +- bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J, +- cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R, +- il1=~\032$<6>, ind=^J, pad=\177, +-# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote: +-# I tested this termcap entry for the Hazeltine Esprit with vi. It seems +-# to work ok. There is one problem though if one types a lot of garbage +-# characters very fast vi seems not able to keep up and hangs while trying +-# to insert. That's in insert mode while trying to insert in the middle of +-# a line. It might be because the Esprit doesn't have insert char and delete +-# char as a built in function. Vi has to delete to end of line and then +-# redraw the rest of the line. +-esprit|Hazeltine Esprit I, +- OTbs, am, bw, +- cols#80, lines#24, +- bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, +- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, +- ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H, +- kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J, +- kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J, +- kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R, +- lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9, +- rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_, +-esprit-am|hazeltine esprit auto-margin, +- am, use=esprit, +-# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL +-# Vi it seems always wants to send a control J for "do" and it turned out +-# that the terminal would work somewhat if the auto LF/CR was turned off. +-# (hmod1: removed :dn=~^K: -- esr) +-hmod1|Hazeltine Modular 1, +- OTbs, am, hz, +- cols#80, lines#24, +- bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P, +- cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z, +- ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R, +- rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_, ++# Terminfo entry for the AT&T 510 A Personal Terminal ++# Function keys 9 - 16 are available only after the ++# screen labeled (soft keys/action blocks) are labeled. Function key ++# 9 corresponds to the leftmost touch target on the screen, ++# function key 16 corresponds to the rightmost. + # +-# Hazeltine Executive 80 Model 30 (1554?) +-# from Will Martin <control@ALMSA-1.ARPA> via BRL +-# Like VT100, except for different "am" behavior. +-hazel|exec80|h80|he80|Hazeltine Executive 80, +- OTbs, OTpt, am, +- cols#80, it#8, lines#24, vt#3, +- OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>, +- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub1=^H, cud1=^J, cuf1=\E[C$<2/>, +- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>, +- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I, +- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB, +- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, +- kf4=\EOS, rc=\E8, rev=\E[7m$<2/>, +- rf=/usr/share/tabset/vt100, ri=\EM$<5/>, +- rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>, +- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>, +- smul=\E[4m$<2/>, ++# This entry is based on one done by Ernie Rice at Summit, NJ and ++# changed by Anne Gallup, Skokie, IL, ttrdc!anne ++att510a|bct510a|AT&T 510A Personal Terminal, ++ am, mir, msgr, xenl, xon, ++ cols#80, lh#2, lines#24, lw#7, nlab#8, ++ acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, ++ civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, ++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, ++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, ++ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, ++ el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I, ++ hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l, ++ is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, ++ kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, ++ kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, ++ kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ++ mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE, ++ pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM, ++ rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7, ++ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, + +-#### IBM ++# Terminfo entry for the AT&T 510 D Personal Terminal ++# Function keys 9 through 16 are accessed by bringing up the ++# system blocks. ++# Function key 9 corresponds to the leftmost touch target on the screen, ++# function key 16 corresponds to the rightmost. + # ++# There are problems with soft key labeling. These are due to ++# strangenesses in the native terminal that are impossible to ++# describe in a terminfo. ++att510d|bct510d|AT&T 510D Personal Terminal, ++ am, da, db, mir, msgr, xenl, xon, ++ cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8, ++ acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, ++ clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD, ++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, ++ cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P, ++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, ++ el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ++ hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, ++ invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212, ++ kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd, ++ kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi, ++ kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf, ++ kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2, ++ mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE, ++ pln=\E[%p1%dp%p2%:-16s, rc=\E8, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, ++ rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|, ++ rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|, ++ rs2=\E[5;0|, sc=\E7, ++ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h, ++ smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m, ++ smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd, + +-ibm327x|line mode IBM 3270 style, +- gn, +- clear=^M^J, el=^M, home=^M, +- +-ibm3101|i3101|IBM 3101-10, +- OTbs, am, xon, +- cols#80, lines#24, +- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, +- el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH, +-ibm3151|IBM 3151 display, +- is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B, +- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;, +- sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162, +-# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 +-# removed kend, knp, kpp -TD +-ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display, +- OTbs, am, mir, msgr, +- cols#80, it#8, lines#24, +- acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370, +- bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED, +- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J, +- invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ, +- kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r, +- kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r, +- kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r, +- kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r, +- kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r, +- kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r, +- kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN, +- ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A, +- rmso=\E4@, rmul=\E4@, +- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;, +- sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B, ++# (att500: I merged this with the att513 entry, att500 just used att513 -- esr) ++att500|att513|AT&T 513 using page mode, ++ am, chts, mir, msgr, xenl, xon, ++ cols#80, lh#2, lines#24, lw#8, nlab#8, ++ acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z, ++ clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M, ++ csr=%i\E[%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, ++ cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, ++ hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ indn=\E[%p1%dE, invis=\E[8m, ++ is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l, ++ kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON, ++ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK, ++ kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK, ++ kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ, ++ kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY, ++ kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw, ++ kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, ++ kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent, ++ kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, ++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm, ++ khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi, ++ kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, ++ kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, ++ kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB, ++ ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2, ++ mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i, ++ nel=\EE, ++ pfkey=\E[%p1%d;%p2%l%d;3;0p F%p1%d %p2%s, ++ pfloc=\E[%p1%d;%p2%l%d;2;0p F%p1%d %p2%s, ++ pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s, ++ pln=\E[%p1%dp%p2%:-16s, rc=\E8, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, ++ rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l, ++ rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m, ++ rmul=\E[m, ++ rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l, ++ rs2=\E[5;0|, sc=\E7, ++ sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smir=\E[4h, ++ smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m, ++ smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd, + +-ibm3161-C|IBM 3161-C NLS terminal using cartridge, +- rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161, +-ibm3162|IBM 3162 display, +- blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a, +- rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a, +- use=ibm3161-C, ++# 01-07-88 ++# printer must be set to EMUL ANSI to accept ESC codes ++# <cuu1> stops at top margin ++# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font ++# and alt font ascii,wrap on,tabs cleared ++# <is2> disables newline on LF,Emphasized off ++# The <u0> capability sets form length ++att5310|att5320|AT&T Model 53210 or 5320 matrix printer, ++ xhpa, xvpa, ++ bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10, ++ orhi#100, orl#12, orvi#72, ++ cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;, ++ cr=^M, ++ csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;, ++ cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM, ++ ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r, ++ lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;, ++ rshm=\E[m, ++ scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;, ++ smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds, ++ smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m, ++ u0=\E[%p1%dt, vpa=\E[%p1%dd, + +-# This really should not use setab/setaf, but it is clear that the +-# original terminfo does not toggle red/blue colors as in setb/setf. +-ibm3164|i3164|IBM 3164, +- msgr, +- colors#8, pairs#64, +- op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A, +- setab=\E4 %p1%{64}%+%c, +- setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@, +- smcup=\E!9/N\E>B, use=ibm3161, ++# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL ++# The following SET-UP modes are assumed for normal operation: ++# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL ++# Other SET-UP modes may be set for operator convenience or communication ++# requirements. This termcap description is for the Resident Terminal Mode. ++# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! ++# The BRL entry also said: UNSAFE :ll=\E[70H: ++att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs, ++ am, xon, ++ cols#88, it#8, lines#70, vt#3, ++ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, ++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ++ home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ++ kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT, ++ rs1=\Ec, sc=\E7, + +-ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display, +- am, bw, msgr, xon, +- cols#80, it#8, lines#25, +- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, +- 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, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, +- hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S, +- indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z, +- kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, +- kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q, +- kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q, +- kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q, +- kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q, +- kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q, +- kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q, +- kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q, +- kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q, +- kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q, +- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q, +- kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q, +- kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q, +- krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l, +- rmso=\E[m, rmul=\E[m, rs2=\Ec, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m, +- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++# 5620 terminfo (2.0 or later ROMS with char attributes) ++# The following SET-UP modes are assumed for normal operation: ++# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR ++# Other SET-UP modes may be set for operator convenience or communication ++# requirements. This termcap description is for Resident Terminal Mode. No ++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! ++# assumptions: <ind> (scroll forward one line) is only done at screen bottom ++# Be aware that older versions of the dmd have a firmware bug that affects ++# parameter defaulting; for this terminal, the 0 in \E[0m is not optional. ++# <msgr> is from an otherwise inferior BRL for this terminal. That entry ++# also has <ll>=\E[70H commented out and marked unsafe. ++# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>. ++att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns, ++ OTbs, am, msgr, npc, xon, ++ cols#88, it#8, lines#70, ++ bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H, ++ cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, ++ indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J, ++ pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T, ++ rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7, ++ sgr0=\E[0m, smso=\E[7m, smul=\E[4m, ++att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer, ++ lines#24, use=att5620, ++att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer, ++ lines#34, use=att5620, ++# 5620 layer running the "S" system's downloaded graphics handler: ++att5620-s|tty5620-s|layer|vitty|5620 S layer, ++ OTbs, OTpt, am, ++ cols#80, it#8, lines#72, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ++ cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED, ++ el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ++ kll=\E[70;1H, + +-ibmaed|IBM Experimental display, +- OTbs, am, eo, msgr, +- cols#80, it#8, lines#52, +- clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ, +- dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP, +- il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- rmso=\E0, sgr0=\E0, smso=\E0, +-ibm-apl|apl|IBM apl terminal simulator, +- lines#25, use=dm1520, +-# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. +-# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr) +-ibmmono|IBM workstation monochrome, +- eslok, hs, +- bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL, +- invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET, +- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY, +- khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG, +- lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew, +- sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo, +- use=ibm3101, +-ibmega|IBM Enhanced Color Display, +- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, +- nel=^M^J, use=ibmmono, +-# This color scheme is assumed in some recent IBM terminal descriptions +-# (green on black, emulated on a 16-color terminal). +-ibm+color|IBM color definitions, +- colors#8, ncv#3, pairs#64, +- op=\E[32m\E[40m, +- setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;, +- setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;, +-ibm+16color|IBM aixterm color definitions, +- colors#16, pairs#256, +- setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm, +- setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm, +- setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, +- setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, +-ibm5154|IBM 5154 Color display, +- colors#8, ncv@, pairs#64, +- bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151, +- use=ibm+color, +-ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline, +- rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;, +- use=ibmmono, +-ibmvga-c|IBM VGA display color termcap, +- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, +- nel=^M^J, use=ibmega-c, +-ibmvga|IBM VGA display, +- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, +- nel=^M^J, use=ibmega, +-# ibmapa* and ibmmono entries come from ACIS 4.3 distribution +-rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display, +- lines#32, +- dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono, +-ibm6155|IBM 6155 Black & White display, +- blink@, bold@, use=ibm5151, +-# Advanced Monochrome (6153) and Color (6154) Graphics Display: +-ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display, +- lines#31, +- dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono, +-ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display, +- lines#31, +- dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, +- use=ibmega-c, +-ibm6154|IBM 6154 Color displays, +- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m, +- sgr0=\E[0;10m, use=ibm5154, +-ibm6153|IBM 6153 Black & White display, +- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m, +- sgr0=\E[0;10m, use=ibm5151, +-ibm6153-90|IBM 6153 Black & White display, +- cols#90, lines#36, +- blink@, bold@, use=ibm5151, +-ibm6153-40|IBM 6153 Black & White display, +- cols#40, lines#12, use=ibm6153-90, +-ibm8512|ibm8513|IBM color VGA Terminal, +- am, mir, msgr, +- cols#80, it#8, lines#25, +- acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m, +- clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL, +- il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A, +- kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, +- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, +- kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m, +- rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l, +- rmir=\E[4l, rmso=\E[m, rmul=\E[m, +- rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m, +- smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb, +- smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m, +- use=ibm8503, +-hft-c|HFT with Color, +- colors#8, pairs#64, +- acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B, +- use=ibm5151, use=ibm+color, +-hft-c-old|HFT with Color PC850, +- colors#8, pairs#64, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151, +- use=ibm+color, +-hft-old|AIWS High Function Terminal, +- am, xon, +- cols#80, lines#25, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, +- cub1=^H, cud1=^J, 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, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q, +- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q, +- kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q, +- ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color, +-ibm-system1|system1|ibm system/1 computer, +- am, xt, +- cols#80, lines#24, +- bel=^G, clear=^Z, cub1=^H, cuf1=^\, +- cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K, +- ind=^J, +-# lft-pc850 : IBM Low Function Terminal Device +-# lft "supports" underline, bold, and blink in the sense that the lft code +-# sets all the right bits. HOWEVER, depending upon the adapter, these +-# attributes may or may not be supported by the device driver. +-lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device, +- am, bw, msgr, xon, +- cols#80, it#8, lines#25, +- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, +- cr=^M, 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, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K, +- home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL, +- il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, +- kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, +- kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q, +- kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, +- kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, +- kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, +- kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, +- kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, +- kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, +- kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, +- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, +- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q, +- kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q, +- kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT, +- rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, +-ibm5081|hft|IBM Megapel Color display, +- acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B, +- s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154, +-ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display, +- eslok, hs, +- lines#33, +- dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo, +- use=ibmega-c, +-ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display, +- use=hft-c, +-ibm8514|IBM 8514/a color VGA display, +- eslok, hs, +- dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft, +-ibm8514-c|IBM 8514 color display with standout and underline, +- eslok, hs, +- lines#41, +- cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J, +- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo, +- use=ibmega-c, +- +-# +-# AIX entries. IBM ships these with AIX 3.2.5. +-# -- added rc, sc based on manpage -TD +-# Note that we could use ibm+16color, but that is not how IBM defines this one. +-aixterm|IBM Aixterm Terminal Emulator, +- eslok, hs, +- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E, +- fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154, +-aixterm-m|IBM AIXterm Monochrome Terminal Emulator, +- eslok, hs, +- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E, +- fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, +- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153, +-aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator, +- eslok, hs, +- bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, +- tsl=\E[?%p1%dT, use=ibm6153, +-jaixterm|IBM Kanji Aixterm Terminal Eemulator, +- acsc@, use=aixterm, +-jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator, +- acsc@, use=aixterm-m, +- +-# This flavor is adapted from xterm, in turn from aixterm documentation -TD +-aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors, +- use=ibm+16color, use=aixterm, +- +-#### Infoton/General Terminal Corp. ++# Entries for <kf15> thru <kf28> refer to the shifted system pf keys. + # ++# Entries for <kf29> thru <kf46> refer to the alternate keypad mode ++# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER ++att605|AT&T 605 80 column 102key keyboard, ++ am, eo, xon, ++ cols#80, lines#24, lw#8, nlab#8, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, ++ cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, ++ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, ++ el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ++ il1=\E[L, ind=^J, invis=\E[8m, ++ is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017, ++ kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ++ kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq, ++ kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, ++ kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, ++ kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, ++ kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, ++ kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, ++ kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, ++ kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, ++ kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, ++ kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@, ++ kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H, ++ mc4=\E[?4i, mc5=\E[?5i, nel=\EE, ++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m, ++ rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m, ++ rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016, ++ smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m, ++ tsl=\E7\E[25;%i%p1%dx, ++att605-pc|ATT 605 in pc term mode, ++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, ++ cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A, ++ dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ++ kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N, ++ kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, ++ kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I, ++ rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g, ++ xonc=e, use=att605, ++att605-w|AT&T 605-w 132 column 102 key keyboard, ++ cols#132, wsl#132, ++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0, ++ use=att605, ++# (att610: I added <rmam>/<smam> based on the init string. I also ++# added <indn> and <rin> because the BSD file says the att615s have them, ++# and the 615 is like a 610 with a big keyboard, and most of their other ++# smart terminals support the same sequence -- esr) ++att610|AT&T 610; 80 column; 98key keyboard, ++ am, eslok, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ indn=\E[%p1%dS, invis=\E[8m, ++ is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0, ++ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H, ++ kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr, ++ kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, ++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, ++ kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i, ++ nel=\EE, ++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m, ++ ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, ++ rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx, ++att610-w|AT&T 610; 132 column; 98key keyboard, ++ cols#132, wsl#132, ++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, ++ use=att610, + +-# gt100 sounds like something DEC would come out with. Let's hope they don't. +-i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100), +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM, +- ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL, +- ind=^J, rmso=\Ea, smso=\Eb, +-i400|infoton 400, +- OTbs, am, +- cols#80, lines#25, +- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A, +- dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N, +- il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q, +-# (addrinfo: removed obsolete ":bc=^Z:" -- esr) +-addrinfo, +- am, +- cols#80, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, +- cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\, +-# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr) +-infoton, +- am, +- cols#80, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\, +- ed=^K, ind=^J, ll=^H^\, +- +-# The ICL6402 was actually the Kokusai Display System 6402. +-# The 6404 was the KDS7372 (color version of the 6402). +-# +-# ICL6404 control codes follow: +-# +-#code function +-#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-#ctrl-A set SOM position at cursor position +-#ctrl-G Bell +-#ctrl-H Backspace +-#ctrl-I Horiz tab +-#ctrl-J Linefeed +-#ctrl-K Cursor up +-#ctrl-L Cursor right +-#ctrl-M Carriage return +-#ctrl-N Disable xon/xoff to host +-#ctrl-O Enable xon/xoff to host +-#ctrl-R Enable bidirectional mode +-#ctrl-T Disable bidirectional mode +-#ctrl-V Cursor down +-#ctrl-Z Clear unprotected data to insert char +-#ctrl-^ Cursor home +-#ctrl-_ Newline ++att610-103k|AT&T 610; 80 column; 103key keyboard, ++ kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON, ++ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK, ++ kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, ++ kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, ++ kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, ++ kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn, ++ kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M, ++ kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx, ++ khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl, ++ knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V, ++ kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq, ++ krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo, ++ kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610, ++att610-103k-w|AT&T 610; 132 column; 103key keyboard, ++ cols#132, wsl#132, ++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, ++ use=att610-103k, ++att615|AT&T 615; 80 column; 98key keyboard, ++ kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE, ++ kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ, ++ kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS, ++ kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS, ++ kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt, ++ kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr, ++ kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610, ++att615-w|AT&T 615; 132 column; 98key keyboard, ++ kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE, ++ kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ, ++ kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS, ++ kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS, ++ kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt, ++ kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr, ++ kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w, ++att615-103k|AT&T 615; 80 column; 103key keyboard, ++ kLFT=\E[ A, kRIT=\E[ @, use=att610-103k, ++att615-103k-w|AT&T 615; 132 column; 103key keyboard, ++ kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w, ++# (att620: I added <rmam>/<smam> based on the init string and ++# <rin>/<indn> from a BSD termcap -- esr) ++att620|AT&T 620; 80 column; 98key keyboard, ++ am, eslok, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ indn=\E[%p1%dS, invis=\E[8m, ++ is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h, ++ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, ++ kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr, ++ kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE, ++ kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI, ++ kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, ++ kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ, ++ kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy, ++ kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf, ++ kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp, ++ kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, ++ kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H, ++ mc4=\E[?4i, mc5=\E[?5i, nel=\EE, ++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m, ++ ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l, ++ rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m, ++ rs2=\Ec\E[?3l, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\017%;, ++ sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h, ++ smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m, ++ tsl=\E7\E[25;%i%p1%dx, ++att620-w|AT&T 620; 132 column; 98key keyboard, ++ cols#132, wsl#132, ++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, ++ use=att620, ++att620-103k|AT&T 620; 80 column; 103key keyboard, ++ kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON, ++ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK, ++ kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, ++ kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, ++ kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, ++ kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn, ++ kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M, ++ kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@, ++ kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@, ++ kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@, ++ kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@, ++ kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, ++ kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, ++ kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, ++ kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ++ ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620, ++ ++att620-103k-w|AT&T 620; 132 column; 103key keyboard, ++ cols#132, wsl#132, ++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h, ++ use=att620-103k, ++ ++# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal ++# The following SETUP modes are assumed for normal operation: ++# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF ++# Font_Size=Large Non-Layers_Window_Cols=80 ++# Non-Layers_Window_Rows=60 ++# Other SETUP modes may be set for operator convenience or communication ++# requirements. Some capabilities assume a printer attached to the Aux EIA ++# port. This termcap description is for the Fixed Non-Layers Window. No ++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! ++# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr) ++att630|AT&T 630 windowing terminal, ++ OTbs, am, da, db, mir, msgr, npc, xon, ++ cols#80, it#8, lines#60, lm#0, ++ bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M, ++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, ++ 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, ++ dim=\E[2m, 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@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m, ++ kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M, ++ kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, ++ kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy, ++ kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~, ++ kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i, ++ mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, ++ rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m, ++ rmul=\E[m, rs2=\Ec, sc=\E7, ++ sgr=\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7%;m, ++ sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines, ++ lines#24, use=att630, ++ ++# This is the att700 entry for 700 native emulation of the AT&T 700 ++# terminal. Comments are relative to changes from the 605V2 entry and ++# att730 on which the entry is based. Comments show the terminfo ++# capability name, termcap name, and description. + # +-#ESC lead-in char for multiple character command ++# Here is what's going onm in the init string: ++# ESC [ 50;4| set 700 native mode (really is 605) ++# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) ++# ESC [ 53;0| set GenFlow to Xon/Xoff ++# ESC [ 8 ;0| set CR on NL ++# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h) ++# ESC [ ? 4 l jump scroll ++# ESC [ ? 5 l/h video: normal (l); reverse (h) ++# ESC [ ?13 l Labels on ++# ESC [ ?15 l parity check = no ++# ESC [ 13 l monitor mode off ++# ESC [ 20 l LF on NL (not CRLF on NL) ++# ESC [ ? 7 h autowrap on ++# ESC [ 12 h local echo off ++# ESC ( B GO = ASCII ++# ESC ) 0 G1 = Special Char & Line Drawing ++# ESC [ ? 31 l Set 7 bit controls + # +-#ESC space R execute power on sequence +-#ESC ! p1 p2 define scroll region: +-# p1 = scroll top line: 20h - 37h +-# p1 = scroll bottom line: 20h - 37h +-#ESC " unlock keyboard +-#ESC # lock keyboard +-#ESC $ Semi-graphics mode on +-#ESC % Semi-graphics mode off +-#ESC & protect mode on +-#ESC ' protect mode off +-#ESC ( write protect mode off (full intensity) +-#ESC ) write protect mode on (half intensity) ++# Note: Most terminals, especially the 600 family use Reverse Video for ++# standout mode. DEC also uses reverse video. The VT100 uses bold in addition ++# Assume we should stay with reverse video for 70.. However, the 605V2 exits ++# standout mode with \E[m (all normal attributes). The 730 entry simply ++# exits reverse video which would leave other current attributes intact. It ++# was assumed the 730 entry to be more correct so rmso has changed. The ++# 605V2 has no sequences to turn individual attributes off, thus its setting ++# and the rmso/smso settings from the 730. + # +-#ESC * clear screen +-#ESC + clear unprotected data to insert char +-#ESC , clear unprotected data to half intensity spaces +-#ESC - p1 p2 p3 p4 address cursor to page, row, column: +-# p1 = page number 0 - 3 +-# p2 = row 20h - 7fh +-# p3 = column (lo) 20h - 7fh +-# p4 = column (hi) 20h - 21h (only 132 col) +-#ESC . p1 set cursor style: +-# p1 = 0 invisible cursor +-# p1 = 1 block blinking cursor +-# p1 = 2 block steady cursor +-# p1 = 3 underline blinking cursor +-# p1 = 4 underline steady cursor +-#ESC / transmit cursor location (page, row, column) +-#ESC 0 p1 p2 p3 p4 program edit key: +-# p1 = edit key code: '@'-'S', '`'-'s' +-# p2 p3 p4 = program data (3 bytes) ++# Note: For the same reason as above in rmso I changed exit under-score mode ++# to specifically turn off underscore, rather than return to all normal ++# attributes + # +-#ESC 1 set tab +-#ESC 2 clear tab at cursor +-#ESC 3 clear all tabs +-#ESC 4 send unprotect line to cursor +-#ESC 5 send unprotect page to cursor +-#ESC 6 send line to cursor +-#ESC 7 send page to cursor +-#ESC 8 n set scroll mode: +-# n = 0 set jump scroll +-# n = 1 set smooth scroll +-#ESC 9 n control display: +-# n = 0 display off +-# n = 1 display on +-#ESC : clear unprotected data to null +-#ESC ; clear unprotected data to insert char ++# Note: The following pkey_xmit is taken from the 605V2 which contained the ++# capability as pfxl. It was changed here to pfx since pfxl ++# will only compile successfully with Unix 4.0 tic. Also note that pfx only ++# allows strings to be parameters and label values must be programmed as ++# constant strings. Supposedly the pfxl of Version 4.0 allows both labels ++# and strings to be parameters. The 605V2 pfx entry should be examined later ++# in this regard. For reference the 730 pfxl entry is shown here for comparison ++# 730 pfx entry: ++# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s ++# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s, + # +-#ESC < keyclick on +-#ESC = p1 p2 address cursor to row, column +-# p1 = row 20h - 7fh +-# p2 = column (lo) 20h - 7fh +-# p3 = column (hi) 20h - 21h (only 132 col) +-#ESC > keyclick off +-#ESC ? transmit cursor location (row, column) ++# (for 4.0 tic) ++# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, + # +-#ESC @ copy print mode on +-#ESC A copy print mode off +-#ESC B block mode on +-#ESC C block mode off (conversation mode) +-#ESC D F set full duplex +-#ESC D H set half duplex +-#ESC E line insert +-#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd) +-# 0 = black, 1 = red, 2 = green, 3 = yellow +-# 4 = blue, 5 = magenta, 6 = cyan, 7 = white +-#ESC G n set serial field attribute (n = 30h - 3Fh) +-#ESC H n full graphics mode: +-# n = 0 exit full graphics mode +-# n = 1 enter full graphics mode +-#ESC I back tab +-#ESC J back page +-#ESC K forward page +-# +-#ESC L unformatted page print +-#ESC M L move window left (132 col mode only) +-#ESC M R move window right (132 col mode only) +-#ESC N set page edit (clear line edit) +-#ESC O set line edit (clear page edit) +-#ESC P formatted page print +-#ESC Q character insert +-#ESC R line delete +-#ESC S send message unprotected only +-#ESC T erase line to insert char +-#ESC U set monitor mode (see ESC X, ESC u) ++# (for <4.0 tic) ++# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, + # +-#ESC V n select video attribute mode: +-# n = 0 serial field attribute mode +-# n = 1 parallel character attribute mode +-#ESC V 2 n define line attribute: +-# n = 0 single width single height +-# n = 1 single width double height +-# n = 2 double width single height +-# n = 3 double width double height +-#ESC V 3 n select character font: +-# n = 0 system font +-# n = 1 user defined font +-#ESC V 4 n select screen mode: +-# n = 0 page screen mode +-# n = 1 virtual screen mode +-#ESC V 5 n control mouse mode: +-# n = 0 disable mouse +-# n = 1 enable sample mode +-# n = 2 send mouse information +-# n = 3 enable request mode +-#ESC W character delete +-#ESC X clear monitor mode (see ESC U, ESC u) +-#ESC Y erase page to insert char ++# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9 + # +-#ESC Z n send user/status line: +-# n = 0 send user line +-# n = 1 send status line +-# n = 2 send terminal ID +-#ESC [ p1 p2 p3 set character attribute (parallel char mode): +-# p1: 0 = normal +-# 1 = blank +-# 2 = blink +-# 3 = blink blank (= blank) +-# 4 = reverse +-# 5 = reverse blank +-# 6 = reverse blink +-# 7 = reverse blink blank (= reverse blank) +-# 8 = underline +-# 9 = underline blank +-# : = underline blink +-# ; = underline blink blank +-# < = reverse underline +-# = = reverse underline blank +-# > = reverse underline blink +-# ? = reverse underline blink blank +-# p2, p3: f/grnd, b/grnd colour +-# (see ESC F for colours) +-# use ZZ for mono, eg. +-# ESC [ 0 Z Z for normal +-# ESC [ 4 Z Z for inverse etc. ++# Port1 Interface + # +-#ESC \ n set page size: +-# n = 1 24 lines/page +-# n = 2 48 lines/page +-# n = 3 72 lines/page +-# n = 4 96 lines/page +-#ESC ] n set Wordstar mode: +-# n = 0 normal (KDS7372) mode +-# n = 1 Wordstar mode ++# modular 10 pin Connector ++# Left side Right side ++# Pin 1 2 3 4 5 6 7 8 9 10 + # +-#ESC b set foreground colour screen ++# Key (notch) at bottom + # +-#ESC c n enter self-test mode: +-# n = 0 exit self test mode +-# n = 1 ROM test +-# n = 2 RAM test +-# n = 3 NVRAM test +-# n = 4 screen display test +-# n = 5 main/printer port test +-# n = 6 mouse port test +-# n = 7 graphics board test +-# n = 8 graphics memory test +-# n = 9 display all 'E' +-# n = : display all 'H' +-#ESC d set background colour screen ++# Pin 1 DSR ++# 3 DCD ++# 4 DTR ++# 5 Sig Ground ++# 6 RD ++# 7 SD ++# 8 CTS ++# 9 RTS ++# 10 Frame Ground + # +-#ESC e n program insert char (n = insert char) +-#ESC f text CR load user status line with 'text' ++# The manual is 189 pages and is loaded with details about the escape codes, ++# etc..... Available from AT&T CIC 800-432-6600... ++# ask for Document number 999-300-660.. + # +-#ESC g display user status line on 25th line +-#ESC h display system status line on 25th line +-#ESC i tab +-#ESC j reverse linefeed +-#ESC k n duplex/local edit mode: +-# n = 0 duplex edit mode +-# n = 1 local edit mode +-#ESC l n select virtual screen: +-# n = 0 screen 1 +-# n = 1 screen 2 +-#ESC m save current config to NVRAM +-#ESC n p1 select display screen: +-# p1 = 0 screen 1 +-# p1 = 1 screen 2 +-# p1 = 2 screen 3 +-# p1 = 3 screen 4 +-#ESC o p1 p2 set characters/line and attribute: +-# p1 = 0 80 chars/line ++att700|AT&T 700 24x80 column display w/102key keyboard, ++ am, eslok, hs, mir, msgr, xenl, xon, ++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4, ++ fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m, ++ is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017, ++ is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, ++ kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, ++ kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, ++ kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, ++ kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, ++ kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq, ++ kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu, ++ kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu, ++ kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, ++ kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, ++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, ++ kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H, ++ mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE, ++ pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m, ++ rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m, ++ smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g, ++ tsl=\E7\E[99;%i%p1%dx, ++ ++# This entry was modified 3/13/90 by JWE. ++# fixes include additions of <enacs>, correcting <rep>, and modification ++# of <kHOM>. (See comments below) ++# att730 has status line of 80 chars ++# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>, ++# the <kf25> and up keys are used for shifted system Fkeys ++# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is ++# currently the same as <khome> (unshifted HOME or \E[H). On the 102, 102+1 ++# and 122 key keyboards, the 730's translation is \E[2J. For consistency ++# <kHOM> has been commented out. The user can uncomment <kHOM> if using the ++# 102, 102+1, or 122 key keyboards ++# kHOM=\E[2J, ++# (att730: I added <rmam>/<smam> based on the init string -- esr) ++att730|AT&T 730 windowing terminal, ++ am, da, db, eslok, hs, mir, msgr, npc, xenl, xon, ++ cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, ++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, ++ enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8, ++ home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ++ ind=\ED, invis=\E[8m, ++ is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B, ++ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H, ++ kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr, ++ kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw, ++ kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{, ++ kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD, ++ kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH, ++ kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ, ++ kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf, ++ kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ, ++ kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg, ++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, ++ kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T, ++ mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE, ++ pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq SYS F%p1%:-2d %e;0;3q%;%p2%s, ++ pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s, ++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O, ++ rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m, ++ rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7, ++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h, ++ swidm=\E#6, tsl=\E7\E[;%i%p1%dx, ++att730-41|730MTG-41|AT&T 730-41 windowing terminal Version, ++ lines#41, use=att730, ++att730-24|730MTG-24|AT&T 730-24 windowing terminal Version, ++ lines#24, use=att730, ++att730r|730MTGr|AT&T 730 rev video windowing terminal Version, ++ flash=\E[?5l$<200>\E[?5h, ++ is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B, ++ use=att730, ++att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version, ++ lines#41, use=att730r, ++att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version, ++ lines#24, use=att730r, ++ ++# The following represents the screen layout along with the associated ++# bezel buttons for the 5430/pt505 terminal. The "kf" designations do ++# not appear on the screen but are shown to reference the bezel buttons. ++# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate ++# position relative to the screen. + # +-#ESC o p1 p2 set characters/line and attribute: +-# p1 = 0 80 chars/line +-# p1 = 1 132 chars/line +-# p2 = 0 single width single height +-# p2 = 1 single width double height +-# p2 = 2 double width single height +-# p2 = 3 double width double height + # +-#ESC q insert mode on +-#ESC r edit mode on +-#ESC s send message all +-#ESC t erase line to null +-#ESC u clear monitor mode (see ESC U, ESC X) +-#ESC v autopage mode on +-#ESC w autopage mode off +-#ESC x p1 p2 p3 define delimiter code... +-#ESC y erase page to null + # +-#ESC z 2 p1 p2 p3 p4 draw quadrangle: +-# p1 = starting row +-# p2 = starting column +-# p3 = end row +-# p4 = end column ++# +----------------------------------------------------------------+ ++# | | ++# XXXX | kf0 kf24 | XXXX ++# | | ++# | | ++# XXXX | kf1 kf23 | XXXX ++# | | ++# | | ++# XXXX | kf2 kf22 | XXXX ++# | | ++# | | ++# XXXX | kf3 kf21 | XXXX ++# | | ++# | | ++# XXXX | kf4 kf20 | XXXX ++# | | ++# | | ++# XXXX | kf5 kf19 | XXXX ++# | | ++# | | ++# XXXX | kf6 kf18 | XXXX ++# | | ++# | | ++# XXXX | | XXXX ++# | | ++# | | ++# +----------------------------------------------------------------+ + # +-#ESC { p1 p2 p3 p4 configure main port +-# (baud, stop bits, parity, word length) ++# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + # +-#ESC | p1 p2 text Ctrl-Y program function key with 'text': +-# p1 = function key code: +-# '1' - ';' normal f1- f11 +-# '<' - 'F' shifted f1 - f11 +-# p2 = program mode: +-# 1 = FDX +-# 2 = LOC +-# 3 = HDX +-# Ctrl-Y = terminator +-# (use Ctrl-P to escape ^P, ^Y ) ++# Note: XXXX represents the screen buttons ++# CMD REDRAW + # +-#ESC } p1 p2 p3 p4 configure printer port +-# (baud, stop bits, parity, word length) +-#ESC ~ send system status ++# MAIL + # +-# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997 ++# version 1 note: ++# The character string sent by key 'kf26' may be user programmable ++# to send either \E[16s, or \E[26s. ++# The character string sent by key 'krfr' may be user programmable ++# to send either \E[17s, or \E[27s. + # +-# Entry is by esr going solely on above information and is UNTESTED. +-# This actually looks a lot like a Televideo 9xx. +-# This entry uses page 0 and is monochrome; I'm not brave enough to try +-# to make color work without a test terminal. The <am> capability is a guess. +-# The initialization string sets conversation mode, blinking underline cursor, +-# full duplex, parallel attribute mode, display user status line, white +-# foreground, black background, normal highlight. ++# Depression of the "CMD" key sends \E! (kcmd) ++# Depression of the "MAIL" key sends \E[26s (kf26) ++# "REDRAW" same as "REFRESH" (krfr) + # +-icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372, +- OTbs, am, hs, +- cols#80, lines#24, +- bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*, +- cnorm=\E.3, cr=^M, +- csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c, +- cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I, +- hts=\E1, il1=\EE, invis=\E[1ZZ, +- is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ, +- rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ, +- rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1, +- sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ, +- sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3, +-icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols, +- rs2=\Eo1, use=icl6404, +- +-#### Interactive Systems Corp ++# "kf" functions adds carriage return to output string if terminal is in ++# 'new line' mode. + # +-# ISC used to sell OEMed and customized hardware to support ISC UNIX. +-# ISC UNIX still exists in 1995, but ISC itself is no more; they got +-# bought out by Sun. ++# The following are functions not covered in the table above: + # +- +-# From: <cithep!eric> Wed Sep 16 08:06:44 1981 +-# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the +-# ":le=^_:" later overridden -- esr) +-intext|Interactive Systems Corporation modified owl 1200, +- OTbs, am, +- cols#80, it#8, lines#24, xmc#1, +- bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J, +- cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\, +- dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>, +- el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H, +- kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r, +- kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r, +- kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<, +- rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%, +- smso=^V$\,, +-intext2|intextii|INTERACTIVE modified owl 1251, +- am, bw, ul, +- cols#80, lines#24, xmc#0, +- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=\E[D, +- 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, +- flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u, +- hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S, +- kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r, +- kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r, +- kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r, +- khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO, +- lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT, +- lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D, +- smul=\E[18 D, +- +-#### Kimtron (abm, kt) ++# Set keyboard character (SKC): \EPn1;Pn2w ++# Pn1= 0 Back Space key ++# Pn1= 1 Break key ++# Pn2= Program char (hex) + # +-# Kimtron seems to be history, but as March 1998 these people are still +-# offering repair services for Kimtron equipment: ++# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t ++# Pn1= Window number (1-39) ++# Pn2-Pn5= Y;X;Y;X coordinates + # +-# Com/Pair Monitor Service +-# 1105 N. Cliff Ave. +-# Sioux Falls, South Dakota 57103 ++# Screen Selection (SSL): \E[Pnu ++# Pn= Window number + # +-# WATS voice: 1-800/398-4946 +-# POTS fax: +1 605/338-8709 +-# POTS voice: +1 605/338-9650 +-# Email: <compair@sd.cybernex.net> +-# Internet/Web: <http://www.com-pair.com> ++# Set Terminal Modes (SM): \E[Pnh ++# Pn= 3 Graphics mode ++# Pn= > Cursor blink ++# Pn= < Enter new line mode ++# Pn= = Enter reverse insert/replace mode ++# Pn= ? Enter no scroll mode + # +-# Kimtron entries include (undocumented) codes for: enter dim mode, +-# enter bold mode, enter reverse mode, turn off all attributes. ++# Reset Terminal Mode (RM): \E[Pnl ++# Pn= 3 Exit graphics mode ++# Pn= > Exit cursor blink ++# Pn= < Exit new line mode ++# Pn= = Exit reverse insert/replace mode ++# Pn= ? Exit no scroll mode + # +- +-# Kimtron ABM 85 added by Dual Systems +-# (abm85: removed duplicated ":kd=^J:" -- esr) +-abm85|Kimtron ABM 85, +- OTbs, am, bw, msgr, +- cols#80, it#8, lines#24, xmc#1, +- cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\Ey, el=\Et, ht=^I, +- if=/usr/share/tabset/stdcrt, il1=\EE, +- is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H, +- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek, +- rmul=\Em, smir=\EQ, smso=\Ej, smul=\El, +-# Kimtron ABM 85H added by Dual Systems. +-# Some notes about the abm85h entries: +-# 1) there are several firmware revs of 85H in the world. Use abm85h-old for +-# firmware revs prior to SP51 +-# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the +-# abm85e entry if it is in tvi920 emulation mode. They are incompatible +-# in some places and NOT software settable i.e., <is2> can't fix it) +-# 3) In 85h mode, the arrow keys and special functions transmit when +-# the terminal is in dup-edit, and work only locally in local-edit. +-# Vi won't swallow `del char' for instance, but <smcup> turns on +-# dup-edit anyway so that the arrow keys will work right. If the +-# arrow keys don't work the way you like, change <smcup>, <rmcup>, and +-# <is2>. Note that 920E mode does not have software commands to toggle +-# between dup and local edit, so you get whatever was set last on the +-# terminal. +-# 4) <flash> attribute is nice, but seems too slow to work correctly +-# (\Eb<pad>\Ed) +-# 5) Make sure `hidden' attributes are selected. If `embedded' attributes +-# are selected, the <xmc@> entry should be removed. +-# 6) auto new-line should be on (selectable from setup mode only) ++# Screen Status Report (SSR): \E[Pnp ++# Pn= 0 Request current window number ++# Pn= 1 Request current window dimensions + # +-# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985 +-abm85h|Kimtron ABM 85H native mode, +- hs, +- xmc@, +- bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@, +- fsl=^M, invis@, +- is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El, +- kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr, +- use=abm85, +-abm85e|Kimtron ABM 85H in 920E mode, +- xmc@, +- bel=^G, dim=\E), flash@, +- is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em, +- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85, +-abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev., +- xmc@, +- bel=^G, dim=\E), +- is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF, +- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85, +-# From: <malman@bbn-vax.arpa> +-# (kt7: removed obsolete :ma=^V^J^L :" -- esr) +-kt7|kimtron model kt-7, +- OTbs, am, +- cols#80, it#8, lines#24, +- cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ, +- if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E", +- kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, +- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, +- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr, +-# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the +-# other kt7 entry and the adjacent key capabilities). Removed EE which is +-# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight +-# but we can't figure out what. +-kt7ix|kimtron model kt-7 or 70 in IX mode, +- am, bw, +- cols#80, it#8, lines#25, +- acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI, +- civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, +- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M, +- home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J, +- is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER, +- ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, +- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ, +- nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0, +- sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef, +- +-#### Microdata/MDIS ++# Device Status Report (DSR): \E[6n Request cursor position + # +-# This was a line of terminals made by McDonnell-Douglas Information Systems. +-# These entries come direct from MDIS documentation. I have edited them only +-# to move primary names of the form p[0-9] * to aliases, and to comment out +-# <rmacs>/<smacs> in a couple of entries without <acsc> strings. I have +-# also removed the change history; the last version indicates this is +-# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989). ++# Call Status Report (CSR): \E[Pnv ++# Pn= 0 Call failed ++# Pn= 1 Call successful + # +- +-# McDonnell Information Systems Terminal Family History +-# ========================================= +-# +-# Prism-1, Prism-2 and P99: +-# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25. +-# +-# Prism-4 and Prism-5: +-# Slightly less ancient range of Microdata terminals. Follow-on from +-# Prism-2, but with many enhancements. P5 has eight display pages. +-# +-# Prism-6: +-# A special terminal for use with library systems, primarily in Germany. +-# Limited numbers. Similar functionality to P5 (except attributes?). ++# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string ++# Pn1= Button number to be loaded ++# Pn2= Character count of "string" ++# Pn3= Key mode being loaded: ++# 0= Unshifted ++# 1= Shifted ++# 2= Control ++# String= Text string (15 chars max) + # +-# Prism-7, Prism-8 and Prism-9: +-# More recent range of MDIS terminals, in which P7 and P8 +-# replace the P4 & P5, with added functionality, and P9 is the flagship. +-# The P9 has two emulation modes - P8 and ANSI - and includes a +-# large number of the DEC VT220 control sequences. Both +-# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats. ++# Screen Number Report (SNR): \E[Pnp ++# Pn= Screen number + # +-# Prism-12 and Prism-14: +-# Latest range, functionally very similar to the P9. The P14 has a +-# black-on-white overscanning screen. ++# Screen Dimension Report (SDR): \E[Pn1;Pn2r ++# Pn1= Number of rows available in window ++# Pn2= Number of columns available in window + # +-# The terminfo definitions given here are: ++# Cursor Position Report (CPR): \E[Pn1;Pn2R ++# Pn1= "Y" Position of cursor ++# Pn2= "X" Position of cursor + # +-# p2 - Prism-2 (or Prism-1 or P99). ++# Request Answer Back (RAB): \E[c + # +-# p4 - Prism-4 (and older P7s & P8s). +-# p5 - Prism-5 (or Prism-6). ++# Answer Back Response (ABR): \E[?;*;30;VSV ++# *= 0 No printer available ++# *= 2 Printer available ++# V= Software version number ++# SV= Software sub version number ++# (printer-available field not documented in v1) + # +-# p7 - Prism-7. +-# p8 - Prism-8 (in national or multinational mode). +-# p8-w - 132 column version of p8. +-# p9 - Prism-9 in ANSI mode. +-# p9-w - 132 column version of p9. +-# p9-8 - Prism-9 in Prism-8 emulation mode. +-# p9-8-w - As p9-8, but with 132 columns. ++# Screen Alignment Aid: \En + # +-# p12 - Prism-12 in ANSI mode. +-# p12-w - 132 column version of p12. +-# p12-m - Prism-12 in MDC emulation mode. +-# p12-m-w - As p12-m, but with 132 columns. +-# p14 - Prism-14 in ANSI mode. +-# p14-w - 132 column version of p14. +-# p14-m - Prism-14 in MDC emulation mode. +-# p14-m-w - As p14-m, but with 132 columns. ++# Bell (lower pitch): \E[x + # +-# p2: Prism-2 +-# ----------- ++# Dial Phone Number: \EPdstring\ ++# string= Phone number to be dialed + # +-# Includes Prism-1 and basic P99 without SP or MP loaded. +-# The simplest form of Prism-type terminal. +-# Basic cursor movement and clearing operations only. +-# No video attributes. +-# Notes: +-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next +-# value up, followed by backspace. ++# Set Phone Labels: \EPpstring\ ++# string= Label for phone buttons + # +-prism2|MDC Prism-2, +- am, bw, msgr, +- cols#80, lines#24, +- bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F, +- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, +- cuu1=^Z, ed=\EJ, el=\EK, home=^A, +- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, +- ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c, +- +-# p4: Prism-4 +-# ----------- ++# Set Clock: \EPchour;minute;second\ + # +-# Includes early versions of P7 & P8. +-# Basic family definition for most Prisms (except P2 and P9 ANSI). +-# Notes: +-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next +-# value up, followed by backspace. +-# Cursor key definitions removed because they interfere with vi and csh keys. ++# Position Clock: \EPsY;X\ ++# Y= "Y" coordinate ++# X= "X" coordinate + # +-prism4|p4|P4|MDC Prism-4, +- am, bw, hs, mc5i, msgr, +- cols#80, lines#24, wsl#72, xmc#1, +- bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>, +- cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F, +- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, +- cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK, +- fsl=^]\345, home=^A, +- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, +- ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER, +- rev=^CD, rmso=^C\s, rmul=^C\s, +- sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;, +- sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343, +- vpa=\013%p1%{32}%+%c, +- +-# p5: Prism-5 +-# ----------- ++# Delete Clock: \Epr\ + # +-# Same definition as p4. Includes Prism-6 (not tested!). +-# Does not use any multi-page features. ++# Programming The Function Buttons: \EPfPn;string\ ++# Pn= Button number (00-06, 18-24) ++# (kf00-kf06, kf18-kf24) ++# string= Text to sent on button depression + # +-prism5|p5|P5|MDC Prism-5, +- use=p4, +- +-# p7: Prism-7 +-# ----------- ++# The following in version 2 only: + # +-# Similar definition to p4. Uses ANSI cursor motion to avoid network problems. +-# Notes: +-# Use p4 for very early models of P7. +-# Rev-index removed; can't send nulls to terminal in 8-bit modes. ++# Request For Local Directory Data: \EPp12;\ + # +-prism7|p7|P7|MDC Prism-7, +- cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4, +- +-# p8: Prism-8 +-# ----------- ++# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\ + # +-# Similar definition to p7. Uses ANSI cursor motion to avoid network problems. +-# Supports national and multinational character sets. +-# Notes: +-# Alternate char set operations only work in multinational mode. +-# Use p4 for very early models of P8. +-# Rev-index removed; can't send nulls to terminal in 8-bit modes. +-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>) ++# Request for Local Directory Data in print format: \EPp13;\ + # +-prism8|p8|P8|MDC Prism-8, +- cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h, +- vpa=\E[%i%p1%dd, use=p4, +- +-# p8-w: Prism-8 in 132 column mode +-# -------------------------------- ++# Enable 'Prt on Line' mode: \022 (DC2) + # +-# 'Wide' version of p8. +-# Notes: +-# Rev-index removed; can't send nulls to terminal in 8-bit modes. ++# Disable 'Prt on Line' mode: \024 (DC4) + # +-prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode, +- cols#132, +- is2=\E[<12h\E[<14h, use=p8, + +-# p9: Prism-9 in ANSI mode +-# ------------------------- +-# +-# The "flagship" model of this generation of terminals. +-# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones. +-# Notes: +-# Tabs only reset by "reset". Otherwise assumes default (8 cols). +-# Fixes to deal with terminal firmware bugs: +-# . 'ri' uses insert-line since rev index doesn't always +-# . 'sgr0' has extra '0' since esc[m fails +-# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25 +-# Not covered in the current definition: +-# . Labels +-# . Programming Fn keys +-# . Graphic characters (defaults correctly to vt100) +-# . Padding values (sets xon) +-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>) +-# +-prism9|p9|P9|MDC Prism-9 in ANSII mode, +- am, bw, hs, mc5i, msgr, xenl, xon, +- cols#80, it#8, lines#24, vt#3, wsl#72, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l, +- clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v, +- 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, dsl=\E[%}\024, ech=\E[%p1%dX, +- ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`, +- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, +- is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, +- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, +- khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, +- prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m, +- ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, +- rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N, +- 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[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd, ++# 05-Aug-86: ++# The following Terminfo entry describes functions which are supported by ++# the AT&T 5430/pt505 terminal software version 2 and later. ++att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal, ++ am, xon, ++ cols#80, it#8, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H, ++ cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l, ++ kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s, ++ kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s, ++ kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s, ++ kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s, ++ krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ++ rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m, ++ rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m, ++ smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m, + +-# p9-w: Prism-9 in 132 column mode +-# -------------------------------- ++# The following Terminfo entry describes functions which are supported by ++# the AT&T 5430/pt505 terminal software version 1. ++att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines, ++ lines#24, ++ mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505, ++tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines, ++ lines#22, use=att505, + # +-# 'Wide' version of p9. ++#### ------------------ TERMINFO FILE CAN BE SPLIT HERE --------------------- ++# This cut mark helps make life less painful for people running ncurses tic ++# on machines with relatively little RAM. The file can be broken in half here ++# cleanly and compiled in sections -- no `use' references cross this cut ++# going forward. + # +-prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode, +- cols#132, +- is2=\E[&p\E[<12l\E F\E[<14h, +- rs2=\E[&p\E[<12l\E F\E[<14h, use=p9, + +-# p9-8: Prism-9 in P8 mode +-# ------------------------ ++#### Ampex (Dialogue) + # +-# P9 terminal in P8 emulation mode. +-# Similar to p8 definition. +-# Insertion and deletion operations possible. ++# Yes, these are the same people who are better-known for making audio- and ++# videotape. I'm told they are located in Redwood City, CA. + # +-prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode, +- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, +- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8, + +-# p9-8-w: Prism-9 in P8 and 132 column modes +-# ------------------------------------------ ++# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981 ++# (ampex80: some capabilities merged in from SCO's entry -- esr) ++ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80, ++ OTbs, am, bw, ul, ++ cols#80, it#8, lines#24, ++ bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1, ++ ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em, ++ smso=\Ej, smul=\El, tbc=\E3, ++# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote: ++ampex175|ampex d175, ++ am, ++ cols#80, lines#24, ++ bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J, ++ is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, ++ kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K, ++ rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El, ++# No backspace key in the main QWERTY cluster. Fortunately, it has a ++# NEWLINE/PAGE key just above RETURN that sends a strange single-character ++# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS ++# mode), this key can be used as the erase key; I find I like this. Because ++# some people and some systems may not, there is another termcap ("ampex175") ++# that suppresses this little eccentricity by omitting the relevant capability. ++ampex175-b|ampex d175 using left arrow for erase, ++ kbs=^_, use=ampex175, ++# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu> ++# (ampex210: removed obsolete ":kn#10:" -- esr) ++ampex210|a210|ampex a210, ++ OTbs, am, hs, xenl, ++ cols#80, it#8, lines#24, xmc#1, ++ cbt=\EI, clear=\E*, cub1=^H, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX, ++ fsl=\E.2, home=^^, ht=^I, ich1=\EQ, ++ if=/usr/share/tabset/std, il1=\EE, invis@, ++ is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H, ++ kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r, ++ kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r, ++ kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^, ++ tsl=\E.0\Eg\E}\Ef, use=adm+sgr, ++# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis> ++# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>, ++# and moved the padding to be *after* the caps -- esr) ++ampex219|ampex-219|amp219|Ampex with Automargins, ++ hs, xenl, ++ cols#80, it#8, lines#24, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z, ++ clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M, ++ csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, ++ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>, ++ cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>, ++ el=\E[K$<3>, home=\E[H, ht=^I, ind=^J, ++ is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~, ++ kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~, ++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H, ++ rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>, ++ rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h, ++ smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>, ++ampex219w|ampex-219w|amp219w|Ampex 132 cols, ++ cols#132, lines#24, ++ bel=^G, cr=^M, cud1=^J, ind=^J, ++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219, ++# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr) ++ampex232|ampex-232|Ampex Model 232, ++ am, ++ cols#80, lines#24, xmc#1, ++ cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET, ++ flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>, ++ invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L, ++ kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, ++ kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, ++ kf9=^AI\r, khome=^^, use=adm+sgr, ++# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr) ++ampex232w|Ampex Model 232 / 132 columns, ++ cols#132, lines#24, ++ is2=\E\034Eg\El, use=ampex232, ++ ++#### Ann Arbor (aa) + # +-# P9 terminal in P8 emulation mode and 132 column mode. ++# Ann Arbor made dream terminals for hackers -- large screen sizes and huge ++# numbers of function keys. At least some used monitors in portrait mode, ++# allowing up to 76-character screen heights! They were reachable at: + # +-prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode, +- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, +- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w, +- +-# p12: Prism-12 in ANSI mode +-# --------------------------- ++# Ann Arbor Terminals ++# 6175 Jackson Road ++# Ann Arbor, MI 48103 ++# (313)-663-8000 + # +-# See p9 definition. ++# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor ++# can't be found on the Web; I fear they're long dead. R.I.P. + # +-prism12|p12|P12|MDC Prism-12 in ANSI mode, +- use=p9, + +-# p12-w: Prism-12 in 132 column mode +-# ---------------------------------- ++ ++# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs. ++# Highly modified 6/22 by Mike O'Brien. ++# split out into several for the various screen sizes by dave-yost@rand ++# Modifications made 3/82 by Mark Horton ++# Modified by Tom Quarles at UCB for greater efficiency and more diversity ++# status line moved to top of screen, <flash> removed 5/82 ++# Some unknown person at SCO then hacked the init strings to make them more ++# efficient. + # +-# 'Wide' version of p12. ++# assumes the following setup: ++# A menu: 0000 1010 0001 0000 ++# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 ++# C menu: 56 66 0 0 9600 0110 1100 ++# D menu: 0110 1001 1 0 + # +-prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode, +- use=p9-w, +- +-# p12-m: Prism-12 in MDC emulation mode +-# ------------------------------------- ++# Briefly, the settings are for the following modes: ++# (values are for bit set/clear with * indicating our preference ++# and the value used to test these termcaps) ++# Note that many of these settings are irrelevent to the terminfo ++# and are just set to the default mode of the terminal as shipped ++# by the factory. + # +-# P12 terminal in MDC emulation mode. +-# Similar to p8 definition. +-# Insertion and deletion operations possible. ++# A menu: 0000 1010 0001 0000 ++# Block/underline cursor* ++# blinking/nonblinking cursor* ++# key click/no key click* ++# bell/no bell at column 72* + # +-prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode, +- use=p9-8, +- +-# p12-m-w: Prism-12 in MDC emulation and 132 column modes +-# ------------------------------------------------------- ++# key pad is cursor control*/key pad is numeric ++# return and line feed/return for <cr> key * ++# repeat after .5 sec*/no repeat ++# repeat at 25/15 chars per sec. * + # +-# P12 terminal in MDC emulation mode and 132 column mode. ++# hold data until pause pressed/process data unless pause pressed* ++# slow scroll/no slow scroll* ++# Hold in area/don't hold in area* ++# functions keys have default*/function keys disabled on powerup + # +-prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode, +- use=p9-8-w, +- +-# p14: Prism-14 in ANSII mode +-# --------------------------- ++# show/don't show position of cursor during page transmit* ++# unused ++# unused ++# unused + # +-# See p9 definition. ++# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 ++# Baud rate (9600*) + # +-prism14|p14|P14|MDC Prism-14 in ANSII mode, +- use=p9, +- +-# p14-w: Prism-14 in 132 column mode +-# ---------------------------------- ++# 2 bits of parity - 00=odd,01=even*,10=space,11=mark ++# 1 stop bit*/2 stop bits ++# parity error detection off*/on + # +-# 'Wide' version of p14. ++# keyboard local/on line* ++# half/full duplex* ++# disable/do not disable keyboard after data transmission* + # +-prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode, +- use=p9-w, +- +-# p14-m: Prism-14 in MDC emulation mode +-# ------------------------------------- ++# transmit entire page/stop transmission at cursor* ++# transfer/do not transfer protected characters* ++# transmit all characters/transmit only selected characters* ++# transmit all selected areas/transmit only 1 selected area* + # +-# P14 terminal in MDC emulation mode. +-# Similar to p8 definition. +-# Insertion and deletion operations possible. ++# transmit/do not transmit line separators to host* ++# transmit/do not transmit page tab stops tabs to host* ++# transmit/do not transmit column tab stop tabs to host* ++# transmit/do not transmit graphics control (underline,inverse..)* + # +-prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode, +- use=p9-8, +- +-# p14-m-w: Prism-14 in MDC emulation and 132 column modes +-# ------------------------------------------------------- ++# enable*/disable auto XON/XOFF control ++# require/do not require receipt of a DC1 from host after each LF* ++# pause key acts as a meta key/pause key is pause* ++# unused + # +-# P14 terminal in MDC emulation mode and 132 column mode. ++# unused ++# unused ++# unused ++# unused + # +-prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode, +- use=p9-8-w, +- +-# End of McDonnell Information Systems Prism definitions +- +-# These things were popular in the Pick database community at one time +-# From: George Land <georgeland@aol.com> 24 Sep 1996 +-p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition, +- am, bw, hs, mir, +- cols#80, lines#24, ma#1, wsl#78, xmc#1, +- bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, +- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P, +- ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U, +- kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ, +- kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r, +- kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r, +- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2, +- lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M, +- pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE, +- smul=^C0, +- +-#### Microterm (act, mime) ++# XON character (17*) ++# XOFF character (19*) + # +-# The mime1 entries refer to the Microterm Mime I or Mime II. +-# The default mime is assumed to be in enhanced act iv mode. ++# C menu: 56 66 0 0 9600 0110 1100 ++# number of lines to print data on (printer) (56*) + # +- +-# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents +-# freakout with out-of-range args on Sytek multiplexors. No <smso=^N> and +-# <rmso=^N> since it gets confused and it's too dim anyway. No <ich1> +-# since Sytek insists ^S means xoff. +-# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr) +-act4|microterm|microterm act iv, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X, +- cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c, +- cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>, +- ed=\037$<2.2*/>, el=\036$<.1*/>, home=^], +- il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X, +- kcuu1=^Z, +-# The padding on :sr: and :ta: for act5 and mime is a guess and not final. +-# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)... +-# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr) +-act5|microterm5|microterm act v, +- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA, +- use=act4, +-# Mimes using brightness for standout. Half bright is really dim unless +-# you turn up the brightness so far that lines show up on the screen. +-mime-fb|full bright mime1, +- is2=^S\E, rmso=^S, smso=^Y, use=mime, +-mime-hb|half bright mime1, +- is2=^Y\E, rmso=^Y, smso=^S, use=mime, +-# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode +-# the more plausible ":do=^J:" -- esr) +-# uc was at one time disabled to get around a curses bug, be wary of it +-mime|mime1|mime2|mimei|mimeii|microterm mime1, +- OTbs, am, +- cols#80, it#8, lines#24, vt#9, +- bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X, +- cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c, +- cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>, +- il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K, +- kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U, +-# These termcaps (for mime2a) put the terminal in low intensity mode +-# since high intensity mode is so obnoxious. +-mime2a-s|microterm mime2a (emulating an enhanced soroc iq120), +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED, +- dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^, +- il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J, +- kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7, +- smir=\EE, smso=\E\:, smul=\E6, +-# This is the preferred mode (but ^X can't be used as a kill character) +-mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52), +- OTbs, +- cols#80, it#8, lines#24, +- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N, +- dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I, +- il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9, +- rmul=\E5, smir=^O, smso=\E8, smul=\E4, +-# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr) +-mime3a|mime1 emulating 3a, +- am@, +- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a, +-mime3ax|mime-3ax|mime1 emulating enhanced 3a, +- it#8, +- dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>, +- use=mime3a, +-# Wed Mar 9 18:53:21 1983 +-# We run our terminals at 2400 baud, so there might be some timing problems at +-# higher speeds. The major improvements in this model are the terminal now +-# scrolls down and insert mode works without redrawing the rest of the line +-# to the right of the cursor. This is done with a bit of a kludge using the +-# exit graphics mode to get out of insert, but it does not appear to hurt +-# anything when using vi at least. If you have some users using act4s with +-# programs that use curses and graphics mode this could be a problem. +-mime314|mm314|mime 314, +- am, +- cols#80, lines#24, +- clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z, +- dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H, +- kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S, +-# Microterm mime 340 from University of Wisconsin +-mm340|mime340|mime 340, +- cols#80, lines#24, +- clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, +- dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>, +- el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,, +- kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J, +-# This came from University of Wisconsin marked "astro termcap for jooss". +-# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:"; +-# also added <rmam>/<smam> based on the init string -- esr) +-mt4520-rv|micro-term 4520 reverse video, +- am, hs, msgr, xenl, xon, +- cols#80, it#8, lines#24, wsl#80, +- bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h, +- fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, +- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED, +- is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J, +- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, +- ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100, +- ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m, +- rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J, +- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, +- tbc=\E[g, tsl=\E[25;1H, +- +-# Fri Aug 5 08:11:57 1983 +-# This entry works for the ergo 4000 with the following setups: +-# ansi,wraparound,newline disabled, xon/xoff disabled in both +-# setup a & c. ++# number of lines on a sheet of paper (printer) (66*) + # +-# WARNING!!! There are multiple versions of ERGO 4000 microcode +-# Be advised that very early versions DO NOT WORK RIGHT !! +-# Microterm does have a ROM exchange program- use it or lose big +-# (ergo400: added <rmam>/<smam> based on the init string -- esr) +-ergo4000|microterm ergo 4000, +- da, db, msgr, +- cols#80, lines#66, +- bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>, +- el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>, +- is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3, +- lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l, +- rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>, +- smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>, +- smso=\E[7m$<20>, +- +-#### NCR ++# left margin (printer) (0*) + # +-# NCR's terminal group was merged with AT&T's when AT&T bought the company. +-# For what happened to that group, see the ADDS section. ++# number of pad chars on new line to printer (0*) + # +-# There is an NCR4103 terminal that's just a re-badged Wyse-50. ++# printer baud rate (9600*) + # +- +-# The following vendor-supplied termcaps were captured from the Boundless +-# Technologies site, 8 March 1998. I removed all-upper-case names that were +-# identical, except for case, to lower-case ones. I also uncommented the acsc +-# capabilities.X ++# printer parity: 00=odd,01=even*,10=space,11=mark ++# printer stop bits: 2*/1 ++# print/do not print guarded areas* + # +-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +-# DEC vt200/300 with color capabilities added. +-ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard, +- colors#8, pairs#64, +- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- use=ncr260vt300an, +-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +-# DEC vt200/300 with color capabilities added. +-ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard, +- colors#8, pairs#64, +- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- use=ncr260vt300wan, +-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +-# DEC vt200/300 with color capabilities added. +-ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard, +- colors#8, pairs#64, +- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- use=ncr260vt300pp, +-# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a +-# DEC vt200/300 with color capabilities added. +-ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode, +- colors#8, pairs#64, +- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- use=ncr260vt300wpp, +-# This definition for ViewPoint supports several attributes. This means +-# that it has magic cookies (extra spaces where the attributes begin). +-# Some applications do not function well with magic cookies. The System +-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +-# If supporting various attributes is not vital, 'xmc#1' and the extra +-# attributes can be removed. +-# Mapping to ASCII character set ('acsc' capability) can also be +-# restored if needed. +-ncr260vppp|NCR 2900_260 viewpoint, +- am, bw, hs, km, mc5i, mir, msgr, xon, +- cols#80, lines#24, nlab#32, xmc#1, +- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, +- cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5, +- cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>, +- dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>, +- el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1, +- il1=\EM$<2>, ind=\n$<2>, invis=\EG1, +- is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, +- kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ, +- kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F, +- kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r, +- kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r, +- kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r, +- kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r, +- kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r, +- kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r, +- kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r, +- kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ, +- kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R, +- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>, +- nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003, +- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, +- rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, +- sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq, +- smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF, +-ncr260vpwpp|NCR 2900_260 viewpoint wide mode, +- cols#132, +- cup=\Ea%i%p1%dR%p2%dC$<30>, +- is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, +- rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, +- use=ncr260vppp, +-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd, +- am, hs, mir, msgr, xenl, xon, +- cols#80, lines#24, nlab#32, +- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, +- blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>, +- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>, +- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>, +- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>, +- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>, +- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~, +- ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>, +- fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I, +- hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, +- il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>, +- invis=\E[8m, +- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, +- knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>, +- rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m, +- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>, +- sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g, +- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad, +-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH$<30>, +- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- use=ncr260vt100an, +-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd, +- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~, +- kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~, +- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, +- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- smkx=\E=, use=ncr260vt100an, +-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH$<30>, +- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- use=ncr260vt100pp, +-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd, +- am, hs, mir, msgr, xenl, xon, +- cols#80, lines#24, nlab#32, +- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, +- blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>, +- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>, +- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>, +- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>, +- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>, +- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~, +- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, +- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, +- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>, +- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m, +- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, +- kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, +- kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~, +- kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~, +- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~, +- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, +- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, +- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, +- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, +- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>, +- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h, +- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, +- use=vt220+keypad, +-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH$<30>, +- is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>, +- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>, +- use=ncr260vt200an, +-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd, +- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~, +- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=, +- use=ncr260vt200an, +-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH$<30>, +- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- use=ncr260vt200pp, +-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd, +- am, hs, mir, msgr, xenl, xon, +- cols#80, lines#24, nlab#32, +- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, +- blink=\E[5m, bold=\E[1m, civis=\E[?25l, +- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>, +- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>, +- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>, +- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>, +- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>, +- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>, +- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~, +- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, +- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, +- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>, +- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m, +- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~, +- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, +- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, +- kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~, +- kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~, +- kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, +- kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~, +- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, +- khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, +- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>, +- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, +- rmul=\E[24m, +- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>, +- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h, +- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, +- use=vt220+keypad, +-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH$<30>, +- is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>, +- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>, +- use=ncr260vt300an, +-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd, +- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~, +- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, +- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=, +- use=ncr260vt300an, +-NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd, +- cols#132, +- cup=\E[%i%p1%d;%p2%dH$<30>, +- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, +- use=ncr260vt300pp, +-# This terminfo file contains color capabilities for the Wyse325 emulation of +-# the NCR 2900/260C color terminal. Because of the structure of the command +-# (escape sequence) used to set color attributes, one of the fore/background +-# colors must be preset to a given value. I have set the background color to +-# black. The user can change this setup by altering the last section of the +-# 'setf' definition. The escape sequence to set color attributes is +-# ESC d y <foreground_color> <background_color> 1 +-# In addition, the background color can be changed through the desk accessories. +-# The capablitiy 'op' sets colors to green on black (default combination). ++# new line is: 01=LF,10=CR,11=CRLF* ++# unused ++# unused + # +-# NOTE: The NCR Unix System Administrator's Shell will not function properly +-# if the 'pairs' capability is defined. Un-Comment the 'pairs' +-# capability and recompile if you wish to have it included. ++# D menu: 0110 1001 1 0 ++# LF is newline/LF is down one line, same column* ++# wrap to preceding line if move left from col 1*/don't wrap ++# wrap to next line if move right from col 80*/don't wrap ++# backspace is/is not destructive* + # +-ncr260wy325pp|NCR 2900_260 wyse 325, +- am, bw, hs, km, mc5i, mir, msgr, xon, +- colors#16, cols#80, lines#24, ncv#33, nlab#32, +- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, +- cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M, +- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>, +- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c, +- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I, +- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1, +- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ, +- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, +- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET, +- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, +- kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, +- kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, +- kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, +- kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r, +- kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, +- kprt=\EP, mc0=\EP, mc4=^T, mc5=^R, +- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>, +- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0, +- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, +- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- setb=\s, +- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>, +- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/, +- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0, +- tsl=\EF, +-ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode, +- cols#132, +- cup=\Ea%i%p1%dR%p2%dC$<30>, +- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- use=ncr260wy325pp, +-# This definition for Wyse 350 supports several attributes. This means +-# that it has magic cookies (extra spaces where the attributes begin). +-# Some applications do not function well with magic cookies. The System +-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +-# If supporting various attributes is not vital, 'xmc#1' and the extra +-# attributes can be removed. +-# Mapping to ASCII character set ('acsc' capability) can also be +-# restored if needed. +-# In addition, color capabilities have been added to this file. The drawback, +-# however, is that the background color has to be black. The foreground colors +-# are numbered 0 through 15. ++# display*/ignore DEL character ++# display will not/will scroll* ++# page/column tab stops* ++# erase everything*/erase unprotected only + # +-# NOTE: The NCR Unix System Administrator's Shell does not function properly +-# with the 'pairs' capability defined as below. If you wish to +-# have it included, Un-comment it and recompile (using 'tic'). ++# editing extent: 0=display,1=line*,2=field,3=area + # +-ncr260wy350pp|NCR 2900_260 wyse 350, +- am, bw, hs, km, mc5i, mir, msgr, xon, +- colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1, +- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, +- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, +- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>, +- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c, +- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I, +- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1, +- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H, +- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, +- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, +- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, +- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, +- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, +- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, +- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, +- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, +- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, +- mc0=\EP$<10>, mc4=^T, mc5=^R, +- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>, +- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0, +- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, +- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- setb=\s, +- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>, +- sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/, +- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0, +- tsl=\EF, +-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode, +- cols#132, +- cup=\Ea%i%p1%dR%p2%dC$<30>, +- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, +- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, +- use=ncr260wy350pp, +-# This definition for Wyse 50+ supports several attributes. This means +-# that it has magic cookies (extra spaces where the attributes begin). +-# Some applications do not function well with magic cookies. The System +-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +-# If supporting various attributes is not vital, 'xmc#1' and the extra +-# attributes can be removed. +-# Mapping to ASCII character set ('acsc' capability) can also be +-# restored if needed. +-# (ncr260wy50+pp: originally contained commented-out +-# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr) +-ncr260wy50+pp|NCR 2900_260 wyse 50+, +- am, bw, hs, km, mc5i, mir, msgr, xon, +- cols#80, lines#24, nlab#32, xmc#1, +- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2, +- cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, +- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>, +- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c, +- ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>, +- ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>, +- invis=\EG1, +- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H, +- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, +- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, +- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, +- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, +- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, +- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, +- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, +- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, +- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, +- mc0=\EP$<10>, mc4=^T, mc5=^R, +- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>, +- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed., +- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, +- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq, +- smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF, +-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode, +- cols#132, +- cup=\Ea%i%p1%dR%p2%dC$<30>, +- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, +- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, +- use=ncr260wy50+pp, +-ncr260wy60pp|NCR 2900_260 wyse 60, +- am, bw, hs, km, mc5i, mir, msgr, xon, +- cols#80, lines#24, nlab#32, +- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, +- cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, +- cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>, +- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c, +- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>, +- ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>, +- invis=\EG1, +- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ, +- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, +- kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, +- kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, +- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, +- kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, +- kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, +- kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, +- kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R, +- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>, +- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed., +- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, +- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/, +- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>, +- tsl=\EF, +-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode, +- cols#132, +- cup=\Ea%i%p1%dR%p2%dC$<30>, +- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, +- use=ncr260wy60pp, +-ncr160vppp|NCR 2900_160 viewpoint, +- use=ncr260vppp, +-ncr160vpwpp|NCR 2900_160 viewpoint wide mode, +- use=ncr260vpwpp, +-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd, +- use=ncr260vt100an, +-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd, +- use=ncr260vt100pp, +-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd, +- use=ncr260vt100wan, +-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd, +- use=ncr260vt100wpp, +-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd, +- use=ncr260vt200an, +-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd, +- use=ncr260vt200pp, +-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd, +- use=ncr260vt200wan, +-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd, +- use=ncr260vt200wpp, +-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd, +- use=ncr260vt300an, +-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd, +- use=ncr260vt300pp, +-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd, +- use=ncr260vt300wan, +-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd, +- use=ncr260vt300wpp, +-ncr160wy50+pp|NCR 2900_160 wyse 50+, +- use=ncr260wy50+pp, +-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode, +- use=ncr260wy50+wpp, +-ncr160wy60pp|NCR 2900_160 wyse 60, +- use=ncr260wy60pp, +-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode, +- use=ncr260wy60wpp, +-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal, +- am, hs, mc5i, mir, msgr, xon, +- cols#80, it#8, lines#24, nlab#32, +- acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~, +- bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>, +- clear=\E[2J\E[1;1H$<300>, cr=^M, +- csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>, +- cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>, +- cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>, +- cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>, +- cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>, +- dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>, +- ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>, +- enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>, +- ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>, +- ind=\ED, +- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>, +- kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP, +- kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE, +- rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>, +- rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>, +- rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>, +- sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>, +- sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>, +- smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>, +- tsl=\E[>+1$<70>, +-ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal, +- cols#132, +- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>, +- rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>, +- use=ncrvt100an, ++# unused + # +-# Vendor-supplied NCR termcaps end here + +-# NCR7900 DIP switches: +-# +-# Switch A: +-# 1-4 - Baud Rate +-# 5 - Parity (Odd/Even) +-# 6 - Don't Send or Do Send Spaces +-# 7 - Parity Enable +-# 8 - Stop Bits (One/Two) +-# +-# Switch B: +-# 1 - Upper/Lower Shift +-# 2 - Typewriter Shift +-# 3 - Half Duplex / Full Duplex +-# 4 - Light/Dark Background +-# 5-6 - Carriage Return Without / With Line Feed +-# 7 - Extended Mode +-# 8 - Suppress Keyboard Display +-# +-# Switch C: +-# 1 - End of line entry disabled/enabled +-# 2 - Conversational mode / (Local?) Mode +-# 3 - Control characters displayed / not displayed +-# 4 - (2-wire?) / 4-wire communications +-# 5 - RTS on and off for each character +-# 6 - (50Hz?) / 60 Hz +-# 7 - Exit after level zero diagnostics +-# 8 - RS-232 interface +-# +-# Switch D: +-# 1 - Reverse Channel (yes / no) +-# 2 - Manual answer (no / yes) +-# 3-4 - Cursor appearance +-# 5 - Communication Rate +-# 6 - Enable / Disable EXT turnoff +-# 7 - Enable / Disable CR turnoff +-# 8 - Enable / Disable backspace +-# +-# Since each attribute parameter is 0 or 1, we shift each attribute (standout, +-# reverse, blink, dim, and underline) the appropriate number of bits (by +-# multiplying the 0 or 1 by a correct factor to shift) so the bias character, +-# '@' is (effectively) "or"ed with each attribute to generate the proper third +-# character in the <ESC>0 sequence. The <sgr> string implements the following +-# equation: ++annarbor4080|aa4080|ann arbor 4080, ++ OTbs, am, ++ cols#80, lines#40, ++ bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_, ++ cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c, ++ cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H, ++ kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P, ++ ++# Strange Ann Arbor terminal from BRL ++aas1901|Ann Arbor K4080 w/S1901 mod, ++ am, ++ cols#80, lines#40, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N, ++ home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c, ++ nel=^M^J, ++ ++# If you're using the GNU termcap library, add ++# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp: ++# to these capabilities. This is the nonstandard GNU termcap scrolling ++# capability, arguments are: ++# 1. Total number of lines on the screen. ++# 2. Number of lines above desired scroll region. ++# 3. Number of lines below (outside of) desired scroll region. ++# 4. Total number of lines on the screen, the same as the first parameter. ++# The generic Ann Arbor entry is the only one that uses this. ++aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly), ++ OTbs, am, km, mc5i, mir, xon, ++ cols#80, it#8, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=^K, 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$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, ++ hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL, ++ il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8, ++ is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z, ++ kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK, ++ kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP, ++ kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT, ++ kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC, ++ kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI, ++ khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i, ++ mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8, ++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ++ rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\, ++ rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7, ++ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;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[3g, ++ vpa=\E[%p1%{1}%+%dd, ++ ++aaa+rv|ann arbor ambassador in reverse video, ++ blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m, ++ is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m, ++ rs1=\E[H\E[7m\E[J$<156>, ++ sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%t7;%;%?%p7%t8;%;m\016, ++ sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m, ++# Ambassador with the DEC option, for partial vt100 compatibility. ++aaa+dec|ann arbor ambassador in dec vt100 mode, ++ acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}, ++ csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N, ++ sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;, ++ smacs=^O, ++aaa-18|ann arbor ambassador/18 lines, ++ lines#18, ++ is2=\E7\E[60;0;0;18p\E8, ++ rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p, ++ use=aaa+unk, ++aaa-18-rv|ann arbor ambassador/18 lines+reverse video, ++ use=aaa+rv, use=aaa-18, ++aaa-20|ann arbor ambassador/20 lines, ++ lines#20, ++ is2=\E7\E[60;0;0;20p\E8, ++ rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p, ++ use=aaa+unk, ++aaa-22|ann arbor ambassador/22 lines, ++ lines#22, ++ is2=\E7\E[60;0;0;22p\E8, ++ rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p, ++ use=aaa+unk, ++aaa-24|ann arbor ambassador/24 lines, ++ lines#24, ++ is2=\E7\E[60;0;0;24p\E8, ++ rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p, ++ use=aaa+unk, ++aaa-24-rv|ann arbor ambassador/24 lines+reverse video, ++ use=aaa+rv, use=aaa-24, ++aaa-26|ann arbor ambassador/26 lines, ++ lines#26, ++ is2=\E7\E[60;0;0;26p\E8, ++ rmcup=\E[60;0;0;26p\E[26;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk, ++aaa-28|ann arbor ambassador/28 lines, ++ lines#28, ++ is2=\E7\E[60;0;0;28p\E8, ++ rmcup=\E[60;0;0;28p\E[28;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk, ++aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status, ++ eslok, hs, ++ lines#29, ++ dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K, ++ fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8, ++ rmcup=\E[60;1;0;30p\E[29;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K, ++ tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk, ++aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video, ++ use=aaa+rv, use=aaa-30-s, ++aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context, ++ rmcup=\E[60;1;0;30p\E[59;1H\E[K, ++ smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s, ++aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video, ++ rmcup=\E[60;1;0;30p\E[59;1H\E[K, ++ smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv, ++aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines, ++ lines#30, ++ is2=\E7\E[60;0;0;30p\E8, ++ rmcup=\E[60;0;0;30p\E[30;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk, ++aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video, ++ use=aaa+rv, use=aaa-30, ++aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context, ++ rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p, ++ use=aaa-30, ++aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context, ++ rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p, ++ use=aaa+rv, use=aaa-30, ++aaa-36|ann arbor ambassador/36 lines, ++ lines#36, ++ is2=\E7\E[60;0;0;36p\E8, ++ rmcup=\E[60;0;0;36p\E[36;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk, ++aaa-36-rv|ann arbor ambassador/36 lines+reverse video, ++ use=aaa+rv, use=aaa-36, ++aaa-40|ann arbor ambassador/40 lines, ++ lines#40, ++ is2=\E7\E[60;0;0;40p\E8, ++ rmcup=\E[60;0;0;40p\E[40;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk, ++aaa-40-rv|ann arbor ambassador/40 lines+reverse video, ++ use=aaa+rv, use=aaa-40, ++aaa-48|ann arbor ambassador/48 lines, ++ lines#48, ++ is2=\E7\E[60;0;0;48p\E8, ++ rmcup=\E[60;0;0;48p\E[48;1H\E[K, ++ smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk, ++aaa-48-rv|ann arbor ambassador/48 lines+reverse video, ++ use=aaa+rv, use=aaa-48, ++aaa-60-s|ann arbor ambassador/59 lines+status, ++ eslok, hs, ++ lines#59, ++ dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K, ++ fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8, ++ tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk, ++aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video, ++ use=aaa+rv, use=aaa-60-s, ++aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video, ++ use=aaa+dec, use=aaa+rv, use=aaa-60-s, ++aaa-60|ann arbor ambassador/60 lines, ++ lines#60, ++ is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8, ++ use=aaa+unk, ++aaa-60-rv|ann arbor ambassador/60 lines+reverse video, ++ use=aaa+rv, use=aaa-60, ++aaa-db|ann arbor ambassador 30/destructive backspace, ++ OTbs@, ++ cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30, ++ ++guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols, ++ lines#33, ++ flash=\E[>59h$<100>\E[>59l, ++ is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l, ++ rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk, ++guru+rv|guru changes for reverse video, ++ flash=\E[>59l$<100>\E[>59h, is3=\E[>59h, ++guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video, ++ use=guru+rv, use=guru-33, ++guru+s|guru status line, ++ eslok, hs, ++ dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l, ++ rmcup=\E[255;1p\E[255;1H\E[K, smcup=, ++ tsl=\E[>51h\E[1;%p1%dH\E[2K, ++guru-nctxt|guru with no saved context, ++ smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru, ++guru-s|guru-33-s|ann arbor guru/33 lines+status, ++ lines#32, ++ is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J, ++ smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, ++guru-24|ann arbor guru 24 lines, ++ cols#80, lines#24, ++ is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p, ++ use=guru+unk, ++guru-44|ann arbor guru 44 lines, ++ cols#97, lines#44, ++ is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p, ++ use=guru+unk, ++guru-44-s|ann arbor guru/44 lines+status, ++ lines#43, ++ is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J, ++ smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, ++guru-76|guru with 76 lines by 89 cols, ++ cols#89, lines#76, ++ is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p, ++ use=guru+unk, ++guru-76-s|ann arbor guru/76 lines+status, ++ cols#89, lines#75, ++ is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J, ++ smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, ++guru-76-lp|guru-lp|guru with page bigger than line printer, ++ cols#134, lines#76, ++ is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p, ++ use=guru+unk, ++guru-76-w|guru 76 lines by 178 cols, ++ cols#178, lines#76, ++ is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p, ++ use=guru+unk, ++guru-76-w-s|ann arbor guru/76 lines+status+wide, ++ cols#178, lines#75, ++ is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J, ++ smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk, ++guru-76-wm|guru 76 lines by 178 cols with 255 cols memory, ++ cols#178, lines#76, ++ is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p, ++ use=guru+unk, ++aaa-rv-unk|ann arbor unknown type, ++ lh#0, lw#0, nlab#0, ++ blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m, ++ is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m, ++ rs1=\E[H\E[7m\E[J, ++ sgr=\E[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t7;%;%?%p7%t8;%;m, ++ sgr0=\E[7m, smso=\E[m, smul=\E[4;7m, ++ ++#### Applied Digital Data Systems (adds) ++# ++# ADDS itself is long gone. ADDS was bought by NCR, and the same group made ++# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for ++# terminals was merged again. Then AT&T sold the terminal business to ++# SunRiver, which later changed its name to Boundless Technologies. The ++# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there ++# as of early 1995) are at: ++# ++# Boundless Technologies ++# 100 Marcus Boulevard ++# Hauppauge, NY 11788-3762 ++# Vox: (800)-231-5445 ++# Fax: (516)-342-7378 ++# Web: http://boundless.com ++# ++# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". ++# In 1995 Boundless acquired DEC's terminals business. ++# ++ ++# Regent: lowest common denominator, works on all regents. ++# (regent: renamed ":bc:" to ":le:" -- esr) ++regent|Adds Regent Series, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z, ++ home=\EY\s\s, ind=^J, ll=^A, ++# Regent 100 has a bug where if computer sends escape when user is holding ++# down shift key it gets confused, so we avoid escape. ++regent100|Adds Regent 100, ++ xmc#1, ++ bel=^G, ++ cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c, ++ kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, ++ kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, ++ lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, ++ sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent, ++regent20|Adds Regent 20, ++ bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK, ++ use=regent, ++regent25|Adds Regent 25, ++ bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A, ++ use=regent20, ++regent40|Adds Regent 40, ++ xmc#1, ++ bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r, ++ kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r, ++ kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6, ++ lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P, ++ smul=\E0`, use=regent25, ++regent40+|Adds Regent 40+, ++ is2=\EB, use=regent40, ++regent60|regent200|Adds Regent 60, ++ dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF, ++ rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV, ++ use=regent40+, ++# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981 ++# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr) ++viewpoint|addsviewpoint|adds viewpoint, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, ++ cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>, ++ ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, ++ kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A, ++ rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N, ++# Some viewpoints have bad ROMs that foo up on ^O ++screwpoint|adds viewpoint with ^O bug, ++ cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint, ++ ++# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92 ++# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs. ++# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000, ++# underline=01100000, rev=01010000, blink=01000010,dim=01000001, ++# invis=01000100 and %c is the logical or of desired attributes. ++# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(. ++# ++# Update by TD - 2004: ++# Adapted from ++# http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt ++# ++# COMMANDS ASCII CODE ++# ++# Address, Absolute ESC,=,row,column ++# Beep BEL ++# Aux Port Enable ESC,@ ++# Aux Port Disable ESC,A ++# Backspace BS ++# Cursor back BS ++# Cursor down LF ++# Cursor forward FF ++# Cursor home RS ++# Cursor up VT ++# Cursor supress ETB ++# Cursor enable CAN ++# Erase to end of line ESC,T ++# Erase to end of page ESC,Y ++# Erase screen SUB ++# Keyboard lock SI ++# Keyboard unlock SO ++# Read current cursor position ESC,? ++# Set Attribute ESC,0,x (see below for values of x) ++# Tag bit reset ESC,( ++# Tag bit set ESC,) ++# Transparent Print on ESC,3 ++# Transparent Print off ESC,4 ++# ++# ++# ATTRIBUTES ++# ++# Normal @ 0100 ++# Half Intensity A 0101 ++# Blinking B 0102 ++# Half Intensity Blinking C 0103 ++# Reverse Video P 0120 ++# Reverse Video Half Intensity Q 0121 ++# Reverse Video Blinking R 0122 ++# Reverse Video Half Intensity ++# Blinking S 0123 ++# Underlined ` 0140 ++# Underlined Half Intensity a 0141 ++# Underlined Blinking b 0142 ++# Underlined Half Intensity ++# Blinking c 0143 ++# Video suppress D 0104 ++vp3a+|viewpoint3a+|adds viewpoint 3a+, ++ am, bw, ++ cols#80, it#8, lines#24, ++ blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M, ++ cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E), ++ ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E), ++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, ++ nel=^M^J, rev=\E0P\E), rmso=\E(, ++ sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;, ++ sgr0=\E(, smso=\E0Q\E), smul=\E0`\E), ++vp60|viewpoint60|addsvp60|adds viewpoint60, ++ use=regent40, ++# ++# adds viewpoint 90 - from cornell ++# Note: emacs sends ei occasionally to insure the terminal is out of ++# insert mode. This unfortunately puts the viewpoint90 IN insert ++# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also, ++# - :ei=:im=: must be present in the termcap translation.) ++# - <xhp> indicates glitch that attributes stick to location ++# - <msgr> means it's safe to move in standout mode ++# - <clear=\EG\Ek>: clears screen and visual attributes without affecting ++# the status line ++# Function key and label capabilities merged in from SCO. ++vp90|viewpoint90|adds viewpoint 90, ++ OTbs, bw, msgr, xhp, ++ cols#80, lines#24, ++ clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE, ++ dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I, ++ ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J, ++ kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r, ++ kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r, ++ kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2, ++ lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, ++ lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV, ++ sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV, ++# Note: if return acts weird on a980, check internal switch #2 ++# on the top chip on the CONTROL pc board. ++adds980|a980|adds consul 980, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d, ++ dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1, ++ kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, ++ kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N, ++ ++#### C. Itoh Electronics ++# ++# As of 1995 these people no longer make terminals (they're still in the ++# printer business). Their terminals were all clones of the DEC VT series. ++# They're located in Orange County, CA. ++# ++ ++# CIT 80 - vt-52 emulator, the termcap has been modified to remove ++# the delay times and do an auto tab set rather than the indirect ++# file used in vt100. ++cit80|cit-80|citoh 80, ++ OTbs, am, ++ cols#80, lines#24, ++ clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L, ++ ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, ++ kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=, ++# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985 ++# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr) ++cit101|citc|C.itoh fast vt100, ++ OTbs, am, xenl, ++ cols#80, lines#24, ++ bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, ++ flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L, ++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, ++ smul=\E[4m, ++# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL ++# The following termcap entry was created from the Callan cd100 entry. The ++# last two lines (with the capabilities in caps) are used by RM-cobol to allow ++# full selection of combinations of reverse video, underline, and blink. ++# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\ ++# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\ ++# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr) ++cit101e|C. Itoh CIT-101e, ++ OTbs, OTpt, am, mir, msgr, ++ cols#80, it#8, lines#24, ++ acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr, ++ cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, ++ cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ++ ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl, ++ kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l, ++ rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h, ++ smkx=\E=, smso=\E[7m, smul=\E[4m, ++# From: David S. Lawyer, June 1997: ++# The CIT 101-e was made in Japan in 1983-4 and imported by CIE ++# Terminals in Irvine, CA. It was part of CITOH Electronics. In the ++# late 1980's CIT Terminals went out of business. ++# There is no need to use the initialization string is=... (by invoking ++# tset or setterm etc.) provided that the terminal has been manually set ++# up (and the setup saved with ^S) to be compatible with this termcap. To be ++# compatible it should be in ANSI mode (not VT52). A set-up that ++# works is to set all the manually setable stuff to factory defaults ++# by pressing ^D in set-up mode. Then increse the brighness with the ++# up-arrow key since the factory default will likely be dim on an old ++# terminal. Then change any options you want (provided that they are ++# compatible with the termcap). For my terminal I set: Screen ++# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver: ++# on. I also set up mine for parity (but you may not need it). Then ++# save the setup with ^S. ++# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr) ++cit101e-rv|Citoh CIT-101e (sets reverse video), ++ am, eo, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, ++ OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, ++ is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H, ++ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, ++ rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l, ++ rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7, ++ sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h, ++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR, ++ u7=\E[6n, u8=\E[?6c, u9=\E[c, ++cit101e-n|CIT-101e w/o am, ++ am@, ++ cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J, ++ use=cit101e, ++cit101e-132|CIT-101e with 132 cols, ++ cols#132, ++ kbs=^H, kcub1=^H, kcud1=^J, use=cit101e, ++cit101e-n132|CIT-101e with 132 cols w/o am, ++ am@, ++ cols#132, ++ cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J, ++ use=cit101e, ++# CIE Terminals CIT-500 from BRL ++# The following SET-UP modes are assumed for normal operation: ++# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF ++# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES ++# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF ++# Other SET-UP modes may be set for operator convenience or communication ++# requirements. ++# Hardware tabs are assumed to be set every 8 columns; they can be set up ++# by the "reset", "tset", or "tabs" utilities. No delays are specified; use ++# "stty ixon -ixany" to enable DC3/DC1 flow control! ++# (cit500: I added <rmam>/<smam> based on the init string -- esr) ++cit500|CIE Terminals CIT-500, ++ OTbs, OTpt, mir, msgr, xon, ++ OTkn#10, cols#80, it#8, lines#64, vt#3, ++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ 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=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M, ++ ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS, ++ kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ, ++ khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1, ++ lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18, ++ lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m, ++ ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, ++ rmso=\E[m, rmul=\E[m, ++ rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>, ++ sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ ++# C. Itoh printers begin here ++citoh|ci8510|8510|c.itoh 8510a, ++ cols#80, it#8, ++ bold=\E!, cub1@, ++ is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073., ++ rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY, ++ smul=\EX, use=lpr, ++citoh-pica|citoh in pica, ++ is1=\EN, use=citoh, ++citoh-elite|citoh in elite, ++ cols#96, ++ is1=\EE, ++ is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089., ++ use=citoh, ++citoh-comp|citoh in compressed, ++ cols#136, ++ is1=\EQ, ++ is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129., ++ use=citoh, ++# citoh has infinite cols because we don't want lp ever inserting \n\t**. ++citoh-prop|citoh-ps|ips|citoh in proportional spacing mode, ++ cols#32767, ++ is1=\EP, use=citoh, ++citoh-6lpi|citoh in 6 lines per inch mode, ++ is3=\EA, use=citoh, ++citoh-8lpi|citoh in 8 lines per inch mode, ++ lines#88, ++ is3=\EB, use=citoh, ++ ++#### Control Data (cdc) ++# ++ ++cdc456|cdc 456 terminal, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X, ++ el=^V, home=^Y, il1=\EL, ind=^J, ++ ++# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick) ++cdc721|CDC Viking, ++ OTbs, am, ++ cols#80, lines#24, ++ clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, ++ cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I, ++ kcuu1=^W, khome=^Y, ++cdc721ll|CDC Vikingll, ++ OTbs, am, ++ cols#132, lines#24, ++ clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, ++ cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I, ++ kcuu1=^W, khome=^Y, ++# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out ++cdc752|CDC 752, ++ OTbs, am, bw, xhp, ++ cols#80, lines#24, ++ bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U, ++ cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V, ++ home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1 \030\002\003\017, ++# CDC 756 ++# The following switch/key settings are assumed for normal operation: ++# 96 chars SCROLL FULL duplex not BLOCK ++# Other switches may be set according to communication requirements. ++# Insert/delete-character cannot be used, as the whole display is affected. ++# "so" & "se" are commented out until jove handles "sg" correctly. ++cdc756|CDC 756, ++ OTbs, am, bw, ++ OTkn#10, cols#80, lines#24, ++ bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U, ++ cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, ++ dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J, ++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI, ++ kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, ++ kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y, ++ khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4, ++ lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z, ++ rs1=\031\030\002\003\017, ++# ++# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL. ++# ++# Part of the long initialization string defines the "DOWN" key to the left ++# of the tab key to send an ESC. The real ESC key is positioned way out ++# in right field. ++# ++# The termcap won't work in 132 column mode due to the way it it moves the ++# cursor. Termcap doesn't have the capability (as far as I could tell) to ++# handle the 721 in 132 column mode. ++# ++# (cdc721: changed :ri: to :sr: -- esr) ++cdc721-esc|Control Data 721, ++ OTbs, OTpt, am, bw, msgr, xon, ++ OTkn#10, cols#80, it#8, lines#30, ++ bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z, ++ cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W, ++ dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW, ++ ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[, ++ is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o, ++ kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q, ++ kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x, ++ kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D, ++ ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^], ++ sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk, ++ smso=^^D, smul=^\, tbc=^^^RY, ++ ++#### Getronics ++# ++# Getronics is a Dutch electronics company that at one time was called ++# `Geveke' and made async terminals; but (according to the company itself!) ++# they've lost all their documentation on the command set. The hardware ++# documentation suggests the terminals were actually manufactured by a ++# Taiwanese electronics company named Cal-Comp. There are known ++# to have been at least two models, the 33 and the 50. ++# ++ ++# The 50 seems to be a top end vt220 clone, with the addition of a higher ++# screen resolution, a larger screen, at least 1 page of memory above and ++# below the screen, apparently pages of memory right and left of the screen ++# which can be panned, and about 75 function keys (15 function keys x normal, ++# shift, control, func A, func B). It also has more setup possibilities than ++# the vt220. The monitor case is dated November 1978 and the keyboard case is ++# May 1982. ++# ++# The vt100 emulation works as is. The entry below describes the rather ++# non-conformant (but more featureful) ANSI mode. ++# ++# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995 ++visa50|geveke visa 50 terminal in ansi 80 character mode, ++ bw, mir, msgr, ++ cols#80, lines#25, ++ acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G, ++ blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H, ++ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, ++ is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h, ++ ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS, ++ kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, ++ kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002, ++ kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007, ++ kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char, ++ lf3=A insert line, lf4=A delete line, lf5=A clear, ++ lf6=A ce of/cf gn, lf7=A print, lf8=A on-line, ++ lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m, ++ rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h, ++ smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, ++ vpa=\E[%i%p1%dd, ++ ++#### Human Designed Systems (Concept) ++# ++# Human Designed Systems ++# 400 Fehley Drive ++# King of Prussia, PA 19406 ++# Vox: (610)-277-8300 ++# Fax: (610)-275-5739 ++# Net: support@hds.com ++# ++# John Martin <john@hds.com> is their termcap expert. They're mostly out of ++# the character-terminal business now (1995) and making X terminals. In ++# particular, the whole `Concept' line described here was discontinued long ++# ago. ++# ++ ++# From: <vax135!hpk> Sat Jun 27 07:41:20 1981 ++# Extensive changes to c108 by arpavax:eric Feb 1982 ++# Some unknown person at SCO then translated it to terminfo. ++# ++# There seem to be a number of different versions of the C108 PROMS ++# (with bug fixes in its Z-80 program). ++# ++# The first one that we had would lock out the keyboard of you ++# sent lots of short lines (like /usr/dict/words) at 9600 baud. ++# Try that on your C108 and see if it sends a ^S when you type it. ++# If so, you have an old version of the PROMs. ++# ++# You should configure the C108 to send ^S/^Q before running this. ++# It is much faster (at 9600 baud) than the c100 because the delays ++# are not fixed. ++# new status line display entries for c108-8p: ++# <is3> - init str #3 - setup term for status display - ++# set programmer mode, select window 2, define window at last ++# line of memory, set bkgnd stat mesg there, select window 0. ++# ++# <tsl> - to status line - select window 2, home cursor, erase to ++# end-of-window, 1/2 bright on, goto(line#0, col#?) ++# ++# <fsl> - from status line - 1/2 bright off, select window 0 ++# ++# <dsl> - disable status display - set bkgnd status mesg with ++# illegal window # ++# ++# There are probably more function keys that should be added but ++# I don't know what they are. ++# ++# No delays needed on c108 because of ^S/^Q handshaking ++# ++c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages, ++ is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n, ++ rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p, ++c108-4p|concept108-4p|concept 108 w/4 pages, ++ OTbs, eslok, hs, xon, ++ pb@, ++ acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M, ++ cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c, ++ cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s, ++ ind=^J, is1=\EK\E!\E F, ++ is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n, ++ rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!, ++ smcup=\EU\Ev 8p\Ep\r\E\025, ++ tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100, ++c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video, ++ rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r, ++ use=c108-rv-4p, ++c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video, ++ flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE, ++ use=c108-4p, ++c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode, ++ cols#132, ++ is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n, ++ smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p, ++ ++# Concept 100: ++# These have only window relative cursor addressing, not screen ++# relative. To get it to work right here, smcup/rmcup (which ++# were invented for the concept) lock you into a one page ++# window for screen style programs. ++# ++# To get out of the one page window, we use a clever trick: ++# we set the window size to zero ("\Ev " in rmcup) which the ++# terminal recognizes as an error and resets the window to all ++# of memory. ++# ++# This trick works on c100 but does not on c108, sigh. ++# ++# Some tty drivers use cr3 for concept, others use nl3, hence ++# the delays on cr and ind below. This padding is only needed at ++# 9600 baud and up. One or the other is commented out depending on ++# local conventions. ++# ++# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe ++# less than 6 but more than 2 will work. ++# ++# Note: can't use function keys f7-f10 because they are ++# indistinguishable from arrow keys (!), also, del char and ++# clear eol use xon/xoff so they probably won't work very well. ++# ++# Also note that we don't define insrt/del char/delline/eop/send ++# because they don't transmit unless we reset them - I figured ++# it was a bad idea to clobber their definitions. ++# ++# The <mc5> sequence changes the escape character to ^^ so that ++# escapes will be passed through to the printer. Only trouble ++# is that ^^ won't be - ^^ was chosen to be unlikely. ++# Unfortunately, if you're sending raster bits through to be ++# plotted, any character you choose will be likely, so we lose. ++# ++# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) ++# cannot be # in is2 because it will hang a c100 with no printer ++# if sent twice. ++c100|concept100|concept|c104|c100-4p|hds concept 100, ++ OTbs, am, eo, mir, ul, xenl, ++ cols#80, lines#24, pb#9600, vt#8, ++ bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r, ++ cub1=^H, cud1=^J, cuf1=\E=, ++ cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;, ++ dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>, ++ ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK, ++ ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>, ++ is1=\EK, ++ is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c, ++ is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_, ++ kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q, ++ kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7, ++ kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?, ++ khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E., ++ kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027, ++ mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI, ++ rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED, ++ rmcup=\Ev $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex, ++ rmso=\Ed, rmul=\Eg, sgr0=\EN@, ++ smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX, ++ smso=\ED, smul=\EG, ++c100-rv|c100-rv-4p|concept100-rv|c100 rev video, ++ cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, ++ smso=\EE, use=c100, ++oc100|oconcept|c100-1p|old 1 page concept 100, ++ in, ++ is3@, use=c100, ++ ++# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996. ++# Lots of notes, originally inline, but ncurses doesn't grok that. ++# ++# am: not available in power on mode, but turned on with \E[=107;207h in ++# is2=. Also, \E=124l in is2= could have been used to prevent needing ++# to specify xenl:, but that would have rendered the last space on the ++# last line useless. ++# bw: Not available in power on mode, but turned on with \E[=107;207h in ++# is2=. ++# clear: Could be done with \E[2J alone, except that vi (and probably most ++# other programs) assume that this also homes the cursor. ++# dsl: Go to window 2, go to the beginning of the line, use a line feed to ++# scroll the window, and go back to window 1. ++# is2: the string may cause a warning to be issued by tic that it ++# found a very long line and that it suspects that a comma is missing ++# somewhere. This warning can be ignored (unless it comes up more than ++# once). The initialization string contains the following commands: ++# ++# [Setup mode items changed from factory defaults:] ++# \E)0 set alternate character set to ++# graphics ++# ^O set character set to default ++# [In case it wasn't] ++# \E[m turn off all attributes ++# [In case they weren't off] ++# \E[=107; cursor wrap and ++# 207h character wrap on ++# \E[90;3u set Fkey definitions to "transmit" ++# defaults ++# \E[92;3u set cursor key definitions to ++# "transmit" defaults ++# \E[43;1u set shift F13 to transmit... ++# \177\E$P\177 ++# \E[44;1u set shift F14 to transmit... ++# \177\E$Q\177 ++# \E[45;1u set shift F15 to transmit... ++# \177\E$R\177 ++# \E[46;1u set shift F16 to transmit... ++# \177\E$S\177 ++# \E[200;1u set shift up to transmit... ++# \177\E$A\177 ++# \E[201;1u set shift down to transmit... ++# \177\E$B\177 ++# \E[202;1u set shift right to transmit... ++# \177\E$C\177 ++# \E[203;1u set shift left to transmit... ++# \177\E$D\177 ++# \E[204;1u set shift home to transmit... ++# \177\E$H\177 ++# \E[212;1u set backtab to transmit... ++# \177\E$I\177 ++# \E[213;1u set shift backspace to transmit... ++# \177\E$^H\177 ++# \E[214;1u set shift del to transmit... ++# "\E$\177" ++# [Necessary items not mentioned in setup mode:] ++# \E[2!w move to window 2 ++# \E[25;25w define window as line 25 of memory ++# \E[!w move to window 1 ++# \E[2*w show current line of window 2 as ++# status line ++# \E[2+x set meta key to use high bit ++# \E[;3+} move underline to bottom of character ++# ++# All Fkeys are set to their default transmit definitions with \E[90;3u ++# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty ++# setting MUST be redefined or deactivated, because the default is ++# contained in almost all of this terminal's Fkey strings! If for some ++# reason "quit" cannot be altered, the Fkeys can, but it would be ++# necessary to change ^| to ^] in all of these definitions, and add ++# \E[2;029!t to is2. ++# lines: is set to 24 because this terminal refuses to treat the 25th ++# line normally. ++# ll: Not available in power on mode, but turned on with \E[=107;207h in ++# is2=. ++# lm: Pointless, given that this definition locks a single screen of ++# memory into view, but what the hey... ++# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any ++# other attributes alone), but some programs expect this to turn off ++# everything. ++# rmul: Could use \E[4!{ to turn off only underline (leaving any other ++# attributes alone), but some programs expect this to turn off ++# everything. ++# sgr: Attributes are set on this terminal with the string \E[ followed by ++# a list of attribute code numbers (in decimal, separated by ++# semicolons), followed by the character m. The attribute code ++# numbers are: ++# 1 for bold; ++# 2 for dim (which is ignored in power on mode); ++# 4 for underline; ++# 5 for blinking; ++# 7 for inverse; ++# 8 for not displayable; and ++# =99 for protected (except that there are strange side ++# effects to protected characters which make them inadvisable). ++# The mapping of terminfo parameters to attributes is as follows: ++# %p1 (standout) = bold and inverse together; ++# %p2 (underline) = underline; ++# %p3 (reverse) = inverse; ++# %p4 (blink) = blinking; ++# %p5 (dim) is ignored; ++# %p6 (bold) = bold; ++# %p7 (invisible) = not displayable; ++# %p8 (protected) is ignored; and ++# %p9 (alt char set) = alt char set. ++# The code to do this is: ++# \E[0 OUTPUT \E[0 ++# %?%p1%p6%O IF (standout; bold) OR ++# %t;1 THEN OUTPUT ;1 ++# %; ENDIF ++# %?%p2 IF underline ++# %t;4 THEN OUTPUT ;4 ++# %; ENDIF ++# %?%p4 IF blink ++# %t;5 THEN OUTPUT ;5 ++# %; ENDIF ++# %?%p1%p3%O IF (standout; reverse) OR ++# %t;7 THEN OUTPUT ;7 ++# %; ENDIF ++# %?%p7 IF invisible ++# %t;8 THEN OUTPUT ;8 ++# %; ENDIF ++# m OUTPUT m ++# %?%p9 IF altcharset ++# %t^N THEN OUTPUT ^N ++# %e^O ELSE OUTPUT ^O ++# %; ENDIF ++# sgr0: Everything is turned off (including alternate character set), since ++# there is no way of knowing what it is that the program wants turned ++# off. ++# smul: The "underline" attribute is reconfigurable to an overline or ++# strikethru, or (as done with \E[;3+} in is2=), to a line at the true ++# bottom of the character cell. This was done to allow for more readable ++# underlined characters, and to be able to distinguish between an ++# underlined space, an underscore, and an underlined underscore. ++# xenl: Terminal can be configured to not need this, but this "glitch" ++# behavior is actually preferable with autowrap terminals. ++# ++# Parameters kf31= thru kf53= actually contain the strings sent by the shifted ++# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2 ++# string modifies the 'O' in kf43 to kf46 to a '$'. ++# ++# kcbt was originally ^I but redefined in is2=. ++# kHOM was \E[H originally but redefined in is2=, as were a number of ++# other keys. ++# kDC was originally \177 but redefined in is2=. ++# ++# kbs: Shift was also ^H originally but redefined as \E$^H in is2=. ++# tsl: Go to window 2, then do an hpa=. ++# ++#------- flash=\E[8;3!}^G\E[3;3!} ++#------- flash=\E[?5h$<100>\E[?5l ++# There are two ways to flash the screen, both of which have their drawbacks. ++# The first is to set the bell mode to video, transmit a bell character, and ++# set the bell mode back - but to what? There is no way of knowing what the ++# user's old bell setting was before we messed with it. Worse, the command to ++# set the bell mode also sets the key click volume, and there is no way to say ++# "leave that alone", or to know what it's set to, either. ++# The second way to do a flash is to set the screen to inverse video, pad for a ++# tenth of a second, and set it back - but like before, there's no way to know ++# that the screen wasn't ALREADY in inverse video, or that the user may prefer ++# it that way. The point is moot anyway, since vi (and probably other ++# programs) assume that by defining flash=, you want the computer to use it ++# INSTEAD of bel=, rather than as a secondary type of signal. ++# ++#------- cvvis=\E[+{ ++# The is the power on setting, which is also as visible as the cursor ++# gets. ++#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw ++# Windowing is possible, but not defined here because it is also used to ++# emulate status line functions. Allowing a program to set a window could ++# clobber the status line or render it unusable. There is additional memory, ++# but screen scroll functions are destructive and do not make use of it. ++# ++#------- dim= Not available in power on mode. ++# You have a choice of defining low intensity characters as "half bright" and ++# high intensity as "normal", or defining low as "normal" and high as "bold". ++# No matter which you choose, only one of either "half bright" or "bold" is ++# available at any time, so taking the time to override the default is ++# pointless. ++# ++#------- prot=\E[=0;99m ++# Not defined, because it appears to have some strange side effects. ++#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; ++#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; ++#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%; ++# Available, but making them available to programs is inadvisable. ++# The code to do this is: ++# %?%p1%{24}%< IF ((key; 24) <; ++# %p1%{30}%> ((key; 30) >; ++# %p1%{54}%< (key; 54) < ++# %A ) AND ++# %O ) OR ++# [that is, "IF key < 24 OR (key > 30 AND key < 54)",] ++# %t\E[ THEN OUTPUT \E[ ++# %p1%d OUTPUT (key) as decimal ++# [next line applies to pfx only] ++# ;1 OUTPUT ;1 ++# u OUTPUT u ++# \177 OUTPUT \177 ++# %p2%s OUTPUT (string) as string ++# \177 OUTPUT \177 ++# [DEL chosen as delimiter, but could be any character] ++# [implied: ELSE do nothing] ++# %; ENDIF ++# ++#------- rs2= ++# Not defined since anything it might do could be done faster and easier with ++# either Meta-Shift-Reset or the main power switch. ++# ++#------- smkx=\E[1!z ++#------- rmkx=\E[!z ++# These sequences apply to the cursor and setup keys only, not to the ++# numeric keypad. But it doesn't matter anyway, since making these ++# available to programs is inadvisable. ++# For the key definitions below, all sequences beginning with \E$ are ++# custom and programmed into the terminal via is2. \E$ also has no ++# meaning to any other terminal. ++# ++#------- cmdch=\E[;%p1%d!t ++# Available, but making it available to programs is inadvisable. ++#------- smxon=\E[1*q ++# Available, but making it available to programs is inadvisable. ++# Terminal will send XON/XOFF on buffer overflow. ++#------- rmxon=\E[*q ++# Available, but making it available to programs is inadvisable. ++# Terminal will not notify on buffer overflow. ++#------- smm=\E[2+x ++#------- rmm=\E[+x ++# Available, but making them available to programs is inadvisable. ++# ++# Printing: ++# It's not made clear in the manuals, but based on other ansi/vt type ++# terminals, it's a good guess that this terminal is capable of both ++# "transparent print" (which doesn't copy data to the screen, and ++# therefore needs mc5i: specified to say so) and "auxilliary print" ++# (which does duplicate printed data on the screen, in which case mc4= ++# and mc5= should use the \E[?4i and \E[?5i strings instead). ++ ++hds200|Human Designed Systems HDS200, ++ am, bw, eslok, hs, km, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, lm#0, ++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, ++ blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{, ++ clear=\E[H\E[J, cnorm=\E[+{, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, 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, ++ dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K, ++ fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ invis=\E[0;8m, ++ is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+}, ++ kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H, ++ kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r, ++ kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ, ++ kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r, ++ kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r, ++ kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r, ++ kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r, ++ kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r, ++ kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r, ++ kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r, ++ kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r, ++ kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r, ++ kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H, ++ kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A, ++ nel=\E[E, rc=\E8, rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, ++ rmso=\E[m\017, rmul=\E[m\017, sc=\E7, ++ sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m, ++ smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG, ++ vpa=\E[%i%p1%dd, use=ansi+pp, ++ ++# <ht> through <el> included to specify padding needed in raw mode. ++# (avt-ns: added empty <acsc> to suppress a tic warning --esr) ++avt-ns|concept avt no status line, ++ OTbs, am, eo, mir, ul, xenl, xon, ++ cols#80, it#8, lines#24, lm#192, ++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ clear=\E[H\E[J$<38>, cnorm=\E[=119l, 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, ++ cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>, ++ dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H, ++ hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>, ++ invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l, ++ is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t, ++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR, ++ kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H, ++ mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ++ pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#, ++ prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ++ ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n, ++ rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{, ++ sc=\E7, ++ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e\016%;$<1>, ++ sgr0=\E[m\016$<1>, 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[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, ++avt-w-ns|concept avt in 132 column mode/no status line, ++ is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w, ++ use=avt-ns, ++avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video, ++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h, ++ smcup=\E[H\E[1;24;1;132w, use=avt-ns, ++ ++# Concept AVT with status line. We get the status line using the ++# "Background status line" feature of the terminal. We swipe the ++# first line of memory in window 2 for the status line, keeping ++# 191 lines of memory and 24 screen lines for regular use. ++# The first line is used instead of the last so that this works ++# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this ++# assumes an 8 page AVT but lm isn't currently used anywhere.) ++# ++avt+s|concept avt status line changes, ++ eslok, hs, ++ lm#191, ++ dsl=\E[0*w, fsl=\E[1;1!w, ++ is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n, ++ rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r, ++ tsl=\E[2;1!w\E[;%p1%dH\E[2K, ++avt|avt-s|concept-avt|avt w/80 columns, ++ use=avt+s, use=avt-ns, ++avt-rv|avt-rv-s|avt reverse video w/sl, ++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h, ++ use=avt+s, use=avt-ns, ++avt-w|avt-w-s|concept avt 132 cols+status, ++ is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w, ++ use=avt+s, use=avt-ns, ++avt-w-rv|avt-w-rv-s|avt wide+status+rv, ++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h, ++ smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns, ++ ++#### Contel Business Systems. ++# ++ ++# Contel c300 and c320 terminals. ++contel300|contel320|c300|Contel Business Systems C-300 or C-320, ++ am, in, xon, ++ cols#80, lines#24, xmc#1, ++ bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, ++ dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>, ++ el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH, ++ hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>, ++ kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD, ++ kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA, ++ rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3, ++# Contel c301 and c321 terminals. ++contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321, ++ flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>, ++ use=contel300, ++ ++#### Data General (dg) ++# ++# According to James Carlson <carlson@xylogics.com> writing in January 1995, ++# the terminals group at Data General was shut down in 1991; all these ++# terminals have thus been discontinued. ++# ++# DG terminals have function keys that respond to the SHIFT and CTRL keys, ++# e.g., SHIFT-F1 generates a different code from F1. To number the keys ++# sequentially, first the unmodified key codes are listed as F1 through F15. ++# Then their SHIFT versions are listed as F16 through F30, their CTRL versions ++# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as ++# F46 through F60. This is done in the private "includes" below whose names ++# start with "dgkeys+". ++# ++# DG terminals generally support 8 bit characters. For each of these terminals ++# two descriptions are supplied: ++# 1) A default description for 8 bits/character communications, which ++# uses the default DG international character set and keyboard codes. ++# 2) A description with suffix "-7b" for 7 bits/character communications. ++# This description must use the NON-DEFAULT native keyboard language. ++ ++# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33), ++# Ctrl/Shift fdkeys (kf34-kf44). ++ ++dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys, ++ ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z, ++ kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C, ++ kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z, ++ kf11=\233011z, kf12=\233012z, kf13=\233013z, ++ kf14=\233014z, kf15=\233000z, kf16=\233101z, ++ kf17=\233102z, kf18=\233103z, kf19=\233104z, ++ kf2=\233002z, kf20=\233105z, kf21=\233106z, ++ kf22=\233107z, kf23=\233108z, kf24=\233109z, ++ kf25=\233110z, kf26=\233111z, kf27=\233112z, ++ kf28=\233113z, kf29=\233114z, kf3=\233003z, ++ kf30=\233100z, kf31=\233201z, kf32=\233202z, ++ kf33=\233203z, kf34=\233204z, kf35=\233205z, ++ kf36=\233206z, kf37=\233207z, kf38=\233208z, ++ kf39=\233209z, kf4=\233004z, kf40=\233210z, ++ kf41=\233211z, kf42=\233212z, kf43=\233213z, ++ kf44=\233214z, kf45=\233200z, kf46=\233301z, ++ kf47=\233302z, kf48=\233303z, kf49=\233304z, ++ kf5=\233005z, kf50=\233305z, kf51=\233306z, ++ kf52=\233307z, kf53=\233308z, kf54=\233309z, ++ kf55=\233310z, kf56=\233311z, kf57=\233312z, ++ kf58=\233313z, kf59=\233314z, kf6=\233006z, ++ kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z, ++ khome=\233H, kprt=\233i, ++ ++dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys, ++ ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z, ++ kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z, ++ kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z, ++ kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z, ++ kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z, ++ kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z, ++ kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z, ++ kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z, ++ kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z, ++ kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z, ++ kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z, ++ kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z, ++ kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z, ++ kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z, ++ kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z, ++ kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z, ++ kf9=\E[009z, khome=\E[H, kprt=\E[i, ++ ++dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys, ++ kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K, ++ kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c, ++ kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r, ++ kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3, ++ kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8, ++ kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#, ++ kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(, ++ kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w, ++ kf8=^^x, kf9=^^y, khome=^H, ++ ++dgkeys+15|Private entry describing 15 DG mode special keys, ++ kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^, ++ kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^}, ++ kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d, ++ kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i, ++ kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s, ++ kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5, ++ kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:, ++ kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!, ++ kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&, ++ kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,, ++ kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x, ++ kf9=^^y, ++ ++# Data General color terminals use the "Tektronix" color model. The total ++# number of colors varies with the terminal model, as does support for ++# attributes used in conjunction with color. ++ ++# Removed u7, u8 definitions since they conflict with tack: ++# Preserve user-defined colors in at least some cases. ++# u7=^^Fh, ++# Default is ACM mode. ++# u8=^^F}20^^Fi^^F}21, ++# ++dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode, ++ bce, ++ colors#16, ncv#53, pairs#256, ++ op=\036Ad\036Bd, ++ setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, ++ setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, ++ setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c, ++ ++dg+fixed|Fixed color info for DG D430C terminals in DG mode, ++ use=dgunix+fixed, ++ ++# Video attributes are coordinated using static variables set by "sgr", then ++# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. ++# (D=dim, U=underline, B=blink, R=reverse.) ++dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode, ++ bce, ++ colors#8, ncv#16, pairs#64, ++ op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m, ++ setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ ++dg+color|Color info for Data General D470C terminals in ANSI mode, ++ colors#16, ncv#53, pairs#256, ++ setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m, ++ use=dg+color8, ++ ++dgmode+color8|Color info for Data General D220/D230C terminals in DG mode, ++ bce, ++ colors#8, ncv#16, pairs#64, ++ op=\036Ad\036Bd, ++ setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c, ++ setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c, ++ setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c, ++ ++dgmode+color|Color info for Data General D470C terminals in DG mode, ++ colors#16, pairs#256, ++ setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, ++ setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c, ++ use=dgmode+color8, ++ ++dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode, ++ bce, ccc, ++ colors#52, ncv#53, pairs#26, ++ initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X, ++ oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00, ++ op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D, ++ scp=\036RG2%p1%02X, ++ ++# Colors are in the order: normal, reverse, dim, dim + reverse. ++dg+ccc|Configurable color info for DG D430C terminals in DG mode, ++ bce, ccc, ++ colors#52, ncv#53, pairs#26, ++ initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c, ++ oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00, ++ op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=, ++ scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c, ++ ++# The generic DG terminal type (an 8-bit-clean subset of the 6053) ++# Initialization string 1 sets: ++# ^R - vertical scrolling enabled ++# ^C - blinking enabled ++dg-generic|Generic Data General terminal in DG mode, ++ am, bw, msgr, xon, ++ cols#80, lines#24, ++ bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X, ++ cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C, ++ mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\, ++ smul=^T, use=dgkeys+11, ++ ++# According to the 4.4BSD termcap file, the dg200 <cup> should be the ++# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap ++# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious, ++# maybe they were originally nuls (which would fit). ++ ++dg200|data general dasher 200, ++ OTbs, am, bw, ++ cols#80, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X, ++ cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J, ++ kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q, ++ kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x, ++ kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U, ++ smso=^^D, smul=^T, ++ ++# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL ++dg210|dg-ansi|Data General 210/211, ++ am, ++ cols#80, lines#24, ++ OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, ++ smso=\E[7;m, smul=\E[4;m, ++# From: Peter N. Wan <ihnp4!gatech!gacsr!wan> ++# courtesy of Carlos Rucalde of Vantage Software, Inc. ++# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover. ++# I suspect the d200 function keys actually work on the dg211, check it out.) ++dg211|Data General d211, ++ cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@, ++ kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L, ++ rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200, ++ ++# dg450 from Cornell (not official) ++dg450|dg6134|data general 6134, ++ cub1@, cuf1=^X, use=dg200, ++ ++# Not official... ++# Note: lesser Dasher terminals will not work with vi because vi insists upon ++# having a command to move straight down from any position on the bottom line ++# and scroll the screen up, or a direct vertical scroll command. The 460 and ++# above have both, the D210/211, for instance, has neither. We must use ANSI ++# mode rather than DG mode because standard UNIX tty drivers assume that ^H is ++# backspace on all terminals. This is not so in DG mode. ++# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the ++# grounds that there is no matching ":ml:" ++dg460-ansi|Data General Dasher 460 in ANSI-mode, ++ OTbs, am, msgr, ul, ++ cols#80, it#8, lines#24, ++ OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, ++ dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ++ ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z, ++ kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z, ++ kf8=\E[009z, kf9=\E[00\:z, khome=\E[H, lf0=f1, lf1=f2, ++ lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, ++ mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05, ++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m, ++ sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR, ++ u7=\E[6n, u8=\E[5n, u9=\E[0n, ++# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official) ++# Data General 605x ++# Ought to work for a Model 6242, Type D210 as well as a 605x. ++# Note that the cursor-down key transmits ^Z. Job control users, beware! ++# This also matches a posted description of something called a `Dasher 100' ++# so there's a dg100 alias here. ++# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr) ++dg6053-old|dg100|data general 6053, ++ OTbs, am, bw, ul, ++ cols#80, lines#24, ++ OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z, ++ cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K, ++ home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X, ++ kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, ++ kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L, ++ rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D, ++ smul=^T, ++ ++# (Some performance can be gained over the generic DG terminal type) ++dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053, ++ xon@, ++ home=^P\0\0, ll=^P\0^W, use=dg-generic, ++ ++# Like 6053, but adds reverse video and more keypad and function keys. ++d200|d200-dg|Data General DASHER D200, ++ bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^], ++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;, ++ sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15, ++ use=dg6053, ++ ++# DASHER D210 series terminals in ANSI mode. ++# Reverse video, no insert/delete character/line, 7 bits/character only. ++# ++# Initialization string 1 sets: ++# <0 - scrolling enabled ++# <1 - blink enabled ++# <4 - print characters regardless of attributes ++d210|d214|Data General DASHER D210 series, ++ am, bw, msgr, xon, ++ cols#80, lines#24, ++ bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M, ++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, ++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K, ++ el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l, ++ ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, ++ sgr=\E[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|%p6%|%t7;%;m, ++ sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b, ++ ++# DASHER D210 series terminals in DG mode. ++# Like D200, but adds clear to end-of-screen and needs XON/XOFF. ++d210-dg|d214-dg|Data General DASHER D210 series in DG mode, ++ xon, ++ ed=^^FF, use=d200-dg, ++ ++# DASHER D211 series terminals in ANSI mode. ++# Like the D210, but with 8-bit characters and local printer support. ++# ++# Initialization string 2 sets: ++# \E[2;1;1;1v ++# 2;1 - 8 bit operations ++# 1;1 - 8 bit (international) keyboard language ++# \E(B - default primary character set (U.S. ASCII) ++# \E)4 - default secondary character set (international) ++# ^O - primary character set ++# ++d211|d215|Data General DASHER D211 series, ++ km, ++ is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b, ++ use=d210, ++ ++# Initialization string 2 sets: ++# \E[2;0;1;0v ++# 2;0 - 7 bit operations ++# 1;0 - 7 bit (native) keyboard language ++# \E(0 - default character set (the keyboard native language) ++# ^O - primary character set ++d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode, ++ km@, ++ is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211, ++ ++# Like the D210 series, but adds support for 8-bit characters. ++# ++# Reset string 2 sets: ++# ^^N - secondary character set ++# ^^FS0> - 8 bit international character set ++# ^^O - primary character set ++# ^^FS00 - default character set (matching the native keyboard language) ++# ++d211-dg|d215-dg|Data General DASHER D211 series in DG mode, ++ km, ++ rs2=\036N\036FS0>\036O\036FS00, use=d210-dg, ++ ++d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode, ++ use=d211-dg, ++ ++# Enhanced DG mode with changes to be more UNIX compatible. ++d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode, ++ mc5i, ++ it#8, ++ acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI, ++ clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA, ++ el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J, ++ is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd, ++ kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB, ++ kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0, ++ mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00, ++ rs2=\036N\036FS0E\036O\036FS00, ++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;, ++ sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11, ++ vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg, ++d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines, ++ lines#25, ++ is3=\036Fz2, use=d216+, ++ ++d217-unix|Data General DASHER D217 in DG-UNIX mode, ++ use=d216-unix, ++d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines, ++ use=d216-unix-25, ++ ++# DASHER D220 color terminal in ANSI mode. ++# Like the D470C but with fewer colors and screen editing features. ++# ++# Initialization string 1 sets: ++# \E[<0;<1;<4l ++# <0 - scrolling enabled ++# <1 - blink enabled ++# <4 - print characters regardless of attributes ++# \E[m - all attributes off ++# Reset string 1 sets: ++# \Ec - initial mode defaults (RIS) ++# ++d220|Data General DASHER D220, ++ mc5i@, ++ dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec, ++ use=dg+color8, use=d470c, ++ ++d220-7b|Data General DASHER D220 in 7 bit mode, ++ mc5i@, ++ dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec, ++ use=dg+color8, use=d470c-7b, ++ ++# Initialization string 3 sets: ++# - default cursor (solid rectangle) ++# Reset string 2 sets: ++# ^^N - secondary character set ++# ^^FS0> - 8 bit international character set ++# ^^O - primary character set ++# ^^FS00 - default character set (matching the native keyboard language) ++# ++d220-dg|Data General DASHER D220 color terminal in DG mode, ++ mc5i@, ++ dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@, ++ rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8, ++ use=d470c-dg, ++ ++# DASHER D230C color terminal in ANSI mode. ++# Like the D220 but with minor ANSI compatibility improvements. ++# ++d230c|d230|Data General DASHER D230C, ++ blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J, ++ rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m, ++ sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;, ++ sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m, ++ smul=\E[4;50m, use=dgkeys+7b, use=d220, ++ ++d230c-dg|d230-dg|Data General DASHER D230C in DG mode, ++ use=d220-dg, ++ ++# DASHER D400/D450 series terminals. ++# These add intelligent features like insert/delete to the D200 series. ++# ++# Initialization string 2 sets: ++# ^^FQ2 - default cursor (solid rectangle) ++# ^^FW - character protection disabled ++# ^^FJ - normal (80 column) mode ++# ^^F\^ - horizontal scrolling enabled (for alignment) ++# ^^FX004? - margins at columns 0 and 79 ++# ^^F] - horizontal scrolling disabled ++# ^^O - primary character set ++# ^^FS00 - default character set (the keyboard native language) ++# - (should reset scrolling regions, but that glitches the screen) ++# Reset string 1 sets: ++# ^^FA - all terminal defaults except scroll rate ++# Reset string 2 sets: ++# ^^F] - horizontal scrolling disabled ++# ^^FT0 - jump scrolling ++# ++d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series, ++ mc5i, ++ acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0, ++ cnorm=\036FQ2, dch1=^^K, dl1=^^FI, ++ enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177, ++ ich1=^^J, il1=^^FH, ++ is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00, ++ ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O, ++ rs1=^^FA, rs2=\036F]\036FT0, ++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;, ++ sgr0=\017\025\035\036E\036O, smacs=^^N, ++ vpa=\020\177%p1%c, use=d210-dg, ++ ++# DASHER D410/D460 series terminals in ANSI mode. ++# These add a large number of intelligent terminal features. ++# ++# Initialization string 1 sets: ++# \E[<0;<1;<2;<4l ++# <0 - scrolling enabled ++# <1 - blink enabled ++# <2 - horizontal scrolling enabled (for alignment) ++# <4 - print characters regardless of attributes ++# \E[5;0v - normal (80 column) mode ++# \E[1;1;80w - margins at columns 1 and 80 ++# \E[1;6;<2h ++# 1 - print all characters even if protected ++# 6 - character protection disabled ++# <2 - horizontal scrolling disabled ++# - (should reset scrolling regions, but that glitches the screen) ++# ++# Initialization string 2 sets: ++# \E[3;2;2;1;1;1v ++# 3;2 - default cursor (solid rectangle) ++# 2;1 - 8 bit operations ++# 1;1 - international keyboard language ++# \E(B - default primary character set (U.S. ASCII) ++# \E)4 - default secondary character set (international) ++# ^O - primary character set ++# ++# Reset string 1 sets: ++# \Ec - initial mode defaults (RIS) ++# \E[<2h - horizontal scrolling disabled ++# ++# Reset string 2 sets: ++# \E[4;0;2;1;1;1v ++# 4;0 - jump scrolling ++# 2;1 - 8 bit operations ++# 1;1 - 8 bit (international) keyboard language ++# \E(B - default primary character set (U.S. ASCII) ++# \E)4 - default secondary character set (international) ++# ++d410|d411|d460|d461|Data General DASHER D410/D460 series, ++ mc5i, ++ acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v, ++ cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ++ is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h, ++ is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i, ++ ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h, ++ rs2=\E[4;0;2;1;1;1v\E(B\E)4, ++ sgr=\E[%?%p1%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5%|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;, ++ sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211, ++ ++# Initialization string 2 sets: ++# \E[3;2;2;0;1;0v ++# 3;2 - default cursor (solid rectangle) ++# 2;0 - 7 bit operations ++# 1;0 - 7 bit (native) keyboard language ++# \E(0 - default character set (the keyboard native language) ++# ^O - primary character set ++# ++# Reset string 2 sets: ++# \E[4;0;2;0;1;0v ++# 4;0 - jump scrolling ++# 2;0 - 7 bit operations ++# 1;0 - 7 bit (native) keyboard language ++# \E(0 - default character set (the keyboard native language) ++# ++d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode, ++ km@, ++ enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O, ++ rs2=\E[4;0;2;0;1;0v\E(0, ++ sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;, ++ sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410, ++ ++d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode, ++ km, ++ enacs@, rmacs=\036FS00, ++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;, ++ sgr0=\017\025\035\036E\036FS00, smacs=\036FS11, ++ use=d400-dg, ++ ++# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode. ++# ++# Initialization string 1 sets: ++# \E[<0;<1;<2;<4l ++# <0 - scrolling enabled ++# <1 - blink enabled ++# <2 - horizontal scrolling enabled (for alignment) ++# <4 - print characters regardless of attributes ++# \E[5;1v - compressed (135 column) mode ++# \E[1;1;126 - margins at columns 1 and 126 ++# \E[1;6;<2h ++# 1 - print all characters even if protected ++# 6 - character protection disabled ++# <2 - horizontal scrolling disabled ++# - (should reset scrolling regions, but that glitches the screen) ++# ++# Reset string 1 sets: ++# \Ec - initial mode defaults (RIS) ++# \E[5;1v - compressed (135 column) mode ++# \E[1;1;126w - margins at columns 1 and 126 ++# \E[<2h - horizontal scrolling disabled ++# ++d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode, ++ cols#126, ++ is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h, ++ rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410, ++ ++d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode, ++ cols#126, ++ is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h, ++ rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b, ++ ++d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode, ++ use=d410-dg, ++ ++# These add intelligent features like scrolling regions. ++d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode, ++ civis=\036FQ0, clear=^^FE, cnorm=\036FQ5, ++ cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI, ++ home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH, ++ is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00, ++ ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I, ++ rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10, ++ vpa=\036FPFF%p1%2.2X, ++ wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X, ++ use=d216+, ++d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode, ++ cols#132, ++ is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00, ++ rs2=\036P@1\036FK\036FX0083, ++ wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X, ++ use=d412-unix, ++d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines, ++ lines#25, ++ is3=\036Fz2, ++ wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X, ++ use=d462+, ++d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line, ++ eslok, hs, ++ clear=\036FG\036PH, fsl=\036F}01\022, ++ is3=\036Fz2\036F}00\036FB180000\036F}01, ll@, ++ tsl=\036F}00\036FP%p1%2.2X18\036PG, ++ wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X, ++ use=d462+, ++ ++# Relative cursor motions are confined to the current window, ++# which is not what the scrolling region specification expects. ++# Thus, relative vertical cursor positioning must be deleted. ++d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region, ++ csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;, ++ cud1@, cuu1@, ll@, use=d462+, ++ ++d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode, ++ use=d412-unix, ++d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode, ++ use=d412-unix-w, ++d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines, ++ use=d412-unix-25, ++d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line, ++ use=d412-unix-s, ++d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region, ++ use=d412-unix-sr, ++ ++d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode, ++ use=d413-unix, ++d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode, ++ use=d413-unix-w, ++d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines, ++ use=d413-unix-25, ++d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line, ++ use=d413-unix-s, ++d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region, ++ use=d413-unix-sr, ++ ++d430c-dg|d430-dg|Data General D430C in DG mode, ++ use=d413-dg, use=dg+fixed, ++d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors, ++ use=d413-dg, use=dg+ccc, ++ ++d430c-unix|d430-unix|Data General D430C in DG-UNIX mode, ++ use=d413-unix, use=dgunix+fixed, ++d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode, ++ use=d413-unix-w, use=dgunix+fixed, ++d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines, ++ use=d413-unix-25, use=dgunix+fixed, ++d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line, ++ use=d413-unix-s, use=dgunix+fixed, ++d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region, ++ use=d413-unix-sr, use=dgunix+fixed, ++d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors, ++ use=d413-unix, use=dgunix+ccc, ++d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors, ++ use=d413-unix-w, use=dgunix+ccc, ++d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors, ++ use=d413-unix-25, use=dgunix+ccc, ++d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors, ++ use=d413-unix-s, use=dgunix+ccc, ++d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors, ++ use=d413-unix-sr, use=dgunix+ccc, ++ ++# DASHER D470C color terminal in ANSI mode. ++# Like the D460 but with 16 colors and without a compressed mode. ++# ++# Initialization string 1 sets: ++# \E[<0;<1;<2;<4l ++# <0 - scrolling enabled ++# <1 - blink enabled ++# <2 - horizontal scrolling enabled (for alignment) ++# <4 - print characters regardless of attributes ++# \E[1;1;80w - margins at columns 1 and 80 ++# \E[1;6;<2h ++# 1 - print all characters even if protected ++# 6 - character protection disabled ++# <2 - horizontal scrolling disabled ++# - (should reset scrolling regions, but that glitches the screen) ++# ++d470c|d470|Data General DASHER D470C, ++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, ++ sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m\E)%?%p9%t6\016%e4\017%;, ++ use=dg+color, use=d460, ++ ++d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode, ++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, ++ sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m%?%p9%t\016%e\017%;, ++ use=dg+color, use=d460-7b, ++ ++# Initialization string 2 sets: ++# ^^FQ2 - default cursor (solid rectangle) ++# ^^FW - character protection disabled ++# ^^F\^ - horizontal scrolling enabled (for alignment) ++# ^^FX004? - margins at columns 0 and 79 ++# ^^F] - horizontal scrolling disabled ++# ^^O - primary character set ++# ^^FS00 - default character set (the keyboard native language) ++# - (should reset scrolling regions, but that glitches the screen) ++# ++d470c-dg|d470-dg|Data General DASHER D470C in DG mode, ++ is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00, ++ use=dgmode+color, use=d460-dg, ++ ++# DASHER D555 terminal in ANSI mode. ++# Like a D411, but has an integrated phone. ++d555|Data General DASHER D555, ++ use=d411, ++d555-7b|Data General DASHER D555 in 7-bit mode, ++ use=d411-7b, ++d555-w|Data General DASHER D555 in wide mode, ++ use=d411-w, ++d555-7b-w|Data General DASHER D555 in wide 7-bit mode, ++ use=d411-7b-w, ++d555-dg|Data General DASHER D555 series in DG mode, ++ use=d411-dg, ++ ++# DASHER D577 terminal in ANSI mode. ++# Like a D411, but acts as a keyboard for serial printers ("KSR" modes). ++d577|Data General DASHER D577, ++ use=d411, ++d577-7b|Data General DASHER D577 in 7-bit mode, ++ use=d411-7b, ++d577-w|Data General DASHER D577 in wide mode, ++ use=d411-w, ++d577-7b-w|Data General DASHER D577 in wide 7-bit mode, ++ use=d411-7b-w, ++ ++d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode, ++ use=d411-dg, ++ ++# DASHER D578 terminal. ++# Like a D577, but without compressed mode; like a D470C in this respect. ++# ++# Initialization string 1 sets: ++# \E[<0;<1;<2;<4l ++# <0 - scrolling enabled ++# <1 - blink enabled ++# <2 - horizontal scrolling enabled (for alignment) ++# <4 - print characters regardless of attributes ++# \E[1;1;80w - margins at columns 1 and 80 ++# \E[1;6;<2h ++# 1 - print all characters even if protected ++# 6 - character protection disabled ++# <2 - horizontal scrolling disabled ++# - (should reset scrolling regions, but that glitches the screen) ++# ++d578|Data General DASHER D578, ++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577, ++d578-7b|Data General DASHER D578 in 7-bit mode, ++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b, ++ ++#### Datamedia (dm) ++# ++# Datamedia was headquartered in Nashua, New Hampshire until it went ++# out of business in 1993, but the ID plates on the terminals referred ++# to the factory in Pennsauken, NJ. The factory was sold to a PCB board ++# manufacturer which threw out all information about the terminals. ++# ++ ++cs10|colorscan|Datamedia Color Scan 10, ++ msgr, ++ cols#80, lines#24, ++ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++cs10-w|Datamedia Color Scan 10 with 132 columns, ++ cols#132, ++ cup=\E[%i%p1%02d;%p2%03dH, use=cs10, ++ ++# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr) ++dm1520|dm1521|datamedia 1520, ++ OTbs, am, xenl, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_, ++ khome=^Y, ++# dm2500: this terminal has both <ich> and <smir>. Applications using ++# termcap/terminfo directly (rather than through ncurses) might be confused. ++dm2500|datamedia2500|datamedia 2500, ++ OTbs, OTnc, ++ cols#80, lines#24, ++ bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\, ++ cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z, ++ dch1=\020\010\030\035$<10*>, ++ dl1=\020\032\030\035$<10*>, el=^W, home=^B, ++ ich1=\020\034\030\035$<10*>, ++ il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377, ++ rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^], ++ smdc=^P, smir=^P, smso=^N, ++# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82) ++# also, has a meta-key. ++# From: <goldberger@su-csli.arpa> ++# (dmchat: ":MT:" changed to ":km:" -- esr) ++dmchat|dmchat version of datamedia 2500, ++ km, ++ dl1=\020\032\030\035$<2/>, ++ il1=\020\n\030\035\030\035$<1*/>, use=dm2500, ++# (dm3025: ":MT:" changed to ":km:" -- esr) ++dm3025|datamedia 3025a, ++ OTbs, km, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, ++ dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK, ++ home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>, ++ is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP, ++ smir=\EP, smso=\EO1, ++dm3045|datamedia 3045a, ++ OTbs, am, eo, km@, ul, xenl, ++ dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA, ++ kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, ++ kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r, ++ khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@, ++ use=dm3025, ++# Datamedia DT80 soft switches: ++# 1 0=Jump 1=Smooth ++# Autorepeat 0=off 1=on ++# Screen 0=Dark 1=light ++# Cursor 0=u/l 1=block ++# ++# 2 Margin Bell 0=off 1=on ++# Keyclick 0=off 1=on ++# Ansi/VT52 0=VT52 1=Ansi ++# Xon/Xoff 0=Off 1=On ++# ++# 3 Shift3 0=Hash 1=UK Pound ++# Wrap 0=Off 1=On ++# Newline 0=Off 1=On ++# Interlace 0=Off 1=On ++# ++# 4 Parity 0=Odd 1=Even ++# Parity 0=Off 1=On ++# Bits/Char 0=7 1=8 ++# Power 0=60Hz 1=50Hz ++# ++# 5 Line Interface 0=EIA 1=Loop ++# Aux Interface 0=EIA 1=Loop ++# Local Copy 0=Off 1=On ++# Spare ++# ++# 6 Aux Parity 0=Odd 1=Even ++# Aux Parity 0=Off 1=On ++# Aux Bits/Char 0=7 1=8 ++# CRT Saver 0=Off 1=On ++# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding. ++dm80|dmdt80|dt80|datamedia dt80/1, ++ clear=\E[2J\E[H, cud1=^J, cuf1=\E[C, ++ cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM, ++ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++ use=vt100, ++# except in 132 column mode, where it needs a little padding. ++# This is still less padding than the vt100, and you can always turn on ++# the ^S/^Q handshaking, so you can use vt100 flavors for things like ++# reverse video. ++dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode, ++ cols#132, ++ clear=\E[H\E[2J$<50/>, cud1=^J, ++ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>, ++ ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80, ++# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 ++dt80-sas|Datamedia DT803/DTX for SAS usage, ++ am, bw, ++ cols#80, lines#24, ++ acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~, ++ bel=^G, clear=^L, cr=^M, ++ csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2, ++ cub1=^H, cud1=\EB, cuf1=^\, ++ cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K, ++ el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB, ++ is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J, ++ kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N, ++ rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF, ++ smso=\E$2\004, tbc=\E'0, ++ ++# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL ++# These aren't end-all Excel termcaps; but do insert/delete char/line ++# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman) ++# The naming convention has been bent somewhat, with the use of E? (where ++# E is for 'Excel') as # a name. This was done to distinguish the entries ++# from the other Datamedias in use here, and yet to associate a model of ++# the Excel terminals with the regular datamedia terminals that share ++# major characteristics. ++excel62|excel64|datamedia Excel 62, ++ dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv, ++ kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h, ++ use=dt80, ++excel62-w|excel64-w|datamedia Excel 62 in 132 char mode, ++ dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv, ++ kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h, ++ use=dt80w, ++excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode, ++ dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J, ++ kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, ++ smir=\E[4h, use=dt80, ++ ++#### Falco ++# ++# Falco Data Products ++# 440 Potrero Avenue ++# Sunnyvale, CA 940864-196 ++# Vox: (800)-325-2648 ++# Fax: (408)-745-7860 ++# Net: techsup@charm.sys.falco.com ++# ++# Current Falco models as of 1995 are generally ANSI-compatible and support ++# emulations of DEC VT-series, Wyse, and Televideo types. ++# ++ ++# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info ++# This terminal was released around 1983 and was discontinued long ago. ++# The standout and underline highlights are the same. ++falco|ts1|ts-1|falco ts-1, ++ OTbs, am, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE, ++ ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, ++ kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, ++ smir=\Eq, smso=\Eg1, smul=\Eg1, ++falco-p|ts1p|ts-1p|falco ts-1 with paging option, ++ OTbs, am, da, db, mir, msgr, ul, ++ cols#80, it#8, lines#24, ++ bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A, ++ dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I, ++ il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er, ++ rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq, ++ smso=\Eg4, smul=\Eg1, ++# (ts100: I added <rmam>/<smam> based on the init string -- esr) ++ts100|ts100-sp|falco ts100-sp, ++ am, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, ++ clear=\E[H\E[J$<50>, 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$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, ++ cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>, ++ el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ++ ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, ++ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, ++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, ++ smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, ++ use=vt100+fnkeys, ++ts100-ctxt|falco ts-100 saving context, ++ rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100, ++ ++#### Florida Computer Graphics ++# ++ ++# Florida Computer Graphics Beacon System, using terminal emulator program ++# "host.com", as provided by FCG. This description is for an early release ++# of the "host" program. Known bug: <ed> clears the whole screen, so it's ++# commented out. ++ ++# From: David Bryant <cbosg!djb> 1/7/83 ++beacon|FCG Beacon System, ++ am, da, db, ++ cols#80, lines#32, ++ bel=\ESTART\r\E37\r\EEND\r$<1>, ++ blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M, ++ cub1=^H, cud1=^J, cuf1=\EV, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU, ++ dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE, ++ ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=, ++ rmso=\ESTART\r\E70\,0\r\EEND\r$<20>, ++ rmul=\ESTART\r\E60\,0\r\EEND\r, ++ sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>, ++ smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>, ++ smso=\ESTART\r\E70\,6\r\EEND\r$<20>, ++ smul=\ESTART\r\E60\,1\r\EEND\r, ++ ++#### Fluke ++# ++ ++# The f1720a differences from ANSI: no auto margin, destructive ++# tabs, # of lines, funny highlighting and underlining ++f1720|f1720a|fluke 1720A, ++ xt, ++ cols#80, lines#16, xmc#1, ++ bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, ++ el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^], ++ kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m, ++ smso=\E[7m, smul=\E[4m, ++ ++#### Liberty Electronics (Freedom) ++# ++# Liberty Electronics ++# 48089 Fremont Blvd ++# Fremont CA 94538 ++# Vox: (510)-623-6000 ++# Fax: (510)-623-7021 ++ ++# From: <faletti@berkeley.edu> ++# (f100: added empty <acsc> to suppress a tic warning; ++# made this relative to adm+sgr -- note that <invis> isn't ++# known to work for f100 but does on the f110. --esr) ++f100|freedom|freedom100|freedom model 100, ++ OTbs, am, bw, hs, mir, msgr, xon, ++ cols#80, lines#24, ++ acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET, ++ flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c, ++ ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>, ++ is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, ++ kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, ++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er, ++ smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef, ++ vpa=\E[%p1%{32}%+%c, use=adm+sgr, ++f100-rv|freedom-rv|freedom 100 in reverse video, ++ flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100, ++# The f110 and f200 have problems with vi(1). They use the ^V ++# code for the down cursor key. When kcud1 is defined in terminfo ++# as ^V, the Control Character Quoting capability (^V in insert mode) ++# is lost! It cannot be remapped in vi because it is necessary to enter ++# a ^V to to quote the ^V that is being remapped!!! ++# ++# f110/f200 users will have to decide whether ++# to lose the down cursor key or the quoting capability. We will opt ++# initially for leaving the quoting capability out, since use of VI ++# is not generally applicable to most interactive applications ++# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr) ++f110|freedom110|Liberty Freedom 110, ++ bw@, eslok, ++ it#8, wsl#80, ++ blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V, ++ dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE, ++ ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, ++ kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ++ ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq, ++ smso=\EG<, tsl=\Ef, use=f100, ++f110-14|Liberty Freedom 110 14inch, ++ dch1@, use=f110, ++f110-w|Liberty Freedom 110 - 132 cols, ++ cols#132, use=f110, ++f110-14w|Liberty Freedom 110 14in/132 cols, ++ cols#132, ++ dch1@, use=f110, ++# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) ++f200|freedom200|Liberty Freedom 200, ++ OTbs, am, eslok, hs, mir, msgr, xon, ++ cols#80, it#8, lines#24, wsl#80, ++ acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0, ++ clear=^Z, cnorm=\E.1, cr=^M, ++ csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, ++ flash=\Eo$<200/>\En, fsl=^M, home=^^, ++ hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H, ++ kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, ++ kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, ++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ++ ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<, ++ tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr, ++f200-w|Liberty Freedom 200 - 132 cols, ++ cols#132, use=f200, ++# The f200 has the ability to reprogram the down cursor key. The key is ++# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM, ++# so powering the terminal off and on will not cause the change to be lost. ++f200vi|Liberty Freedom 200 for vi, ++ flash=\Eb$<200/>\Ed, kcud1=^J, use=f200, ++f200vi-w|Liberty Freedom 200 - 132 cols for vi, ++ cols#132, use=f200vi, ++ ++#### GraphOn (go) ++# ++# Graphon Corporation ++# 544 Division Street ++# Campbell, CA 95008 ++# Vox: (408)-370-4080 ++# Fax: (408)-370-5047 ++# Net: troy@graphon.com (Troy Morrison) ++# ++# ++# The go140 and go225 have been discontinued. GraphOn now makes X terminals, ++# including one odd hybrid that starts out life on power-up as a character ++# terminal, than can be switched to X graphics mode (driven over the serial ++# line) by an escape sequence. No info on this beast yet. ++# (go140: I added <rmam>/<smam> based on the init string -- esr) ++go140|graphon go-140, ++ OTbs, ++ cols#80, it#8, lines#24, ++ clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, ++ ed=\E[J$<10/>, el=\E[K, ht=^I, ++ if=/usr/share/tabset/vt100, il1=\E[L, ++ is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, ++ rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++go140w|graphon go-140 in 132 column mode, ++ am, ++ cols#132, ++ is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q, ++ use=go140, ++# Hacked up vt200 termcap to handle GO-225/VT220 ++# From: <edm@nwnexus.WA.COM> ++# (go225: I added <rmam>/<smam> based on the init string -- esr) ++go225|go-225|Graphon 225, ++ OTbs, am, mir, xenl, ++ cols#80, it#8, lines#25, vt#3, ++ blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, ++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, 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, il1=\E[L, ind=\ED, ++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m, ++ rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l, ++ rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>, ++ rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w, ++ sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r, ++ smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, ++ ++#### Harris (Beehive) ++# ++# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine. ++# Their terminal group is ancient history now (1995) though the parent ++# company is still in business. ++# ++ ++# Beehive documentation is undated and marked Preliminary and has no figures ++# so we must have early Superbee2 (Model 600, according to phone conversation ++# with mfr.). It has proved reliable except for some missing padding ++# (notably after \EK and <nl> at bottom of screen). ++# ++# The key idea is that AEP mode is poison for <cup> & that US's in ++# the local memory should be avoided like the plague. That means ++# that the 2048 character local buffer is used as 25 lines of 80 ++# characters, period. No scrolling local memory, folks. It also ++# appears that we cannot use naked INS LINE feature since it uses ++# US. The sbi fakes <il1> with an 80-space insert that may be too ++# slow at low speeds; also spaces get converted to \040 which is ++# too long for some programs (not vi). DEL LINE is ok but slow. ++# ++# The <nl> string is designed for last line of screen ONLY; cup to ++# 25th line corrects the motion inherent in scrolling to Page 1. ++# ++# There is one understood bug. It is that the screen appears to ++# pop to a new (blank) page after a <nel>, or leave a half-line ++# ellipsis to a quad that is the extra 48 memory locations. The ++# data received is dumped into memory but not displayed. Not to ++# worry if <cup> is being used; the lines not displayed will be, ++# whenever the cursor is moved up there. Since <cup> is addressed ++# relative to MEMORY of window, nothing is lost; but beware of ++# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended, ++# therefore, is setenv MORE -c . ++# ++# WARNING: Not all features tested. ++# ++# Timings are assembled from 3 sources. Some timings may reflect ++# SB2/Model 300 that were used if more conservative. ++# Tested on a Model 600 at 1200 and 9600 bd. ++# ++# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly ++# placed on the keyboard and useless because of AEP, is made ++# into a backspace key. In use ESC must be pressed twice (to send) ++# and sending ^C must be prefixed by ESC to avoid that weird ++# transmit mode associated with ENTER key. ++# ++# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across ++# the screen, then it has dropped into ENTER mode; hit ++# RESET--ONLINE--!tset. ++# ++# As delivered this machine has a FATAL feature that will throw ++# it into that strange transmit state (SPOW) if the space bar is ++# hit after a CR is received, but before receiving a LF (or a ++# few others). ++# ++# The circuits MUST be modified to eliminate the SPOW latch. ++# This is done by strapping on chip A46 of the I/O board; cut ++# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that ++# chip. This mod has been checked out on a Mod 600 of Superbee II. ++# With this modification absurdly high timings on cr are ++# unnecessary. ++# ++# NOTE WELL that the rear panel switch should be set to CR/LF, ++# not AEP! ++# ++sb1|beehive superbee, ++ OTbs, am, bw, da, db, mir, ul, xsb, ++ cols#80, lines#25, xmc#1, ++ bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r, ++ cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d, ++ cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, ++ el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1, ++ il1=\EN\EL$<3>\EQ \EP$<3> \EO\ER\EA$<3>, ++ ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK, ++ kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, ++ kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO, ++ krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER, ++ rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO, ++ smso=\E_1, smul=\E_0, tbc=\E3, ++sbi|superbee|beehive superbee at Indiana U., ++ xsb, ++ cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA, ++ use=sb1, ++# Alternate (older) description of Superbee - f1=escape, f2=^C. ++# Note: there are at least 3 kinds of superbees in the world. The sb1 ++# holds onto escapes and botches ^C's. The sb2 is the best of the 3. ++# The sb3 puts garbage on the bottom of the screen when you scroll with ++# the switch in the back set to CRLF instead of AEP. This description ++# is tested on the sb2 but should work on all with either switch setting. ++# The f1/f2 business is for the sb1 and the <xsb> can be taken out for ++# the other two if you want to try to hit that tiny escape key. ++# This description is tricky: being able to use cup depends on there being ++# 2048 bytes of memory and the hairy <nl> string. ++superbee-xsb|beehive super bee, ++ am, da, db, xsb, ++ cols#80, it#8, lines#25, ++ clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J, ++ cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>, ++ dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>, ++ home=\EH, ht=^I, hts=\E1, ++ ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq, ++ kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, ++ khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3, ++# This loses on lines > 80 chars long, use at your own risk ++superbeeic|super bee with insert char, ++ ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb, ++sb2|sb3|fixed superbee, ++ xsb@, use=superbee, ++ ++#### Beehive Medical Electronics ++# ++# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999): ++# Regarding your question though; Beehive terminals weren't made by Harris. ++# They were made by Beehive Medical Electronics in Utah. They went out of ++# business in the early '80s. ++# ++# (OK, then, I don't know why a couple of these say "harris beehive".) ++# ++ ++# Reports are that most of these Beehive entries (except superbee) have not ++# been tested and do not work right. <rmso> is a trouble spot. Be warned. ++ ++# (bee: <ich1> was empty, which is obviously bogus -- esr) ++beehive|bee|harris beehive, ++ OTbs, am, mir, ++ cols#80, lines#24, ++ cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC, ++ cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP, ++ dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>, ++ kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL, ++ krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@, ++ smir=\EQ, smso=\EdP, smul=\Ed`, ++# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs. ++# good grief - does this entry make :sg:/:ug: when it doesn't have to? ++# look at those spaces in <rmso>/<smso>. Seems strange to me... ++# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you ++# really care, cook up one using ^F -- esr) ++beehive3|bh3m|beehiveIIIm|harris beehive 3m, ++ OTbs, am, ++ cols#80, it#8, lines#20, ++ bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K, ++ dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F, ++ il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s, ++beehive4|bh4|beehive 4, ++ am, ++ cols#80, lines#24, ++ bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC, ++ cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J, ++# There was an early Australian kit-built computer called a "Microbee". ++# It's not clear whether this is for one of those or for a relative ++# of the Beehive. ++microb|microbee|micro bee series, ++ OTbs, am, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, ++ el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, ++ kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, ++ kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@, ++ rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`, ++ ++# 8675, 8686, and bee from Cyrus Rahman ++# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr) ++ha8675|harris 8675, ++ is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F, ++ kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei, ++ kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H, ++ kf8=\177, kf9=\Ee, use=bee, ++# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation ++# in :is: -- esr) ++ha8686|harris 8686, ++ is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#, ++ kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003, ++ kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003, ++ kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003, ++ kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(, ++ use=bee, ++ ++#### Hazeltine ++# ++# Hazeltine appears to be out of the terminal business as of 1995. These ++# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with ++# Harris. They have a hazeltine.com domain (but no web page there ) and can ++# be reached at: ++# ++# Hazeltine ++# 450 East Pulaski Road ++# Greenlawn, New York 11740 ++# ++# As late as 1993, manuals for the terminal product line could still be ++# purchased from: ++# ++# TRW Customer Service Division ++# 15 Law Drive ++# P.O. Box 2076 ++# Fairfield, NJ 07007-2078 ++# ++# They're now (1998) a subsidiary of General Electric, operating under the ++# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page ++# at <http://www.gec.com/cpd/1ncpd.htm#1.55>. ++# ++ ++# Since <cuf1> is blank, when you want to erase something you ++# are out of luck. You will have to do ^L's a lot to ++# redraw the screen. h1000 is untested. It doesn't work in ++# vi - this terminal is too dumb for even vi. (The code is ++# there but it isn't debugged for this case.) ++hz1000|hazeltine 1000, ++ OTbs, ++ cols#80, lines#12, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K, ++ ind=^J, ++# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981 ++hz1420|hazeltine 1420, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P, ++ cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S, ++ ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y, ++ smso=\E^_, ++# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents ++# freakout with out-of-range args and tn3270. No hz since it needs to ++# receive tildes. ++hz1500|hazeltine 1500, ++ OTbs, am, hz, ++ cols#80, lines#24, ++ bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P, ++ cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c, ++ cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R, ++ il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P, ++ kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_, ++# h1510 assumed to be in sane escape mode. Else use h1500. ++# (h1510: early versions of this entry apparently had "<rmso=\E^_>, ++# <smso=\E^Y>, but these caps were commented out in 8.3; also, ++# removed incorrect and overridden ":do=^J:" -- esr) ++hz1510|hazeltine 1510, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P, ++ cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X, ++ el=\E^O, il1=\E^Z, ind=^J, ++# Hazeltine 1520 ++# The following switch settings are assumed for normal operation: ++# FULL CR U/L_CASE ESCAPE ++# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON ++# Other switches may be set for operator convenience or communication ++# requirements. ++hz1520|Hazeltine 1520, ++ OTbs, am, bw, msgr, ++ cols#80, lines#24, ++ bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ++ ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H, ++ kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, ++ kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z, ++ rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_, ++# This version works with the escape switch off ++# (h1520: removed incorrect and overridden ":do=^J:" -- esr) ++hz1520-noesc|hazeltine 1520, ++ am, hz, ++ cols#80, lines#24, ++ bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P, ++ cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O, ++ home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_, ++# Note: the h1552 appears to be the first Hazeltine terminal which ++# is not braindamaged. It has tildes and backprimes and everything! ++# Be sure the auto lf/cr switch is set to cr. ++hz1552|hazeltine 1552, ++ OTbs, ++ cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue, ++ lf2=red, lf3=green, use=vt52, ++hz1552-rv|hazeltine 1552 reverse video, ++ cud1=^J, rmso=\ET, smso=\ES, use=hz1552, ++# Note: h2000 won't work well because of a clash between upper case and ~'s. ++hz2000|hazeltine 2000, ++ OTbs, OTnc, am, ++ cols#74, lines#27, ++ bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J, ++ cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R, ++ il1=~\032$<6>, ind=^J, pad=\177, ++# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote: ++# I tested this termcap entry for the Hazeltine Esprit with vi. It seems ++# to work ok. There is one problem though if one types a lot of garbage ++# characters very fast vi seems not able to keep up and hangs while trying ++# to insert. That's in insert mode while trying to insert in the middle of ++# a line. It might be because the Esprit doesn't have insert char and delete ++# char as a built in function. Vi has to delete to end of line and then ++# redraw the rest of the line. ++esprit|Hazeltine Esprit I, ++ OTbs, am, bw, ++ cols#80, lines#24, ++ bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, ++ cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ++ ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H, ++ kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J, ++ kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J, ++ kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R, ++ lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9, ++ rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_, ++esprit-am|hazeltine esprit auto-margin, ++ am, use=esprit, ++# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL ++# Vi it seems always wants to send a control J for "do" and it turned out ++# that the terminal would work somewhat if the auto LF/CR was turned off. ++# (hmod1: removed :dn=~^K: -- esr) ++hmod1|Hazeltine Modular 1, ++ OTbs, am, hz, ++ cols#80, lines#24, ++ bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P, ++ cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z, ++ ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R, ++ rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_, ++# ++# Hazeltine Executive 80 Model 30 (1554?) ++# from Will Martin <control@ALMSA-1.ARPA> via BRL ++# Like VT100, except for different "am" behavior. ++hazel|exec80|h80|he80|Hazeltine Executive 80, ++ OTbs, OTpt, am, ++ cols#80, it#8, lines#24, vt#3, ++ OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>, ++ clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr, ++ cub1=^H, cud1=^J, cuf1=\E[C$<2/>, ++ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>, ++ ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I, ++ is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB, ++ kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, ++ kf4=\EOS, rc=\E8, rev=\E[7m$<2/>, ++ rf=/usr/share/tabset/vt100, ri=\EM$<5/>, ++ rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>, ++ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>, ++ smul=\E[4m$<2/>, ++ ++#### IBM ++# ++ ++ibm327x|line mode IBM 3270 style, ++ gn, ++ clear=^M^J, el=^M, home=^M, ++ ++ibm3101|i3101|IBM 3101-10, ++ OTbs, am, xon, ++ cols#80, lines#24, ++ bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, ++ el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH, ++ibm3151|IBM 3151 display, ++ is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B, ++ sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;, ++ sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162, ++# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 ++# removed kend, knp, kpp -TD ++ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display, ++ OTbs, am, mir, msgr, ++ cols#80, it#8, lines#24, ++ acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370, ++ bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED, ++ cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J, ++ invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ, ++ kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r, ++ kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r, ++ kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r, ++ kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r, ++ kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r, ++ kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r, ++ kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN, ++ ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A, ++ rmso=\E4@, rmul=\E4@, ++ sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;, ++ sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B, ++ ++ibm3161-C|IBM 3161-C NLS terminal using cartridge, ++ rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161, ++ibm3162|IBM 3162 display, ++ blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a, ++ rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a, ++ use=ibm3161-C, ++ ++# This really should not use setab/setaf, but it is clear that the ++# original terminfo does not toggle red/blue colors as in setb/setf. ++ibm3164|i3164|IBM 3164, ++ msgr, ++ colors#8, pairs#64, ++ op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A, ++ setab=\E4 %p1%{64}%+%c, ++ setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@, ++ smcup=\E!9/N\E>B, use=ibm3161, ++ ++ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display, ++ am, bw, msgr, xon, ++ cols#80, it#8, lines#25, ++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, ++ 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, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ++ hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S, ++ indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z, ++ kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q, ++ kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q, ++ kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q, ++ kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q, ++ kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q, ++ kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q, ++ kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q, ++ kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q, ++ kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q, ++ kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q, ++ kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q, ++ kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q, ++ krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l, ++ rmso=\E[m, rmul=\E[m, rs2=\Ec, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m, ++ sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++ ++ibmaed|IBM Experimental display, ++ OTbs, am, eo, msgr, ++ cols#80, it#8, lines#52, ++ clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ, ++ dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP, ++ il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ rmso=\E0, sgr0=\E0, smso=\E0, ++ibm-apl|apl|IBM apl terminal simulator, ++ lines#25, use=dm1520, ++# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. ++# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr) ++ibmmono|IBM workstation monochrome, ++ eslok, hs, ++ bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL, ++ invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET, ++ kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY, ++ khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG, ++ lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew, ++ sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo, ++ use=ibm3101, ++ibmega|IBM Enhanced Color Display, ++ cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ++ nel=^M^J, use=ibmmono, ++# This color scheme is assumed in some recent IBM terminal descriptions ++# (green on black, emulated on a 16-color terminal). ++ibm+color|IBM color definitions, ++ colors#8, ncv#3, pairs#64, ++ op=\E[32m\E[40m, ++ setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;, ++ setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;, ++ibm+16color|IBM aixterm color definitions, ++ colors#16, pairs#256, ++ setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm, ++ setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm, ++ setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, ++ setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, ++ibm5154|IBM 5154 Color display, ++ colors#8, ncv@, pairs#64, ++ bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151, ++ use=ibm+color, ++ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline, ++ rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;, ++ use=ibmmono, ++ibmvga-c|IBM VGA display color termcap, ++ cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ++ nel=^M^J, use=ibmega-c, ++ibmvga|IBM VGA display, ++ cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ++ nel=^M^J, use=ibmega, ++# ibmapa* and ibmmono entries come from ACIS 4.3 distribution ++rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display, ++ lines#32, ++ dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono, ++ibm6155|IBM 6155 Black & White display, ++ blink@, bold@, use=ibm5151, ++# Advanced Monochrome (6153) and Color (6154) Graphics Display: ++ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display, ++ lines#31, ++ dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono, ++ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display, ++ lines#31, ++ dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, ++ use=ibmega-c, ++ibm6154|IBM 6154 Color displays, ++ blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m, ++ sgr0=\E[0;10m, use=ibm5154, ++ibm6153|IBM 6153 Black & White display, ++ blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m, ++ sgr0=\E[0;10m, use=ibm5151, ++ibm6153-90|IBM 6153 Black & White display, ++ cols#90, lines#36, ++ blink@, bold@, use=ibm5151, ++ibm6153-40|IBM 6153 Black & White display, ++ cols#40, lines#12, use=ibm6153-90, ++ibm8512|ibm8513|IBM color VGA Terminal, ++ am, mir, msgr, ++ cols#80, it#8, lines#25, ++ acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m, ++ clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL, ++ il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A, ++ kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, ++ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, ++ kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m, ++ rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l, ++ rmir=\E[4l, rmso=\E[m, rmul=\E[m, ++ rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m, ++ smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb, ++ smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++ use=ibm8503, ++hft-c|HFT with Color, ++ colors#8, pairs#64, ++ acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B, ++ use=ibm5151, use=ibm+color, ++hft-c-old|HFT with Color PC850, ++ colors#8, pairs#64, ++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151, ++ use=ibm+color, ++hft-old|AIWS High Function Terminal, ++ am, xon, ++ cols#80, lines#25, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, ++ cub1=^H, cud1=^J, 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, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q, ++ kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q, ++ kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q, ++ ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color, ++ibm-system1|system1|ibm system/1 computer, ++ am, xt, ++ cols#80, lines#24, ++ bel=^G, clear=^Z, cub1=^H, cuf1=^\, ++ cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K, ++ ind=^J, ++# lft-pc850 : IBM Low Function Terminal Device ++# lft "supports" underline, bold, and blink in the sense that the lft code ++# sets all the right bits. HOWEVER, depending upon the adapter, these ++# attributes may or may not be supported by the device driver. ++lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device, ++ am, bw, msgr, xon, ++ cols#80, it#8, lines#25, ++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, ++ cr=^M, 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, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K, ++ home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL, ++ il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, ++ kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, ++ kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q, ++ kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, ++ kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, ++ kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, ++ kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, ++ kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, ++ kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, ++ kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, ++ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, ++ kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q, ++ kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q, ++ kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT, ++ rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, ++# "Megapel" refers to the display adapter, which was used with the IBM RT ++# aka IBM 6150. ++ibm5081|hft|IBM Megapel Color display, ++ acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B, ++ s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154, ++ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display, ++ eslok, hs, ++ lines#33, ++ dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo, ++ use=ibmega-c, ++ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display, ++ use=hft-c, ++ibm8514|IBM 8514/a color VGA display, ++ eslok, hs, ++ dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft, ++ibm8514-c|IBM 8514 color display with standout and underline, ++ eslok, hs, ++ lines#41, ++ cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J, ++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo, ++ use=ibmega-c, ++ + # +-# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) => +-# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17)) ++# AIX entries. IBM ships these with AIX 3.2.5. ++# -- added rc, sc based on manpage -TD ++# Note that we could use ibm+16color, but that is not how IBM defines this one. ++aixterm|IBM Aixterm Terminal Emulator, ++ eslok, hs, ++ acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E, ++ fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, ++ sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154, ++aixterm-m|IBM AIXterm Monochrome Terminal Emulator, ++ eslok, hs, ++ acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E, ++ fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, ++ sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153, ++aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator, ++ eslok, hs, ++ bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, ++ tsl=\E[?%p1%dT, use=ibm6153, ++jaixterm|IBM Kanji Aixterm Terminal Eemulator, ++ acsc@, use=aixterm, ++jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator, ++ acsc@, use=aixterm-m, ++ ++# This flavor is adapted from xterm, in turn from aixterm documentation -TD ++aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors, ++ use=ibm+16color, use=aixterm, ++ ++#### Infoton/General Terminal Corp. + # +-# Where: P1 <==> Standout attribute parameter +-# P2 <==> Underline attribute parameter +-# P3 <==> Reverse attribute parameter +-# P4 <==> Blink attribute parameter +-# P5 <==> Dim attribute parameter +-# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO. +-ncr7900i|ncr7900|ncr 7900 model 1, +- am, bw, ul, +- cols#80, lines#24, xmc#1, +- bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F, +- cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J, +- is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F, +- kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@, +- rmul=\E0@, +- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c, +- sgr0=\E0@, smso=\E0Q, smul=\E0`, +-ncr7900iv|ncr 7900 model 4, +- am, bw, eslok, hs, ++ ++# gt100 sounds like something DEC would come out with. Let's hope they don't. ++i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100), ++ OTbs, am, + cols#80, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, +- cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1, +- fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H, +- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, +- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, +- khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J, +- tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo, +-# Warning: This terminal will lock out the keyboard when it receives a CTRL-D. +-# The user can enter a CTRL-B to get out of this locked state. +-# In <hpa>, we want to output the character given by the formula: +-# ((col / 10) * 16) + (col % 10) where "col" is "p1" +-ncr7901|ncr 7901 model, +- am, bw, ul, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM, ++ ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL, ++ ind=^J, rmso=\Ea, smso=\Eb, ++i400|infoton 400, ++ OTbs, am, ++ cols#80, lines#25, ++ bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A, ++ dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N, ++ il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q, ++# (addrinfo: removed obsolete ":bc=^Z:" -- esr) ++addrinfo, ++ am, + cols#80, lines#24, +- bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M, +- cub1=^H, cud1=^J, cuf1=^F, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A, +- ed=\Ek, el=\EK, +- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J, +- is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, +- khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O, +- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016, +- sgr0=^O, smso=\E0Q\016, smul=\E0`\016, +- vpa=\013%p1%{64}%+%c, ++ bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, ++ cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\, ++# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr) ++infoton, ++ am, ++ cols#80, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\, ++ ed=^K, ind=^J, ll=^H^\, + +-# Newbury Data Recording Limited (Newbury Data) ++# The ICL6402 was actually the Kokusai Display System 6402. ++# The 6404 was the KDS7372 (color version of the 6402). + # +-# Have been manufacturing and reselling various peripherals for a long time +-# They don't make terminals anymore, but are still in business (in 2007). +-# Their e-mail address is at ndsales@newburydata.co.uk +-# and their post address is: ++# ICL6404 control codes follow: + # +-# Newbury Data Recording Ltd, +-# Premier Park, Road One, +-# Winsford, Cheshire, CW7 3PT ++#code function ++#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++#ctrl-A set SOM position at cursor position ++#ctrl-G Bell ++#ctrl-H Backspace ++#ctrl-I Horiz tab ++#ctrl-J Linefeed ++#ctrl-K Cursor up ++#ctrl-L Cursor right ++#ctrl-M Carriage return ++#ctrl-N Disable xon/xoff to host ++#ctrl-O Enable xon/xoff to host ++#ctrl-R Enable bidirectional mode ++#ctrl-T Disable bidirectional mode ++#ctrl-V Cursor down ++#ctrl-Z Clear unprotected data to insert char ++#ctrl-^ Cursor home ++#ctrl-_ Newline + # +-# Their technical support is still good, they sent me for free a printed copy +-# of the 9500 user manual and I got it just 1 week after I first contacted them +-# (in 2005)! +- +-# NDR 9500 +-# Manufactured in the early/mid eighties, behaves almost the same as a +-# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but +-# keep the same keyboard layout), add an optional 25-line mode, replace the DIP +-# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC ! +-# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is +-# recognized: if you type in "ESC !", the next (third) character is not +-# echoed, showing that the terminal was actually waiting for a parameter! +-ndr9500|nd9500|Newbury Data 9500, +- am, bw, hs, mc5i, mir, msgr, ul, xon, +- cols#80, lines#24, wsl#79, +- acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0, +- clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, +- dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET, +- flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1, +- ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO, +- kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z, +- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, +- ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, +- kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, +- kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, +- kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, +- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, +- kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_, +- pfloc=\E|%{48}%p1%+%c2%p2\031, +- pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej, +- rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N, +- sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;, +- sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O, +- tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H, +- +-ndr9500-nl|NDR 9500 with no status line, +- hs@, +- wsl@, +- dsl@, fsl@, tsl@, use=ndr9500, +- +-ndr9500-25|NDR 9500 with 25th line enabled, +- lines#25, use=ndr9500, +- +-ndr9500-25-nl|NDR 9500 with 25 lines and no status line, +- lines#25, use=ndr9500-nl, +- +-ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink), +- msgr@, +- xmc#1, +- blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, +- sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c, +- sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500, +- +-ndr9500-25-mc|NDR 500 with 25 lines and magic cookies, +- lines#25, use=ndr9500-mc, +- +-ndr9500-mc-nl|NDR 9500 with magic cookies and no status line, +- hs@, +- wsl@, +- dsl@, fsl@, tsl@, use=ndr9500-mc, +- +-ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line, +- lines#25, use=ndr9500-mc-nl, +- +-#### Perkin-Elmer (Owl) ++#ESC lead-in char for multiple character command ++# ++#ESC space R execute power on sequence ++#ESC ! p1 p2 define scroll region: ++# p1 = scroll top line: 20h - 37h ++# p1 = scroll bottom line: 20h - 37h ++#ESC " unlock keyboard ++#ESC # lock keyboard ++#ESC $ Semi-graphics mode on ++#ESC % Semi-graphics mode off ++#ESC & protect mode on ++#ESC ' protect mode off ++#ESC ( write protect mode off (full intensity) ++#ESC ) write protect mode on (half intensity) ++# ++#ESC * clear screen ++#ESC + clear unprotected data to insert char ++#ESC , clear unprotected data to half intensity spaces ++#ESC - p1 p2 p3 p4 address cursor to page, row, column: ++# p1 = page number 0 - 3 ++# p2 = row 20h - 7fh ++# p3 = column (lo) 20h - 7fh ++# p4 = column (hi) 20h - 21h (only 132 col) ++#ESC . p1 set cursor style: ++# p1 = 0 invisible cursor ++# p1 = 1 block blinking cursor ++# p1 = 2 block steady cursor ++# p1 = 3 underline blinking cursor ++# p1 = 4 underline steady cursor ++#ESC / transmit cursor location (page, row, column) ++#ESC 0 p1 p2 p3 p4 program edit key: ++# p1 = edit key code: '@'-'S', '`'-'s' ++# p2 p3 p4 = program data (3 bytes) ++# ++#ESC 1 set tab ++#ESC 2 clear tab at cursor ++#ESC 3 clear all tabs ++#ESC 4 send unprotect line to cursor ++#ESC 5 send unprotect page to cursor ++#ESC 6 send line to cursor ++#ESC 7 send page to cursor ++#ESC 8 n set scroll mode: ++# n = 0 set jump scroll ++# n = 1 set smooth scroll ++#ESC 9 n control display: ++# n = 0 display off ++# n = 1 display on ++#ESC : clear unprotected data to null ++#ESC ; clear unprotected data to insert char ++# ++#ESC < keyclick on ++#ESC = p1 p2 address cursor to row, column ++# p1 = row 20h - 7fh ++# p2 = column (lo) 20h - 7fh ++# p3 = column (hi) 20h - 21h (only 132 col) ++#ESC > keyclick off ++#ESC ? transmit cursor location (row, column) + # +-# These are official terminfo entries from within Perkin-Elmer. ++#ESC @ copy print mode on ++#ESC A copy print mode off ++#ESC B block mode on ++#ESC C block mode off (conversation mode) ++#ESC D F set full duplex ++#ESC D H set half duplex ++#ESC E line insert ++#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd) ++# 0 = black, 1 = red, 2 = green, 3 = yellow ++# 4 = blue, 5 = magenta, 6 = cyan, 7 = white ++#ESC G n set serial field attribute (n = 30h - 3Fh) ++#ESC H n full graphics mode: ++# n = 0 exit full graphics mode ++# n = 1 enter full graphics mode ++#ESC I back tab ++#ESC J back page ++#ESC K forward page + # +- +-bantam|pe550|pe6100|perkin elmer 550, +- OTbs, +- cols#80, lines#24, +- bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, +- el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA, +-fox|pe1100|perkin elmer 1100, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J, +- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, +- ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003, +- home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3, +-owl|pe1200|perkin elmer 1200, +- OTbs, am, in, +- cols#80, lines#24, +- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J, +- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, +- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>, +- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH, +- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>, +- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD, +- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA, +- rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3, +-pe1251|pe6300|pe6312|perkin elmer 1251, +- am, +- cols#80, it#8, lines#24, pb#300, vt#8, xmc#1, +- bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, +- ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J, +- kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE, +- kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3, +-# (pe7000m: this had +-# rmul=\E!\0, smul=\E!\040, +-# which is probably wrong, it collides with kf0 +-pe7000m|perkin elmer 7000 series monochrome monitor, +- am, +- cols#80, lines#24, +- bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB, +- cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, +- ed=\EJ, el=\EI, home=\EH, ind=^J, +- is1=\E!\0\EW 7o\Egf\ES7\s, kbs=^H, kcub1=\E!V, +- kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A, +- kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E, +- kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S, +- ll=\ES7\s, ri=\ER, +-pe7000c|perkin elmer 7000 series colour monitor, +- is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0, +- rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m, +- +-#### Sperry Univac ++#ESC L unformatted page print ++#ESC M L move window left (132 col mode only) ++#ESC M R move window right (132 col mode only) ++#ESC N set page edit (clear line edit) ++#ESC O set line edit (clear page edit) ++#ESC P formatted page print ++#ESC Q character insert ++#ESC R line delete ++#ESC S send message unprotected only ++#ESC T erase line to insert char ++#ESC U set monitor mode (see ESC X, ESC u) + # +-# Sperry Univac has merged with Burroughs to form Unisys. ++#ESC V n select video attribute mode: ++# n = 0 serial field attribute mode ++# n = 1 parallel character attribute mode ++#ESC V 2 n define line attribute: ++# n = 0 single width single height ++# n = 1 single width double height ++# n = 2 double width single height ++# n = 3 double width double height ++#ESC V 3 n select character font: ++# n = 0 system font ++# n = 1 user defined font ++#ESC V 4 n select screen mode: ++# n = 0 page screen mode ++# n = 1 virtual screen mode ++#ESC V 5 n control mouse mode: ++# n = 0 disable mouse ++# n = 1 enable sample mode ++# n = 2 send mouse information ++# n = 3 enable request mode ++#ESC W character delete ++#ESC X clear monitor mode (see ESC U, ESC u) ++#ESC Y erase page to insert char + # +- +-# This entry is for the Sperry UTS30 terminal running the TTY +-# utility under control of CP/M Plus 1R1. The functionality +-# provided is comparable to the DEC vt100. +-# (uts30: I added <rmam>/<smam> based on the init string -- esr) +-uts30|sperry uts30 with cp/m@1R1, +- am, bw, hs, +- cols#80, lines#24, wsl#40, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L, +- cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c, +- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, +- 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=\EM, +- dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H, +- ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN, +- ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H, +- rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI, +- rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m, +- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m, +- smul=\E[4m, tsl=\E], uc=\EPB, +- +-#### Tandem ++#ESC Z n send user/status line: ++# n = 0 send user line ++# n = 1 send status line ++# n = 2 send terminal ID ++#ESC [ p1 p2 p3 set character attribute (parallel char mode): ++# p1: 0 = normal ++# 1 = blank ++# 2 = blink ++# 3 = blink blank (= blank) ++# 4 = reverse ++# 5 = reverse blank ++# 6 = reverse blink ++# 7 = reverse blink blank (= reverse blank) ++# 8 = underline ++# 9 = underline blank ++# : = underline blink ++# ; = underline blink blank ++# < = reverse underline ++# = = reverse underline blank ++# > = reverse underline blink ++# ? = reverse underline blink blank ++# p2, p3: f/grnd, b/grnd colour ++# (see ESC F for colours) ++# use ZZ for mono, eg. ++# ESC [ 0 Z Z for normal ++# ESC [ 4 Z Z for inverse etc. + # +-# Tandem builds these things for use with its line of fault-tolerant +-# transaction-processing computers. They aren't generally available +-# on the merchant market, and so are fairly uncommon. ++#ESC \ n set page size: ++# n = 1 24 lines/page ++# n = 2 48 lines/page ++# n = 3 72 lines/page ++# n = 4 96 lines/page ++#ESC ] n set Wordstar mode: ++# n = 0 normal (KDS7372) mode ++# n = 1 Wordstar mode + # +- +-tandem6510|adm3a repackaged by Tandem, +- use=adm3a, +- +-# A funny series of terminal that TANDEM uses. The actual model numbers +-# have a fourth digit after 653 that designates minor variants. These are +-# natively block-mode and rather ugly, but they have a character mode which +-# this doubtless(?) exploits. There is a 6520 that is slightly dumber. +-# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also, +-# removed <if=/usr/share/tabset/tandem653>, no such file -- esr) +-tandem653|t653x|Tandem 653x multipage terminal, +- OTbs, am, da, db, hs, +- cols#80, lines#24, wsl#64, xmc#1, +- clear=\EI, cub1=^H, cud1=^J, cuf1=\EC, +- cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r, +- ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s, +- rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo, +- +-#### Tandy/Radio Shack ++#ESC b set foreground colour screen + # +-# Tandy has a line of VDTs distinct from its microcomputers. ++#ESC c n enter self-test mode: ++# n = 0 exit self test mode ++# n = 1 ROM test ++# n = 2 RAM test ++# n = 3 NVRAM test ++# n = 4 screen display test ++# n = 5 main/printer port test ++# n = 6 mouse port test ++# n = 7 graphics board test ++# n = 8 graphics memory test ++# n = 9 display all 'E' ++# n = : display all 'H' ++#ESC d set background colour screen + # +- +-dmterm|deskmate terminal, +- am, bw, +- cols#80, lines#24, +- bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H, +- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I, +- ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB, +- kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4, +- kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0, +- khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, +- lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@, +- use=adm+sgr, +-dt100|dt-100|Tandy DT-100 terminal, +- xon, +- cols#80, lines#24, xmc#1, +- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, +- csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\010\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, ich1=\E[@, +- il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i, +- kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~, +- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H, +- knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5, +- lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m, +-dt100w|dt-100w|Tandy DT-100 terminal (wide mode), +- cols#132, use=dt100, +-dt110|Tandy DT-110 emulating ansi, +- xon, +- cols#80, lines#24, +- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l, +- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, +- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C, +- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[0P, +- dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H, +- ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K, +- kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~, +- kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~, +- khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1, +- lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9, +- lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m, +- smacs=^N, smso=\E[7m, smul=\E[4m, +-pt210|TRS-80 PT-210 printing terminal, +- hc, os, +- cols#80, +- bel=^G, cr=^M, cud1=^J, ind=^J, +- +-#### Tektronix (tek) ++#ESC e n program insert char (n = insert char) ++#ESC f text CR load user status line with 'text' ++# ++#ESC g display user status line on 25th line ++#ESC h display system status line on 25th line ++#ESC i tab ++#ESC j reverse linefeed ++#ESC k n duplex/local edit mode: ++# n = 0 duplex edit mode ++# n = 1 local edit mode ++#ESC l n select virtual screen: ++# n = 0 screen 1 ++# n = 1 screen 2 ++#ESC m save current config to NVRAM ++#ESC n p1 select display screen: ++# p1 = 0 screen 1 ++# p1 = 1 screen 2 ++# p1 = 2 screen 3 ++# p1 = 3 screen 4 ++#ESC o p1 p2 set characters/line and attribute: ++# p1 = 0 80 chars/line + # +-# Tektronix tubes are graphics terminals. Most of them use modified +-# oscilloscope technology incorporating a long-persistence green phosphor, +-# and support vector graphics on a main screen with an attached "dialogue +-# area" for interactive text. ++#ESC o p1 p2 set characters/line and attribute: ++# p1 = 0 80 chars/line ++# p1 = 1 132 chars/line ++# p2 = 0 single width single height ++# p2 = 1 single width double height ++# p2 = 2 double width single height ++# p2 = 3 double width double height + # +- +-tek|tek4012|tektronix 4012, +- OTbs, os, +- cols#75, lines#35, +- bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J, +- ff=\014$<1000>, is2=\E^O, +-# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) +-tek4013|tektronix 4013, +- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012, +-tek4014|tektronix 4014, +- cols#81, lines#38, +- is2=\E\017\E9, use=tek4012, +-# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) +-tek4015|tektronix 4015, +- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014, +-tek4014-sm|tektronix 4014 in small font, +- cols#121, lines#58, +- is2=\E\017\E\:, use=tek4014, +-# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) +-tek4015-sm|tektronix 4015 in small font, +- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm, +-# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay> ++#ESC q insert mode on ++#ESC r edit mode on ++#ESC s send message all ++#ESC t erase line to null ++#ESC u clear monitor mode (see ESC U, ESC X) ++#ESC v autopage mode on ++#ESC w autopage mode off ++#ESC x p1 p2 p3 define delimiter code... ++#ESC y erase page to null + # +-# You need to have "stty nl2" in effect. Some versions of tset(1) know +-# how to set it for you. ++#ESC z 2 p1 p2 p3 p4 draw quadrangle: ++# p1 = starting row ++# p2 = starting column ++# p3 = end row ++# p4 = end column + # +-# It's got the Magic Cookie problem around stand-out mode. If you can't +-# live with Magic Cookie, remove the :so: and :se: fields and do without +-# reverse video. If you like reverse video stand-out mode but don't want +-# it to flash, change the letter 'H' to 'P' in the :so: field. +-tek4023|tektronix 4023, +- OTbs, am, +- OTdN#4, cols#80, lines#24, vt#4, xmc#1, +- OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J, +- cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, +- rmso=^_@, smso=^_P, +-# It is recommended that you run the 4025 at 4800 baud or less; +-# various bugs in the terminal appear at 9600. It wedges at the +-# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed +-# on keyboard don't work. You have to hit BREAK twice to get +-# one break at any speed - this is a documented feature. +-# Can't use cursor motion because it's memory relative, and +-# because it only works in the workspace, not the monitor. +-# Same for home. Likewise, standout only works in the workspace. ++#ESC { p1 p2 p3 p4 configure main port ++# (baud, stop bits, parity, word length) + # +-# <el> was commented out since vi and rogue seem to work better +-# simulating it with lots of spaces! ++#ESC | p1 p2 text Ctrl-Y program function key with 'text': ++# p1 = function key code: ++# '1' - ';' normal f1- f11 ++# '<' - 'F' shifted f1 - f11 ++# p2 = program mode: ++# 1 = FDX ++# 2 = LOC ++# 3 = HDX ++# Ctrl-Y = terminator ++# (use Ctrl-P to escape ^P, ^Y ) + # +-# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U +-# and didn't seem necessary. ++#ESC } p1 p2 p3 p4 configure printer port ++# (baud, stop bits, parity, word length) ++#ESC ~ send system status + # +-tek4024|tek4025|tek4027|tektronix 4024/4025/4027, +- OTbs, am, da, db, +- cols#80, it#8, lines#34, lm#0, +- bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M, +- cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r, +- cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r, +- cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r, +- dl=\037dli %p1%d\r\006, dl1=\037dli\r\006, +- ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010, +- il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r, +- ind=^F^J, +- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r, +- rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r, +- smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r, +-tek4025-17|tek 4025 17 line window, +- lines#17, use=tek4025, +-tek4025-17-ws|tek 4025 17 line window in workspace, +- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r, +- rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r, +- smso=\037att e\r, use=tek4025-17, +-tek4025-ex|tek4027-ex|tek 4025/4027 w/!, +- is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r, +- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025, +-# Tektronix 4025a +-# From: Doug Gwyn <gwyn@brl-smoke.ARPA> +-# The following status modes are assumed for normal operation (replace the +-# initial "!" by whatever the current command character is): +-# !COM 29 # NOTE: changes command character to GS (^]) +-# ^]DUP +-# ^]ECH R +-# ^]EOL +-# ^]RSS T +-# ^]SNO N +-# ^]STO 9 17 25 33 41 49 57 65 73 +-# Other modes may be set according to communication requirements. +-# If the command character is inadvertently changed, termcap can't restore it. +-# Insert-character cannot be made to work on both top and bottom rows. +-# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas. +-# There also seems to be a problem with vertical motion, perhaps involving +-# delete/insert-line, following a typed carriage return. This terminal sucks. +-# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +-# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't +-# work any more. -- esr) +-tek4025a|Tektronix 4025A, +- OTbs, OTpt, am, bw, da, db, xon, +- cols#80, it#8, lines#34, +- bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^], +- cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;, +- cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;, +- cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;, +- dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;, +- el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I, +- il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;, +- rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;, +- tbc=\035sto;, +-# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981 +-# Here's the command file that I use to get rogue to work on the 4025. +-# It should work with any program using the old curses (e.g. it better +-# not try to scroll, or cursor addressing won't work. Also, you can't +-# see the cursor.) +-# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh) +-tek4025-cr|tek 4025 for curses and rogue, +- OTbs, am, +- cols#80, it#8, lines#33, +- clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;, +- cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J, +- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r, +- rmcup=\037wor 0, smcup=\037wor 33h, +-# next two lines commented out since curses only allows 128 chars, sigh. +-# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\ +-# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0: +-tek4025ex|4025ex|4027ex|tek 4025 w/!, +- is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r, +- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025, +-tek4105|tektronix 4105, +- OTbs, am, mir, msgr, ul, xenl, xt, +- cols#79, it#8, lines#29, +- acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z, +- clear=\E[2J\E[H, cr=^M, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C, +- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P, +- dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, +- il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m, +- is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B, +- kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T, +- rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m, +- rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m, +- smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m, +- smul=\E[=5;<2m, tbc=\E[1g, ++# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997 ++# ++# Entry is by esr going solely on above information and is UNTESTED. ++# This actually looks a lot like a Televideo 9xx. ++# This entry uses page 0 and is monochrome; I'm not brave enough to try ++# to make color work without a test terminal. The <am> capability is a guess. ++# The initialization string sets conversation mode, blinking underline cursor, ++# full duplex, parallel attribute mode, display user status line, white ++# foreground, black background, normal highlight. ++# ++icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372, ++ OTbs, am, hs, ++ cols#80, lines#24, ++ bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*, ++ cnorm=\E.3, cr=^M, ++ csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c, ++ cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I, ++ hts=\E1, il1=\EE, invis=\E[1ZZ, ++ is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ, ++ rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ, ++ rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1, ++ sgr=\E[%'0'%?%p1%t%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?%p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ, ++ sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3, ++icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols, ++ rs2=\Eo1, use=icl6404, + +-# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr) +-tek4105-30|4015 emulating 30 line vt100, +- am, mir, msgr, xenl, xon, +- cols#80, it#8, lines#30, vt#3, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, +- clear=\E[H\E[J$<50>, 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$<2>, +- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, +- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, +- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8, +- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, +- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, +- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, +- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, +- use=vt100+fnkeys, ++#### Interactive Systems Corp ++# ++# ISC used to sell OEMed and customized hardware to support ISC UNIX. ++# ISC UNIX still exists in 1995, but ISC itself is no more; they got ++# bought out by Sun. ++# ++ ++# From: <cithep!eric> Wed Sep 16 08:06:44 1981 ++# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the ++# ":le=^_:" later overridden -- esr) ++intext|Interactive Systems Corporation modified owl 1200, ++ OTbs, am, ++ cols#80, it#8, lines#24, xmc#1, ++ bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\, ++ dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>, ++ el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H, ++ kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r, ++ kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r, ++ kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<, ++ rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%, ++ smso=^V$\,, ++intext2|intextii|INTERACTIVE modified owl 1251, ++ am, bw, ul, ++ cols#80, lines#24, xmc#0, ++ bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=\E[D, ++ 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, ++ flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u, ++ hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S, ++ kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r, ++ kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r, ++ kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r, ++ khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO, ++ lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT, ++ lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D, ++ smul=\E[18 D, + +-# Tektronix 4105 from BRL +-# The following setup modes are assumed for normal operation: +-# CODE ansi CRLF no DABUFFER 141 +-# DAENABLE yes DALINES 30 DAMODE replace +-# DAVISIBILITY yes ECHO no EDITMARGINS 1 30 +-# FLAGGING input INSERTREPLACE replace LFCR no +-# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B +-# SELECTCHARSET G1 0 TABS -2 +-# Other setup modes may be set for operator convenience or communication +-# requirements; I recommend +-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes +-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 +-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> +-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1 +-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" +-# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132 +-# XMTDELAY 0 +-# and factory color maps. After setting these modes, save them with NVSAVE. No +-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +-# "IC" cannot be used in combination with "im" & "ei". +-# "tek4105a" is just a guess: +-tek4105a|Tektronix 4105, +- OTbs, OTpt, msgr, xon, +- OTkn#8, cols#80, it#8, lines#30, vt#3, +- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J, +- cnorm=\E%!0\ETD10\E%!1, 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=\EM, cvvis=\E%!0\ETD70\E%!1, +- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH, +- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ, +- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, +- lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, +- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1, +- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>, +- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++#### Kimtron (abm, kt) ++# ++# Kimtron seems to be history, but as March 1998 these people are still ++# offering repair services for Kimtron equipment: ++# ++# Com/Pair Monitor Service ++# 1105 N. Cliff Ave. ++# Sioux Falls, South Dakota 57103 ++# ++# WATS voice: 1-800/398-4946 ++# POTS fax: +1 605/338-8709 ++# POTS voice: +1 605/338-9650 ++# Email: <compair@sd.cybernex.net> ++# Internet/Web: <http://www.com-pair.com> ++# ++# Kimtron entries include (undocumented) codes for: enter dim mode, ++# enter bold mode, enter reverse mode, turn off all attributes. ++# + ++# Kimtron ABM 85 added by Dual Systems ++# (abm85: removed duplicated ":kd=^J:" -- esr) ++abm85|Kimtron ABM 85, ++ OTbs, am, bw, msgr, ++ cols#80, it#8, lines#24, xmc#1, ++ cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\Ey, el=\Et, ht=^I, ++ if=/usr/share/tabset/stdcrt, il1=\EE, ++ is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H, ++ kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek, ++ rmul=\Em, smir=\EQ, smso=\Ej, smul=\El, ++# Kimtron ABM 85H added by Dual Systems. ++# Some notes about the abm85h entries: ++# 1) there are several firmware revs of 85H in the world. Use abm85h-old for ++# firmware revs prior to SP51 ++# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the ++# abm85e entry if it is in tvi920 emulation mode. They are incompatible ++# in some places and NOT software settable i.e., <is2> can't fix it) ++# 3) In 85h mode, the arrow keys and special functions transmit when ++# the terminal is in dup-edit, and work only locally in local-edit. ++# Vi won't swallow `del char' for instance, but <smcup> turns on ++# dup-edit anyway so that the arrow keys will work right. If the ++# arrow keys don't work the way you like, change <smcup>, <rmcup>, and ++# <is2>. Note that 920E mode does not have software commands to toggle ++# between dup and local edit, so you get whatever was set last on the ++# terminal. ++# 4) <flash> attribute is nice, but seems too slow to work correctly ++# (\Eb<pad>\Ed) ++# 5) Make sure `hidden' attributes are selected. If `embedded' attributes ++# are selected, the <xmc@> entry should be removed. ++# 6) auto new-line should be on (selectable from setup mode only) + # +-# Tektronix 4106/4107/4109 from BRL +-# The following setup modes are assumed for normal operation: +-# CODE ansi COLUMNMODE 80 CRLF no +-# DABUFFER 141 DAENABLE yes DALINES 32 +-# DAMODE replace DAVISIBILITY yes ECHO no +-# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace +-# LFCR no LOCKKEYBOARD no ORIGINMODE relative +-# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0 +-# TABS -2 +-# Other setup modes may be set for operator convenience or communication +-# requirements; I recommend +-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes +-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 +-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> +-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3 +-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" +-# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132 +-# XMTDELAY 0 +-# and factory color maps. After setting these modes, save them with NVSAVE. No +-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +-# "IC" cannot be used in combination with "im" & "ei". +-tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109, +- msgr, xon, +- cols#80, it#8, lines#32, vt#3, +- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, +- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J, +- cnorm=\E%!0\ETD10\E%!1, 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=\EM, cvvis=\E%!0\ETD70\E%!1, +- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, +- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH, +- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1, +- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, +- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ, +- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, +- lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, +- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1, +- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>, +- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h, +- smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g, ++# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985 ++abm85h|Kimtron ABM 85H native mode, ++ hs, ++ xmc@, ++ bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@, ++ fsl=^M, invis@, ++ is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El, ++ kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr, ++ use=abm85, ++abm85e|Kimtron ABM 85H in 920E mode, ++ xmc@, ++ bel=^G, dim=\E), flash@, ++ is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em, ++ rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85, ++abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev., ++ xmc@, ++ bel=^G, dim=\E), ++ is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF, ++ rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85, ++# From: <malman@bbn-vax.arpa> ++# (kt7: removed obsolete :ma=^V^J^L :" -- esr) ++kt7|kimtron model kt-7, ++ OTbs, am, ++ cols#80, it#8, lines#24, ++ cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ, ++ if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E", ++ kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, ++ kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, ++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr, ++# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the ++# other kt7 entry and the adjacent key capabilities). Removed EE which is ++# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight ++# but we can't figure out what. ++kt7ix|kimtron model kt-7 or 70 in IX mode, ++ am, bw, ++ cols#80, it#8, lines#25, ++ acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI, ++ civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, ++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M, ++ home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J, ++ is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER, ++ ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, ++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ, ++ nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0, ++ sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef, + +-# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code: +-# 0 selects Tek mode, i.e., \E%!0 +-# 1 selects ANSI mode +-# 2 selects ANSI edit-mode +-# 3 selects VT52 mode ++#### Microdata/MDIS ++# ++# This was a line of terminals made by McDonnell-Douglas Information Systems. ++# These entries come direct from MDIS documentation. I have edited them only ++# to move primary names of the form p[0-9] * to aliases, and to comment out ++# <rmacs>/<smacs> in a couple of entries without <acsc> strings. I have ++# also removed the change history; the last version indicates this is ++# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989). + # +-# One odd thing about the description (which has been unchanged since the 90s) +-# is that the cursor addressing is using VT52 mode, and a few others use the +-# VT52's non-CSI versions of ANSI, e.g., \EJ. +-tek4107|tek4109|tektronix terminals 4107 4109, +- OTbs, am, mir, msgr, ul, xenl, xt, +- cols#79, it#8, lines#29, +- bel=^G, blink=\E%!1\E[5m$<2>\E%!0, +- bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M, +- cub1=^H, cud1=^J, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3, +- dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J, +- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- rev=\E%!1\E[7m$<2>\E%!0, ri=\EI, +- rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0, +- sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0, +- sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0, +- smul=\E%!1\E[4m$<2>\E%!0, +-# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s; +-# see the note attached to tek4207. +-tek4207-s|Tektronix 4207 with sysline but no memory, +- eslok, hs, +- dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8, +- is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J, +- is2=\E7\E[?6l\E[2K\E[?6h\E8, +- tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107, + +-# The 4110 series may be a wonderful graphics series, but they make the 4025 +-# look good for screen editing. In the dialog area, you can't move the cursor +-# off the bottom line. Out of the dialog area, ^K moves it up, but there +-# is no way to scroll. ++# McDonnell Information Systems Terminal Family History ++# ========================================= ++# ++# Prism-1, Prism-2 and P99: ++# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25. ++# ++# Prism-4 and Prism-5: ++# Slightly less ancient range of Microdata terminals. Follow-on from ++# Prism-2, but with many enhancements. P5 has eight display pages. ++# ++# Prism-6: ++# A special terminal for use with library systems, primarily in Germany. ++# Limited numbers. Similar functionality to P5 (except attributes?). + # +-# Note that there is a floppy for free from Tek that makes the +-# 4112 emulate the vt52 (use the vt52 termcap). There is also +-# an expected enhancement that will use ANSI standard sequences. ++# Prism-7, Prism-8 and Prism-9: ++# More recent range of MDIS terminals, in which P7 and P8 ++# replace the P4 & P5, with added functionality, and P9 is the flagship. ++# The P9 has two emulation modes - P8 and ANSI - and includes a ++# large number of the DEC VT220 control sequences. Both ++# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats. + # +-# 4112 in non-dialog area pretending to scroll. It really wraps +-# but vi is said to work (more or less) in this mode. ++# Prism-12 and Prism-14: ++# Latest range, functionally very similar to the P9. The P14 has a ++# black-on-white overscanning screen. + # +-# 'vi' works reasonably well with this entry. ++# The terminfo definitions given here are: + # +-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series, +- am, +- cols#80, lines#34, +- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J, +- rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0, +-# The 4112 with the ANSI compatibility enhancement +-tek4112|tek4114|tektronix 4110 series, +- OTbs, am, db, +- cols#80, lines#34, +- cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, +- dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L, +- ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8, +- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, +-tek4112-nd|4112 not in dialog area, +- OTns, +- cuu1=^K, use=tek4112, +-tek4112-5|4112 in 5 line dialog area, +- lines#5, use=tek4112, +-# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake; +-# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3. +-# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were +-# previously \0410 and \0411 sequences...I don't *think* they were supposed +-# to be 4-digit octal -- esr) +-tek4113|tektronix 4113 color graphics with 5 line dialog area, +- OTbs, am, da, eo, +- cols#80, lines#5, +- clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0, +- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0, +- is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0, +-tek4113-34|tektronix 4113 color graphics with 34 line dialog area, +- lines#34, +- is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113, +-# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not +-# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up . +-# :vb: needs enough delay to let you see the background color being toggled. +-tek4113-nd|tektronix 4113 color graphics with no dialog area, +- OTbs, am, eo, +- cols#80, it#8, lines#34, +- clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K, +- cvvis=\ELZ\EKA0, +- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0, +- home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @, +- ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0, +-# This entry is from Tek. Inc. (Brian Biehl) +-# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr) +-otek4115|Tektronix 4115, +- OTbs, am, da, db, eo, +- cols#80, it#8, lines#34, +- cbt=\E[Z, clear=\E[H\E[2J, +- cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B, +- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, +- cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J, +- el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100, +- il1=\E[L, +- is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m, +- kbs=^H, ri=\EM, rmam=\E[?7l, +- rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l, +- rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, +- smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m, +- smul=\E[4m, +-tek4115|newer tektronix 4115 entry with more ANSI capabilities, +- am, xon, +- cols#80, lines#34, +- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, +- cr=^M, 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, dch1=\E[P, dl=\E[%p1%dM, +- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG, +- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, +- il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D, +- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, +- 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;%;%?%p7%t8;%;m, +- sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, +- vpa=\E[%p1%{1}%+%dd, +-# The tek4125 emulates a vt100 incorrectly - the scrolling region +-# command is ignored. The following entry replaces <csr> with the needed +-# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125 +-# chokes on; and adds a lot of initialization for the tek dialog area. +-# Note that this entry uses all 34 lines and sets the cursor color to green. +-# Steve Jacobson 8/85 +-# (tek4125: there were two "\!"s in the is that I replaced with "\E!"; +-# commented out, <smir>=\E1 because there's no <rmir> -- esr) +-tek4125|tektronix 4125, +- lines#34, +- csr@, dl1=\E[1M, il1=\E[1L, +- is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- rc@, sc@, smkx=\E=, use=vt100, +- +-# From: <jcoker@ucbic> +-# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO +-# supplied another, less capable 4107 entry. So we'll use that for 4107 and +-# note that if jcoker wasn't confused you may be able to use this one. +-# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr) +-tek4207|Tektronix 4207 graphics terminal with memory, +- am, bw, mir, msgr, ul, xenl, +- cols#80, it#8, lines#32, +- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>, +- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J, +- el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>, +- il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5, +- is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J, +- kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H, +- rev=\E[7m, ri=\E[T, +- rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m, +- rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m, +- smul=\E[4m, tbc=\E[1g, +- +-# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985 +-# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!". +-# Tab had been given as \E2I,that must be the tab-set capability -- esr) +-tek4404|tektronix 4404, +- OTbs, +- cols#80, it#8, lines#32, +- blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, +- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M, +- ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8, +- rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l, +- rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m, +- smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h, +- smkx=\E[?1l, smso=\E[7m, smul=\E[4m, +-# Some unknown person wrote: +-# I added the is string - straight Unix has ESC ; in the login +-# string which sets a ct8500 into monitor mode (aka 4025 snoopy +-# mode). The is string here cleans up a few things (but not +-# everything). +-ct8500|tektronix ct8500, +- am, bw, da, db, +- cols#80, lines#25, +- bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J, +- cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER, +- dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\, +- il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s, +- rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!, ++# p2 - Prism-2 (or Prism-1 or P99). ++# ++# p4 - Prism-4 (and older P7s & P8s). ++# p5 - Prism-5 (or Prism-6). ++# ++# p7 - Prism-7. ++# p8 - Prism-8 (in national or multinational mode). ++# p8-w - 132 column version of p8. ++# p9 - Prism-9 in ANSI mode. ++# p9-w - 132 column version of p9. ++# p9-8 - Prism-9 in Prism-8 emulation mode. ++# p9-8-w - As p9-8, but with 132 columns. ++# ++# p12 - Prism-12 in ANSI mode. ++# p12-w - 132 column version of p12. ++# p12-m - Prism-12 in MDC emulation mode. ++# p12-m-w - As p12-m, but with 132 columns. ++# p14 - Prism-14 in ANSI mode. ++# p14-w - 132 column version of p14. ++# p14-m - Prism-14 in MDC emulation mode. ++# p14-m-w - As p14-m, but with 132 columns. ++# ++# p2: Prism-2 ++# ----------- ++# ++# Includes Prism-1 and basic P99 without SP or MP loaded. ++# The simplest form of Prism-type terminal. ++# Basic cursor movement and clearing operations only. ++# No video attributes. ++# Notes: ++# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next ++# value up, followed by backspace. ++# ++prism2|MDC Prism-2, ++ am, bw, msgr, ++ cols#80, lines#24, ++ bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F, ++ cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, ++ cuu1=^Z, ed=\EJ, el=\EK, home=^A, ++ hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, ++ ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c, + +-# Tektronix 4205 terminal. ++# p4: Prism-4 ++# ----------- + # +-# am is not defined because the wrap around occurs not when the char. +-# is placed in the 80'th column, but when we are attempting to type +-# the 81'st character on the line. (esr: hmm, this is like the vt100 +-# version of xenl, perhaps am + xenl would work!) ++# Includes early versions of P7 & P8. ++# Basic family definition for most Prisms (except P2 and P9 ANSI). ++# Notes: ++# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next ++# value up, followed by backspace. ++# Cursor key definitions removed because they interfere with vi and csh keys. + # +-# Bold, dim, and standout are simulated by colors and thus not allowed +-# with colors. The tektronix color table is mapped into the RGB color +-# table by setf/setb. All colors are reset to factory specifications by oc. +-# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the +-# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub- +-# interval then maps into pre-defined value. +-tek4205|tektronix 4205, +- ccc, mir, msgr, +- colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z, +- clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D, +- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, +- dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX, +- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I, +- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED, +- initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1, +- invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H, +- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA, +- kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER, +- kf7=\ES, +- oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1, +- op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=, +- rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m, +- setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;, +- setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;, +- sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N, +- smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m, +- smul=\E[4m, tbc=\E[1g, ++prism4|p4|P4|MDC Prism-4, ++ am, bw, hs, mc5i, msgr, ++ cols#80, lines#24, wsl#72, xmc#1, ++ bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>, ++ cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F, ++ cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, ++ cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK, ++ fsl=^]\345, home=^A, ++ hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c, ++ ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER, ++ rev=^CD, rmso=^C\s, rmul=^C\s, ++ sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;, ++ sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343, ++ vpa=\013%p1%{32}%+%c, + +-#### Teletype (tty) ++# p5: Prism-5 ++# ----------- ++# ++# Same definition as p4. Includes Prism-6 (not tested!). ++# Does not use any multi-page features. + # +-# These are the hardcopy Teletypes from before AT&T bought the company, +-# clattering electromechanical dinosaurs in Bakelite cases that printed on +-# pulpy yellow roll paper. If you remember these you go back a ways. +-# Teletype-branded VDTs are listed in the AT&T section. ++prism5|p5|P5|MDC Prism-5, ++ use=p4, ++ ++# p7: Prism-7 ++# ----------- + # +-# The earliest UNIXes were designed to use these clunkers; nroff and a few +-# other programs still default to emitting codes for the Model 37. ++# Similar definition to p4. Uses ANSI cursor motion to avoid network problems. ++# Notes: ++# Use p4 for very early models of P7. ++# Rev-index removed; can't send nulls to terminal in 8-bit modes. + # ++prism7|p7|P7|MDC Prism-7, ++ cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4, + +-tty33|tty35|model 33 or 35 teletype, +- hc, os, xon, +- cols#72, +- bel=^G, cr=^M, cud1=^J, ind=^J, +-tty37|model 37 teletype, +- OTbs, hc, os, xon, +- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8, +- ind=^J, ++# p8: Prism-8 ++# ----------- ++# ++# Similar definition to p7. Uses ANSI cursor motion to avoid network problems. ++# Supports national and multinational character sets. ++# Notes: ++# Alternate char set operations only work in multinational mode. ++# Use p4 for very early models of P8. ++# Rev-index removed; can't send nulls to terminal in 8-bit modes. ++# (esr: commented out <smacs>/<rmacs> because there's no <acsc>) ++# ++prism8|p8|P8|MDC Prism-8, ++ cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h, ++ vpa=\E[%i%p1%dd, use=p4, + +-# There are known to be at least three flavors of the tty40, all seem more +-# like IBM half duplex forms fillers than ASCII terminals. They have lots of +-# awful braindamage, such as printing a visible newline indicator after each +-# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is +-# braindamaged but has hope and is described here. The 40-4 is a 3270 +-# lookalike and beyond hope. The terminal has visible bell but I don't know +-# it - it's null here to prevent it from showing the BL character. +-# There is an \EG in <nl> because of a bug in old vi (if stty says you have +-# a "newline" style terminal (-crmode) vi figures all it needs is nl +-# to get crlf, even if <cr> is not ^M.) +-# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr) +-tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2, +- OTbs, xon, +- cols#80, lines#24, +- clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB, +- cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>, +- ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1, +- ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^], +- kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4, +- rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>, +-tty43|model 43 teletype, +- OTbs, am, hc, os, xon, ++# p8-w: Prism-8 in 132 column mode ++# -------------------------------- ++# ++# 'Wide' version of p8. ++# Notes: ++# Rev-index removed; can't send nulls to terminal in 8-bit modes. ++# ++prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode, + cols#132, +- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H, ++ is2=\E[<12h\E[<14h, use=p8, + +-#### Tymshare ++# p9: Prism-9 in ANSI mode ++# ------------------------- + # ++# The "flagship" model of this generation of terminals. ++# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones. ++# Notes: ++# Tabs only reset by "reset". Otherwise assumes default (8 cols). ++# Fixes to deal with terminal firmware bugs: ++# . 'ri' uses insert-line since rev index doesn't always ++# . 'sgr0' has extra '0' since esc[m fails ++# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25 ++# Not covered in the current definition: ++# . Labels ++# . Programming Fn keys ++# . Graphic characters (defaults correctly to vt100) ++# . Padding values (sets xon) ++# (esr: commented out <smacs>/<rmacs> because there's no <acsc>) ++# ++prism9|p9|P9|MDC Prism-9 in ANSII mode, ++ am, bw, hs, msgr, xenl, xon, ++ cols#80, it#8, lines#24, vt#3, wsl#72, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l, ++ clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v, ++ 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, dsl=\E[%}\024, ech=\E[%p1%dX, ++ ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`, ++ ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, ++ is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~, ++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, ++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, ++ kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ khome=\E[H, nel=^M^J, prot=\E[32%{, rc=\E[%z, ++ rep=\E[%p2%db%p1%c, rev=\E[7m, ri=\E[L, rmir=\E[4l, ++ rmso=\E[27m, rmul=\E[24m, ++ rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N, ++ sc=\E[%y, ++ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?%p8%t\E[32%%{%;%?%p9%t\016%e\017%;, ++ sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd, ++ use=ansi+pp, + +-# You can add <is2=\E<> to put this 40-column mode, though I can't +-# for the life of me think why anyone would want to. +-scanset|sc410|sc415|Tymshare Scan Set, +- am, bw, msgr, +- cols#80, lines#24, +- acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, +- cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, +- cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED, +- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0, +- mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N, +- +-#### Volker-Craig (vc) ++# p9-w: Prism-9 in 132 column mode ++# -------------------------------- + # +-# If you saw a Byte Magazine cover with a terminal on it during the early +-# 1980s, it was probably one of these. Carl Helmers liked them because +-# they could crank 19.2 and were cheap (that is, he liked them until he tried +-# to program one...) ++# 'Wide' version of p9. + # ++prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode, ++ cols#132, ++ is2=\E[&p\E[<12l\E F\E[<14h, ++ rs2=\E[&p\E[<12l\E F\E[<14h, use=p9, + +-# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time +-# every other linefeed. +-vc303|vc103|vc203|volker-craig 303, +- OTbs, OTns, am, +- cols#80, lines#24, +- bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I, +- cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I, +- kcuu1=^N, ll=\017$<1>W, +-vc303a|vc403a|volker-craig 303a, +- clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>, +- home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303, +-# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr) +-vc404|volker-craig 404, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U, +- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, +- ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J, +- kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, +-vc404-s|volker-craig 404 w/standout mode, +- cud1=^J, rmso=^O, smso=^N, use=vc404, +-# From: <wolfgang@cs.sfu.ca> +-# (vc414: merged in cup/dl1/home from an old vc414h-noxon) +-vc414|vc414h|Volker-Craig 414H in sane escape mode., +- OTbs, am, +- cols#80, lines#24, +- clear=\E\034$<40>, cud1=\E^K, cuf1=^P, +- cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3, +- dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R, +- ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P, +- kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE, +- kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2, +- lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8, +- rmso=\E^_, smso=\E^Y, +-vc415|volker-craig 415, +- clear=^L, use=vc404, +- +-######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS ++# p9-8: Prism-9 in P8 mode ++# ------------------------ ++# ++# P9 terminal in P8 emulation mode. ++# Similar to p8 definition. ++# Insertion and deletion operations possible. + # ++prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8, + +-#### IBM PC and clones ++# p9-8-w: Prism-9 in P8 and 132 column modes ++# ------------------------------------------ ++# ++# P9 terminal in P8 emulation mode and 132 column mode. + # ++prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w, + +-# The pcplot IBM-PC terminal emulation program is really messed up. It is +-# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly, +-# doesn't support scrolling regions, ignores add line commands, and ignores +-# delete line commands. Consequently, the resulting behavior looks like a +-# crude adm3a-type terminal. +-# Steve Jacobson 8/85 +-pcplot|pc-plot terminal emulation program, +- xenl@, +- csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100, +-# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA> +-# I've found that my KayPro II, running MDM730, continues to emulate an +-# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX +-# system the following termcap entry works well: +-# I have noticed a couple of minor glitches, but nothing I can't work +-# around. (I added two capabilities from the BRL entry -- esr) +-kaypro|kaypro2|kaypro II, +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W, +- el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K, ++# p12: Prism-12 in ANSI mode ++# --------------------------- ++# ++# See p9 definition. ++# ++prism12|p12|P12|MDC Prism-12 in ANSI mode, ++ use=p9, + +-# From IBM, Thu May 5 19:35:27 1983 +-# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr) +-ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS), +- OTbs, am, +- cols#80, lines#24, +- bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\, +- cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_, ++# p12-w: Prism-12 in 132 column mode ++# ---------------------------------- ++# ++# 'Wide' version of p12. ++# ++prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode, ++ use=p9-w, + +-ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX, +- OTbs, am, bw, eo, hs, km, msgr, ul, +- cols#80, it#8, lines#24, +- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M, +- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, +- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, +- cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K, +- home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B, +- indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H, +- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, +- kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241, +- kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247, +- kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V, +- ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A, +- rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m, +- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, +- sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++# p12-m: Prism-12 in MDC emulation mode ++# ------------------------------------- ++# ++# P12 terminal in MDC emulation mode. ++# Similar to p8 definition. ++# Insertion and deletion operations possible. ++# ++prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode, ++ use=p9-8, + +-#### Apple II ++# p12-m-w: Prism-12 in MDC emulation and 132 column modes ++# ------------------------------------------------------- + # +-# Apple II firmware console first, then various 80-column cards and +-# terminal emulators. For two cents I'd toss all these in the UFO file +-# along with the 40-column apple entries. ++# P12 terminal in MDC emulation mode and 132 column mode. + # ++prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode, ++ use=p9-8-w, + +-# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL +-# 'it#8' tells UNIX that you have tabs every 8 columns. This is a +-# function of TIC, not the firmware. +-# The clear key on a IIgs will do something like clear-screen, +-# depending on what you're in. +-appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface, +- OTbs, am, bw, eo, msgr, +- cols#80, it#8, lines#24, +- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J, +- kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N, +- smso=^O, +-# Apple //e with 80-column card, entry from BRL +-# The modem interface is permitted to discard LF (maybe DC1), otherwise +-# passing characters to the 80-column firmware via COUT (PR#3 assumed). +-# Auto-wrap does not work right due to newline scrolling delay, which also +-# requires that you set "stty cr2". +-# Note: Cursor addressing is only available via the Pascal V1.1 entry, +-# not via the BASIC PR#3 hook. All this nonsense can be avoided only by +-# using a terminal emulation program instead of the built-in firmware. +-apple2e|Apple //e, +- bw, msgr, +- cols#80, lines#24, +- bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_, +- ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W, +- is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K, +- nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N, +- smso=^O, +-# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro +-# 4.20, with incoming and outgoing terminals both on 0, emulation On. +-apple2e-p|Apple //e via Pascal, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H, +- kcud1=^J, use=apple2e, +-# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL +-# Enable DC3/DC1 flow control with "stty ixon -ixany". +-apple-ae|ASCII Express, +- OTbs, am, bw, msgr, nxon, xon, +- cols#80, it#8, lines#24, +- bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J, +- kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N, +- smso=^O, +-appleII|apple ii plus, +- OTbs, am, +- cols#80, it#8, lines#24, +- clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6, +- ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I, +- is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N, +- smso=^O, +-# Originally by Gary Ford 21NOV83 +-# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985 +-apple-80|apple II with smarterm 80 col, +- OTbs, am, bw, +- cols#80, lines#24, +- cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J, +- cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, +- ed=\013$<10*/>, el=\035$<10/>, home=^Y, +-apple-soroc|apple emulating soroc 120, +- am, +- cols#80, lines#24, +- bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, +- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET, +- home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, +-# From Peter Harrison, Computer Graphics Lab, San Francisco +-# ucbvax!ucsfmis!harrison .....uucp +-# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA +-# "These two work. If you don't have the inverse video chip for the +-# Apple with videx then remove the :so: and :se: fields." +-# (apple-videx: this used to be called DaleApple -- esr) +-apple-videx|Apple with videx videoterm 80 column board with inverse video, +- OTbs, am, xenl, +- cols#80, it#8, lines#24, +- clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y, +- rmso=^Z2, sgr0=^Z2, smso=^Z3, +-# My system [for reference] : Apple ][+, 64K, Ultraterm display card, +-# Apple Cat ][ 212 modem, + more all +-# controlled by ASCII Express: Pro. +-# From Dave Shaver <isucs1!shaver> +-apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell, +- OTbs, am, eo, xt, +- cols#80, lines#24, +- acsc=, clear=^L, cuf1=^\, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- flash=^W35^W06, home=^Y, +- is2=^V4^W06\017\rVisible Bell Installed.\016\r\n, +- rmso=^N, smso=^O, +-apple-uterm|Ultraterm for Apple micros, +- OTbs, am, eo, xt, +- cols#80, lines#24, +- acsc=, clear=^L, cuf1=^\, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O, +-# from trwrba!bwong (Bradley W. Wong): ++# p14: Prism-14 in ANSII mode ++# --------------------------- + # +-# This entry assumes that you are using an apple with the UCSD Pascal +-# language card. SYSTEM.MISCINFO is assumed to be the same as that +-# supplied with the standard apple except that screenwidth should be set +-# using SETUP to 80 columns. Note that the right arrow is not mapped in +-# this termcap entry. This is because that key, on the Apple, transmits +-# a ^U and would thus preempt the more useful "up" function of vi. ++# See p9 definition. + # +-# HMH 2/23/81 +-apple80p|80-column apple with Pascal card, +- am, bw, +- cols#80, lines#24, +- clear=^Y^L, cuf1=^\\:, +- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], +- home=^Y, kcub1=^H, ++prism14|p14|P14|MDC Prism-14 in ANSII mode, ++ use=p9, ++ ++# p14-w: Prism-14 in 132 column mode ++# ---------------------------------- + # +-# Apple II+ equipped with Videx 80 column card ++# 'Wide' version of p14. + # +-# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL; +-# manually converted by D A Gwyn ++prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode, ++ use=p9-w, ++ ++# p14-m: Prism-14 in MDC emulation mode ++# ------------------------------------- + # +-# DO NOT use any terminal emulation with this data base, it works directly +-# with the Videx card. This has been tested with vi 1200 baud and works fine. ++# P14 terminal in MDC emulation mode. ++# Similar to p8 definition. ++# Insertion and deletion operations possible. + # +-# This works great for vi, except I've noticed in pre-R2, ^U will scroll back +-# 1 screen, while in R2 ^U doesn't. +-# For inverse alternate character set add: +-# <smacs>=^O:<rmacs>=^N: +-# (apple-v: added it#8 -- esr) +-apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520), +- am, xenl, +- cols#80, it#8, lines#24, +- bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H, +- cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, +- cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>, +- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_, +- khome=^Y, rmso=^Z2, smso=^Z3, +-apple-videx3|vapple|Apple II with 80 col card, ++prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode, ++ use=p9-8, ++ ++# p14-m-w: Prism-14 in MDC emulation and 132 column modes ++# ------------------------------------------------------- ++# ++# P14 terminal in MDC emulation mode and 132 column mode. ++# ++prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode, ++ use=p9-8-w, ++ ++# End of McDonnell Information Systems Prism definitions ++ ++# These things were popular in the Pick database community at one time ++# From: George Land <georgeland@aol.com> 24 Sep 1996 ++p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition, ++ am, bw, hs, mir, ++ cols#80, lines#24, ma#1, wsl#78, xmc#1, ++ bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P, ++ ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U, ++ kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ, ++ kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r, ++ kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r, ++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2, ++ lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M, ++ pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE, ++ smul=^C0, ++ ++#### Microterm (act, mime) ++# ++# The mime1 entries refer to the Microterm Mime I or Mime II. ++# The default mime is assumed to be in enhanced act iv mode. ++# ++ ++# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents ++# freakout with out-of-range args on Sytek multiplexors. No <smso=^N> and ++# <rmso=^N> since it gets confused and it's too dim anyway. No <ich1> ++# since Sytek insists ^S means xoff. ++# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr) ++act4|microterm|microterm act iv, + OTbs, am, + cols#80, lines#24, +- clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex, +- home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, +- kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#, +- kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH, +-#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL +-aepro|Apple II+ running ASCII Express Pro--vt52, ++ bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X, ++ cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c, ++ cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>, ++ ed=\037$<2.2*/>, el=\036$<.1*/>, home=^], ++ il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X, ++ kcuu1=^Z, ++# The padding on :sr: and :ta: for act5 and mime is a guess and not final. ++# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)... ++# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr) ++act5|microterm5|microterm act v, ++ kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA, ++ use=act4, ++# Mimes using brightness for standout. Half bright is really dim unless ++# you turn up the brightness so far that lines show up on the screen. ++mime-fb|full bright mime1, ++ is2=^S\E, rmso=^S, smso=^Y, use=mime, ++mime-hb|half bright mime1, ++ is2=^Y\E, rmso=^Y, smso=^S, use=mime, ++# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode ++# the more plausible ":do=^J:" -- esr) ++# uc was at one time disabled to get around a curses bug, be wary of it ++mime|mime1|mime2|mimei|mimeii|microterm mime1, ++ OTbs, am, ++ cols#80, it#8, lines#24, vt#9, ++ bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X, ++ cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c, ++ cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>, ++ il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K, ++ kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U, ++# These termcaps (for mime2a) put the terminal in low intensity mode ++# since high intensity mode is so obnoxious. ++mime2a-s|microterm mime2a (emulating an enhanced soroc iq120), ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED, ++ dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^, ++ il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J, ++ kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7, ++ smir=\EE, smso=\E\:, smul=\E6, ++# This is the preferred mode (but ^X can't be used as a kill character) ++mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52), + OTbs, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N, ++ dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I, ++ il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9, ++ rmul=\E5, smir=^O, smso=\E8, smul=\E4, ++# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr) ++mime3a|mime1 emulating 3a, ++ am@, ++ kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a, ++mime3ax|mime-3ax|mime1 emulating enhanced 3a, ++ it#8, ++ dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>, ++ use=mime3a, ++# Wed Mar 9 18:53:21 1983 ++# We run our terminals at 2400 baud, so there might be some timing problems at ++# higher speeds. The major improvements in this model are the terminal now ++# scrolls down and insert mode works without redrawing the rest of the line ++# to the right of the cursor. This is done with a bit of a kludge using the ++# exit graphics mode to get out of insert, but it does not appear to hurt ++# anything when using vi at least. If you have some users using act4s with ++# programs that use curses and graphics mode this could be a problem. ++mime314|mm314|mime 314, ++ am, + cols#80, lines#24, +- clear=\014$<300/>, cub1=\ED, cud1=\EB, cuf1=\EC, +- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, +- el=\EK, home=\EH, +-# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory +-apple-vm80|ap-vm80|apple with viewmax-80, +- OTbs, ++ clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z, ++ dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H, ++ kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S, ++# Microterm mime 340 from University of Wisconsin ++mm340|mime340|mime 340, + cols#80, lines#24, +- clear=\014$<300/>, cuf1=^\\:, +- cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_, +- ed=\013$<300/>, el=^], home=\031$<200/>, ++ clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ++ dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>, ++ el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,, ++ kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J, ++# This came from University of Wisconsin marked "astro termcap for jooss". ++# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:"; ++# also added <rmam>/<smam> based on the init string -- esr) ++mt4520-rv|micro-term 4520 reverse video, ++ am, hs, msgr, xenl, xon, ++ cols#80, it#8, lines#24, wsl#80, ++ bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h, ++ fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED, ++ is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J, ++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ++ ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100, ++ ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m, ++ rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J, ++ sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, ++ tbc=\E[g, tsl=\E[25;1H, + +-#### Apple Lisa & Macintosh ++# Fri Aug 5 08:11:57 1983 ++# This entry works for the ergo 4000 with the following setups: ++# ansi,wraparound,newline disabled, xon/xoff disabled in both ++# setup a & c. + # ++# WARNING!!! There are multiple versions of ERGO 4000 microcode ++# Be advised that very early versions DO NOT WORK RIGHT !! ++# Microterm does have a ROM exchange program- use it or lose big ++# (ergo400: added <rmam>/<smam> based on the init string -- esr) ++ergo4000|microterm ergo 4000, ++ da, db, msgr, ++ cols#80, lines#66, ++ bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>, ++ el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>, ++ is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3, ++ lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l, ++ rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>, ++ smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>, ++ smso=\E[7m$<20>, + +-# (lisa: changed <cvvis> to <cnorm> -- esr) +-lisa|apple lisa console display (black on white), +- OTbs, am, eo, msgr, +- cols#88, it#8, lines#32, +- acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L, +- cnorm=\E[5l, cub1=^H, 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, ich1=\E[@, il1=\E[L, +- is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B, +- kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m, +- sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m, +-liswb|apple lisa console display (white on black), +- is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m, +- smso=\E[m, smul=\E[4m, use=lisa, +- +-# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL; +-# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA> ++#### NCR + # +-# These entries assume that the 'Auto Wraparound' is enabled. +-# Xon-Xoff flow control should also be enabled. ++# NCR's terminal group was merged with AT&T's when AT&T bought the company. ++# For what happened to that group, see the ADDS section. + # +-# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab +-# settings are in non-volatile memory and don't need to be reset upon login. +-# Also setting the number of columns glitches the screen annoyingly. +-# You can type "reset" to get them set. ++# There is an NCR4103 terminal that's just a re-badged Wyse-50. + # +-lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation, +- OTbs, OTpt, am, xenl, xon, +- OTkn#4, cols#80, it#8, lines#24, vt#3, +- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, 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, ed=\E[J, +- el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, +- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ, +- kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8, +- rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r, +- sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, +- tbc=\E[3g, +-# Lisaterm in 132 column ("wide") mode. +-lisaterm-w|Apple Lisa with Lisaterm in 132 column mode, ++ ++# The following vendor-supplied termcaps were captured from the Boundless ++# Technologies site, 8 March 1998. I removed all-upper-case names that were ++# identical, except for case, to lower-case ones. I also uncommented the acsc ++# capabilities.X ++# ++# The Intecolor emulation of the NCR 2900/260C color terminal is basically a ++# DEC vt200/300 with color capabilities added. ++ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard, ++ colors#8, pairs#64, ++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ use=ncr260vt300an, ++# The Intecolor emulation of the NCR 2900/260C color terminal is basically a ++# DEC vt200/300 with color capabilities added. ++ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard, ++ colors#8, pairs#64, ++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ use=ncr260vt300wan, ++# The Intecolor emulation of the NCR 2900/260C color terminal is basically a ++# DEC vt200/300 with color capabilities added. ++ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard, ++ colors#8, pairs#64, ++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ use=ncr260vt300pp, ++# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a ++# DEC vt200/300 with color capabilities added. ++ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode, ++ colors#8, pairs#64, ++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ use=ncr260vt300wpp, ++# This definition for ViewPoint supports several attributes. This means ++# that it has magic cookies (extra spaces where the attributes begin). ++# Some applications do not function well with magic cookies. The System ++# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. ++# If supporting various attributes is not vital, 'xmc#1' and the extra ++# attributes can be removed. ++# Mapping to ASCII character set ('acsc' capability) can also be ++# restored if needed. ++ncr260vppp|NCR 2900_260 viewpoint, ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ cols#80, lines#24, nlab#32, xmc#1, ++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, ++ cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5, ++ cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>, ++ dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>, ++ el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1, ++ il1=\EM$<2>, ind=\n$<2>, invis=\EG1, ++ is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, ++ kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ, ++ kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F, ++ kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r, ++ kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r, ++ kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r, ++ kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r, ++ kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r, ++ kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r, ++ kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r, ++ kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ, ++ kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R, ++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>, ++ nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003, ++ rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, ++ rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, ++ sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq, ++ smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF, ++ncr260vpwpp|NCR 2900_260 viewpoint wide mode, ++ cols#132, ++ cup=\Ea%i%p1%dR%p2%dC$<30>, ++ is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, ++ rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>, ++ use=ncr260vppp, ++ncr260vt100an|NCR 2900_260 vt100 with ansi kybd, ++ am, hs, mir, msgr, xenl, xon, ++ cols#80, lines#24, nlab#32, ++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, ++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>, ++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>, ++ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>, ++ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>, ++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>, ++ cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>, ++ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~, ++ ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>, ++ fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I, ++ hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, ++ il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>, ++ invis=\E[8m, ++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, ++ knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>, ++ rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l, ++ rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m, ++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>, ++ sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g, ++ tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad, ++ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd, ++ cols#132, ++ cup=\E[%i%p1%d;%p2%dH$<30>, ++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ use=ncr260vt100an, ++ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd, ++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~, ++ kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~, ++ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, ++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ smkx=\E=, use=ncr260vt100an, ++ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd, ++ cols#132, ++ cup=\E[%i%p1%d;%p2%dH$<30>, ++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ use=ncr260vt100pp, ++ncr260vt200an|NCR 2900_260 vt200 with ansi kybd, ++ am, hs, mir, msgr, xenl, xon, ++ cols#80, lines#24, nlab#32, ++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, ++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>, ++ csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>, ++ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>, ++ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>, ++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>, ++ cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>, ++ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~, ++ ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, ++ fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, ++ ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>, ++ ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m, ++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, ++ kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, ++ kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~, ++ kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~, ++ kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~, ++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, ++ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, ++ mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ++ ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l, ++ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, ++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>, ++ sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h, ++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, ++ use=vt220+keypad, ++ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd, + cols#132, +- kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm, +-# Although MacTerminal has insert/delete line, it is commented out here +-# since it is much faster and cleaner to use the "lock scrolling region" +-# method of inserting and deleting lines due to the MacTerminal implementation. +-# Also, the "Insert/delete ch" strings have an extra character appended to them +-# due to a bug in MacTerminal V1.1. Blink is disabled since it is not +-# supported by MacTerminal. +-mac|macintosh|Macintosh with MacTerminal, +- xenl, +- OTdN#30, +- blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa, +-# Lisaterm in 132 column ("wide") mode. +-mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode, +- cols#132, use=mac, +- +-# nsterm*|Apple_Terminal - AppKit Terminal.app +-# +-# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and +-# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X +-# Server and Mac OS X operating systems. There is also a +-# "terminal.app" in GNUStep, but I believe it to be an unrelated +-# codebase and I have not attempted to describe it here. +-# +-# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you +-# are pretty much on your own. Use "nsterm-7-m" and hope for the best. +-# You might also try "nsterm-7" and "nsterm-old" if you suspect your +-# version supports color. +-# +-# To determine the version of Terminal.app you're using by running: +-# +-# echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION" +-# +-# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm") +-# +-# For Apple_Terminal v71+/v100+, use "nsterm-bce". +-# +-# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s". +-# +-# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s". +-# +-# For all earlier versions (Apple_Terminal), try "nsterm-7-m" +-# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s" +-# might work too, but really you're on your own here since these +-# systems are very obsolete and I can't test them. I do welcome +-# patches, though :). +- +-# Other Terminals: +-# +-# For GNUstep_Terminal, you're probably best off using "linux" or +-# writing your own terminfo. +- +-# For MacTelnet, you're on your own. It's a different codebase, and +-# seems to be somewhere between "vt102", "ncsa" and "xterm-color". +- +-# For iTerm.app, see "iterm". +- +-# +-# The AppKit Terminal.app descriptions all have names beginning with +-# "nsterm". Note that the statusline (-s) versions use the window +-# titlebar as a phony status line, and may produce warnings during +-# compilation as a result ("tsl uses 0 parameters, expected 1".) +-# Ignore these warnings, or even ignore these entries entirely. Apps +-# which need to position the cursor or do other fancy stuff inside the +-# status line won't work with these entries. They're primarily useful +-# for programs like Pine which provide simple notifications in the +-# status line. Please note that non-ASCII characters don't work right +-# in the status line, since Terminal.app incorrectly interprets their +-# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X +-# versions) or only accepts status lines consisting entirely of +-# characters from the first 256 Unicode positions (including C1 but +-# not C0 or DEL.) +-# +-# The Mythology* of AppKit Terminal.app: +-# +-# In the days of NeXTSTep 0.x and 1.x there were two incompatible +-# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a +-# shareware replacement for Terminal called "Stuart" which NeXT bought +-# and used as the basis for the Terminal.app in NeXTstep 2+, +-# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I +-# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or +-# capabilities for the early versions, but I believe that the +-# TERM_PROGRAM_VERSION may have been reset at some point. +-# +-# The early versions were tailored to the NeXT character set. Sometime +-# after the Apple aquisition the encoding was swiched to MacRoman +-# (initally with serious altcharset bugs due to incomplete conversion +-# of the old NeXT code,) and then later to UTF-8. Alos sometime during +-# or just prior to the early days of Mac OS X, the Terminal grew ANSI +-# 8-color support (initially buggy when combined with attributes, but +-# that was later fixed.) More recently, around Mac OS X version 10.3 +-# or so (Terminal.app v100+) xterm-like 16-color support was added. In +-# some versions (for instance 133-1 which shipped with Mac OS X +-# version 10.4) this suffered from the <bce> bug, but that seems to +-# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+). +-# +-# In the early days of Mac OS X the terminal was fairly buggy and +-# would routinely crash under load. Many of these bugs seem to have +-# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but +-# some may still remain. This change seems to correspond to +-# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as +-# it did previously. +-# +-# * This may correspond with what actually happened, but I don't +-# know. It is based on guesswork, hearsay, private correspondence, +-# my faulty memory, and the following online sources and references: +-# +-# [1] "Three Scotts and a Duane" by Simson L. Garfinkel +-# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html ++ cup=\E[%i%p1%d;%p2%dH$<30>, ++ is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>, ++ rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>, ++ use=ncr260vt200an, ++ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd, ++ ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~, ++ kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=, ++ use=ncr260vt200an, ++ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd, ++ cols#132, ++ cup=\E[%i%p1%d;%p2%dH$<30>, ++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ use=ncr260vt200pp, ++ncr260vt300an|NCR 2900_260 vt300 with ansi kybd, ++ am, hs, mir, msgr, xenl, xon, ++ cols#80, lines#24, nlab#32, ++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G, ++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, ++ clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>, ++ csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>, ++ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>, ++ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>, ++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>, ++ cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>, ++ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~, ++ ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, ++ fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, ++ ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>, ++ ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m, ++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~, ++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, ++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, ++ kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~, ++ kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~, ++ kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, ++ kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~, ++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, ++ khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, ++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>, ++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, ++ rmul=\E[24m, ++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>, ++ sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h, ++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, ++ use=vt220+keypad, ++ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd, ++ cols#132, ++ cup=\E[%i%p1%d;%p2%dH$<30>, ++ is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>, ++ rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>, ++ use=ncr260vt300an, ++ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd, ++ ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~, ++ kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, ++ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=, ++ use=ncr260vt300an, ++NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd, ++ cols#132, ++ cup=\E[%i%p1%d;%p2%dH$<30>, ++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>, ++ use=ncr260vt300pp, ++# This terminfo file contains color capabilities for the Wyse325 emulation of ++# the NCR 2900/260C color terminal. Because of the structure of the command ++# (escape sequence) used to set color attributes, one of the fore/background ++# colors must be preset to a given value. I have set the background color to ++# black. The user can change this setup by altering the last section of the ++# 'setf' definition. The escape sequence to set color attributes is ++# ESC d y <foreground_color> <background_color> 1 ++# In addition, the background color can be changed through the desk accessories. ++# The capablitiy 'op' sets colors to green on black (default combination). + # +-# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia +-# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep ++# NOTE: The NCR Unix System Administrator's Shell will not function properly ++# if the 'pairs' capability is defined. Un-Comment the 'pairs' ++# capability and recompile if you wish to have it included. + # +-# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to +-# "nsterm" to comply with the name length and case conventions and +-# limitations of various software packages [notably Solaris terminfo +-# and UNIX.] A single Apple_Terminal alias is retained for +-# backwards-compatbility. ++ncr260wy325pp|NCR 2900_260 wyse 325, ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ colors#16, cols#80, lines#24, ncv#33, nlab#32, ++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, ++ cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M, ++ cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>, ++ cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c, ++ ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I, ++ hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1, ++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ, ++ kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, ++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET, ++ kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, ++ kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, ++ kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, ++ kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, ++ kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r, ++ kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, ++ kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, ++ kprt=\EP, mc0=\EP, mc4=^T, mc5=^R, ++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>, ++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0, ++ rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, ++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ setb=\s, ++ setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>, ++ sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/, ++ smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0, ++ tsl=\EF, ++ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode, ++ cols#132, ++ cup=\Ea%i%p1%dR%p2%dC$<30>, ++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ use=ncr260wy325pp, ++# This definition for Wyse 350 supports several attributes. This means ++# that it has magic cookies (extra spaces where the attributes begin). ++# Some applications do not function well with magic cookies. The System ++# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. ++# If supporting various attributes is not vital, 'xmc#1' and the extra ++# attributes can be removed. ++# Mapping to ASCII character set ('acsc' capability) can also be ++# restored if needed. ++# In addition, color capabilities have been added to this file. The drawback, ++# however, is that the background color has to be black. The foreground colors ++# are numbered 0 through 15. + # +-# * Added function key support (F1-F4). These only work in Terminal.app +-# version 51, hopefully the capabilities won't cause problems for people +-# using version 41. ++# NOTE: The NCR Unix System Administrator's Shell does not function properly ++# with the 'pairs' capability defined as below. If you wish to ++# have it included, Un-comment it and recompile (using 'tic'). + # +-# * Added "full color" (-c) entries which support the 16-color mode in +-# version 51. ++ncr260wy350pp|NCR 2900_260 wyse 350, ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1, ++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, ++ cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, ++ cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>, ++ cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c, ++ ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I, ++ hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1, ++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H, ++ kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, ++ kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, ++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, ++ kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, ++ kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, ++ kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, ++ kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, ++ kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, ++ khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, ++ mc0=\EP$<10>, mc4=^T, mc5=^R, ++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>, ++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0, ++ rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, ++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ setb=\s, ++ setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>, ++ sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/, ++ smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0, ++ tsl=\EF, ++ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode, ++ cols#132, ++ cup=\Ea%i%p1%dR%p2%dC$<30>, ++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, ++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, ++ use=ncr260wy350pp, ++# This definition for Wyse 50+ supports several attributes. This means ++# that it has magic cookies (extra spaces where the attributes begin). ++# Some applications do not function well with magic cookies. The System ++# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. ++# If supporting various attributes is not vital, 'xmc#1' and the extra ++# attributes can be removed. ++# Mapping to ASCII character set ('acsc' capability) can also be ++# restored if needed. ++# (ncr260wy50+pp: originally contained commented-out ++# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr) ++ncr260wy50+pp|NCR 2900_260 wyse 50+, ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ cols#80, lines#24, nlab#32, xmc#1, ++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2, ++ cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, ++ cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>, ++ cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c, ++ ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>, ++ ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>, ++ invis=\EG1, ++ is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H, ++ kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, ++ kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, ++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, ++ kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, ++ kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, ++ kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, ++ kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, ++ kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, ++ khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, ++ mc0=\EP$<10>, mc4=^T, mc5=^R, ++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>, ++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed., ++ rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, ++ rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq, ++ smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF, ++ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode, ++ cols#132, ++ cup=\Ea%i%p1%dR%p2%dC$<30>, ++ is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, ++ rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>, ++ use=ncr260wy50+pp, ++ncr260wy60pp|NCR 2900_260 wyse 60, ++ am, bw, hs, km, mc5i, mir, msgr, xon, ++ cols#80, lines#24, nlab#32, ++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2, ++ cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, ++ cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>, ++ cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c, ++ ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>, ++ ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>, ++ invis=\EG1, ++ is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ, ++ kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, ++ kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, ++ kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, ++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, ++ kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, ++ kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, ++ kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R, ++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>, ++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed., ++ rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, ++ rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/, ++ smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>, ++ tsl=\EF, ++ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode, ++ cols#132, ++ cup=\Ea%i%p1%dR%p2%dC$<30>, ++ is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>, ++ use=ncr260wy60pp, ++ncr160vppp|NCR 2900_160 viewpoint, ++ use=ncr260vppp, ++ncr160vpwpp|NCR 2900_160 viewpoint wide mode, ++ use=ncr260vpwpp, ++ncr160vt100an|NCR 2900_160 vt100 with ansi kybd, ++ use=ncr260vt100an, ++ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd, ++ use=ncr260vt100pp, ++ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd, ++ use=ncr260vt100wan, ++ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd, ++ use=ncr260vt100wpp, ++ncr160vt200an|NCR 2900_160 vt200 with ansi kybd, ++ use=ncr260vt200an, ++ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd, ++ use=ncr260vt200pp, ++ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd, ++ use=ncr260vt200wan, ++ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd, ++ use=ncr260vt200wpp, ++ncr160vt300an|NCR 2900_160 vt300 with ansi kybd, ++ use=ncr260vt300an, ++ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd, ++ use=ncr260vt300pp, ++ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd, ++ use=ncr260vt300wan, ++ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd, ++ use=ncr260vt300wpp, ++ncr160wy50+pp|NCR 2900_160 wyse 50+, ++ use=ncr260wy50+pp, ++ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode, ++ use=ncr260wy50+wpp, ++ncr160wy60pp|NCR 2900_160 wyse 60, ++ use=ncr260wy60pp, ++ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode, ++ use=ncr260wy60wpp, ++ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal, ++ am, hs, mc5i, mir, msgr, xon, ++ cols#80, it#8, lines#24, nlab#32, ++ acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~, ++ bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>, ++ clear=\E[2J\E[1;1H$<300>, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>, ++ cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>, ++ cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>, ++ cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>, ++ dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>, ++ ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>, ++ enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>, ++ ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>, ++ ind=\ED, ++ is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>, ++ kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP, ++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE, ++ rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>, ++ rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>, ++ rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>, ++ sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>, ++ sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>, ++ smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>, ++ tsl=\E[>+1$<70>, ++ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal, ++ cols#132, ++ is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>, ++ rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>, ++ use=ncrvt100an, + # +-# * By default, version 51 uses UTF-8 encoding with broken altcharset +-# support, so "ASCII" (-7) entries without altcharset support were +-# added. ++# Vendor-supplied NCR termcaps end here + +-# nsterm - AppKit Terminal.app +-# +-# Apple's Mac OS X includes a Terminal.app derived from the old NeXT +-# Terminal.app. It is a partial VT100 emulation with some xterm-like +-# extensions. This terminfo was written to describe versions 41 +-# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X +-# version 10.1) of Terminal.app. +-# +-# Terminal.app runs under the Mac OS X Quartz windowing system (and +-# other AppKit-supported windowing systems.) On the Mac OS X machine I +-# use, the executable for Terminal.app is: +-# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal +-# +-# If you're looking for a description of the full-screen system +-# console which runs under Apple's Darwin operating system on PowerPC +-# platforms, see the "xnuppc" entry instead. +-# +-# There were no function keys in version 41. In version 51, there are +-# four working function keys (F1, F2, F3 and F4.) The function keys +-# are included in all of these entries. +-# +-# It does not support mouse pointer position reporting. Under some +-# circumstances the cursor can be positioned using option-click; this +-# works by comparing the cursor position and the selected position, +-# and simulating enough cursor-key presses to move the cursor to the +-# selected position. This technique fails in all but the simplest +-# applications. +-# +-# It provides partial ANSI color support (background colors interacted +-# badly with bold in version 41, though, as reflected in :ncv:.) The +-# monochrome (-m) entries are useful if you've disabled color support +-# or use a monochrome monitor. The full color (-c) entries are useful +-# in version 51, which doesn't exhibit the background color bug. They +-# also enable an xterm-compatible 16-color mode. +-# +-# The configurable titlebar is set using xterm-compatible sequences; +-# it is used as a status bar in the statusline (-s) entries. Its width +-# depends on font sizes and window sizes, but 50 characters seems to +-# be the default for an 80x24 window. ++# NCR7900 DIP switches: + # +-# The MacRoman character encoding is used for some of the alternate +-# characters in the "MacRoman" entries; the "ASCII" (-7) entries +-# disable alternate character set support entirely, and the "VT100" +-# (-acs) entries rely instead on Terminal.app's own buggy VT100 +-# graphics emulation, which seems to think the character encoding is +-# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries +-# are useful in Terminal.app version 51, which supports UTF-8 and +-# other ASCII-compatible character encodings but does not correctly +-# implement VT100 graphics; once VT100 graphics are correctly +-# implemented in Terminal.app, the "VT100" (-acs) entries should be +-# usable in any ASCII-compatible character encoding [except perhaps +-# in UTF-8, where some experts argue for disallowing alternate +-# characters entirely.] ++# Switch A: ++# 1-4 - Baud Rate ++# 5 - Parity (Odd/Even) ++# 6 - Don't Send or Do Send Spaces ++# 7 - Parity Enable ++# 8 - Stop Bits (One/Two) + # +-# Terminal.app reports "vt100" as the terminal type, but exports +-# several environment variables which may aid detection in a shell +-# profile (i.e. .profile or .login): ++# Switch B: ++# 1 - Upper/Lower Shift ++# 2 - Typewriter Shift ++# 3 - Half Duplex / Full Duplex ++# 4 - Light/Dark Background ++# 5-6 - Carriage Return Without / With Line Feed ++# 7 - Extended Mode ++# 8 - Suppress Keyboard Display + # +-# TERM=vt100 +-# TERM_PROGRAM=Apple_Terminal +-# TERM_PROGRAM_VERSION=41 # in Terminal.app version 41 +-# TERM_PROGRAM_VERSION=51 # in Terminal.app version 51 ++# Switch C: ++# 1 - End of line entry disabled/enabled ++# 2 - Conversational mode / (Local?) Mode ++# 3 - Control characters displayed / not displayed ++# 4 - (2-wire?) / 4-wire communications ++# 5 - RTS on and off for each character ++# 6 - (50Hz?) / 60 Hz ++# 7 - Exit after level zero diagnostics ++# 8 - RS-232 interface + # +-# For example, the following Bourne shell script would detect the +-# correct terminal type: ++# Switch D: ++# 1 - Reverse Channel (yes / no) ++# 2 - Manual answer (no / yes) ++# 3-4 - Cursor appearance ++# 5 - Communication Rate ++# 6 - Enable / Disable EXT turnoff ++# 7 - Enable / Disable CR turnoff ++# 8 - Enable / Disable backspace + # +-# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ] +-# then +-# export TERM +-# if [ :"$TERM_PROGRAM_VERSION" = :41 ] +-# then +-# TERM="nsterm-old" +-# else +-# TERM="nsterm-c-7" +-# fi +-# fi ++# Since each attribute parameter is 0 or 1, we shift each attribute (standout, ++# reverse, blink, dim, and underline) the appropriate number of bits (by ++# multiplying the 0 or 1 by a correct factor to shift) so the bias character, ++# '@' is (effectively) "or"ed with each attribute to generate the proper third ++# character in the <ESC>0 sequence. The <sgr> string implements the following ++# equation: + # +-# In a C shell derivative, this would be accomplished by: ++# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) => ++# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17)) + # +-# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then +-# if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then +-# if ( :"$TERM_PROGRAM_VERSION" == :41 ) then +-# setenv TERM "nsterm-old" +-# else +-# setenv TERM "nsterm-c-7" +-# endif +-# endif +-# endif +- +-# The '+' entries are building blocks +-nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset, +- am, bw, msgr, xenl, xon, +- cols#80, it#8, lines#24, +- 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, +- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, +- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, +- invis=\E[8m, kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, +- kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, +- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, +- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, +- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys, +- +-nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset, +- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +- enacs=\E(B\E)0, rmacs=^O, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, use=nsterm+7, +- +-nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset, +- acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245, +- enacs=\E(B\E)0, rmacs=^O, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, +- sgr0=\E[m\017, smacs=^N, use=nsterm+7, +- +-nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support, +- hs, +- wsl#50, +- dsl=\E]2;\007, fsl=^G, tsl=\E]2;, +- +-nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors), +- op=\E[0m, use=ibm+16color, +- +-nsterm+c41|AppKit Terminal.app v41 color support, +- colors#8, ncv#37, pairs#64, +- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- +-# These are different combinations of the building blocks +- +-# ASCII charset (-7) +-nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome), +- use=nsterm+7, +- +-nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline), +- use=nsterm+s, use=nsterm+7, +- +-nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color), +- use=nsterm+c41, use=nsterm+7, +- +-nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color), +- use=nsterm+c, use=nsterm+7, +- +-nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline), +- use=nsterm+s, use=nsterm+c41, use=nsterm+7, +- +-nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline), +- use=nsterm+s, use=nsterm+c, use=nsterm+7, +- +-# VT100 alternate-charset (-acs) +-nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome), +- use=nsterm+acs, +- +-nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline), +- use=nsterm+s, use=nsterm+acs, +- +-nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color), +- use=nsterm+c41, use=nsterm+acs, ++# Where: P1 <==> Standout attribute parameter ++# P2 <==> Underline attribute parameter ++# P3 <==> Reverse attribute parameter ++# P4 <==> Blink attribute parameter ++# P5 <==> Dim attribute parameter ++# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO. ++ncr7900i|ncr7900|ncr 7900 model 1, ++ am, bw, ul, ++ cols#80, lines#24, xmc#1, ++ bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F, ++ cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J, ++ is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F, ++ kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@, ++ rmul=\E0@, ++ sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c, ++ sgr0=\E0@, smso=\E0Q, smul=\E0`, ++ncr7900iv|ncr 7900 model 4, ++ am, bw, eslok, hs, ++ cols#80, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ++ cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1, ++ fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H, ++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, ++ kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, ++ khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J, ++ tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo, ++# Warning: This terminal will lock out the keyboard when it receives a CTRL-D. ++# The user can enter a CTRL-B to get out of this locked state. ++# In <hpa>, we want to output the character given by the formula: ++# ((col / 10) * 16) + (col % 10) where "col" is "p1" ++ncr7901|ncr 7901 model, ++ am, bw, ul, ++ cols#80, lines#24, ++ bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M, ++ cub1=^H, cud1=^J, cuf1=^F, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A, ++ ed=\Ek, el=\EK, ++ hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J, ++ is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, ++ khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O, ++ sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016, ++ sgr0=^O, smso=\E0Q\016, smul=\E0`\016, ++ vpa=\013%p1%{64}%+%c, + +-nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color), +- use=nsterm+c, use=nsterm+acs, ++# Newbury Data Recording Limited (Newbury Data) ++# ++# Have been manufacturing and reselling various peripherals for a long time ++# They don't make terminals anymore, but are still in business (in 2007). ++# Their e-mail address is at ndsales@newburydata.co.uk ++# and their post address is: ++# ++# Newbury Data Recording Ltd, ++# Premier Park, Road One, ++# Winsford, Cheshire, CW7 3PT ++# ++# Their technical support is still good, they sent me for free a printed copy ++# of the 9500 user manual and I got it just 1 week after I first contacted them ++# (in 2005)! + +-nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline), +- use=nsterm+s, use=nsterm+c41, use=nsterm+acs, ++# NDR 9500 ++# Manufactured in the early/mid eighties, behaves almost the same as a ++# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but ++# keep the same keyboard layout), add an optional 25-line mode, replace the DIP ++# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC ! ++# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is ++# recognized: if you type in "ESC !", the next (third) character is not ++# echoed, showing that the terminal was actually waiting for a parameter! ++ndr9500|nd9500|Newbury Data 9500, ++ am, bw, hs, mc5i, mir, msgr, ul, xon, ++ cols#80, lines#24, wsl#79, ++ acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0, ++ clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW, ++ dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET, ++ flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1, ++ ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO, ++ kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z, ++ kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ++ ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, ++ kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, ++ kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, ++ kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, ++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ++ kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_, ++ pfloc=\E|%{48}%p1%+%c2%p2\031, ++ pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej, ++ rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N, ++ sgr=\EG0\E%%%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;, ++ sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O, ++ tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H, + +-nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline), +- use=nsterm+s, use=nsterm+c, use=nsterm+acs, ++ndr9500-nl|NDR 9500 with no status line, ++ hs@, ++ wsl@, ++ dsl@, fsl@, tsl@, use=ndr9500, + +-# MacRoman charset +-nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome), +- use=nsterm+mac, ++ndr9500-25|NDR 9500 with 25th line enabled, ++ lines#25, use=ndr9500, + +-nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline), +- use=nsterm+s, use=nsterm+mac, ++ndr9500-25-nl|NDR 9500 with 25 lines and no status line, ++ lines#25, use=ndr9500-nl, + +-nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color), +- use=nsterm+c41, use=nsterm+mac, ++ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink), ++ msgr@, ++ xmc#1, ++ blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, ++ sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c, ++ sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500, + +-nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color), +- use=nsterm+c, use=nsterm+mac, ++ndr9500-25-mc|NDR 500 with 25 lines and magic cookies, ++ lines#25, use=ndr9500-mc, + +-nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline), +- use=nsterm+s, use=nsterm+c41, use=nsterm+mac, ++ndr9500-mc-nl|NDR 9500 with magic cookies and no status line, ++ hs@, ++ wsl@, ++ dsl@, fsl@, tsl@, use=ndr9500-mc, + +-nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline), +- use=nsterm+s, use=nsterm+c, use=nsterm+mac, ++ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line, ++ lines#25, use=ndr9500-mc-nl, + +-# In Mac OS X version 10.5 the format of the preferences has changed +-# and a new, more complex technique is needed, e.g., ++#### Perkin-Elmer (Owl) + # +-# python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass( +-# "NSUserDefaults");ud=NSUserDefaults.alloc(); +-# ud.init();prefs=ud.persistentDomainForName_( +-# "com.apple.Terminal");prefs["Window Settings"][ +-# prefs["Default Window Settings"]]["TerminalType" +-# ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs, +-# "com.apple.Terminal")' nsterm-16color ++# These are official terminfo entries from within Perkin-Elmer. + # +-# and it is still not settable from the preferences dialog. This is +-# tracked under rdar://problem/7365108 and rdar://problem/7365134 +-# in Apple's bug reporter. +-nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5, +- bw@, mir, npc, +- civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, +- flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG, +- ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F, +- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, +- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, +- kf18=\E[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~, +- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H, +- knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, +- smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd, +- use=nsterm-c-s-acs, + +-# The versions of Terminal.app in Mac OS X version 10.3.x seem to have +-# the background color erase bug. The newer version 240.2 in Mac OS X +-# version 10.5 does not. ++bantam|pe550|pe6100|perkin elmer 550, ++ OTbs, ++ cols#80, lines#24, ++ bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, ++ el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA, ++fox|pe1100|perkin elmer 1100, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, ++ ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003, ++ home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3, ++owl|pe1200|perkin elmer 1200, ++ OTbs, am, in, ++ cols#80, lines#24, ++ bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, ++ dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>, ++ el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH, ++ hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>, ++ kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD, ++ kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA, ++ rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3, ++pe1251|pe6300|pe6312|perkin elmer 1251, ++ am, ++ cols#80, it#8, lines#24, pb#300, vt#8, xmc#1, ++ bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA, ++ ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J, ++ kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE, ++ kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3, ++# (pe7000m: this had ++# rmul=\E!\0, smul=\E!\040, ++# which is probably wrong, it collides with kf0 ++pe7000m|perkin elmer 7000 series monochrome monitor, ++ am, ++ cols#80, lines#24, ++ bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB, ++ cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ++ ed=\EJ, el=\EI, home=\EH, ind=^J, ++ is1=\E!\0\EW 7o\Egf\ES7\s, kbs=^H, kcub1=\E!V, ++ kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A, ++ kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E, ++ kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S, ++ ll=\ES7\s, ri=\ER, ++pe7000c|perkin elmer 7000 series colour monitor, ++ is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0, ++ rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m, ++ ++#### Sperry Univac + # +-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert, +-# and D P Schreber comparing to nsterm-c-s-acs. ++# Sperry Univac has merged with Burroughs to form Unisys. + # +-# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM +-# can be set in Terminal.app, e.g., ++ ++# This entry is for the Sperry UTS30 terminal running the TTY ++# utility under control of CP/M Plus 1R1. The functionality ++# provided is comparable to the DEC vt100. ++# (uts30: I added <rmam>/<smam> based on the init string -- esr) ++uts30|sperry uts30 with cp/m@1R1, ++ am, bw, hs, ++ cols#80, lines#24, wsl#40, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L, ++ cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c, ++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, ++ 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=\EM, ++ dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H, ++ ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN, ++ ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H, ++ rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI, ++ rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m, ++ rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m, ++ smul=\E[4m, tsl=\E], uc=\EPB, ++ ++#### Tandem + # +-# defaults write com.apple.Terminal TermCapString nsterm-bce ++# Tandem builds these things for use with its line of fault-tolerant ++# transaction-processing computers. They aren't generally available ++# on the merchant market, and so are fairly uncommon. + # +-# and that it is not set in Terminal's preferences dialog. +-nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce), +- bce, bw, use=nsterm-16color, + +-# This is an alias which should always point to the "current" version +-nsterm|Apple_Terminal|AppKit Terminal.app, +- use=nsterm-16color, ++tandem6510|adm3a repackaged by Tandem, ++ use=adm3a, + +-# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and +-# more featureful) terminal emulator for Mac OS X. It is similar +-# enough in capabilities to nsterm-16color that I have derived this +-# description from that one, but as far as I know they share no code. +-# Many of the features are user-configurable, but I attempt only to +-# describe the default configuration. +-# +-# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is +-# disabled. +-iTerm.app|iTerm.app terminal emulator for Mac OS X, +- bce, bw@, ccc@, +- csr@, initc@, kend=\EOF, khome=\EOH, use=xterm+256color, +- use=nsterm-16color, ++# A funny series of terminal that TANDEM uses. The actual model numbers ++# have a fourth digit after 653 that designates minor variants. These are ++# natively block-mode and rather ugly, but they have a character mode which ++# this doubtless(?) exploits. There is a 6520 that is slightly dumber. ++# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also, ++# removed <if=/usr/share/tabset/tandem653>, no such file -- esr) ++tandem653|t653x|Tandem 653x multipage terminal, ++ OTbs, am, da, db, hs, ++ cols#80, lines#24, wsl#64, xmc#1, ++ clear=\EI, cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r, ++ ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s, ++ rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo, + +-# xnuppc - Darwin PowerPC Console (a.k.a. "darwin") ++#### Tandy/Radio Shack + # +-# On PowerPC platforms, Apple's Darwin operating system uses a +-# full-screen system console derived from a NetBSD framebuffer +-# console. It is an ANSI-style terminal, and is not really VT-100 +-# compatible. ++# Tandy has a line of VDTs distinct from its microcomputers. + # +-# Under Mac OS X, this is the system console driver used while in +-# single-user mode [reachable by holding down Command-S during the +-# boot process] and when logged in using console mode [reachable by +-# typing ">console" at the graphical login prompt.] ++ ++dmterm|deskmate terminal, ++ am, bw, ++ cols#80, lines#24, ++ bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H, ++ cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I, ++ ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB, ++ kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4, ++ kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0, ++ khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, ++ lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@, ++ use=adm+sgr, ++dt100|dt-100|Tandy DT-100 terminal, ++ xon, ++ cols#80, lines#24, xmc#1, ++ acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, ++ csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\010\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, ich1=\E[@, ++ il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i, ++ kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~, ++ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H, ++ knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5, ++ lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m, ++dt100w|dt-100w|Tandy DT-100 terminal (wide mode), ++ cols#132, use=dt100, ++dt110|Tandy DT-110 emulating ansi, ++ xon, ++ cols#80, lines#24, ++ acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l, ++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, ++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[0P, ++ dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H, ++ ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K, ++ kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~, ++ kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~, ++ khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1, ++ lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9, ++ lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m, ++ smacs=^N, smso=\E[7m, smul=\E[4m, ++pt210|TRS-80 PT-210 printing terminal, ++ hc, os, ++ cols#80, ++ bel=^G, cr=^M, cud1=^J, ind=^J, ++ ++#### Tektronix (tek) + # +-# If you're looking for a description of the Terminal.app terminal +-# emulator which runs under the Mac OS X Quartz windowing system (and +-# other AppKit-supported windowing systems,) see the "nsterm" +-# entry instead. ++# Tektronix tubes are graphics terminals. Most of them use modified ++# oscilloscope technology incorporating a long-persistence green phosphor, ++# and support vector graphics on a main screen with an attached "dialogue ++# area" for interactive text. ++# ++ ++tek|tek4012|tektronix 4012, ++ OTbs, os, ++ cols#75, lines#35, ++ bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J, ++ ff=\014$<1000>, is2=\E^O, ++# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) ++tek4013|tektronix 4013, ++ acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012, ++tek4014|tektronix 4014, ++ cols#81, lines#38, ++ is2=\E\017\E9, use=tek4012, ++# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) ++tek4015|tektronix 4015, ++ acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014, ++tek4014-sm|tektronix 4014 in small font, ++ cols#121, lines#58, ++ is2=\E\017\E\:, use=tek4014, ++# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr) ++tek4015-sm|tektronix 4015 in small font, ++ acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm, ++# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay> + # +-# NOTE: Under Mac OS X version 10.1, the default login window does not +-# prompt for user name, instead requiring an icon to be selected from +-# a list of known users. Since the special ">console" login is not in +-# this list, you must make one of two changes in the Login Window +-# panel of the Login section of System Prefs to make the special +-# ">console" login accessible. The first option is to enable 'Show +-# "Other User" in list for network users', which will add a special +-# "Other..." icon to the graphical login panel. Selecting "Other..." +-# will present the regular graphical login prompt. The second option +-# is to change the 'Display Login Window as:' setting to 'Name and +-# password entry fields', which replaces the login panel with a +-# graphical login prompt. ++# You need to have "stty nl2" in effect. Some versions of tset(1) know ++# how to set it for you. + # +-# There are no function keys, at least not in Darwin 1.3. ++# It's got the Magic Cookie problem around stand-out mode. If you can't ++# live with Magic Cookie, remove the :so: and :se: fields and do without ++# reverse video. If you like reverse video stand-out mode but don't want ++# it to flash, change the letter 'H' to 'P' in the :so: field. ++tek4023|tektronix 4023, ++ OTbs, am, ++ OTdN#4, cols#80, lines#24, vt#4, xmc#1, ++ OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, ++ rmso=^_@, smso=^_P, ++# It is recommended that you run the 4025 at 4800 baud or less; ++# various bugs in the terminal appear at 9600. It wedges at the ++# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed ++# on keyboard don't work. You have to hit BREAK twice to get ++# one break at any speed - this is a documented feature. ++# Can't use cursor motion because it's memory relative, and ++# because it only works in the workspace, not the monitor. ++# Same for home. Likewise, standout only works in the workspace. + # +-# It has no mouse support. ++# <el> was commented out since vi and rogue seem to work better ++# simulating it with lots of spaces! + # +-# It has full ANSI color support, and color combines correctly with +-# all three supported attributes: bold, inverse-video and underline. +-# However, bold colored text is almost unreadable (bolding is +-# accomplished using shifting and or-ing, and looks smeared) so bold +-# has been excluded from the list of color-compatible attributes +-# [using (ncv)]. The monochrome entry (-m) is useful if you use a +-# monochrome monitor. ++# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U ++# and didn't seem necessary. + # +-# There is one serious bug with this terminal emulation's color +-# support: repositioning the cursor onto a cell with non-matching +-# colors obliterates that cell's contents, replacing it with a blank +-# and displaying a colored cursor in the "current" colors. There is +-# no complete workaround at present [other than using the monochrome +-# (-m) entries,] but removing the (msgr) capability seemed to help. ++tek4024|tek4025|tek4027|tektronix 4024/4025/4027, ++ OTbs, am, da, db, ++ cols#80, it#8, lines#34, lm#0, ++ bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M, ++ cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r, ++ cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r, ++ cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r, ++ dl=\037dli %p1%d\r\006, dl1=\037dli\r\006, ++ ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010, ++ il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r, ++ ind=^F^J, ++ is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r, ++ rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r, ++ smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r, ++tek4025-17|tek 4025 17 line window, ++ lines#17, use=tek4025, ++tek4025-17-ws|tek 4025 17 line window in workspace, ++ is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r, ++ rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r, ++ smso=\037att e\r, use=tek4025-17, ++tek4025-ex|tek4027-ex|tek 4025/4027 w/!, ++ is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r, ++ rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025, ++# Tektronix 4025a ++# From: Doug Gwyn <gwyn@brl-smoke.ARPA> ++# The following status modes are assumed for normal operation (replace the ++# initial "!" by whatever the current command character is): ++# !COM 29 # NOTE: changes command character to GS (^]) ++# ^]DUP ++# ^]ECH R ++# ^]EOL ++# ^]RSS T ++# ^]SNO N ++# ^]STO 9 17 25 33 41 49 57 65 73 ++# Other modes may be set according to communication requirements. ++# If the command character is inadvertently changed, termcap can't restore it. ++# Insert-character cannot be made to work on both top and bottom rows. ++# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas. ++# There also seems to be a problem with vertical motion, perhaps involving ++# delete/insert-line, following a typed carriage return. This terminal sucks. ++# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! ++# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't ++# work any more. -- esr) ++tek4025a|Tektronix 4025A, ++ OTbs, OTpt, am, bw, da, db, xon, ++ cols#80, it#8, lines#34, ++ bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^], ++ cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;, ++ cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;, ++ cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;, ++ dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;, ++ el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I, ++ il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;, ++ rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;, ++ tbc=\035sto;, ++# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981 ++# Here's the command file that I use to get rogue to work on the 4025. ++# It should work with any program using the old curses (e.g. it better ++# not try to scroll, or cursor addressing won't work. Also, you can't ++# see the cursor.) ++# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh) ++tek4025-cr|tek 4025 for curses and rogue, ++ OTbs, am, ++ cols#80, it#8, lines#33, ++ clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;, ++ cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J, ++ is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r, ++ rmcup=\037wor 0, smcup=\037wor 33h, ++# next two lines commented out since curses only allows 128 chars, sigh. ++# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\ ++# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0: ++tek4025ex|4025ex|4027ex|tek 4025 w/!, ++ is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r, ++ rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025, ++tek4105|tektronix 4105, ++ OTbs, am, mir, msgr, ul, xenl, xt, ++ cols#79, it#8, lines#29, ++ acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z, ++ clear=\E[2J\E[H, cr=^M, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C, ++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P, ++ dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ++ il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m, ++ is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B, ++ kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T, ++ rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m, ++ rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m, ++ smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m, ++ smul=\E[=5;<2m, tbc=\E[1g, ++ ++# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr) ++tek4105-30|4015 emulating 30 line vt100, ++ am, mir, msgr, xenl, xon, ++ cols#80, it#8, lines#30, vt#3, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, ++ clear=\E[H\E[J$<50>, 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$<2>, ++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, ++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>, ++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8, ++ rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l, ++ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>, ++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, ++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>, ++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, ++ smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, ++ use=vt100+fnkeys, ++ ++# Tektronix 4105 from BRL ++# The following setup modes are assumed for normal operation: ++# CODE ansi CRLF no DABUFFER 141 ++# DAENABLE yes DALINES 30 DAMODE replace ++# DAVISIBILITY yes ECHO no EDITMARGINS 1 30 ++# FLAGGING input INSERTREPLACE replace LFCR no ++# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B ++# SELECTCHARSET G1 0 TABS -2 ++# Other setup modes may be set for operator convenience or communication ++# requirements; I recommend ++# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes ++# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 ++# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> ++# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1 ++# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" ++# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132 ++# XMTDELAY 0 ++# and factory color maps. After setting these modes, save them with NVSAVE. No ++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! ++# "IC" cannot be used in combination with "im" & "ei". ++# "tek4105a" is just a guess: ++tek4105a|Tektronix 4105, ++ OTbs, OTpt, msgr, xon, ++ OTkn#8, cols#80, it#8, lines#30, vt#3, ++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J, ++ cnorm=\E%!0\ETD10\E%!1, 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=\EM, cvvis=\E%!0\ETD70\E%!1, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ, ++ kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, ++ lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, ++ rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1, ++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>, ++ sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ + # +-# The "standout" chosen was simple reverse-video, although a colorful +-# standout might be more aesthetically pleasing. Similarly, the bold +-# chosen is the terminal's own smeared bold, although a simple +-# color-change might be more readable. The color-bold (-b) entries +-# uses magenta colored text for bolding instead. The fancy color (-f +-# and -f2) entries use color for bold, standout and underlined text +-# (underlined text is still underlined, though.) ++# Tektronix 4106/4107/4109 from BRL ++# The following setup modes are assumed for normal operation: ++# CODE ansi COLUMNMODE 80 CRLF no ++# DABUFFER 141 DAENABLE yes DALINES 32 ++# DAMODE replace DAVISIBILITY yes ECHO no ++# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace ++# LFCR no LOCKKEYBOARD no ORIGINMODE relative ++# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0 ++# TABS -2 ++# Other setup modes may be set for operator convenience or communication ++# requirements; I recommend ++# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes ++# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 ++# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> ++# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3 ++# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" ++# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132 ++# XMTDELAY 0 ++# and factory color maps. After setting these modes, save them with NVSAVE. No ++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! ++# "IC" cannot be used in combination with "im" & "ei". ++tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109, ++ msgr, xon, ++ cols#80, it#8, lines#32, vt#3, ++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, ++ civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J, ++ cnorm=\E%!0\ETD10\E%!1, 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=\EM, cvvis=\E%!0\ETD70\E%!1, ++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH, ++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1, ++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ++ kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ, ++ kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, ++ lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, ++ rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1, ++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>, ++ sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h, ++ smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g, ++ ++# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code: ++# 0 selects Tek mode, i.e., \E%!0 ++# 1 selects ANSI mode ++# 2 selects ANSI edit-mode ++# 3 selects VT52 mode + # +-# Apparently the terminal emulator does support a VT-100-style +-# alternate character set, but all the alternate character set +-# positions have been left blank in the font. For this reason, no +-# alternate character set capabilities have been included in this +-# description. The console driver appears to be ASCII-only, so (enacs) +-# has been excluded [although the VT-100 sequence does work.] ++# One odd thing about the description (which has been unchanged since the 90s) ++# is that the cursor addressing is using VT52 mode, and a few others use the ++# VT52's non-CSI versions of ANSI, e.g., \EJ. ++tek4107|tek4109|tektronix terminals 4107 4109, ++ OTbs, am, mir, msgr, ul, xenl, xt, ++ cols#79, it#8, lines#29, ++ bel=^G, blink=\E%!1\E[5m$<2>\E%!0, ++ bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M, ++ cub1=^H, cud1=^J, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3, ++ dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J, ++ kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ rev=\E%!1\E[7m$<2>\E%!0, ri=\EI, ++ rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0, ++ sgr=\E%%!1\E[%?%p1%t;7;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t<0%;%?%p6%t;1%;m$<2>\E%%!0, ++ sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0, ++ smul=\E%!1\E[4m$<2>\E%!0, ++# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s; ++# see the note attached to tek4207. ++tek4207-s|Tektronix 4207 with sysline but no memory, ++ eslok, hs, ++ dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8, ++ is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J, ++ is2=\E7\E[?6l\E[2K\E[?6h\E8, ++ tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107, ++ ++# The 4110 series may be a wonderful graphics series, but they make the 4025 ++# look good for screen editing. In the dialog area, you can't move the cursor ++# off the bottom line. Out of the dialog area, ^K moves it up, but there ++# is no way to scroll. + # +-# The default Mac OS X and Darwin installation reports "vt100" as the +-# terminal type, and exports no helpful environment variables. To fix +-# this, change the "console" entry in /etc/ttys from "vt100" to +-# "xnuppc-WxH", where W and H are the character dimensions of your +-# console (see below.) ++# Note that there is a floppy for free from Tek that makes the ++# 4112 emulate the vt52 (use the vt52 termcap). There is also ++# an expected enhancement that will use ANSI standard sequences. + # +-# The font used by the terminal emulator is apparently one originally +-# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This +-# file includes descriptions for the following geometries: ++# 4112 in non-dialog area pretending to scroll. It really wraps ++# but vi is said to work (more or less) in this mode. + # +-# Pixels Characters Entry Name (append -m for monochrome) +-# ------------------------------------------------------------------- +-# 640x400 80x25 xnuppc-80x25 +-# 640x480 80x30 xnuppc-80x30 +-# 720x480 90x30 xnuppc-90x30 +-# 800x600 100x37 xnuppc-100x37 +-# 896x600 112x37 xnuppc-112x37 +-# 1024x640 128x40 xnuppc-128x40 +-# 1024x768 128x48 xnuppc-128x48 +-# 1152x768 144x48 xnuppc-144x48 +-# 1280x1024 160x64 xnuppc-160x64 +-# 1600x1024 200x64 xnuppc-200x64 +-# 1600x1200 200x75 xnuppc-200x75 +-# 2048x1536 256x96 xnuppc-256x96 ++# 'vi' works reasonably well with this entry. + # +-# The basic "xnuppc" entry includes no size information, and the +-# emulator includes no reporting capability, so you'll be at the mercy +-# of the TTY device (which reports incorrectly on my hardware.) The +-# color-bold entries do not include size information. +- +-# The '+' entries are building blocks +-xnuppc+basic|Darwin PowerPC Console basic capabilities, +- am, bce, mir, xenl, +- it#8, +- bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr, +- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, ++otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series, ++ am, ++ cols#80, lines#34, ++ bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J, ++ rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0, ++# The 4112 with the ANSI compatibility enhancement ++tek4112|tek4114|tektronix 4110 series, ++ OTbs, am, db, ++ cols#80, lines#34, ++ cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, ++ dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L, ++ ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8, ++ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, ++tek4112-nd|4112 not in dialog area, ++ OTns, ++ cuu1=^K, use=tek4112, ++tek4112-5|4112 in 5 line dialog area, ++ lines#5, use=tek4112, ++# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake; ++# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3. ++# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were ++# previously \0410 and \0411 sequences...I don't *think* they were supposed ++# to be 4-digit octal -- esr) ++tek4113|tektronix 4113 color graphics with 5 line dialog area, ++ OTbs, am, da, eo, ++ cols#80, lines#5, ++ clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0, ++ flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0, ++ is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0, ++tek4113-34|tektronix 4113 color graphics with 34 line dialog area, ++ lines#34, ++ is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113, ++# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not ++# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up . ++# :vb: needs enough delay to let you see the background color being toggled. ++tek4113-nd|tektronix 4113 color graphics with no dialog area, ++ OTbs, am, eo, ++ cols#80, it#8, lines#34, ++ clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K, ++ cvvis=\ELZ\EKA0, ++ flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0, ++ home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @, ++ ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0, ++# This entry is from Tek. Inc. (Brian Biehl) ++# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr) ++otek4115|Tektronix 4115, ++ OTbs, am, da, db, eo, ++ cols#80, it#8, lines#34, ++ cbt=\E[Z, clear=\E[H\E[2J, ++ cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J, ++ el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100, ++ il1=\E[L, ++ is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m, ++ kbs=^H, ri=\EM, rmam=\E[?7l, ++ rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l, ++ rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, ++ smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m, ++ smul=\E[4m, ++tek4115|newer tektronix 4115 entry with more ANSI capabilities, ++ am, xon, ++ cols#80, lines#34, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, ++ cr=^M, 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, dsl=\E]2;\007, ed=\E[J, el=\E[K, +- el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177, +- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8, +- rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, +- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, +- sc=\E7, +- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, +- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, use=vt100+keypad, +- +-xnuppc+c|Darwin PowerPC Console ANSI color support, +- colors#8, ncv#32, pairs#64, +- op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, +- +-xnuppc+b|Darwin PowerPC Console color-bold support, +- ncv#32, +- bold=\E[35m, +- sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, +- use=xnuppc+basic, +- +-xnuppc+f|Darwin PowerPC Console fancy color support, +- ncv#35, +- sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m, +- smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b, +- +-xnuppc+f2|Darwin PowerPC Console alternate fancy color support, +- ncv#35, +- bold=\E[33m, +- sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m, +- smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic, +- +-# Building blocks for specific screen sizes +-xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels), +- cols#80, lines#25, +- +-xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels), +- cols#80, lines#30, +- +-xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels), +- cols#90, lines#30, +- +-xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels), +- cols#100, lines#37, +- +-xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels), +- cols#112, lines#37, +- +-xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels), +- cols#128, lines#40, +- +-xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels), +- cols#128, lines#48, +- +-xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels), +- cols#144, lines#48, +- +-xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels), +- cols#160, lines#64, +- +-xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels), +- cols#200, lines#64, +- +-xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels), +- cols#200, lines#75, +- +-xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels), +- cols#256, lines#96, +- +-# These are different combinations of the building blocks +- +-xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome), +- use=xnuppc+basic, +- +-xnuppc|darwin|Darwin PowerPC Console (color), +- use=xnuppc+c, use=xnuppc+basic, +- +-xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold), +- use=xnuppc+b, +- +-xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold), +- use=xnuppc+b, use=xnuppc+c, +- +-xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome), +- use=xnuppc+f, +- +-xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color), +- use=xnuppc+f, use=xnuppc+c, +- +-xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome), +- use=xnuppc+f2, +- +-xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color), +- use=xnuppc+f2, use=xnuppc+c, +- +-# Combinations for specific screen sizes +-xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25, +- use=xnuppc+80x25, use=xnuppc+basic, +- +-xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25, +- use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic, +- +-xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30, +- use=xnuppc+80x30, use=xnuppc+basic, +- +-xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30, +- use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic, ++ cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM, ++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG, ++ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D, ++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ++ 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;%;%?%p7%t8;%;m, ++ sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ vpa=\E[%p1%{1}%+%dd, ++# The tek4125 emulates a vt100 incorrectly - the scrolling region ++# command is ignored. The following entry replaces <csr> with the needed ++# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125 ++# chokes on; and adds a lot of initialization for the tek dialog area. ++# Note that this entry uses all 34 lines and sets the cursor color to green. ++# Steve Jacobson 8/85 ++# (tek4125: there were two "\!"s in the is that I replaced with "\E!"; ++# commented out, <smir>=\E1 because there's no <rmir> -- esr) ++tek4125|tektronix 4125, ++ lines#34, ++ csr@, dl1=\E[1M, il1=\E[1L, ++ is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, ++ rc@, sc@, smkx=\E=, use=vt100, + +-xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30, +- use=xnuppc+90x30, use=xnuppc+basic, ++# From: <jcoker@ucbic> ++# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO ++# supplied another, less capable 4107 entry. So we'll use that for 4107 and ++# note that if jcoker wasn't confused you may be able to use this one. ++# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr) ++tek4207|Tektronix 4207 graphics terminal with memory, ++ am, bw, mir, msgr, ul, xenl, ++ cols#80, it#8, lines#32, ++ blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>, ++ cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J, ++ el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>, ++ il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5, ++ is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J, ++ kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H, ++ rev=\E[7m, ri=\E[T, ++ rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m, ++ rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m, ++ smul=\E[4m, tbc=\E[1g, + +-xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30, +- use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic, ++# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985 ++# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!". ++# Tab had been given as \E2I,that must be the tab-set capability -- esr) ++tek4404|tektronix 4404, ++ OTbs, ++ cols#80, it#8, lines#32, ++ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, ++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M, ++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8, ++ rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l, ++ rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m, ++ smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h, ++ smkx=\E[?1l, smso=\E[7m, smul=\E[4m, ++# Some unknown person wrote: ++# I added the is string - straight Unix has ESC ; in the login ++# string which sets a ct8500 into monitor mode (aka 4025 snoopy ++# mode). The is string here cleans up a few things (but not ++# everything). ++ct8500|tektronix ct8500, ++ am, bw, da, db, ++ cols#80, lines#25, ++ bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER, ++ dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\, ++ il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s, ++ rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!, + +-xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37, +- use=xnuppc+100x37, use=xnuppc+basic, ++# Tektronix 4205 terminal. ++# ++# am is not defined because the wrap around occurs not when the char. ++# is placed in the 80'th column, but when we are attempting to type ++# the 81'st character on the line. (esr: hmm, this is like the vt100 ++# version of xenl, perhaps am + xenl would work!) ++# ++# Bold, dim, and standout are simulated by colors and thus not allowed ++# with colors. The tektronix color table is mapped into the RGB color ++# table by setf/setb. All colors are reset to factory specifications by oc. ++# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the ++# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub- ++# interval then maps into pre-defined value. ++tek4205|tektronix 4205, ++ ccc, mir, msgr, ++ colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z, ++ clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D, ++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, ++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ++ dch1=\E[1P, dim=\E[=1;<6m, dl=\E[%p1%dM, dl1=\E[1M, ++ ech=\E%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, ++ home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ++ ind=\ED, ++ initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1, ++ invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA, ++ kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER, ++ kf7=\ES, ++ oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1, ++ op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=, ++ rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m, ++ setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;, ++ setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;, ++ sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N, ++ smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m, ++ smul=\E[4m, tbc=\E[1g, + +-xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37, +- use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic, ++#### Teletype (tty) ++# ++# These are the hardcopy Teletypes from before AT&T bought the company, ++# clattering electromechanical dinosaurs in Bakelite cases that printed on ++# pulpy yellow roll paper. If you remember these you go back a ways. ++# Teletype-branded VDTs are listed in the AT&T section. ++# ++# The earliest UNIXes were designed to use these clunkers; nroff and a few ++# other programs still default to emitting codes for the Model 37. ++# + +-xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37, +- use=xnuppc+112x37, use=xnuppc+basic, ++tty33|tty35|model 33 or 35 teletype, ++ hc, os, xon, ++ cols#72, ++ bel=^G, cr=^M, cud1=^J, ind=^J, ++tty37|model 37 teletype, ++ OTbs, hc, os, xon, ++ bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8, ++ ind=^J, + +-xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37, +- use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic, ++# There are known to be at least three flavors of the tty40, all seem more ++# like IBM half duplex forms fillers than ASCII terminals. They have lots of ++# awful braindamage, such as printing a visible newline indicator after each ++# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is ++# braindamaged but has hope and is described here. The 40-4 is a 3270 ++# lookalike and beyond hope. The terminal has visible bell but I don't know ++# it - it's null here to prevent it from showing the BL character. ++# There is an \EG in <nl> because of a bug in old vi (if stty says you have ++# a "newline" style terminal (-crmode) vi figures all it needs is nl ++# to get crlf, even if <cr> is not ^M.) ++# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr) ++tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2, ++ OTbs, xon, ++ cols#80, lines#24, ++ clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB, ++ cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>, ++ ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1, ++ ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^], ++ kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4, ++ rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>, ++tty43|model 43 teletype, ++ OTbs, am, hc, os, xon, ++ cols#132, ++ bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H, + +-xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40, +- use=xnuppc+128x40, use=xnuppc+basic, ++#### Tymshare ++# + +-xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40, +- use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic, ++# You can add <is2=\E<> to put this 40-column mode, though I can't ++# for the life of me think why anyone would want to. ++scanset|sc410|sc415|Tymshare Scan Set, ++ am, bw, msgr, ++ cols#80, lines#24, ++ acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, ++ cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ++ cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED, ++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0, ++ mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N, + +-xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48, +- use=xnuppc+128x48, use=xnuppc+basic, ++#### Volker-Craig (vc) ++# ++# If you saw a Byte Magazine cover with a terminal on it during the early ++# 1980s, it was probably one of these. Carl Helmers liked them because ++# they could crank 19.2 and were cheap (that is, he liked them until he tried ++# to program one...) ++# + +-xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48, +- use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic, ++# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time ++# every other linefeed. ++vc303|vc103|vc203|volker-craig 303, ++ OTbs, OTns, am, ++ cols#80, lines#24, ++ bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I, ++ cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I, ++ kcuu1=^N, ll=\017$<1>W, ++vc303a|vc403a|volker-craig 303a, ++ clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>, ++ home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303, ++# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr) ++vc404|volker-craig 404, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U, ++ cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, ++ ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J, ++ kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, ++vc404-s|volker-craig 404 w/standout mode, ++ cud1=^J, rmso=^O, smso=^N, use=vc404, ++# From: <wolfgang@cs.sfu.ca> ++# (vc414: merged in cup/dl1/home from an old vc414h-noxon) ++vc414|vc414h|Volker-Craig 414H in sane escape mode., ++ OTbs, am, ++ cols#80, lines#24, ++ clear=\E\034$<40>, cud1=\E^K, cuf1=^P, ++ cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3, ++ dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R, ++ ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P, ++ kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE, ++ kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2, ++ lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8, ++ rmso=\E^_, smso=\E^Y, ++vc415|volker-craig 415, ++ clear=^L, use=vc404, + +-xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48, +- use=xnuppc+144x48, use=xnuppc+basic, ++######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS ++# + +-xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48, +- use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic, ++#### IBM PC and clones ++# + +-xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64, +- use=xnuppc+160x64, use=xnuppc+basic, ++# The pcplot IBM-PC terminal emulation program is really messed up. It is ++# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly, ++# doesn't support scrolling regions, ignores add line commands, and ignores ++# delete line commands. Consequently, the resulting behavior looks like a ++# crude adm3a-type terminal. ++# Steve Jacobson 8/85 ++pcplot|pc-plot terminal emulation program, ++ xenl@, ++ csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100, ++# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA> ++# I've found that my KayPro II, running MDM730, continues to emulate an ++# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX ++# system the following termcap entry works well: ++# I have noticed a couple of minor glitches, but nothing I can't work ++# around. (I added two capabilities from the BRL entry -- esr) ++kaypro|kaypro2|kaypro II, ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W, ++ el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K, + +-xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64, +- use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic, ++# From IBM, Thu May 5 19:35:27 1983 ++# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr) ++ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS), ++ OTbs, am, ++ cols#80, lines#24, ++ bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\, ++ cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_, + +-xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64, +- use=xnuppc+200x64, use=xnuppc+basic, ++ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX, ++ OTbs, am, bw, eo, hs, km, msgr, ul, ++ cols#80, it#8, lines#24, ++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M, ++ cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, ++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, ++ cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B, ++ indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H, ++ kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241, ++ kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247, ++ kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V, ++ ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A, ++ rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m, ++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t30;40%;m, ++ sgr0=\E[m, smso=\E[7m, smul=\E[4m, + +-xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64, +- use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic, ++#### Apple II ++# ++# Apple II firmware console first, then various 80-column cards and ++# terminal emulators. For two cents I'd toss all these in the UFO file ++# along with the 40-column apple entries. ++# + +-xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75, +- use=xnuppc+200x75, use=xnuppc+basic, ++# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL ++# 'it#8' tells UNIX that you have tabs every 8 columns. This is a ++# function of TIC, not the firmware. ++# The clear key on a IIgs will do something like clear-screen, ++# depending on what you're in. ++appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface, ++ OTbs, am, bw, eo, msgr, ++ cols#80, it#8, lines#24, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J, ++ kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N, ++ smso=^O, ++# Apple //e with 80-column card, entry from BRL ++# The modem interface is permitted to discard LF (maybe DC1), otherwise ++# passing characters to the 80-column firmware via COUT (PR#3 assumed). ++# Auto-wrap does not work right due to newline scrolling delay, which also ++# requires that you set "stty cr2". ++# Note: Cursor addressing is only available via the Pascal V1.1 entry, ++# not via the BASIC PR#3 hook. All this nonsense can be avoided only by ++# using a terminal emulation program instead of the built-in firmware. ++apple2e|Apple //e, ++ bw, msgr, ++ cols#80, lines#24, ++ bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_, ++ ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W, ++ is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K, ++ nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N, ++ smso=^O, ++# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro ++# 4.20, with incoming and outgoing terminals both on 0, emulation On. ++apple2e-p|Apple //e via Pascal, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H, ++ kcud1=^J, use=apple2e, ++# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL ++# Enable DC3/DC1 flow control with "stty ixon -ixany". ++apple-ae|ASCII Express, ++ OTbs, am, bw, msgr, nxon, xon, ++ cols#80, it#8, lines#24, ++ bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J, ++ kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N, ++ smso=^O, ++appleII|apple ii plus, ++ OTbs, am, ++ cols#80, it#8, lines#24, ++ clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6, ++ ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I, ++ is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N, ++ smso=^O, ++# Originally by Gary Ford 21NOV83 ++# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985 ++apple-80|apple II with smarterm 80 col, ++ OTbs, am, bw, ++ cols#80, lines#24, ++ cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J, ++ cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ++ ed=\013$<10*/>, el=\035$<10/>, home=^Y, ++apple-soroc|apple emulating soroc 120, ++ am, ++ cols#80, lines#24, ++ bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L, ++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET, ++ home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, ++# From Peter Harrison, Computer Graphics Lab, San Francisco ++# ucbvax!ucsfmis!harrison .....uucp ++# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA ++# "These two work. If you don't have the inverse video chip for the ++# Apple with videx then remove the :so: and :se: fields." ++# (apple-videx: this used to be called DaleApple -- esr) ++apple-videx|Apple with videx videoterm 80 column board with inverse video, ++ OTbs, am, xenl, ++ cols#80, it#8, lines#24, ++ clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y, ++ rmso=^Z2, sgr0=^Z2, smso=^Z3, ++# My system [for reference] : Apple ][+, 64K, Ultraterm display card, ++# Apple Cat ][ 212 modem, + more all ++# controlled by ASCII Express: Pro. ++# From Dave Shaver <isucs1!shaver> ++apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell, ++ OTbs, am, eo, xt, ++ cols#80, lines#24, ++ acsc=, clear=^L, cuf1=^\, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ flash=^W35^W06, home=^Y, ++ is2=^V4^W06\017\rVisible Bell Installed.\016\r\n, ++ rmso=^N, smso=^O, ++apple-uterm|Ultraterm for Apple micros, ++ OTbs, am, eo, xt, ++ cols#80, lines#24, ++ acsc=, clear=^L, cuf1=^\, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O, ++# from trwrba!bwong (Bradley W. Wong): ++# ++# This entry assumes that you are using an apple with the UCSD Pascal ++# language card. SYSTEM.MISCINFO is assumed to be the same as that ++# supplied with the standard apple except that screenwidth should be set ++# using SETUP to 80 columns. Note that the right arrow is not mapped in ++# this termcap entry. This is because that key, on the Apple, transmits ++# a ^U and would thus preempt the more useful "up" function of vi. ++# ++# HMH 2/23/81 ++apple80p|80-column apple with Pascal card, ++ am, bw, ++ cols#80, lines#24, ++ clear=^Y^L, cuf1=^\\:, ++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^], ++ home=^Y, kcub1=^H, ++# ++# Apple II+ equipped with Videx 80 column card ++# ++# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL; ++# manually converted by D A Gwyn ++# ++# DO NOT use any terminal emulation with this data base, it works directly ++# with the Videx card. This has been tested with vi 1200 baud and works fine. ++# ++# This works great for vi, except I've noticed in pre-R2, ^U will scroll back ++# 1 screen, while in R2 ^U doesn't. ++# For inverse alternate character set add: ++# <smacs>=^O:<rmacs>=^N: ++# (apple-v: added it#8 -- esr) ++apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520), ++ am, xenl, ++ cols#80, it#8, lines#24, ++ bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H, ++ cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, ++ cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>, ++ ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_, ++ khome=^Y, rmso=^Z2, smso=^Z3, ++apple-videx3|vapple|Apple II with 80 col card, ++ OTbs, am, ++ cols#80, lines#24, ++ clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex, ++ home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ++ kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#, ++ kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH, ++#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL ++aepro|Apple II+ running ASCII Express Pro--vt52, ++ OTbs, ++ cols#80, lines#24, ++ clear=\014$<300/>, cub1=\ED, cud1=\EB, cuf1=\EC, ++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ, ++ el=\EK, home=\EH, ++# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory ++apple-vm80|ap-vm80|apple with viewmax-80, ++ OTbs, ++ cols#80, lines#24, ++ clear=\014$<300/>, cuf1=^\\:, ++ cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_, ++ ed=\013$<300/>, el=^], home=\031$<200/>, + +-xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75, +- use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic, ++#### Apple Lisa & Macintosh ++# + +-xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96, +- use=xnuppc+256x96, use=xnuppc+basic, ++# (lisa: changed <cvvis> to <cnorm> -- esr) ++lisa|apple lisa console display (black on white), ++ OTbs, am, eo, msgr, ++ cols#88, it#8, lines#32, ++ acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L, ++ cnorm=\E[5l, cub1=^H, 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, ich1=\E[@, il1=\E[L, ++ is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B, ++ kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m, ++ sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m, ++liswb|apple lisa console display (white on black), ++ is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m, ++ smso=\E[m, smul=\E[4m, use=lisa, + +-xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96, +- use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic, ++# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL; ++# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA> ++# ++# These entries assume that the 'Auto Wraparound' is enabled. ++# Xon-Xoff flow control should also be enabled. ++# ++# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab ++# settings are in non-volatile memory and don't need to be reset upon login. ++# Also setting the number of columns glitches the screen annoyingly. ++# You can type "reset" to get them set. ++# ++lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation, ++ OTbs, OTpt, am, xenl, xon, ++ OTkn#4, cols#80, it#8, lines#24, vt#3, ++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, 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, ed=\E[J, ++ el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, ++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ, ++ kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8, ++ rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, ++ rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r, ++ sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, ++ tbc=\E[3g, ++# Lisaterm in 132 column ("wide") mode. ++lisaterm-w|Apple Lisa with Lisaterm in 132 column mode, ++ cols#132, ++ kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm, ++# Although MacTerminal has insert/delete line, it is commented out here ++# since it is much faster and cleaner to use the "lock scrolling region" ++# method of inserting and deleting lines due to the MacTerminal implementation. ++# Also, the "Insert/delete ch" strings have an extra character appended to them ++# due to a bug in MacTerminal V1.1. Blink is disabled since it is not ++# supported by MacTerminal. ++mac|macintosh|Macintosh with MacTerminal, ++ xenl, ++ OTdN#30, ++ blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa, ++# Lisaterm in 132 column ("wide") mode. ++mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode, ++ cols#132, use=mac, + + #### Radio Shack/Tandy + # +@@ -17752,6 +18059,23 @@ + # See + # http://www.minix3.org/manpages/man4/console.4.html + minix|minix console (v3), ++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, ++ kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~, ++ kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~, ++ kf14=\E[14;2~, kf15=\E[15;2~, kf16=\E[17;2~, ++ kf17=\E[18;2~, kf18=\E[19;2~, kf19=\E[20;2~, kf2=\E[12~, ++ kf20=\E[21;2~, kf21=\E[11;5~, kf22=\E[12;5~, ++ kf23=\E[13;5~, kf24=\E[14;5~, kf25=\E[15;5~, ++ kf26=\E[17;5~, kf27=\E[18;5~, kf28=\E[19;5~, ++ kf29=\E[20;5~, kf3=\E[13~, kf30=\E[21;5~, kf31=\E[11;6~, ++ kf32=\E[12;6~, kf33=\E[13;6~, kf34=\E[14;6~, ++ kf35=\E[15;6~, kf36=\E[17;6~, kf37=\E[18;6~, ++ kf38=\E[19;6~, kf39=\E[20;6~, kf4=\E[14~, kf40=\E[21;6~, ++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ++ kich1=\E[@, knp=\E[U, kpp=\E[V, lf0@, lf1@, lf2@, lf3@, lf4@, lf5@, ++ use=minix-3.0, ++ ++minix-3.0|minix console (v3.0), + use=ecma+color, use=minix-1.7, + + # See +@@ -17792,7 +18116,7 @@ + am, use=minix-old, + + pc-minix|minix console on an Intel box, +- use=klone+acs, use=minix, ++ use=klone+acs, use=minix-3.0, + + # According to the Coherent 2.3 manual, the PC console is similar + # to a z19. The differences seem to be (1) 25 lines, (2) no status +@@ -18195,6 +18519,7 @@ + use=tws-generic, + dku7202|BULL Questar 200 DKU7202 (colour/character attributes), + blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb, ++ sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, + smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic, + + #=========================================================# +@@ -18274,7 +18599,7 @@ + + # This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310 + bq300|Bull vt320 ISO Latin 1 80 columns terminal, +- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon, ++ am, eo, eslok, hs, km, mir, msgr, xenl, xon, + cols#80, it#8, lines#24, vt#3, wsl#80, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, +@@ -18298,14 +18623,14 @@ + kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, + khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, + krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, +- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, +- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l, +- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p, +- rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7, ++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l, ++ rmcup=\E[?7h, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, ++ rmul=\E[24m, rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, ++ sc=\E7, + sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;, + sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h, + smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m, +- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~, ++ smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~, use=ansi+pp, + bq300-rv|Bull vt320 reverse 80 columns, + flash=\E[?5l$<50>\E[?5h, + is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l, +@@ -18383,12 +18708,12 @@ + csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D, + cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C, + cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A, +- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, ++ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M, + dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J, + el=\233K, el1=\2331K, enacs=\E(B\E)0, + flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H, +- ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED, +- is1=\E[63;2"p\E[2h, ++ ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, il1=\233L, ++ ind=\ED, is1=\E[63;2"p\E[2h, + is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l, + is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w, + ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s, +@@ -18401,11 +18726,12 @@ + khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~, + krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3, + lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8, +- rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h, +- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m, +- rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7, ++ rev=\2337m, ri=\EM, rmacs=\E(B, rmam=\233?7l, ++ rmcup=\233?7h, rmir=\2334l, rmkx=\233?1l\E>, ++ rmso=\23327m, rmul=\23324m, rs1=\E[!p, rs2=\E[?3l, ++ s0ds=\E(B, s1ds=\E(0, sc=\E7, + sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;, +- sgr0=\2330m\E(B, smacs=^N, smam=\233?7h, ++ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, + smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m, + smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~, + bq300-8rv|Bull vt320 8-bit reverse mode 80 columns, +@@ -19010,14 +19336,14 @@ + 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[1P, dim=\E[2m, dl=\E[%p1%dM, +- dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H, +- ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL, +- ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB, +- kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS, +- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ, +- kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7, +- nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h, +- rmso=\E[m, rmul=\E[m, ++ dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, ++ home=\E[H, ht=^I, hts=\EH, if=/usr/share/tabset/vt100, ++ il=\E[%p1%dL, il1=\E[L, ind=\ED, kbs=^H, kclr=\E[J, ++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, ++ kf0=\E[~, kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, ++ kf6=\EOP, kf7=\EOQ, kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, ++ mc0=\E#7, nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, ++ rmcup=\E[?7h, rmso=\E[m, rmul=\E[m, + rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m, + sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m, + tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K, +@@ -19818,6 +20144,193 @@ + apollo_color|apollo color display, + rmir@, smir@, use=vt132, + ++#### AT&T consoles ++ ++# This actually describes the generic SVr4 display driver for Intel boxes. ++# The <dim=\E[2m> isn't documented and therefore may not be reliable. ++# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995 ++att6386|at386|386at|AT&T WGS 6386 console, ++ am, bw, eo, xon, ++ cols#80, it#8, lines#25, ++ acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~, ++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C, ++ clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD, ++ cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, 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, dim=\E[2m, ++ dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, ++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S, ++ indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H, ++ kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, ++ kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, ++ kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@, ++ knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m, ++ ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m, ++ 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[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, ++ cols#80, lines#24, ++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C, ++ clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B, ++ cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ++ dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K, ++ home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J, ++ invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, ++ kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe, ++ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk, ++ nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m, ++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, ++ ++# From: Benjamin C. W. Sittler <bsittler@nmt.edu> ++# ++# I have a UNIX PC which I use as a terminal attached to my Linux PC. ++# Unfortunately, the UNIX PC terminfo entry that comes with ncurses ++# is broken. All the special key sequences are broken, making it unusable ++# with Emacs. The problem stems from the following: ++# ++# The UNIX PC has a plethora of keys (103 of them, and there's no numeric ++# keypad!), loadable fonts, and strange highlighting modes ("dithered" ++# half-intensity, "smeared" bold, and real strike-out, for example.) It also ++# uses resizable terminal windows, but the bundled terminal program always ++# uses an 80x24 window (and doesn't support seem to support a 132-column ++# mode.) ++# ++# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a ++# library which was a superset of SVr3.5 curses (called tam, for "terminal ++# access method".) tam includes support for real, overlapping windows, ++# onscreen function key labels, and bitmap graphics. But since the primary ++# user interface on the UNIX PC was a GUI program (ua, for "user ++# assistant",) and remote administration was considered important for the ++# machine, tam also supported VT100-compatible terminals attached to the ++# serial port or used across the StarLan network. To simulate the extra keys ++# not present on a VT100, users could press ESC and a two-letter sequence, ++# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences, ++# however, were not the same as those sent by the actual Undo key. The ++# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example. ++# (If you're interested in adding some of the tam calls to ncurses, btw, I ++# have the full documentation and several programs which use tam. It also ++# used an extended terminfo format to describe key sequences, special ++# highlighting modes, etc.) ++# ++# KEYS: This means that ncurses would quite painful on the UNIX PC, since ++# there are two sequences for every key-modifier combination (local keyboard ++# sequence and remote "VT100" sequence.) But I doubt many people are trying ++# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the ++# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) ++# seem to have been built from the manual describing the VT100 sequences. ++# This means it doesn't work for a real live UNIX PC. ++# ++# FONTS: The UNIX PC also has a strange interpretation of "alternate ++# character set". Rather than the VT100 graphics you might expect, it allows ++# up to 8 custom fonts to be loaded at any given time. This means that ++# programs expecting VT100 graphics will usually be disappointed. For this ++# reason I have disabled the smacs/rmacs sequences, but they could easily be ++# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) ++# manpage), should you wish to do so: ++# ++# SGR10 - Select font 0 - ESC [ 10 m or SO ++# SGR11 - Select font 1 - ESC [ 11 m or SI ++# SGR12 - Select font 2 - ESC [ 12 m ++# ... (etc.) ++# SGR17 - Select font 7 - ESC [ 17 m ++# ++# Graphics for line drawing are not reliably found at *any* character ++# location because the UNIX PC has dynamically reloadable fonts. I use font ++# 0 for regular text and font 1 for italics, but this is by no means ++# universal. So ASCII line drawing is in order if smacs/rmacs are enabled. ++# ++# MISC: The cursor visible/cursor invisible sequences were swapped in the ++# distributed terminfo. ++# ++# To ameliorate these problems (and fix a few highlighting bugs) I rewrote ++# the UNIX PC terminfo entry. The modified version works great with Lynx, ++# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC ++# attached by serial cable. In Emacs, even the Undo key works, and many ++# applications can now use the F1-F8 keys. ++# ++# esr's notes: ++# Terminfo entry for the AT&T Unix PC 7300 ++# from escape(7) in Unix PC 7300 Manual. ++# Somewhat similar to a vt100-am (but different enough ++# to redo this from scratch.) ++# ++# /*************************************************************** ++# * ++# * FONT LOADING PROGRAM FOR THE UNIX PC ++# * ++# * This routine loads a font defined in the file ALTFONT ++# * into font memory slot #1. Once the font has been loaded, ++# * it can be used as an alternative character set. ++# * ++# * The call to ioctl with the argument WIOCLFONT is the key ++# * to this routine. For more information, see window(7) in ++# * the PC 7300 documentation. ++# ***************************************************************/ ++# #include <string.h> /* needed for strcpy call */ ++# #include <sys/window.h> /* needed for ioctl call */ ++# #define FNSIZE 60 /* font name size */ ++# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */ ++# /* ++# * The file /usr/lib/wfont/special.8.ft comes with the ++# * standard PC software. It defines a graphics character set ++# * similar to that of the Teletype 5425 terminal. To view ++# * this or other fonts in /usr/lib/wfont, use the command ++# * cfont <filename>. For further information on fonts see ++# * cfont(1) in the PC 7300 documentation. ++# */ ++# ++# struct altfdata /* structure for alt font data */ ++# { ++# short altf_slot; /* memory slot number */ ++# char altf_name[FNSIZE]; /* font name (file name) */ ++# }; ++# ldfont() ++# { ++# int wd; /* window in which altfont will be */ ++# struct altfdata altf; ++# altf.altf_slot=1; ++# strcpy(altf.altf_name,ALTFONT); ++# for (wd =1; wd < 12; wd++) { ++# ioctl(wd, WIOCLFONT,&altf); ++# } ++# } ++# ++# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry, ++# they're confirmed by the man page for the System V display---esr) ++# ++att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300, ++ am, xon, ++ cols#80, it#8, lines#24, ++ bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C, ++ clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, ++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, ++ cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ++ ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL, ++ il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB, ++ kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE, ++ kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM, ++ kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR, ++ kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO, ++ kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z, ++ kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf, ++ ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd, ++ kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, ++ kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B, ++ kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv, ++ kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, ++ kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB, ++ ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM, ++ rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m, ++ smul=\E[4m, ++ + #### Convergent Technology + # + # Burroughs bought Convergent shortly before it merged with Univac. +@@ -19923,6 +20436,54 @@ + masscomp2|masscomp large screen version 2, + cols#64, lines#21, use=masscomp, + ++#### OSF Unix ++# ++ ++# OSF/1 1.1 Snapshot 2 ++pmcons|pmconsole|PMAX console, ++ am, ++ cols#128, lines#57, ++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I, ++ ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ++ ++#### Other consoles ++# The following is a version of the ibm-pc entry distributed with PC/IX, ++# (Interactive Systems' System 3 for the Big Blue), modified by Richard ++# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original, ++# (the former is untrue, and the latter failed under UCB/man); standout and ++# underline modes have been added. Note: this entry describes the "native" ++# capabilities of the PC monochrome display, without ANY emulation; most ++# communications packages (but NOT PC/IX connect) do some kind of emulation. ++pcix|PC/IX console, ++ am, bw, eo, ++ cols#80, lines#24, ++ clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K, ++ home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, ++ smul=\E[4m, ++ ++# (ibmpcx: this entry used to be known as ibmx. ++# It formerly included the following extension capabilities: ++# :GC=b:GL=v:GR=t:RT=^J:\ ++# :GH=\E[196g:GV=\E[179g:\ ++# :GU=\E[193g:GD=\E[194g:\ ++# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\ ++# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\ ++# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\ ++# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate ++# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match ++# what was there before. -- esr) ++ibmpcx|xenix|ibmx|IBM PC xenix console display, ++ OTbs, am, msgr, ++ cols#80, lines#25, ++ clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C, ++ cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M, ++ ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d, ++ kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e, ++ kpp=\E[Z, use=klone+acs, use=klone+sgr8, ++ + ######## OTHER OBSOLETE TYPES + # + # These terminals are *long* dead -- these entries are retained for +@@ -20217,9 +20778,9 @@ + sgr0=\EX, smacs=\EF, smso=\ET, + env230|envision230|envision 230 graphics terminal, + xenl@, +- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, +- sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>, +- use=vt100, ++ enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@, ++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>, ++ sgr0=\E[0m$<2>, smacs@, use=vt100, + # These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic + # coupler attached, the whole rig fitting in a suitcase and more or less + # portable. Hot stuff for c.1977 :-) -- esr +@@ -20274,7 +20835,7 @@ + rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11, + rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>, + rs3=\EwG\Ee($<150>, +- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, ++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c, + sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/, + smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177, + smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(, +@@ -20881,7 +21442,7 @@ + # assigned in System V terminfo. There are some variant extension sets out + # there. We try to describe them here. + # +-# XENIX extensions: ++#### XENIX extensions: + # + # The XENIX extensions include a set of function-key capabilities as follows: + # +@@ -20946,7 +21507,7 @@ + # When translating a termcap file, ncurses tic will do this automatically. + # The double forms characters don't fit the SVr4 terminfo model. + # +-# AT&T Extensions: ++#### AT&T Extensions: + # + # The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of + # nonstandard capabilities. Its signature is the KM capability, used to name +@@ -20957,7 +21518,7 @@ + # FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make + # cursor invisible), and CV=:ve: (make cursor normal). + # +-# HP Extensions ++#### HP Extensions + # + # The HP library (as of mid-1995, their term.h file version 70.1) appears to + # have the System V capabilities up to SVr1 level. After that, it supports +@@ -20966,7 +21527,7 @@ + # label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the + # HP binary format incompatible with SVr4's. + # +-# IBM Extensions ++#### IBM Extensions + # + # There is a set of nonstandard terminfos used by IBM's AIX operating system. + # The AIX terminfo library diverged from SVr1 terminfo, and replaces all +@@ -20994,7 +21555,7 @@ + # The box2 characters are the double-line versions of these forms graphics. + # The AIX binary terminfo format is incompatible with SVr4's. + # +-# Iris console extensions: ++#### Iris console extensions: + # + # HS is half-intensity start; HE is half-intensity end + # CT is color terminal type (for Curses & rogue) +@@ -21003,7 +21564,7 @@ + # + # The ncurses tic utility recognizes HS as an alias for mh <dim>. + # +-# TC Extensions: ++#### TC Extensions: + # + # There is a set of extended termcaps associated with something + # called the "Terminal Control" or TC package created by MainStream Systems, +@@ -21011,11 +21572,112 @@ + # CF for civis and CO for cvvis. Finally, they define a boolean :ct: + # that flags color terminals. + # ++######## NCURSES USER-DEFINABLE CAPABILITIES ++# ++# Extensions added after ncurses 5.0 generally use the "-x" option of tic and ++# infocmp to manipulate user-definable capabilities. Those that are intended ++# for use in either terminfo or termcap use 2-character names. Extended ++# function keys do not use 2-character names, and are available only with ++# terminfo. ++# ++# As of mid-2012, no other terminfo/termcap implementation than ncurses ++# supports this extension; termcap libraries can as noted above make limited ++# use of the feature. ++# ++# ncurses makes explicit checks for a few user-definable capabilities: AX, U8, ++# XM. ++# ++#### SCREEN Extensions: ++# ++# The screen program uses the termcap interface. It recognizes a few useful ++# nonstandard capabilities. Those are used in this file. ++# ++# AX (bool) Does understand ANSI set default fg/bg color (\E[39m / ++# \E[49m). ++# G0 (bool) Terminal can deal with ISO 2022 font selection sequences. ++# E0 (str) Switch charset 'G0' back to standard charset. ++# S0 (str) Switch charset 'G0' to the specified charset. ++# XT (bool) Terminal understands special xterm sequences (OSC, mouse ++# tracking). ++# ++# AX is relatively straightforward; it is interpreted by ncurses to say that ++# SGR 39/49 reset the terminal's foreground and background colors to their ++# "default". ++# ++# XT is harder, since screen's manpage does not give more details. For that, ++# we must read screen's source-code. When XT is set, screen assumes ++# ++# a) OSC 1 sets the title string, e.g., for the icon. Recent versions of ++# screen may also set the terminal's name, which is (for xterm) distinct ++# from the icon name. ++# b) OSC 20 sets the background pixmap. This is an rxvt feature. ++# c) OSC 39 and OSC 49 set the default foreground/background colors. Again ++# this is an rxvt feature. ++# d) certain mode settings enable the mouse: 9, 1000, 1001, 1002, 1003. ++# These are from xterm, although xterm accepts mouse codes that may not be ++# recognized by screen, e.g., 1005, 1006. ++# e) colors beyond 0..7 are implemented by xterm's aixterm-like 16-color ++# sequence. However, because screen uses only termcap, the values returned ++# by Af/Ab are not usable because they rely on expressions that termcap ++# does not support. Therefore, screen uses a hardcoded string to work ++# around the limitation. ++# f) all entries named "*xterm*" or "*rxvt*" have the bce flag set. ++# ++# The other ISO-2022 features are rarely used, but provided here to make ++# screen's termcap features available. ++# ++#### XTERM Extensions: ++# ++# Most of the xterm extensions are for function-keys. Since patch #94 (in ++# 1999), xterm has supported shift/control/alt/meta modifiers which produce ++# additional function-key strings. Some other developers copied the feature, ++# though they did not follow xterm's lead in patch #167 (in 2002), to make ++# these key definitions less ambiguous. ++# ++# A few terminals provide similar functionality (sending distinct keys when ++# a modifier is used), including rxvt. ++# ++# These are the extended keys defined in this file: ++# ++# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6 ++# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4 ++# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7 ++# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2 ++# ++# Here are the other xterm-related extensions which are used in this file: ++# ++# Cr is a string capability which resets the cursor color ++# Cs is a string capability which sets the cursor color to a given value. ++# The single string parameter is the color name/number, according to the ++# implementation. ++# Ms modifies the selection/clipboard. Its parameters are ++# p1 = the storage unit (clipboard, selection or cut buffer) ++# p2 = the base64-encoded clipboard content. ++# Se resets the cursor style to the terminal power-on default. ++# Ss is a string capability with one numeric parameter. It is used to set the ++# cursor style as described by the DECSCUSR function to a block or ++# underline. ++# TS is a string capability which acts like "tsl", but uses no parameter and ++# goes to the first column of the "status line". ++# XM is a string capability which overrides ncurses's built-in string which ++# enables xterm mouse mode. ++# ++#### Miscellaneous extensions: ++# ++# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode. ++# This was implemented for the Hurd. ++# E3 clears the terminal's scrollback buffer. This was implemented in the ++# Linux 3.0 kernel as a security feature. It matches a feature which was ++# added in xterm patch #107. ++# U8 is a numeric capability which denotes a terminal emulator which does not ++# support VT100 SI/SO when processing UTF-8 encoding. Set this to a nonzero ++# value to enable it. ++# + ######## CHANGE HISTORY + # + # The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94. +-# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses +-# project. ++# Releases 9 and 10 (up until the release of ncurses 4.2 in 1998) were ++# maintained by Eric S. Raymond as part of the ncurses project. + # + # This file contains all the capability information present in John Kunze's + # last version of the termcap master file, except as noted in the change +@@ -21115,7 +21777,7 @@ + # * Replaced HP entries up to hpsub with purpose-built ones. + # * Blank rmir/smir/rmdc/smdc capabilities removed. + # * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924. +-# 9.4.8 (Fri Apr 7 09:36:34 EDT 199): ++# 9.4.8 (Fri Apr 7 09:36:34 EDT 1995): + # * Replaced the Ann Arbor entries with SCO's, the init strings are + # more efficient (but the entries otherwise identical). + # * Added dg211 from Shuford archive. +@@ -22224,7 +22886,7 @@ + # * add screen.rxvt -TD + # + # 2008-04-28 +-# * add screen+fkeys (prompted by Debian # 478094) -TD ++# * add screen+fkeys (prompted by Debian #478094) -TD + # + # 2008-06-28 + # * add screen.mlterm -TD +@@ -22280,7 +22942,7 @@ + # 2009-12-12 + # * updated nsterm* entries (Benjamin Sittler, Emanuele Giaquinta) + # +-# 2009-12-12 ++# 2009-12-19 + # * add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler) + # * rename minix to minix-1.7, add minix entry for Minux3 -TD + # +@@ -22354,6 +23016,195 @@ + # * add xterm-utf8 as a demo of the U8 feature -TD + # + # 2011-02-20 +-# * add cons25-debian entry (Brian M Carlson, Debina #607662). ++# * add cons25-debian entry (Brian M Carlson, Debian #607662). ++# ++# 2011-06-11 ++# * update minix entry to minix 3.2 (Thomas Cort). ++# ++# 2011-07-09 ++# * fix inconsistent tabset path in pcmw (Todd C. Miller). ++# * remove a backslash which continued comment, obscuring altos3 ++# definition with OpenBSD toolset (Nicholas Marriott). ++# ++# 2011-07-16 ++# * add/use xterm+tmux chunk from xterm #271 -TD ++# * resync xterm-new entry from xterm #271 -TD ++# * add E3 extended capability to linux-basic (Miroslav Lichvar) ++# * add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD ++# * add SI/SO change to linux2.6 entry (Debian #515609) -TD ++# ++# 2011-07-21 ++# * add kich1 to sun (Yuri Pankov) ++# * use bold rather than reverse for smso in sun-color (Yuri Pankov). ++# ++# 2011-08-06 ++# * corrected k9 in dg460-ansi, add other features based on manuals -TD ++# ++# 2011-08-20 ++# * minor cleanup of X-terminal emulator section -TD ++# * add terminator entry -TD ++# * add simpleterm entry -TD ++# ++# 2011-09-10 ++# * add xterm+kbs fragment from xterm #272 -TD ++# ++# 2011-11-12 ++# * add pccon entries for OpenBSD console (Alexei Malinin) ++# ++# 2011-12-17 ++# * corrected old changelog comments -TD ++# ++# 2011-11-24 ++# * add putty-sco -TD ++# ++# 2012-01-28 ++# * add mach-gnu (Samuel Thibault) ++# * add mach-gnu-color, tweaks to mach-gnu -TD ++# * make sgr for sun-color agree with smso -TD ++# * make sgr for prism9 agree with other caps -TD ++# * make sgr for icl6404 agree with other caps -TD ++# * make sgr for ofcons agree with other caps -TD ++# * make sgr for att5410v1, att4415, att620 agree with other caps -TD ++# * make sgr for aaa-unk, aaa-rv agree with other caps -TD ++# * make sgr for avt-ns agree with other caps -TD ++# ++# 2012-02-11 ++# * make sgr for xterm-pcolor agree with other caps -TD ++# * make sgr for att5425 agree with other caps -TD ++# * make sgr for att630 agree with other caps -TD ++# * make sgr for linux entries agree with other caps -TD ++# * make sgr for tvi9065 agree with other caps -TD ++# * make sgr for ncr260vt200an agree with other caps -TD ++# * make sgr for ncr160vt100pp agree with other caps -TD ++# * make sgr for ncr260vt300an agree with other caps -TD ++# * make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD ++# * make sgr for cygwin, cygwinDBG agree with other caps -TD ++# ++# 2012-03-31 ++# * correct order of use-clauses in st-256color -TD ++# ++# 2012-04-01 ++# * revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD ++# ++# 2012-04-14 ++# * document all of the user-defined capabilities in one place -TD ++# * add XT to some places to improve usefulness for other applications ++# than screen, which would like to pretend that xterm's title is ++# a status-line. -TD ++# * change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review ++# of ordering and overrides -TD ++# ++# 2012-04-21 ++# * add msgr to vt420, similar DEC vtXXX entries -TD ++# * add several missing vt420 capabilities from vt220 -TD ++# * factor out ansi+pp from several entries -TD ++# * change xterm+sl and xterm+sl-twm to include only the status-line ++# capabilities and not "use=xterm", making them more generally useful ++# as building-blocks -TD ++# * add dec+sl building block, as example -TD ++# ++# 2012-04-28 ++# * fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD ++# * add eslok flag to dec+sl -TD ++# * dec+sl applies to vt320 and up -TD ++# * drop wsl width from xterm+sl -TD ++# * reuse xterm+sl in putty and nsca-m -TD ++# * add ansi+tabs to vt520 -TD ++# * add ansi+enq to vt220-vt520 -TD ++# ++# 2012-05-05 ++# * remove p6 (bold) from opus3n1+ for consistency -TD ++# * remove acs stuff from env230 per clues in Ingres termcap -TD ++# * modify env230 sgr/sgr0 to match other capabilities -TD ++# * modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD ++# * make sgr for dku7202 agree with other caps -TD ++# * make sgr for ibmpc agree with other caps -TD ++# * make sgr for tek4107 agree with other caps -TD ++# * make sgr for ndr9500 agree with other caps -TD ++# * make sgr for sco-ansi agree with other caps -TD ++# * make sgr for d410 agree with other caps -TD ++# * make sgr for d210 agree with other caps -TD ++# * make sgr for d470c, d470c-7b agree with other caps -TD ++# ++# 2012-05-12 ++# * rewrite vt520 entry based on vt420 -TD ++# * corrected 'op' for bterm (report by Samuel Thibault) -TD ++# ++# 2012-06-02 ++# * add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord, ++# analysis by Martin Husemann). ++# * add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by ++# Onno van der Linden). ++# * add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD ++# * add kdch1, etc., to qvt108 -TD ++# * add dl1/il1 to some entries based on dl/il values -TD ++# * add dl to simpleterm -TD ++# ++# 2012-06-10 ++# * modify some older xterm entries to align with xterm source -TD ++# * separate "xterm-old" alias from "xterm-r6" -TD ++# ++# 2012-07-28 ++# * add E3 to xterm-basic and putty -TD ++# ++# 2012-08-11 ++# * add nsterm-256color, make this the default nsterm -TD ++# * remove bw from nsterm-bce, per testing with tack -TD ++# ++# 2012-10-12 ++# * add vte-2012, gnome-2012, making these the defaults for vte/gnome ++# (patch by Christian Persch). ++# ++# 2012-11-02 ++# * reviewed vte-2012, reverted most of the change since it was incorrect ++# based on testing with tack -TD ++# * un-cancel the initc in vte-256color, since this was implemented ++# starting with version 0.20 in 2009 -TD ++# ++# 2013-03-16 ++# * correct typo in sgr string for sun-color, ++# add bold for consistency with sgr, ++# change smso for consistency with sgr -TD ++# * correct typo in sgr string for terminator -TD ++# * add blink to the attributes masked by ncv in linux-16color (report ++# by Benjamin Sittler) ++# ++# 2013-03-23 ++# * change initialization for vt220, similar entries for consistency ++# with cursor-key strings (NetBSD #47674) -TD ++# * further improvements to linux-16color (Benjamin Sittler) ++# ++# 2013-05-11 ++# * move nsterm-related entries out of "obsolete" section to more ++# plausible "ansi consoles" -TD ++# * additional cleanup of table-of-contents by reordering -TD ++# ++# 2013-06-07 ++# * added note to clarify Terminal.app's non-emulation of the various ++# terminal types listed in the preferences dialog -TD ++# ++# 2013-11-02 ++# * use TS extension to describe xterm's title-escapes -TD ++# * modify terminator and nsterm-s to use xterm+sl-twm building block -TD ++# * update hurd.ti, add xenl to reflect 2011-03-06 change in ++# http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c ++# (Debian #727119). ++# * simplify pfkey expression in ansi.sys -TD ++# ++# 2013-11-10 ++# * split-out building blocks xterm+sm+1002 and xterm+sm+1003 -TD ++# ++# 2014-02-22 ++# * updated notes for wsvt25 based on tack and vttest -TD ++# * add teken entry to show actual properties of FreeBSD's "xterm" ++# console -TD ++# ++# 2014-03-22 ++# * add terminology entry -TD ++# * add mlterm3 entry, use that as "mlterm" -TD ++# * inherit mlterm-256color from mlterm -TD ++# ++# 2014-03-23 ++# * fix typo in "mlterm" entry (report by Gabriele Balducci) -TD + # + ######## SHANTIH! SHANTIH! SHANTIH! +diff -Naur ncurses-5.9/mk-0th.awk ncurses-5.9.patch/mk-0th.awk +--- ncurses-5.9/mk-0th.awk 2010-01-09 22:45:41.000000000 +0100 ++++ ncurses-5.9.patch/mk-0th.awk 2014-09-01 16:33:22.368792143 +0200 +@@ -1,6 +1,6 @@ +-# $Id: mk-0th.awk,v 1.18 2010/01/09 21:45:41 tom Exp $ ++# $Id: mk-0th.awk,v 1.22 2012/06/30 20:56:11 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2010,2012 Free 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"), # +@@ -34,14 +34,62 @@ + # Variables: + # libname (library name, e.g., "ncurses", "panel", "forms", "menus") + # subsets (is used here to decide if wide-character code is used) ++# ticlib (library name for libtic, e.g., "tic") ++# termlib (library name for libtinfo, e.g., "tinfo") + # ++function make_lintlib(name,sources) { ++ print "" ++ print "clean ::" ++ printf "\trm -f llib-l%s.*\n", name ++ print "" ++ print "realclean ::" ++ printf "\trm -f llib-l%s\n", name ++ print "" ++ printf "llib-l%s : %s\n", name, sources ++ printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) %s >$@\n", sources ++ print "" ++ print "lintlib ::" ++ printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)\n", name ++ print "" ++ print "lint ::" ++ printf "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) %s $(LINT_LIBS)\n", sources ++} ++ ++# A blank in "subsets" indicates a split-off of the library into a separate ++# file, e.g., for libtic or libtinfo. They are all logical parts of the same ++# library. ++function which_library() { ++ if ( ( which == "ticlib" ) && ( subsets ~ /ticlib / ) ) { ++ return ticlib; ++ } else if ( ( which == "termlib" || which == "ext_tinfo" ) && ( subsets ~ /[[:space:]]base/ ) ) { ++ return termlib; ++ } else { ++ return libname; ++ } ++} ++ ++function show_list(name, len, list) { ++ if ( len > 0 ) { ++ printf "\n%s_SRC =", toupper(name); ++ for (n = 0; n < len; ++n) ++ printf " \\\n\t%s", list[n]; ++ print ""; ++ make_lintlib(name, sprintf("$(%s_SRC)", toupper(name))); ++ } ++} ++ + BEGIN { + which = libname; + using = 0; + found = 0; ++ count_ticlib = 0; ++ count_termlib = 0; ++ count_library = 0; + } + /^@/ { + which = $0; ++ sub(/^@[[:blank:]]+/, "", which); ++ sub(/[[:blank:]]+$/, "", which); + } + !/^[@#]/ { + if (using == 0) +@@ -50,6 +98,10 @@ + print "# generated by mk-0th.awk" + printf "# libname: %s\n", libname + printf "# subsets: %s\n", subsets ++ if ( libname ~ /ncurses/ ) { ++ printf "# ticlib: %s\n", ticlib ++ printf "# termlib: %s\n", termlib ++ } + print "" + print ".SUFFIXES: .c .cc .h .i .ii" + print ".c.i :" +@@ -80,9 +132,18 @@ + found = 2 + } + if ( libname == "c++" || libname == "c++w" ) { +- printf " \\\n\t%s/%s.cc", $3, $1 ++ srcname = sprintf("%s/%s.cc", $3, $1); ++ printf " \\\n\t%s", srcname; + } else if ( widechar == 1 || $3 != "$(wide)" ) { +- printf " \\\n\t%s/%s.c", $3, $1 ++ srcname = sprintf("%s/%s.c", $3, $1); ++ printf " \\\n\t%s", srcname; ++ if ( which_library() == libname ) { ++ list_library[count_library++] = srcname; ++ } else if ( which_library() == ticlib ) { ++ list_ticlib[count_ticlib++] = srcname; ++ } else { ++ list_termlib[count_termlib++] = srcname; ++ } + } + } + } +@@ -91,22 +152,11 @@ + if ( found == 1 ) + { + print "" +- printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname +- print "# it in the lintlib rule. We'll only remove in the cleanest setup." +- print "clean ::" +- printf "\trm -f llib-l%s.*\n", libname +- print "" +- print "realclean ::" +- printf "\trm -f llib-l%s\n", libname +- print "" +- printf "llib-l%s : $(C_SRC)\n", libname +- printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@\n" +- print "" +- print "lintlib :" +- printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname +- print "" +- print "lint :" +- print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)" ++ printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname; ++ print "# it in the lintlib rule. We'll only remove in the cleanest setup."; ++ show_list(libname, count_library, list_library); ++ show_list(ticlib, count_ticlib, list_ticlib); ++ show_list(termlib, count_termlib, list_termlib); + } + else + { +@@ -115,3 +165,4 @@ + print "\t@echo no action needed" + } + } ++# vile:ts=4 sw=4 +diff -Naur ncurses-5.9/mk-1st.awk ncurses-5.9.patch/mk-1st.awk +--- ncurses-5.9/mk-1st.awk 2010-08-07 22:42:30.000000000 +0200 ++++ ncurses-5.9.patch/mk-1st.awk 2014-09-01 16:33:22.369792144 +0200 +@@ -1,6 +1,6 @@ +-# $Id: mk-1st.awk,v 1.85 2010/08/07 20:42:30 Gabriele.Balducci Exp $ ++# $Id: mk-1st.awk,v 1.96 2013/09/07 17:54:05 Alexey.Pavlov Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -34,10 +34,12 @@ + # name (library name, e.g., "ncurses", "panel", "forms", "menus") + # traces ("all" or "DEBUG", to control whether tracing is compiled in) + # MODEL (e.g., "DEBUG", uppercase; toupper is not portable) ++# CXX_MODEL (e.g., "DEBUG", uppercase) + # model (directory into which we compile, e.g., "obj") + # prefix (e.g., "lib", for Unix-style libraries) + # suffix (e.g., "_g.a", for debug libraries) + # subset ("none", "base", "base+ext_funcs" or "termlib", etc.) ++# driver ("yes" or "no", depends on --enable-term-driver) + # ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable) + # ShlibVerInfix ("yes" or "no", determines location of version #) + # SymLink ("ln -s", etc) +@@ -69,7 +71,7 @@ + } + # see imp_name + function imp_name_of(a_name) { +- if (ShlibVerInfix == "cygdll") { ++ if (ShlibVerInfix == "cygdll" || ShlibVerInfix == "msysdll" || ShlibVerInfix == "mingw") { + result = sprintf("%s%s%s.a", prefix, a_name, suffix); + } else { + result = ""; +@@ -80,6 +82,10 @@ + function abi_name_of(a_name) { + if (ShlibVerInfix == "cygdll") { + result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix); ++ } else if (ShlibVerInfix == "msysdll") { ++ result = sprintf("%s%s$(ABI_VERSION)%s", "msys-", a_name, suffix); ++ } else if (ShlibVerInfix == "mingw") { ++ result = sprintf("%s%s$(ABI_VERSION)%s", prefix, a_name, suffix); + } else if (ShlibVerInfix == "yes") { + result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix); + } else { +@@ -91,6 +97,10 @@ + function rel_name_of(a_name) { + if (ShlibVerInfix == "cygdll") { + result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix); ++ } else if (ShlibVerInfix == "msysdll") { ++ result = sprintf("%s%s$(ABI_VERSION)%s", "msys-", a_name, suffix); ++ } else if (ShlibVerInfix == "mingw") { ++ result = sprintf("%s%s$(REL_VERSION)%s", prefix, a_name, suffix); + } else if (ShlibVerInfix == "yes") { + result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix); + } else { +@@ -107,7 +117,7 @@ + } else { + if ( ShlibVer == "rel" ) { + result = rel_name_of(a_name); +- } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) { ++ } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw" ) { + result = abi_name_of(a_name); + } else { + result = lib_name_of(a_name); +@@ -124,23 +134,38 @@ + } + } + function rmlink(directory, dst) { +- printf "\t-rm -f %s/%s\n", directory, dst ++ if ( dst != "" ) { ++ printf "\t-rm -f %s/%s\n", directory, dst ++ } + } + function removelinks(directory) { +- rmlink(directory, end_name); ++ nlinks = 0; ++ links[nlinks++] = end_name; + if ( DoLinks == "reverse" ) { + if ( ShlibVer == "rel" ) { +- rmlink(directory, abi_name); +- rmlink(directory, rel_name); ++ links[nlinks++] = abi_name; ++ links[nlinks++] = rel_name; + } else if ( ShlibVer == "abi" ) { +- rmlink(directory, abi_name); ++ links[nlinks++] = abi_name; + } + } else { + if ( ShlibVer == "rel" ) { +- rmlink(directory, abi_name); +- rmlink(directory, lib_name); ++ links[nlinks++] = abi_name; ++ links[nlinks++] = lib_name; + } else if ( ShlibVer == "abi" ) { +- rmlink(directory, lib_name); ++ links[nlinks++] = lib_name; ++ } ++ } ++ for (j = 0; j < nlinks; ++j) { ++ found = 0; ++ for (k = 0; k < j; ++k ) { ++ if ( links[j] == links[k] ) { ++ found = 1; ++ break; ++ } ++ } ++ if ( !found ) { ++ rmlink(directory, links[j]); + } + } + } +@@ -148,7 +173,7 @@ + printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(%s) $(LDFLAGS)\n", objs, shlib_list + } + function sharedlinks(directory) { +- if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) { ++ if ( ShlibVer != "auto" && ShlibVer != "cygdll" && ShlibVer != "msysdll" && ShlibVer != "mingw" ) { + printf "\tcd %s && (", directory + if ( DoLinks == "reverse" ) { + if ( ShlibVer == "rel" ) { +@@ -181,6 +206,11 @@ + dst_libs = sprintf("%s/%s", directory, end_name); + printf "%s : \\\n", dst_libs + printf "\t\t%s \\\n", directory ++ if (subset == "ticlib" && driver == "yes" ) { ++ base = name; ++ sub(/^tic/, "ncurses", base); # workaround for "w" ++ printf "\t\t%s/%s \\\n", directory, end_name_of(base); ++ } + if (subset ~ /^base/ || subset == "ticlib" ) { + save_suffix = suffix + sub(/^[^.]\./,".",suffix) +@@ -223,8 +253,9 @@ + printf "\t%s %s %s\n", program, src_name, dst_name + } + BEGIN { +- found = 0 +- using = 0 ++ TOOL_PREFIX = ""; ++ found = 0; ++ using = 0; + } + /^@/ { + using = 0 +@@ -233,15 +264,26 @@ + } else if (index(subset,$2) > 0) { + if (using == 0) { + if (found == 0) { ++ if ( name ~ /^.*\+\+.*/ ) { ++ if ( CXX_MODEL == "NORMAL" && MODEL == "SHARED" ) { ++ print "" ++ printf "# overriding model from %s to match CXX_MODEL\n", MODEL; ++ MODEL = "NORMAL"; ++ suffix = ".a"; ++ DoLinks = "no"; ++ } ++ } + print "" + printf "# generated by mk-1st.awk (subset=%s)\n", subset + printf "# name: %s\n", name + printf "# traces: %s\n", traces + printf "# MODEL: %s\n", MODEL ++ printf "# CXX_MODEL: %s\n", CXX_MODEL + printf "# model: %s\n", model + printf "# prefix: %s\n", prefix + printf "# suffix: %s\n", suffix + printf "# subset: %s\n", subset ++ printf "# driver: %s\n", driver + printf "# ShlibVer: %s\n", ShlibVer + printf "# ShlibVerInfix: %s\n", ShlibVerInfix + printf "# SymLink: %s\n", SymLink +@@ -285,12 +327,23 @@ + if ( found == 0 ) + { + printf "%s_OBJS =", OBJS +- if ( $2 == "lib" ) +- found = 1 +- else +- found = 2 ++ if ( $2 == "lib" ) { ++ found = 1; ++ } else if ( $2 == "c++" ) { ++ TOOL_PREFIX = "CXX_"; ++ found = 1; ++ } else { ++ found = 2; ++ } ++ if ( $2 == "c++" ) { ++ CC_NAME="CXX" ++ CC_FLAG="CXXFLAGS" ++ } else { ++ CC_NAME="CC" ++ CC_FLAG="CFLAGS" ++ } + } +- printf " \\\n\t../%s/%s$o", model, $1 ++ printf " \\\n\t../%s/%s$o", model, $1; + } + } + END { +@@ -316,7 +369,7 @@ + print "install \\" + print "install.libs \\" + +- if ( ShlibVer == "cygdll" ) { ++ if ( ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw") { + + dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)"; + printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs +@@ -337,7 +390,7 @@ + + if ( overwrite == "yes" && name == "ncurses" ) + { +- if ( ShlibVer == "cygdll" ) { ++ if ( ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw") { + ovr_name = sprintf("libcurses%s.a", suffix) + printf "\t@echo linking %s to %s\n", imp_name, ovr_name + printf "\tcd $(DESTDIR)$(libdir) && (" +@@ -358,7 +411,7 @@ + print "uninstall \\" + print "uninstall.libs \\" + printf "uninstall.%s ::\n", name +- if ( ShlibVer == "cygdll" ) { ++ if ( ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw") { + + printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name + printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name +@@ -371,11 +424,7 @@ + removelinks("$(DESTDIR)$(libdir)") + if ( overwrite == "yes" && name == "ncurses" ) + { +- if ( ShlibVer == "cygdll" ) { +- ovr_name = sprintf("libcurses%s.a", suffix) +- } else { +- ovr_name = sprintf("libcurses%s", suffix) +- } ++ ovr_name = sprintf("libcurses%s", suffix) + printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name + } + } +@@ -388,20 +437,19 @@ + } + else if ( MODEL == "LIBTOOL" ) + { +- if ( $2 == "c++" ) { +- compile="CXX" +- } else { +- compile="CC" +- } + end_name = lib_name; + printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS + if ( is_ticlib() ) { +- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version ++ which_list = "TICS_LIST"; + } else if ( is_termlib() ) { +- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version ++ which_list = "TINFO_LIST"; + } else { +- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version ++ which_list = "SHLIB_LIST"; + } ++ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) $(%s) \\\n", CC_NAME, CC_FLAG; ++ printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS; ++ printf "\t\t-rpath $(DESTDIR)$(libdir) \\\n"; ++ printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list; + print "" + print "install \\" + print "install.libs \\" +@@ -419,7 +467,7 @@ + { + end_name = lib_name; + printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS +- printf "\t$(AR) $(ARFLAGS) $@ $?\n" ++ printf "\t$(%sAR) $(%sARFLAGS) $@ $?\n", TOOL_PREFIX, TOOL_PREFIX; + printf "\t$(RANLIB) $@\n" + if ( host == "vxworks" ) + { +diff -Naur ncurses-5.9/mk-dlls.sh.in ncurses-5.9.patch/mk-dlls.sh.in +--- ncurses-5.9/mk-dlls.sh.in 2010-12-25 23:25:41.000000000 +0100 ++++ ncurses-5.9.patch/mk-dlls.sh.in 1970-01-01 01:00:00.000000000 +0100 +@@ -1,114 +0,0 @@ +-#!/bin/sh +-# $Id: mk-dlls.sh.in,v 1.3 2010/12/25 22:25:41 tom Exp $ +-############################################################################## +-# Copyright (c) 2008,2010 Free 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 +-# +-LC_ALL=C @CC@ -v 2>&1 | grep Target | grep mingw +-if [ $? -eq 1 ]; then +- echo "$0 requires a mingw environment" >&2 +-else +- mkdir "$TEMP/tmp-dll" +- cat > "$TEMP/tmp-dll/arch.c" <<EOF +-#include <stdio.h> +-int main() +-{ +- printf("%d",8*sizeof(void*)); +- return(0); +-} +-EOF +- pushd "$TEMP/tmp-dll" +- @CC@ -o arch arch.c +- ARCH=`./arch` +- cd .. +- rm -rf tmp-dll +- popd +- echo $ARCH > mingw_arch +- echo Building DLLs and Import Libraries for Win${ARCH} +- +- 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=ncurses${t}${m} +- gi=libw${g}.dll.a +- td=$TEMP/tmp-${g} +- bd=`pwd` +- rm -rf "${td}" +- mkdir "${td}" +- pushd "${td}" +- ar x "${bd}/${f}" `ar t "${bd}/${f}"` +- @CC@ $cf -o w${g}.dll -Wl,--out-implib,${gi} -Wl,--output-def,w${g}.def -Wl,$lf `ar t "${bd}/$f"` @LIBS@ +- lib //NOLOGO /MACHINE:i386 /DEF:w${g}.def +- rm -f `ar t "${bd}/$f"` +- mv w${g}.dll "${bd}" +- mv w${g}.lib "${bd}" +- mv ${gi} "${bd}" +- popd +- rm -rf "${td}" +- +- for l in panel menu form +- do +- for f in lib${l}${t}${m}.a +- do +- g=${l}${t}${m} +- td=$TEMP/tmp-${g} +- gi2=libw${g}.dll.a +- bd=`pwd` +- rm -rf "${td}" +- mkdir "${td}" +- echo $g +- pushd "${td}" +- ar x "${bd}/$f" `ar t "${bd}/$f"` +- @CC@ $cf -o w${g}.dll -Wl,--out-implib,${gi2} -Wl,--output-def,w${g}.def -Wl,$lf `ar t "${bd}/$f"` "${bd}/${gi}" @LIBS@ +- lib //NOLOGO /MACHINE:i386 /DEF:w${g}.def +- rm -f `ar t "${bd}/$f"` +- mv w${g}.dll "${bd}" +- mv w${g}.lib "${bd}" +- mv ${gi2} "${bd}" +- popd +- rm -rf "${td}" +- done +- done +- fi +- done +- done +- popd +- else +- echo lib has not been built >&2 +- fi +-fi +diff -Naur ncurses-5.9/mk-hdr.awk ncurses-5.9.patch/mk-hdr.awk +--- ncurses-5.9/mk-hdr.awk 2010-05-15 22:10:42.000000000 +0200 ++++ ncurses-5.9.patch/mk-hdr.awk 2014-09-01 16:33:22.369792144 +0200 +@@ -1,6 +1,6 @@ +-# $Id: mk-hdr.awk,v 1.3 2010/05/15 20:10:42 tom Exp $ ++# $Id: mk-hdr.awk,v 1.4 2013/08/03 23:09:42 tom Exp $ + ############################################################################## +-# Copyright (c) 2007,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2007-2010,2013 Free 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"), # +@@ -73,12 +73,12 @@ + END { + if ( count > 0 ) + { +- print "${DESTDIR}${includedir} :" ++ print "${INCLUDEDIR} :" + print " mkdir -p $@" + print "" + print "install \\" + print "install.libs \\" +- print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\" ++ print "install.includes :: ${AUTO_SRC} ${INCLUDEDIR} \\" + + for (i = 0; i < count - 1; ++i) { + printf " %s \\\n", data[i] +@@ -86,9 +86,9 @@ + printf " %s\n", data[count - 1] + + for (i = 0; i < count; ++i) { +- printf " @ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i] ++ printf " @ (cd ${INCLUDEDIR} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} %s\n", basename(data[i]), data[i] + if (data[i] == "curses.h" && compat == "yes") { +- printf " @ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i] ++ printf " @ (cd ${INCLUDEDIR} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i] + } + } + print "" +@@ -97,9 +97,9 @@ + print "uninstall.includes ::" + + for (i = 0; i < count; ++i) { +- printf " -@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i]) ++ printf " -@ (cd ${INCLUDEDIR} && rm -f %s)\n", basename(data[i]) + if (data[i] == "curses.h" && compat == "yes") { +- printf " -@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n" ++ printf " -@ (cd ${INCLUDEDIR} && rm -f ncurses.h)\n" + } + } + } +diff -Naur ncurses-5.9/ncurses/base/define_key.c ncurses-5.9.patch/ncurses/base/define_key.c +--- ncurses-5.9/ncurses/base/define_key.c 2009-11-28 23:53:17.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/define_key.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -33,7 +33,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: define_key.c,v 1.20 2009/11/28 22:53:17 tom Exp $") ++MODULE_ID("$Id: define_key.c,v 1.21 2014/03/08 20:32:59 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode) +@@ -47,7 +47,7 @@ + unsigned ukey = (unsigned) keycode; + + #ifdef USE_TERM_DRIVER +-#define CallHasKey(keycode) CallDriver_1(SP_PARM, kyExist, keycode) ++#define CallHasKey(keycode) CallDriver_1(SP_PARM, td_kyExist, keycode) + #else + #define CallHasKey(keycode) NCURSES_SP_NAME(has_key)(NCURSES_SP_ARGx keycode) + #endif +diff -Naur ncurses-5.9/ncurses/base/keybound.c ncurses-5.9.patch/ncurses/base/keybound.c +--- ncurses-5.9/ncurses/base/keybound.c 2009-10-25 00:15:47.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/keybound.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1999-2006,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -33,7 +33,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: keybound.c,v 1.10 2009/10/24 22:15:47 tom Exp $") ++MODULE_ID("$Id: keybound.c,v 1.11 2011/10/22 16:47:05 tom Exp $") + + /* + * Returns the count'th string definition which is associated with the +@@ -46,7 +46,10 @@ + + T((T_CALLED("keybound(%p, %d,%d)"), (void *) SP_PARM, code, count)); + if (SP_PARM != 0 && code >= 0) { +- result = _nc_expand_try(SP_PARM->_keytry, (unsigned) code, &count, 0); ++ result = _nc_expand_try(SP_PARM->_keytry, ++ (unsigned) code, ++ &count, ++ (size_t) 0); + } + returnPtr(result); + } +diff -Naur ncurses-5.9/ncurses/base/keyok.c ncurses-5.9.patch/ncurses/base/keyok.c +--- ncurses-5.9/ncurses/base/keyok.c 2009-10-25 00:15:47.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/keyok.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -33,7 +33,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: keyok.c,v 1.10 2009/10/24 22:15:47 tom Exp $") ++MODULE_ID("$Id: keyok.c,v 1.14 2014/03/08 20:32:59 tom Exp $") + + /* + * Enable (or disable) ncurses' interpretation of a keycode by adding (or +@@ -50,37 +50,47 @@ + { + int code = ERR; + +- T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag)); ++ if (HasTerminal(SP_PARM)) { ++ T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag)); + #ifdef USE_TERM_DRIVER +- code = CallDriver_2(sp, kyOk, c, flag); ++ code = CallDriver_2(sp, td_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_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_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) +- break; ++ 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_PARM->_key_ok, ++ ch, &count, (size_t) 0)) != 0) { ++ if (_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 { ++ free(s); ++ } ++ } ++ } else { ++ while ((s = _nc_expand_try(SP_PARM->_keytry, ++ ch, &count, (size_t) 0)) != 0) { ++ if (_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) ++ break; ++ } else { ++ free(s); ++ } ++ } + } + } +- } + #endif ++ } + returnCode(code); + } + +diff -Naur ncurses-5.9/ncurses/base/lib_addch.c ncurses-5.9.patch/ncurses/base/lib_addch.c +--- ncurses-5.9/ncurses/base/lib_addch.c 2010-04-25 00:41:05.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_addch.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -36,7 +36,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_addch.c,v 1.124 2010/04/24 22:41:05 tom Exp $") ++MODULE_ID("$Id: lib_addch.c,v 1.128 2014/02/23 01:21:08 tom Exp $") + + static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); + +@@ -209,7 +209,8 @@ + buffer[WINDOW_EXT(win, addch_used)] = '\0'; + if ((len = (int) mbrtowc(&result, + buffer, +- WINDOW_EXT(win, addch_used), &state)) > 0) { ++ (size_t) WINDOW_EXT(win, addch_used), ++ &state)) > 0) { + attr_t attrs = AttrOf(CHDEREF(ch)); + if_EXT_COLORS(int pair = GetPair(CHDEREF(ch))); + SetChar(CHDEREF(ch), result, attrs); +@@ -411,10 +412,12 @@ + #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 +- * claims the code is printable, treat it that way. ++ * claims the code is printable (and not also a control character), ++ * treat it that way. + */ + if ((AttrOf(ch) & A_ALTCHARSET) + || ( +@@ -424,14 +427,15 @@ + s[1] == 0 + ) + || ( +- isprint(t) ++ (isprint((int)t) && !iscntrl((int)t)) + #if USE_WIDEC_SUPPORT + || ((sp == 0 || !sp->_legacy_coding) && + (WINDOW_EXT(win, addch_used) + || !_nc_is_charable(CharOf(ch)))) + #endif +- )) ++ )) { + return waddch_literal(win, ch); ++ } + + /* + * Handle carriage control and other codes that are not printable, or are +diff -Naur ncurses-5.9/ncurses/base/lib_addstr.c ncurses-5.9.patch/ncurses/base/lib_addstr.c +--- ncurses-5.9/ncurses/base/lib_addstr.c 2010-12-19 02:22:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_addstr.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -44,7 +44,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_addstr.c,v 1.51 2010/12/19 01:22:58 tom Exp $") ++MODULE_ID("$Id: lib_addstr.c,v 1.52 2011/05/28 23:02:09 tom Exp $") + + NCURSES_EXPORT(int) + waddnstr(WINDOW *win, const char *astr, int n) +@@ -119,8 +119,10 @@ + _nc_wchstrlen(const cchar_t *s) + { + int result = 0; +- while (CharOf(s[result]) != L'\0') { +- result++; ++ if (s != 0) { ++ while (CharOf(s[result]) != L'\0') { ++ result++; ++ } + } + return result; + } +diff -Naur ncurses-5.9/ncurses/base/lib_beep.c ncurses-5.9.patch/ncurses/base/lib_beep.c +--- ncurses-5.9/ncurses/base/lib_beep.c 2009-10-25 00:02:14.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_beep.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_beep.c,v 1.15 2009/10/24 22:02:14 tom Exp $") ++MODULE_ID("$Id: lib_beep.c,v 1.17 2014/03/08 20:32:59 tom Exp $") + + /* + * beep() +@@ -65,18 +65,15 @@ + + #ifdef USE_TERM_DRIVER + if (SP_PARM != 0) +- res = CallDriver_1(SP_PARM, doBeepOrFlash, TRUE); ++ res = CallDriver_1(SP_PARM, td_doBeepOrFlash, TRUE); + #else + /* FIXME: should make sure that we are not in altchar mode */ + if (cur_term == 0) { + res = ERR; + } else if (bell) { +- TPUTS_TRACE("bell"); +- res = putp(bell); +- _nc_flush(); ++ res = NCURSES_PUTP2_FLUSH("bell", bell); + } else if (flash_screen) { +- TPUTS_TRACE("flash_screen"); +- res = putp(flash_screen); ++ res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen); + _nc_flush(); + } + #endif +diff -Naur ncurses-5.9/ncurses/base/lib_bkgd.c ncurses-5.9.patch/ncurses/base/lib_bkgd.c +--- ncurses-5.9/ncurses/base/lib_bkgd.c 2011-01-22 20:47:37.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_bkgd.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -36,7 +36,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_bkgd.c,v 1.43 2011/01/22 19:47:37 tom Exp $") ++MODULE_ID("$Id: lib_bkgd.c,v 1.48 2012/12/09 01:01:19 tom Exp $") + + /* + * Set the window's background information. +@@ -85,6 +85,7 @@ + cchar_t wch; + int tmp; + ++ memset(&wch, 0, sizeof(wch)); + (void) wgetbkgrnd(win, &wch); + tmp = _nc_to_char((wint_t) CharOf(wch)); + +@@ -118,16 +119,18 @@ + { + int code = ERR; + int x, y; +- NCURSES_CH_T new_bkgd = CHDEREF(ch); + + T((T_CALLED("wbkgd(%p,%s)"), (void *) win, _tracech_t(ch))); + + if (win) { ++ NCURSES_CH_T new_bkgd = CHDEREF(ch); + NCURSES_CH_T old_bkgrnd; ++ ++ memset(&old_bkgrnd, 0, sizeof(old_bkgrnd)); + wgetbkgrnd(win, &old_bkgrnd); + + (void) wbkgrndset(win, CHREF(new_bkgd)); +- (void) wattrset(win, AttrOf(win->_nc_bkgd)); ++ (void) wattrset(win, (int) AttrOf(win->_nc_bkgd)); + + for (y = 0; y <= win->_maxy; y++) { + for (x = 0; x <= win->_maxx; x++) { +diff -Naur ncurses-5.9/ncurses/base/lib_chgat.c ncurses-5.9.patch/ncurses/base/lib_chgat.c +--- ncurses-5.9/ncurses/base/lib_chgat.c 2010-04-01 01:38:02.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_chgat.c 2014-09-01 16:33:22.370792146 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2014 Free 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,14 +42,22 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_chgat.c,v 1.9 2010/03/31 23:38:02 tom Exp $") ++MODULE_ID("$Id: lib_chgat.c,v 1.10 2014/02/01 22:13:31 tom Exp $") + + NCURSES_EXPORT(int) +-wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED) ++wchgat(WINDOW *win, ++ int n, ++ attr_t attr, ++ NCURSES_PAIRS_T color, ++ const void *opts GCC_UNUSED) + { + int i; + +- T((T_CALLED("wchgat(%p,%d,%s,%d)"), (void *) win, n, _traceattr(attr), color)); ++ T((T_CALLED("wchgat(%p,%d,%s,%d)"), ++ (void *) win, ++ n, ++ _traceattr(attr), ++ (int) color)); + + if (win) { + struct ldat *line = &(win->_line[win->_cury]); +diff -Naur ncurses-5.9/ncurses/base/lib_color.c ncurses-5.9.patch/ncurses/base/lib_color.c +--- ncurses-5.9/ncurses/base/lib_color.c 2010-04-25 00:57:53.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_color.c 2014-09-01 16:33:22.371792147 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_color.c,v 1.98 2010/04/24 22:57:53 tom Exp $") ++MODULE_ID("$Id: lib_color.c,v 1.110 2014/03/08 20:04:44 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define CanChange InfoOf(SP_PARM).canchange +@@ -188,7 +188,7 @@ + set_background_color(NCURSES_SP_DCLx int bg, NCURSES_SP_OUTC outc) + { + #ifdef USE_TERM_DRIVER +- CallDriver_3(SP_PARM, color, FALSE, bg, outc); ++ CallDriver_3(SP_PARM, td_color, FALSE, bg, outc); + #else + if (set_a_background) { + TPUTS_TRACE("set_a_background"); +@@ -208,7 +208,7 @@ + set_foreground_color(NCURSES_SP_DCLx int fg, NCURSES_SP_OUTC outc) + { + #ifdef USE_TERM_DRIVER +- CallDriver_3(SP_PARM, color, TRUE, fg, outc); ++ CallDriver_3(SP_PARM, td_color, TRUE, fg, outc); + #else + if (set_a_foreground) { + TPUTS_TRACE("set_a_foreground"); +@@ -258,14 +258,13 @@ + reset_color_pair(NCURSES_SP_DCL0) + { + #ifdef USE_TERM_DRIVER +- return CallDriver(SP_PARM, rescol); ++ return CallDriver(SP_PARM, td_rescol); + #else + bool result = FALSE; + + (void) SP_PARM; + if (orig_pair != 0) { +- TPUTS_TRACE("orig_pair"); +- putp(orig_pair); ++ (void) NCURSES_PUTP2("orig_pair", orig_pair); + result = TRUE; + } + return result; +@@ -289,11 +288,10 @@ + result = TRUE; + + #ifdef USE_TERM_DRIVER +- result = CallDriver(SP_PARM, rescolors); ++ result = CallDriver(SP_PARM, td_rescolors); + #else + if (orig_colors != 0) { +- TPUTS_TRACE("orig_colors"); +- putp(orig_colors); ++ NCURSES_PUTP2("orig_colors", orig_colors); + result = TRUE; + } + #endif +@@ -331,6 +329,13 @@ + default_bg(NCURSES_SP_ARG), + NCURSES_SP_NAME(_nc_outch)); + } ++#if !NCURSES_EXT_COLORS ++ /* ++ * Without ext-colors, we cannot represent more than 256 color pairs. ++ */ ++ if (maxpairs > 256) ++ maxpairs = 256; ++#endif + + if (maxpairs > 0 && maxcolors > 0) { + SP_PARM->_pair_limit = maxpairs; +@@ -383,10 +388,10 @@ + + /* This function was originally written by Daniel Weaver <danw@znyx.com> */ + static void +-rgb2hls(short r, short g, short b, short *h, short *l, short *s) ++rgb2hls(int r, int g, int b, NCURSES_COLOR_T *h, NCURSES_COLOR_T *l, NCURSES_COLOR_T *s) + /* convert RGB to HLS system */ + { +- short min, max, t; ++ int min, max, t; + + if ((min = g < r ? g : r) > b) + min = b; +@@ -394,7 +399,7 @@ + max = b; + + /* calculate lightness */ +- *l = (short) ((min + max) / 20); ++ *l = (NCURSES_COLOR_T) ((min + max) / 20); + + if (min == max) { /* black, white and all shades of gray */ + *h = 0; +@@ -404,19 +409,19 @@ + + /* calculate saturation */ + if (*l < 50) +- *s = (short) (((max - min) * 100) / (max + min)); ++ *s = (NCURSES_COLOR_T) (((max - min) * 100) / (max + min)); + else +- *s = (short) (((max - min) * 100) / (2000 - max - min)); ++ *s = (NCURSES_COLOR_T) (((max - min) * 100) / (2000 - max - min)); + + /* calculate hue */ + if (r == max) +- t = (short) (120 + ((g - b) * 60) / (max - min)); ++ t = (NCURSES_COLOR_T) (120 + ((g - b) * 60) / (max - min)); + else if (g == max) +- t = (short) (240 + ((b - r) * 60) / (max - min)); ++ t = (NCURSES_COLOR_T) (240 + ((b - r) * 60) / (max - min)); + else +- t = (short) (360 + ((r - g) * 60) / (max - min)); ++ t = (NCURSES_COLOR_T) (360 + ((r - g) * 60) / (max - min)); + +- *h = t % 360; ++ *h = (NCURSES_COLOR_T) (t % 360); + } + + /* +@@ -424,13 +429,20 @@ + * values. + */ + NCURSES_EXPORT(int) +-NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b) ++NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx ++ NCURSES_PAIRS_T pair, ++ NCURSES_COLOR_T f, ++ NCURSES_COLOR_T b) + { + colorpair_t result; + colorpair_t previous; + int maxcolors; + +- T((T_CALLED("init_pair(%p,%d,%d,%d)"), (void *) SP_PARM, pair, f, b)); ++ T((T_CALLED("init_pair(%p,%d,%d,%d)"), ++ (void *) SP_PARM, ++ (int) pair, ++ (int) f, ++ (int) b)); + + if (!ValidPair(pair)) + returnCode(ERR); +@@ -439,7 +451,7 @@ + + previous = SP_PARM->_color_pairs[pair]; + #if NCURSES_EXT_FUNCS +- if (SP_PARM->_default_color) { ++ if (SP_PARM->_default_color || SP_PARM->_assumed_color) { + bool isDefault = FALSE; + bool wasDefault = FALSE; + int default_pairs = SP_PARM->_default_pairs; +@@ -498,8 +510,9 @@ + { + if ((f < 0) || !OkColorHi(f) + || (b < 0) || !OkColorHi(b) +- || (pair < 1)) ++ || (pair < 1)) { + returnCode(ERR); ++ } + } + + /* +@@ -534,22 +547,26 @@ + SET_SCREEN_PAIR(SP_PARM, (chtype) (~0)); /* force attribute update */ + + #ifdef USE_TERM_DRIVER +- CallDriver_3(SP_PARM, initpair, pair, f, b); ++ CallDriver_3(SP_PARM, td_initpair, pair, f, b); + #else + if (initialize_pair && InPalette(f) && InPalette(b)) { + const color_t *tp = 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)); +- +- TPUTS_TRACE("initialize_pair"); +- putp(TPARM_7(initialize_pair, +- pair, +- tp[f].red, tp[f].green, tp[f].blue, +- tp[b].red, tp[b].green, tp[b].blue)); ++ (int) pair, ++ (int) tp[f].red, (int) tp[f].green, (int) tp[f].blue, ++ (int) tp[b].red, (int) tp[b].green, (int) tp[b].blue)); ++ ++ NCURSES_PUTP2("initialize_pair", ++ TPARM_7(initialize_pair, ++ pair, ++ (int) tp[f].red, ++ (int) tp[f].green, ++ (int) tp[f].blue, ++ (int) tp[b].red, ++ (int) tp[b].green, ++ (int) tp[b].blue)); + } + #endif + +@@ -558,7 +575,7 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-init_pair(short pair, short f, short b) ++init_pair(NCURSES_COLOR_T pair, NCURSES_COLOR_T f, NCURSES_COLOR_T b) + { + return NCURSES_SP_NAME(init_pair) (CURRENT_SCREEN, pair, f, b); + } +@@ -568,7 +585,10 @@ + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(init_color) (NCURSES_SP_DCLx +- short color, short r, short g, short b) ++ NCURSES_COLOR_T color, ++ NCURSES_COLOR_T r, ++ NCURSES_COLOR_T g, ++ NCURSES_COLOR_T b) + { + int result = ERR; + int maxcolors; +@@ -605,10 +625,10 @@ + } + + #ifdef USE_TERM_DRIVER +- CallDriver_4(SP_PARM, initcolor, color, r, g, b); ++ CallDriver_4(SP_PARM, td_initcolor, color, r, g, b); + #else +- TPUTS_TRACE("initialize_color"); +- putp(TPARM_4(initialize_color, color, r, g, b)); ++ NCURSES_PUTP2("initialize_color", ++ TPARM_4(initialize_color, color, r, g, b)); + #endif + SP_PARM->_color_defs = max(color + 1, SP_PARM->_color_defs); + +@@ -619,7 +639,10 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-init_color(short color, short r, short g, short b) ++init_color(NCURSES_COLOR_T color, ++ NCURSES_COLOR_T r, ++ NCURSES_COLOR_T g, ++ NCURSES_COLOR_T b) + { + return NCURSES_SP_NAME(init_color) (CURRENT_SCREEN, color, r, g, b); + } +@@ -628,8 +651,15 @@ + NCURSES_EXPORT(bool) + NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL) + { ++ int result = FALSE; ++ + T((T_CALLED("can_change_color(%p)"), (void *) SP_PARM)); +- returnCode((CanChange != 0) ? TRUE : FALSE); ++ ++ if (HasTerminal(SP_PARM) && (CanChange != 0)) { ++ result = TRUE; ++ } ++ ++ returnCode(result); + } + + #if NCURSES_SP_FUNCS +@@ -643,20 +673,22 @@ + NCURSES_EXPORT(bool) + NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0) + { +- int code; ++ int code = FALSE; + + (void) SP_PARM; + T((T_CALLED("has_colors()"))); ++ if (HasTerminal(SP_PARM)) { + #ifdef USE_TERM_DRIVER +- code = HasColor; ++ 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); ++ 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); + } + +@@ -670,7 +702,10 @@ + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(color_content) (NCURSES_SP_DCLx +- short color, short *r, short *g, short *b) ++ NCURSES_COLOR_T color, ++ NCURSES_COLOR_T *r, ++ NCURSES_COLOR_T *g, ++ NCURSES_COLOR_T *b) + { + int result = ERR; + int maxcolors; +@@ -710,7 +745,10 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-color_content(short color, short *r, short *g, short *b) ++color_content(NCURSES_COLOR_T color, ++ NCURSES_COLOR_T *r, ++ NCURSES_COLOR_T *g, ++ NCURSES_COLOR_T *b) + { + return NCURSES_SP_NAME(color_content) (CURRENT_SCREEN, color, r, g, b); + } +@@ -718,21 +756,23 @@ + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(pair_content) (NCURSES_SP_DCLx +- short pair, short *f, short *b) ++ NCURSES_PAIRS_T pair, ++ NCURSES_COLOR_T *f, ++ NCURSES_COLOR_T *b) + { + int result; + + T((T_CALLED("pair_content(%p,%d,%p,%p)"), + (void *) SP_PARM, +- pair, ++ (int) pair, + (void *) f, + (void *) b)); + + if (!ValidPair(pair)) { + result = ERR; + } else { +- NCURSES_COLOR_T fg = FORE_OF(SP_PARM->_color_pairs[pair]); +- NCURSES_COLOR_T bg = BACK_OF(SP_PARM->_color_pairs[pair]); ++ NCURSES_COLOR_T fg = (NCURSES_COLOR_T) FORE_OF(SP_PARM->_color_pairs[pair]); ++ NCURSES_COLOR_T bg = (NCURSES_COLOR_T) BACK_OF(SP_PARM->_color_pairs[pair]); + + #if NCURSES_EXT_FUNCS + if (fg == COLOR_DEFAULT) +@@ -748,8 +788,8 @@ + + TR(TRACE_ATTRS, ("...pair_content(%p,%d,%d,%d)", + (void *) SP_PARM, +- pair, +- fg, bg)); ++ (int) pair, ++ (int) fg, (int) bg)); + result = OK; + } + returnCode(result); +@@ -757,7 +797,7 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-pair_content(short pair, short *f, short *b) ++pair_content(NCURSES_COLOR_T pair, NCURSES_COLOR_T *f, NCURSES_COLOR_T *b) + { + return NCURSES_SP_NAME(pair_content) (CURRENT_SCREEN, pair, f, b); + } +@@ -765,17 +805,18 @@ + + NCURSES_EXPORT(void) + NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx +- short old_pair, +- short pair, +- bool reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_SP_OUTC outc) + { + #ifdef USE_TERM_DRIVER +- CallDriver_4(SP_PARM, docolor, old_pair, pair, reverse, outc); ++ CallDriver_4(SP_PARM, td_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; ++ NCURSES_COLOR_T old_fg = -1; ++ NCURSES_COLOR_T old_bg = -1; + + if (!ValidPair(pair)) { + return; +@@ -787,13 +828,14 @@ + 1, outc); + return; + } else if (SP_PARM != 0) { +- pair_content((short) pair, &fg, &bg); ++ if (pair_content((NCURSES_COLOR_T) pair, &fg, &bg) == ERR) ++ return; + } + } + + if (old_pair >= 0 + && SP_PARM != 0 +- && pair_content(old_pair, &old_fg, &old_bg) != ERR) { ++ && pair_content((NCURSES_COLOR_T) old_pair, &old_fg, &old_bg) != ERR) { + if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) + || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { + #if NCURSES_EXT_FUNCS +@@ -822,9 +864,9 @@ + + #if NCURSES_EXT_FUNCS + if (isDefaultColor(fg)) +- fg = (short) default_fg(NCURSES_SP_ARG); ++ fg = (NCURSES_COLOR_T) default_fg(NCURSES_SP_ARG); + if (isDefaultColor(bg)) +- bg = (short) default_bg(NCURSES_SP_ARG); ++ bg = (NCURSES_COLOR_T) default_bg(NCURSES_SP_ARG); + #endif + + if (reverse) { +@@ -847,7 +889,7 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(void) +-_nc_do_color(short old_pair, short pair, bool reverse, NCURSES_OUTC outc) ++_nc_do_color(int old_pair, int pair, int reverse, NCURSES_OUTC outc) + { + SetSafeOutcWrapper(outc); + NCURSES_SP_NAME(_nc_do_color) (CURRENT_SCREEN, +diff -Naur ncurses-5.9/ncurses/base/lib_colorset.c ncurses-5.9.patch/ncurses/base/lib_colorset.c +--- ncurses-5.9/ncurses/base/lib_colorset.c 2009-10-25 00:02:14.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_colorset.c 2014-09-01 16:33:22.371792147 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2014 Free 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,14 +41,14 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_colorset.c,v 1.13 2009/10/24 22:02:14 tom Exp $") ++MODULE_ID("$Id: lib_colorset.c,v 1.14 2014/02/01 22:10:42 tom Exp $") + + NCURSES_EXPORT(int) +-wcolor_set(WINDOW *win, short color_pair_number, void *opts) ++wcolor_set(WINDOW *win, NCURSES_PAIRS_T color_pair_number, void *opts) + { + int code = ERR; + +- T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, color_pair_number)); ++ T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, (int) color_pair_number)); + if (win + && !opts + && (SP != 0) +diff -Naur ncurses-5.9/ncurses/base/lib_dft_fgbg.c ncurses-5.9.patch/ncurses/base/lib_dft_fgbg.c +--- ncurses-5.9/ncurses/base/lib_dft_fgbg.c 2009-10-25 00:15:00.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_dft_fgbg.c 2014-09-01 16:33:22.371792147 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.25 2009/10/24 22:15:00 tom Exp $") ++MODULE_ID("$Id: lib_dft_fgbg.c,v 1.27 2014/03/08 20:32:59 tom Exp $") + + /* + * Modify the behavior of color-pair 0 so that the library doesn't assume that +@@ -70,7 +70,7 @@ + T((T_CALLED("assume_default_colors(%p,%d,%d)"), (void *) SP_PARM, fg, bg)); + #ifdef USE_TERM_DRIVER + if (sp != 0) +- code = CallDriver_2(sp, defaultcolors, fg, bg); ++ code = CallDriver_2(sp, td_defaultcolors, fg, bg); + #else + if ((orig_pair || orig_colors) && !initialize_pair) { + +@@ -80,6 +80,7 @@ + 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->_assumed_color = TRUE; + SP_PARM->_default_color = TRUE; + init_pair(0, (short) fg, (short) bg); + SP_PARM->_default_color = save; +diff -Naur ncurses-5.9/ncurses/base/lib_driver.c ncurses-5.9.patch/ncurses/base/lib_driver.c +--- ncurses-5.9/ncurses/base/lib_driver.c 2010-12-20 01:29:17.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_driver.c 2014-09-01 16:33:22.371792147 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -33,7 +33,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_driver.c,v 1.3 2010/12/20 00:29:17 tom Exp $") ++MODULE_ID("$Id: lib_driver.c,v 1.5 2014/03/08 20:32:59 tom Exp $") + + typedef struct DriverEntry { + const char *name; +@@ -43,9 +43,9 @@ + static DRIVER_ENTRY DriverTable[] = + { + #ifdef __MINGW32__ +- {"win", &_nc_WIN_DRIVER}, ++ {"win32con", &_nc_WIN_DRIVER}, + #endif +- {"tinfo", &_nc_TINFO_DRIVER} ++ {"tinfo", &_nc_TINFO_DRIVER} /* must be last */ + }; + + NCURSES_EXPORT(int) +@@ -63,7 +63,21 @@ + + for (i = 0; i < SIZEOF(DriverTable); i++) { + res = DriverTable[i].driver; +- if (res->CanHandle(TCB, name, errret)) { ++ /* ++ * Use "#" (a character which cannot begin a terminal's name) to ++ * select specific driver from the table. ++ * ++ * In principle, we could have more than one non-terminfo driver, ++ * e.g., "win32gui". ++ */ ++ if (name != 0 && *name == '#') { ++ size_t n = strlen(name + 1); ++ if (n != 0 ++ && strncmp(name + 1, DriverTable[i].name, n)) { ++ continue; ++ } ++ } ++ if (res->td_CanHandle(TCB, name, errret)) { + use = res; + break; + } +@@ -79,7 +93,7 @@ + NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode) + { + T((T_CALLED("has_key(%p, %d)"), (void *) sp, keycode)); +- returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, kyExist, keycode) : FALSE); ++ returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, td_kyExist, keycode) : FALSE); + } + + NCURSES_EXPORT(int) +@@ -94,7 +108,7 @@ + int code = ERR; + + if (0 != TerminalOf(sp)) +- code = CallDriver_2(sp, print, data, len); ++ code = CallDriver_2(sp, td_print, data, len); + return (code); + } + +@@ -112,7 +126,7 @@ + T((T_CALLED("doupdate(%p)"), (void *) sp)); + + if (IsValidScreen(sp)) +- code = CallDriver(sp, update); ++ code = CallDriver(sp, td_update); + + returnCode(code); + } +@@ -130,7 +144,7 @@ + TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%p,%d,%d,%d,%d)"), + (void *) sp, yold, xold, ynew, xnew)); + if (HasTerminal(sp)) { +- code = CallDriver_4(sp, hwcur, yold, xold, ynew, xnew); ++ code = CallDriver_4(sp, td_hwcur, yold, xold, ynew, xnew); + } + returnCode(code); + } +diff -Naur ncurses-5.9/ncurses/base/lib_endwin.c ncurses-5.9.patch/ncurses/base/lib_endwin.c +--- ncurses-5.9/ncurses/base/lib_endwin.c 2009-10-25 00:02:14.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_endwin.c 2014-09-01 16:33:22.371792147 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2014 Free 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 <curses.priv.h> + +-MODULE_ID("$Id: lib_endwin.c,v 1.22 2009/10/24 22:02:14 tom Exp $") ++MODULE_ID("$Id: lib_endwin.c,v 1.23 2014/03/08 20:32:59 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0) +@@ -56,8 +56,8 @@ + TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM); + + SP_PARM->_endwin = TRUE; +- if (TCB && TCB->drv && TCB->drv->scexit) +- TCB->drv->scexit(SP_PARM); ++ if (TCB && TCB->drv && TCB->drv->td_scexit) ++ TCB->drv->td_scexit(SP_PARM); + #else + SP_PARM->_endwin = TRUE; + SP_PARM->_mouse_wrap(SP_PARM); +diff -Naur ncurses-5.9/ncurses/base/lib_flash.c ncurses-5.9.patch/ncurses/base/lib_flash.c +--- ncurses-5.9/ncurses/base/lib_flash.c 2009-10-25 00:02:14.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_flash.c 2014-09-01 16:33:22.372792149 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_flash.c,v 1.11 2009/10/24 22:02:14 tom Exp $") ++MODULE_ID("$Id: lib_flash.c,v 1.14 2014/03/08 20:32:59 tom Exp $") + + /* + * flash() +@@ -64,17 +64,15 @@ + T((T_CALLED("flash(%p)"), (void *) SP_PARM)); + #ifdef USE_TERM_DRIVER + if (SP_PARM != 0) +- res = CallDriver_1(SP_PARM, doBeepOrFlash, FALSE); ++ res = CallDriver_1(SP_PARM, td_doBeepOrFlash, FALSE); + #else +- /* FIXME: should make sure that we are not in altchar mode */ +- if (flash_screen) { +- TPUTS_TRACE("flash_screen"); +- res = putp(flash_screen); +- _nc_flush(); +- } else if (bell) { +- TPUTS_TRACE("bell"); +- res = putp(bell); +- _nc_flush(); ++ if (HasTerminal(SP_PARM)) { ++ /* FIXME: should make sure that we are not in altchar mode */ ++ if (flash_screen) { ++ res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen); ++ } else if (bell) { ++ res = NCURSES_PUTP2_FLUSH("bell", bell); ++ } + } + #endif + returnCode(res); +diff -Naur ncurses-5.9/ncurses/base/lib_freeall.c ncurses-5.9.patch/ncurses/base/lib_freeall.c +--- ncurses-5.9/ncurses/base/lib_freeall.c 2010-01-23 18:57:43.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_freeall.c 2014-09-01 16:33:22.372792149 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 @@ + extern int malloc_errfd; /* FIXME */ + #endif + +-MODULE_ID("$Id: lib_freeall.c,v 1.59 2010/01/23 17:57:43 tom Exp $") ++MODULE_ID("$Id: lib_freeall.c,v 1.62 2012/11/17 23:53:03 tom Exp $") + + /* + * Free all ncurses data. This is used for testing only (there's no practical +@@ -70,19 +70,21 @@ + + /* Delete only windows that're not a parent */ + for (each_window(SP_PARM, p)) { ++ WINDOW *p_win = &(p->win); + bool found = FALSE; + + for (each_window(SP_PARM, q)) { ++ WINDOW *q_win = &(q->win); + if ((p != q) +- && (q->win._flags & _SUBWIN) +- && (&(p->win) == q->win._parent)) { ++ && (q_win->_flags & _SUBWIN) ++ && (p_win == q_win->_parent)) { + found = TRUE; + break; + } + } + + if (!found) { +- if (delwin(&(p->win)) != ERR) ++ if (delwin(p_win) != ERR) + deleted = TRUE; + break; + } +@@ -100,7 +102,7 @@ + + (void) _nc_printf_string(0, empty_va); + #ifdef TRACE +- (void) _nc_trace_buf(-1, 0); ++ (void) _nc_trace_buf(-1, (size_t) 0); + #endif + #if USE_WIDEC_SUPPORT + FreeIfNeeded(_nc_wacs); +@@ -129,8 +131,9 @@ + NCURSES_EXPORT(void) + NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code) + { +- char *last_setbuf = (SP_PARM != 0) ? SP_PARM->_setbuf : 0; ++ char *last_buffer = (SP_PARM != 0) ? SP_PARM->out_buffer : 0; + ++ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG); + #ifdef TRACE + trace(0); /* close trace file, freeing its setbuf */ +@@ -139,8 +142,7 @@ + free(_nc_varargs("?", fake)); + } + #endif +- fclose(stdout); +- FreeIfNeeded(last_setbuf); ++ FreeIfNeeded(last_buffer); + exit(code); + } + +diff -Naur ncurses-5.9/ncurses/base/lib_getch.c ncurses-5.9.patch/ncurses/base/lib_getch.c +--- ncurses-5.9/ncurses/base/lib_getch.c 2010-12-26 00:24:04.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_getch.c 2014-09-01 16:33:22.372792149 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 <curses.priv.h> + +-MODULE_ID("$Id: lib_getch.c,v 1.121 2010/12/25 23:24:04 tom Exp $") ++MODULE_ID("$Id: lib_getch.c,v 1.127 2014/03/08 20:32:59 tom Exp $") + + #include <fifo_defs.h> + +@@ -133,7 +133,7 @@ + int rc; + + #ifdef USE_TERM_DRIVER +- rc = TCBOf(sp)->drv->testmouse(TCBOf(sp), delay); ++ rc = TCBOf(sp)->drv->td_testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl)); + #else + #if USE_SYSMOUSE + if ((sp->_mouse_type == M_SYSMOUSE) +@@ -163,7 +163,7 @@ + static NCURSES_INLINE int + fifo_peek(SCREEN *sp) + { +- int ch = sp->_fifo[peek]; ++ int ch = (peek >= 0) ? sp->_fifo[peek] : ERR; + TR(TRACE_IEVENT, ("peeking at %d", peek)); + + p_inc(); +@@ -173,15 +173,16 @@ + static NCURSES_INLINE int + fifo_pull(SCREEN *sp) + { +- int ch; +- ch = sp->_fifo[head]; ++ int ch = (head >= 0) ? sp->_fifo[head] : ERR; ++ + TR(TRACE_IEVENT, ("pulling %s from %d", _nc_tracechar(sp, ch), head)); + + if (peek == head) { + h_inc(); + peek = head; +- } else ++ } else { + h_inc(); ++ } + + #ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { +@@ -200,7 +201,7 @@ + int mask = 0; + + (void) mask; +- if (tail == -1) ++ if (tail < 0) + return ERR; + + #ifdef HIDE_EINTR +@@ -257,10 +258,17 @@ + n = 1; + } else + #endif ++#if USE_KLIBC_KBD ++ if (isatty(sp->_ifd) && sp->_cbreak) { ++ ch = _read_kbd(0, 1, !sp->_raw); ++ n = (ch == -1) ? -1 : 1; ++ sp->_extended_key = (ch == 0); ++ } else ++#endif + { /* Can block... */ + #ifdef USE_TERM_DRIVER + int buf; +- n = CallDriver_1(sp, read, &buf); ++ n = CallDriver_1(sp, td_read, &buf); + ch = buf; + #else + unsigned char c2 = 0; +@@ -270,7 +278,7 @@ + # endif + _nc_globals.read_thread = pthread_self(); + # endif +- n = (int) read(sp->_ifd, &c2, 1); ++ n = (int) read(sp->_ifd, &c2, (size_t) 1); + #if USE_PTHREADS_EINTR + _nc_globals.read_thread = 0; + #endif +@@ -431,11 +439,11 @@ + /* ungetch in reverse order */ + #ifdef NCURSES_WGETCH_EVENTS + rc = recur_wgetnstr(win, buf); +- if (rc != KEY_EVENT) ++ if (rc != KEY_EVENT && rc != ERR) + safe_ungetch(sp, '\n'); + #else +- (void) recur_wgetnstr(win, buf); +- safe_ungetch(sp, '\n'); ++ if (recur_wgetnstr(win, buf) != ERR) ++ safe_ungetch(sp, '\n'); + #endif + for (bufp = buf + strlen(buf); bufp > buf; bufp--) + safe_ungetch(sp, bufp[-1]); +@@ -569,7 +577,7 @@ + * + * If carriage return is defined as a function key in the + * terminfo, e.g., kent, then Solaris may return either ^J (or ^M +- * if nonl() is set) or KEY_ENTER depending on the echo() mode. ++ * if nonl() is set) or KEY_ENTER depending on the echo() mode. + * We echo before translating carriage return based on nonl(), + * since the visual result simply moves the cursor to column 0. + * +@@ -709,10 +717,11 @@ + + if (ptr->value != 0) { /* sequence terminated */ + TR(TRACE_IEVENT, ("end of sequence")); +- if (peek == tail) ++ if (peek == tail) { + fifo_clear(sp); +- else ++ } else { + head = peek; ++ } + return (ptr->value); + } + +diff -Naur ncurses-5.9/ncurses/base/lib_getstr.c ncurses-5.9.patch/ncurses/base/lib_getstr.c +--- ncurses-5.9/ncurses/base/lib_getstr.c 2009-10-24 23:59:02.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_getstr.c 2014-09-01 16:33:22.372792149 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -40,14 +40,14 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_getstr.c,v 1.29 2009/10/24 21:59:02 tom Exp $") ++MODULE_ID("$Id: lib_getstr.c,v 1.30 2011/10/22 16:31:35 tom Exp $") + + /* + * This wipes out the last character, no matter whether it was a tab, control + * or other character, and handles reverse wraparound. + */ + static char * +-WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed) ++WipeOut(WINDOW *win, int y, int x, char *first, char *last, int echoed) + { + if (last > first) { + *--last = '\0'; +diff -Naur ncurses-5.9/ncurses/base/lib_insch.c ncurses-5.9.patch/ncurses/base/lib_insch.c +--- ncurses-5.9/ncurses/base/lib_insch.c 2009-10-25 00:04:35.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_insch.c 2014-09-01 16:33:22.372792149 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_insch.c,v 1.32 2009/10/24 22:04:35 tom Exp $") ++MODULE_ID("$Id: lib_insch.c,v 1.35 2013/05/18 21:58:56 tom Exp $") + + /* + * Insert the given character, updating the current location to simplify +@@ -53,6 +53,7 @@ + _nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch) + { + int code = OK; ++ int ch8 = (int) ChCharOf(ch); + NCURSES_CH_T wch; + int count; + NCURSES_CONST char *s; +@@ -82,10 +83,9 @@ + #if USE_WIDEC_SUPPORT + WINDOW_EXT(win, addch_used) == 0 && + #endif +- is8bits(ChCharOf(ch)) && +- (isprint(ChCharOf(ch)) || ++ (isprint(ch8) || + (ChAttrOf(ch) & A_ALTCHARSET) || +- (sp != 0 && sp->_legacy_coding && !iscntrl(ChCharOf(ch))))) { ++ (sp != 0 && sp->_legacy_coding && !iscntrl(ch8)))) { + if (win->_curx <= win->_maxx) { + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T *end = &(line->text[win->_curx]); +@@ -101,8 +101,8 @@ + *temp1 = _nc_render(win, wch); + win->_curx++; + } +- } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) { +- s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch)); ++ } else if (iscntrl(ch8)) { ++ s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx (chtype) ch8); + while (*s != '\0') { + code = _nc_insert_ch(sp, win, ChAttrOf(ch) | UChar(*s)); + if (code != OK) +@@ -122,18 +122,14 @@ + code = _nc_insert_wch(win, &wch); + } else if (count == -1) { + /* handle EILSEQ */ +- if (is8bits(ch)) { +- 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; ++ s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx (chtype) ch8); ++ 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; +diff -Naur ncurses-5.9/ncurses/base/lib_instr.c ncurses-5.9.patch/ncurses/base/lib_instr.c +--- ncurses-5.9/ncurses/base/lib_instr.c 2009-10-25 00:55:45.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_instr.c 2014-09-01 16:33:22.372792149 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -41,7 +41,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_instr.c,v 1.17 2009/10/24 22:55:45 tom Exp $") ++MODULE_ID("$Id: lib_instr.c,v 1.21 2014/02/01 22:09:27 tom Exp $") + + NCURSES_EXPORT(int) + winnstr(WINDOW *win, char *str, int n) +@@ -64,7 +64,7 @@ + cchar_t *cell = &(win->_line[row].text[col]); + wchar_t *wch; + attr_t attrs; +- short pair; ++ NCURSES_PAIRS_T pair; + int n2; + bool done = FALSE; + mbstate_t state; +@@ -78,11 +78,15 @@ + if (getcchar(cell, wch, &attrs, &pair, 0) == OK) { + + init_mb(state); +- n3 = wcstombs(0, wch, 0); ++ n3 = wcstombs(0, wch, (size_t) 0); + if (!isEILSEQ(n3) && (n3 != 0)) { +- if (((int) n3 + i) > n) { ++ size_t need = n3 + 10 + (size_t) i; ++ int have = (int) n3 + i; ++ ++ /* check for loop-done as well as overflow */ ++ if (have > n || (int) need <= 0) { + done = TRUE; +- } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) { ++ } else if ((tmp = typeCalloc(char, need)) == 0) { + done = TRUE; + } else { + init_mb(state); +diff -Naur ncurses-5.9/ncurses/base/lib_mouse.c ncurses-5.9.patch/ncurses/base/lib_mouse.c +--- ncurses-5.9/ncurses/base/lib_mouse.c 2011-01-22 20:47:47.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_mouse.c 2014-09-01 16:33:22.373792151 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -84,7 +84,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_mouse.c,v 1.121 2011/01/22 19:47:47 tom Exp $") ++MODULE_ID("$Id: lib_mouse.c,v 1.142 2014/03/08 20:32:59 tom Exp $") + + #include <tic.h> + +@@ -112,7 +112,7 @@ + #undef buttons /* symbol conflict in consio.h */ + #undef mouse_info /* symbol conflict in consio.h */ + #include <osreldate.h> +-#if (__FreeBSD_version >= 400017) ++#if defined(__DragonFly_version) || (defined(__FreeBSD__) && (__FreeBSD_version >= 400017)) + #include <sys/consio.h> + #include <sys/fbio.h> + #else +@@ -120,6 +120,17 @@ + #endif + #endif /* use_SYSMOUSE */ + ++#if USE_KLIBC_MOUSE ++#include <sys/socket.h> ++#define pipe(handles) socketpair(AF_LOCAL, SOCK_STREAM, 0, handles) ++#define DosWrite(hfile, pbuffer, cbwrite, pcbactual) \ ++ write(hfile, pbuffer, cbwrite) ++#define DosExit(action, result ) /* do nothing */ ++#define DosCreateThread(ptid, pfn, param, flag, cbStack) \ ++ (*(ptid) = _beginthread(pfn, NULL, cbStack, \ ++ (void *)param), (*(ptid) == -1)) ++#endif ++ + #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT + + #define MASK_RELEASE(x) (mmask_t) NCURSES_MOUSE_MASK(x, 001) +@@ -148,6 +159,9 @@ + #define INVALID_EVENT -1 + #define NORMAL_EVENT 0 + ++#define ValidEvent(ep) ((ep)->id != INVALID_EVENT) ++#define Invalidate(ep) (ep)->id = INVALID_EVENT ++ + #if USE_GPM_SUPPORT + + #ifndef LIBGPM_SONAME +@@ -211,7 +225,7 @@ + char buf[6]; + unsigned long ignore; + +- strncpy(buf, key_mouse, 3); /* should be "\033[M" */ ++ strcpy(buf, "\033[M"); /* should be the same as key_mouse */ + buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40); + buf[4] = ' ' + x - LEFT_COL + 1; + buf[5] = ' ' + y - TOP_ROW + 1; +@@ -219,7 +233,11 @@ + } + + static void ++#if USE_KLIBC_MOUSE ++mouse_server(void *param) ++#else + mouse_server(unsigned long param) ++#endif + { + SCREEN *sp = (SCREEN *) param; + unsigned short fWait = MOU_WAIT; +@@ -245,7 +263,8 @@ + /* sit and wait on the event queue */ + rc = MouReadEventQue(&mouev, &fWait, hmou); + if (rc) { +- sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc); ++ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err)) ++ "Error reading mouse queue, rc=%lu.\r\n", rc); + break; + } + if (!sp->_emxmouse_activated) +@@ -271,9 +290,11 @@ + finish: + oldstate = mouev.fs; + } +- } else +- sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n", +- nbuttons, rc); ++ } else { ++ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err)) ++ "Error setting event mask, buttons=%d, rc=%lu.\r\n", ++ nbuttons, rc); ++ } + + DosWrite(2, err, strlen(err), &rc); + MouClose(hmou); +@@ -367,20 +388,26 @@ + #if USE_EMX_MOUSE + sp->_emxmouse_activated = enable; + #else +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "xterm-mouse", +- TPARM_1(sp->_mouse_xtermcap, enable)); ++ NCURSES_PUTP2("xterm-mouse", TPARM_1(sp->_mouse_xtermcap, enable)); + #endif + sp->_mouse_active = enable; + } + + #if USE_GPM_SUPPORT + static bool +-allow_gpm_mouse(void) ++allow_gpm_mouse(SCREEN *sp) + { + bool result = FALSE; + +- /* GPM does printf's without checking if stdout is a terminal */ ++#if USE_WEAK_SYMBOLS ++ /* Danger Robinson: do not use dlopen for libgpm if already loaded */ ++ if ((Gpm_Wgetch)) { ++ if (!sp->_mouse_gpm_loaded) { ++ T(("GPM library was already dlopen'd, not by us")); ++ } ++ } else ++#endif ++ /* GPM does printf's without checking if stdout is a terminal */ + if (isatty(fileno(stdout))) { + char *list = getenv("NCURSES_GPM_TERMS"); + char *env = getenv("TERM"); +@@ -506,7 +533,7 @@ + + /* Try gpm first, because gpm may be configured to run in xterm */ + #if USE_GPM_SUPPORT +- if (allow_gpm_mouse()) { ++ if (allow_gpm_mouse(sp)) { + if (!sp->_mouse_gpm_loaded) { + #ifdef HAVE_LIBDL + load_gpm_library(sp); +@@ -641,7 +668,7 @@ + #endif /* USE_SYSMOUSE */ + + #ifdef USE_TERM_DRIVER +- CallDriver(sp, initmouse); ++ CallDriver(sp, td_initmouse); + #else + /* we know how to recognize mouse events under "xterm" */ + if (key_mouse != 0) { +@@ -673,7 +700,7 @@ + + sp->_mouse_eventp = FirstEV(sp); + for (i = 0; i < EV_MAX; i++) +- sp->_mouse_events[i].id = INVALID_EVENT; ++ Invalidate(sp->_mouse_events + i); + + initialize_mousetype(sp); + +@@ -750,6 +777,7 @@ + eventp->bstate |= BUTTON3_RELEASED; + break; + default: ++ eventp->bstate |= REPORT_MOUSE_POSITION; + break; + } + +@@ -830,7 +858,6 @@ + + if (sp->_mouse_type == M_XTERM) { + unsigned char kbuf[4]; +- mmask_t prev; + size_t grabbed; + int res; + +@@ -896,35 +923,51 @@ + + /* processing code goes here */ + eventp->bstate = 0; +- prev = PREV(eventp)->bstate; + + #if USE_EMX_MOUSE + #define PRESS_POSITION(n) \ +- eventp->bstate = MASK_PRESS(n); \ +- if (kbuf[0] & 0x40) \ +- eventp->bstate = MASK_RELEASE(n) ++ do { \ ++ eventp->bstate = MASK_PRESS(n); \ ++ sp->_mouse_bstate |= MASK_PRESS(n); \ ++ if (kbuf[0] & 0x40) { \ ++ eventp->bstate = MASK_RELEASE(n); \ ++ sp->_mouse_bstate &= ~MASK_PRESS(n); \ ++ } \ ++ } while (0) + #else + #define PRESS_POSITION(n) \ +- eventp->bstate = (mmask_t) (prev & MASK_PRESS(n) \ +- ? REPORT_MOUSE_POSITION \ +- : MASK_PRESS(n)) ++ do { \ ++ eventp->bstate = (mmask_t) (sp->_mouse_bstate & MASK_PRESS(n) \ ++ ? REPORT_MOUSE_POSITION \ ++ : MASK_PRESS(n)); \ ++ sp->_mouse_bstate |= MASK_PRESS(n); \ ++ } while (0) + #endif + + switch (kbuf[0] & 0x3) { + case 0x0: +- if (kbuf[0] & 64) ++ if ((kbuf[0] & 96) == 96) { + eventp->bstate = MASK_PRESS(4); +- else ++ /* Do not record in sp->_mouse_bstate; there will be no ++ * corresponding release event. ++ */ ++ } else { + PRESS_POSITION(1); ++ } + break; + + case 0x1: ++ if ((kbuf[0] & 96) == 96) { + #if NCURSES_MOUSE_VERSION == 2 +- if (kbuf[0] & 64) + eventp->bstate = MASK_PRESS(5); +- else ++ /* See comment above for button 4 */ ++#else ++ /* Ignore this event as it is not a true press of the button */ ++ eventp->bstate = REPORT_MOUSE_POSITION; + #endif ++ } else { + PRESS_POSITION(2); ++ } + break; + + case 0x2: +@@ -939,12 +982,13 @@ + * release, we can infer the button actually released by looking at + * the previous event. + */ +- if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) { ++ if (sp->_mouse_bstate & BUTTON_PRESSED) { + eventp->bstate = BUTTON_RELEASED; + for (b = 1; b <= MAX_BUTTONS; ++b) { +- if (!(prev & MASK_PRESS(b))) ++ if (!(sp->_mouse_bstate & MASK_PRESS(b))) + eventp->bstate &= ~MASK_RELEASE(b); + } ++ sp->_mouse_bstate = 0; + } else { + /* + * XFree86 xterm will return a stream of release-events to +@@ -985,7 +1029,7 @@ + } + + static void +-mouse_activate(SCREEN *sp, bool on) ++mouse_activate(SCREEN *sp, int on) + { + if (!on && !sp->_mouse_initialized) + return; +@@ -994,7 +1038,7 @@ + return; + + if (on) { +- ++ sp->_mouse_bstate = 0; + switch (sp->_mouse_type) { + case M_XTERM: + #if NCURSES_EXT_FUNCS +@@ -1074,10 +1118,13 @@ + /* parse a run of atomic mouse events into a gesture */ + { + MEVENT *eventp = sp->_mouse_eventp; +- MEVENT *ep, *runp, *next, *prev = PREV(eventp); ++ MEVENT *next, *ep; ++ MEVENT *first_valid = NULL; ++ MEVENT *first_invalid = NULL; + int n; + int b; + bool merge; ++ bool endLoop; + + TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount)); + +@@ -1094,7 +1141,8 @@ + * + * It's possible that the run may not resolve to a single event (for + * example, if the user quadruple-clicks). If so, leading events +- * in the run are ignored. ++ * in the run are ignored if user does not call getmouse in a loop (getting ++ * them from newest to older). + * + * Note that this routine is independent of the format of the specific + * format of the pointing-device's reports. We can use it to parse +@@ -1102,79 +1150,110 @@ + * button basis, as long as the device-dependent mouse code puts stuff + * on the queue in MEVENT format. + */ +- if (runcount == 1) { +- TR(MY_TRACE, +- ("_nc_mouse_parse: returning simple mouse event %s at slot %ld", +- _nc_tracemouse(sp, prev), +- (long) IndexEV(sp, prev))); +- return (prev->id >= NORMAL_EVENT) +- ? ((prev->bstate & sp->_mouse_mask) ? TRUE : FALSE) +- : FALSE; +- } + +- /* find the start of the run */ +- runp = eventp; +- for (n = runcount; n > 0; n--) { +- runp = PREV(runp); ++ /* ++ * Reset all events that were not set, in case the user sometimes calls ++ * getmouse only once and other times until there are no more events in ++ * queue. ++ * ++ * This also allows reaching the beginning of the run. ++ */ ++ ep = eventp; ++ for (n = runcount; n < EV_MAX; n++) { ++ Invalidate(ep); ++ ep = NEXT(ep); + } + + #ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _trace_slot(sp, "before mouse press/release merge:"); + _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", +- RunParams(sp, eventp, runp), ++ RunParams(sp, eventp, ep), + runcount); + _nc_unlock_global(tracef); + } + #endif /* TRACE */ + + /* first pass; merge press/release pairs */ +- do { +- merge = FALSE; +- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) { ++ endLoop = FALSE; ++ while (!endLoop) { ++ next = NEXT(ep); ++ if (next == eventp) { ++ /* Will end the loop, but compact before */ ++ endLoop = TRUE; ++ } else { + + #define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \ + == !(next->bstate & MASK_RELEASE(x))) + +- if (ep->x == next->x && ep->y == next->y ++ if (ValidEvent(ep) && ValidEvent(next) ++ && ep->x == next->x && ep->y == next->y + && (ep->bstate & BUTTON_PRESSED) +- && MASK_CHANGED(1) +- && MASK_CHANGED(2) +- && MASK_CHANGED(3) +- && MASK_CHANGED(4) +-#if NCURSES_MOUSE_VERSION == 2 +- && MASK_CHANGED(5) +-#endif +- ) { ++ && (!(next->bstate & BUTTON_PRESSED))) { ++ bool changed = TRUE; ++ + for (b = 1; b <= MAX_BUTTONS; ++b) { +- if ((sp->_mouse_mask & MASK_CLICK(b)) +- && (ep->bstate & MASK_PRESS(b))) { +- ep->bstate &= ~MASK_PRESS(b); +- ep->bstate |= MASK_CLICK(b); +- merge = TRUE; ++ if (!MASK_CHANGED(b)) { ++ changed = FALSE; ++ break; ++ } ++ } ++ ++ if (changed) { ++ merge = FALSE; ++ for (b = 1; b <= MAX_BUTTONS; ++b) { ++ if ((sp->_mouse_mask & MASK_CLICK(b)) ++ && (ep->bstate & MASK_PRESS(b))) { ++ next->bstate &= ~MASK_RELEASE(b); ++ next->bstate |= MASK_CLICK(b); ++ merge = TRUE; ++ } ++ } ++ if (merge) { ++ Invalidate(ep); + } + } +- if (merge) +- next->id = INVALID_EVENT; + } + } +- } while +- (merge); + ++ /* Compact valid events */ ++ if (!ValidEvent(ep)) { ++ if ((first_valid != NULL) && (first_invalid == NULL)) { ++ first_invalid = ep; ++ } ++ } else { ++ if (first_valid == NULL) { ++ first_valid = ep; ++ } else if (first_invalid != NULL) { ++ *first_invalid = *ep; ++ Invalidate(ep); ++ first_invalid = NEXT(first_invalid); ++ } ++ } ++ ++ ep = next; ++ } ++ ++ if (first_invalid != NULL) { ++ eventp = first_invalid; ++ } + #ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _trace_slot(sp, "before mouse click merge:"); +- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", +- RunParams(sp, eventp, runp), +- runcount); +- _nc_unlock_global(tracef); ++ if (first_valid == NULL) { ++ _tracef("_nc_mouse_parse: no valid event"); ++ } else { ++ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", ++ RunParams(sp, eventp, first_valid), ++ runcount); ++ _nc_unlock_global(tracef); ++ } + } + #endif /* TRACE */ + + /* +- * Second pass; merge click runs. At this point, click events are +- * each followed by one invalid event. We merge click events +- * forward in the queue. ++ * Second pass; merge click runs. We merge click events forward in the ++ * queue. For example, double click can be changed to triple click. + * + * NOTE: There is a problem with this design! If the application + * allows enough click events to pile up in the circular queue so +@@ -1187,87 +1266,102 @@ + * but the timer element would have to have sub-second resolution, + * which would get us into portability trouble. + */ +- do { +- MEVENT *follower; +- +- merge = FALSE; +- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) +- if (ep->id != INVALID_EVENT) { +- if (next->id != INVALID_EVENT) +- continue; +- follower = NEXT(next); +- if (follower->id == INVALID_EVENT) +- continue; +- +- /* merge click events forward */ +- if ((ep->bstate & BUTTON_CLICKED) +- && (follower->bstate & BUTTON_CLICKED)) { +- for (b = 1; b <= MAX_BUTTONS; ++b) { +- if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b)) +- && (follower->bstate & MASK_CLICK(b))) { +- follower->bstate &= ~MASK_CLICK(b); +- follower->bstate |= MASK_DOUBLE_CLICK(b); +- merge = TRUE; +- } ++ first_invalid = NULL; ++ endLoop = (first_valid == NULL); ++ ep = first_valid; ++ while (!endLoop) { ++ next = NEXT(ep); ++ ++ if (next == eventp) { ++ /* Will end the loop, but check event type and compact before */ ++ endLoop = TRUE; ++ } else if (!ValidEvent(next)) { ++ continue; ++ } else { ++ /* merge click events forward */ ++ if ((ep->bstate & BUTTON_CLICKED) ++ && (next->bstate & BUTTON_CLICKED)) { ++ merge = FALSE; ++ for (b = 1; b <= MAX_BUTTONS; ++b) { ++ if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b)) ++ && (ep->bstate & MASK_CLICK(b)) ++ && (next->bstate & MASK_CLICK(b))) { ++ next->bstate &= ~MASK_CLICK(b); ++ next->bstate |= MASK_DOUBLE_CLICK(b); ++ merge = TRUE; + } +- if (merge) +- ep->id = INVALID_EVENT; + } ++ if (merge) { ++ Invalidate(ep); ++ } ++ } + +- /* merge double-click events forward */ +- if ((ep->bstate & BUTTON_DOUBLE_CLICKED) +- && (follower->bstate & BUTTON_CLICKED)) { +- for (b = 1; b <= MAX_BUTTONS; ++b) { +- if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b)) +- && (follower->bstate & MASK_CLICK(b))) { +- follower->bstate &= ~MASK_CLICK(b); +- follower->bstate |= MASK_TRIPLE_CLICK(b); +- merge = TRUE; +- } ++ /* merge double-click events forward */ ++ if ((ep->bstate & BUTTON_DOUBLE_CLICKED) ++ && (next->bstate & BUTTON_CLICKED)) { ++ merge = FALSE; ++ for (b = 1; b <= MAX_BUTTONS; ++b) { ++ if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b)) ++ && (ep->bstate & MASK_DOUBLE_CLICK(b)) ++ && (next->bstate & MASK_CLICK(b))) { ++ next->bstate &= ~MASK_CLICK(b); ++ next->bstate |= MASK_TRIPLE_CLICK(b); ++ merge = TRUE; + } +- if (merge) +- ep->id = INVALID_EVENT; ++ } ++ if (merge) { ++ Invalidate(ep); + } + } +- } while +- (merge); ++ } + +-#ifdef TRACE +- if (USE_TRACEF(TRACE_IEVENT)) { +- _trace_slot(sp, "before mouse event queue compaction:"); +- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", +- RunParams(sp, eventp, runp), +- runcount); +- _nc_unlock_global(tracef); +- } +-#endif /* TRACE */ ++ /* Discard event if it does not match event mask */ ++ if (!(ep->bstate & sp->_mouse_mask2)) { ++ Invalidate(ep); ++ } + +- /* +- * Now try to throw away trailing events flagged invalid, or that +- * don't match the current event mask. +- */ +- for (; runcount; prev = PREV(eventp), runcount--) +- if (prev->id == INVALID_EVENT || !(prev->bstate & sp->_mouse_mask)) { +- sp->_mouse_eventp = eventp = prev; ++ /* Compact valid events */ ++ if (!ValidEvent(ep)) { ++ if (ep == first_valid) { ++ first_valid = next; ++ } else if (first_invalid == NULL) { ++ first_invalid = ep; ++ } ++ } else if (first_invalid != NULL) { ++ *first_invalid = *ep; ++ Invalidate(ep); ++ first_invalid = NEXT(first_invalid); + } ++ ++ ep = next; ++ } ++ ++ if (first_invalid == NULL) { ++ first_invalid = eventp; ++ } ++ sp->_mouse_eventp = first_invalid; ++ + #ifdef TRACE +- if (USE_TRACEF(TRACE_IEVENT)) { +- _trace_slot(sp, "after mouse event queue compaction:"); +- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", +- RunParams(sp, eventp, runp), +- runcount); +- _nc_unlock_global(tracef); ++ if (first_valid != NULL) { ++ if (USE_TRACEF(TRACE_IEVENT)) { ++ _trace_slot(sp, "after mouse event queue compaction:"); ++ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", ++ RunParams(sp, first_invalid, first_valid), ++ runcount); ++ _nc_unlock_global(tracef); ++ } ++ for (ep = first_valid; ep != first_invalid; ep = NEXT(ep)) { ++ if (ValidEvent(ep)) ++ TR(MY_TRACE, ++ ("_nc_mouse_parse: returning composite mouse event %s at slot %ld", ++ _nc_tracemouse(sp, ep), ++ (long) IndexEV(sp, ep))); ++ } + } +- for (ep = runp; ep != eventp; ep = NEXT(ep)) +- if (ep->id != INVALID_EVENT) +- TR(MY_TRACE, +- ("_nc_mouse_parse: returning composite mouse event %s at slot %ld", +- _nc_tracemouse(sp, ep), +- (long) IndexEV(sp, ep))); + #endif /* TRACE */ + + /* after all this, do we have a valid event? */ +- return (PREV(eventp)->id != INVALID_EVENT); ++ return ValidEvent(PREV(first_invalid)); + } + + static void +@@ -1359,7 +1453,16 @@ + /* compute the current-event pointer */ + MEVENT *prev = PREV(eventp); + +- if (prev->id != INVALID_EVENT) { ++ /* ++ * Discard events not matching mask (there could be still some if ++ * _nc_mouse_parse was not called, e.g., when _nc_mouse_inline returns ++ * false). ++ */ ++ while (ValidEvent(prev) && (!(prev->bstate & SP_PARM->_mouse_mask2))) { ++ Invalidate(prev); ++ prev = PREV(prev); ++ } ++ if (ValidEvent(prev)) { + /* copy the event we find there */ + *aevent = *prev; + +@@ -1367,9 +1470,16 @@ + _nc_tracemouse(SP_PARM, prev), + (long) IndexEV(SP_PARM, prev))); + +- prev->id = INVALID_EVENT; /* so the queue slot becomes free */ +- SP_PARM->_mouse_eventp = PREV(prev); ++ Invalidate(prev); /* so the queue slot becomes free */ ++ SP_PARM->_mouse_eventp = prev; + result = OK; ++ } else { ++ /* Reset the provided event */ ++ aevent->bstate = 0; ++ Invalidate(aevent); ++ aevent->x = 0; ++ aevent->y = 0; ++ aevent->z = 0; + } + } + returnCode(result); +@@ -1420,6 +1530,7 @@ + /* set the mouse event mask */ + { + mmask_t result = 0; ++ int b; + + T((T_CALLED("mousemask(%p,%#lx,%p)"), + (void *) SP_PARM, +@@ -1447,6 +1558,22 @@ + mouse_activate(SP_PARM, (bool) (result != 0)); + + SP_PARM->_mouse_mask = result; ++ SP_PARM->_mouse_mask2 = result; ++ ++ /* ++ * Make a mask corresponding to the states we will need to ++ * retain (temporarily) while building up the state that the ++ * user asked for. ++ */ ++ for (b = 1; b <= MAX_BUTTONS; ++b) { ++ if (SP_PARM->_mouse_mask2 & MASK_TRIPLE_CLICK(b)) ++ SP_PARM->_mouse_mask2 |= MASK_DOUBLE_CLICK(b); ++ if (SP_PARM->_mouse_mask2 & MASK_DOUBLE_CLICK(b)) ++ SP_PARM->_mouse_mask2 |= MASK_CLICK(b); ++ if (SP_PARM->_mouse_mask2 & MASK_CLICK(b)) ++ SP_PARM->_mouse_mask2 |= (MASK_PRESS(b) | ++ MASK_RELEASE(b)); ++ } + } + } + } +diff -Naur ncurses-5.9/ncurses/base/lib_newterm.c ncurses-5.9.patch/ncurses/base/lib_newterm.c +--- ncurses-5.9/ncurses/base/lib_newterm.c 2010-05-21 01:25:18.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_newterm.c 2014-09-01 16:33:22.373792151 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,17 +42,13 @@ + + #include <curses.priv.h> + +-#if SVR4_TERMIO && !defined(_POSIX_SOURCE) +-#define _POSIX_SOURCE +-#endif +- + #ifndef CUR + #define CUR SP_TERMTYPE + #endif + + #include <tic.h> + +-MODULE_ID("$Id: lib_newterm.c,v 1.86 2010/05/20 23:25:18 tom Exp $") ++MODULE_ID("$Id: lib_newterm.c,v 1.91 2014/03/08 20:32:59 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define NumLabels InfoOf(SP_PARM).numlabels +@@ -185,7 +181,7 @@ + START_TRACE(); + T((T_CALLED("newterm(%p, \"%s\", %p,%p)"), + (void *) SP_PARM, +- name, ++ (name ? name : ""), + (void *) ofp, + (void *) ifp)); + +@@ -283,7 +279,8 @@ + NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp)); + #ifdef TERMIOS + SP_PARM->_use_meta = ((new_term->Ottyb.c_cflag & CSIZE) == CS8 && +- !(new_term->Ottyb.c_iflag & ISTRIP)); ++ !(new_term->Ottyb.c_iflag & ISTRIP)) || ++ USE_KLIBC_KBD; + #else + SP_PARM->_use_meta = FALSE; + #endif +@@ -309,8 +306,8 @@ + + /* compute movement costs so we can do better move optimization */ + #ifdef USE_TERM_DRIVER +- TCBOf(SP_PARM)->drv->scinit(SP_PARM); +-#else ++ TCBOf(SP_PARM)->drv->td_scinit(SP_PARM); ++#else /* ! USE_TERM_DRIVER */ + /* + * Check for mismatched graphic-rendition capabilities. Most SVr4 + * terminfo trees contain entries that have rmul or rmso equated to +@@ -323,13 +320,16 @@ + #define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) + SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode); + SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode); ++#if USE_ITALIC ++ SP_PARM->_use_ritm = SGR0_TEST(exit_italics_mode); ++#endif + + /* compute movement costs so we can do better move optimization */ + _nc_mvcur_init(); + + /* initialize terminal to a sane state */ + _nc_screen_init(); +-#endif ++#endif /* USE_TERM_DRIVER */ + + /* Initialize the terminal line settings. */ + _nc_initscr(NCURSES_SP_ARG); +diff -Naur ncurses-5.9/ncurses/base/lib_newwin.c ncurses-5.9.patch/ncurses/base/lib_newwin.c +--- ncurses-5.9/ncurses/base/lib_newwin.c 2011-03-07 22:58:17.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_newwin.c 2014-09-01 16:33:22.373792151 +0200 +@@ -43,7 +43,7 @@ + #include <curses.priv.h> + #include <stddef.h> + +-MODULE_ID("$Id: lib_newwin.c,v 1.69 2011/03/07 21:58:17 tom Exp $") ++MODULE_ID("$Id: lib_newwin.c,v 1.71 2011/05/28 21:32:51 tom Exp $") + + #define window_is(name) ((sp)->_##name == win) + +@@ -141,7 +141,11 @@ + T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), (void *) SP_PARM, num_lines, num_columns, + begy, begx)); + +- if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0) ++ if (begy < 0 ++ || begx < 0 ++ || num_lines < 0 ++ || num_columns < 0 ++ || SP_PARM == 0) + returnWin(0); + + if (num_lines == 0) +@@ -235,10 +239,15 @@ + NCURSES_EXPORT(WINDOW *) + subwin(WINDOW *w, int l, int c, int y, int x) + { ++ WINDOW *result = 0; ++ + T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x)); +- T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx)); ++ if (w != 0) { ++ T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx)); + +- returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx)); ++ result = derwin(w, l, c, y - w->_begy, x - w->_begx); ++ } ++ returnWin(result); + } + + static bool +diff -Naur ncurses-5.9/ncurses/base/lib_overlay.c ncurses-5.9.patch/ncurses/base/lib_overlay.c +--- ncurses-5.9/ncurses/base/lib_overlay.c 2009-10-25 01:21:31.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_overlay.c 2014-09-01 16:33:22.373792151 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_overlay.c,v 1.29 2009/10/24 23:21:31 tom Exp $") ++MODULE_ID("$Id: lib_overlay.c,v 1.31 2013/04/06 23:47:13 tom Exp $") + + static int + overlap(const WINDOW *const src, WINDOW *const dst, int const flag) +@@ -151,7 +151,10 @@ + dminrow, dmincol, + dmaxrow, dmaxcol, over)); + +- if (src && dst) { ++ if (src != 0 ++ && dst != 0 ++ && dmaxrow >= dminrow ++ && dmaxcol >= dmincol) { + _nc_lock_global(curses); + + bk = AttrOf(dst->_nc_bkgd); +@@ -160,6 +163,7 @@ + /* make sure rectangle exists in source */ + if ((sminrow + dmaxrow - dminrow) <= (src->_maxy + 1) && + (smincol + dmaxcol - dmincol) <= (src->_maxx + 1)) { ++ bool copied = FALSE; + + T(("rectangle exists in source")); + +@@ -172,10 +176,18 @@ + dy <= dmaxrow; + sy++, dy++) { + ++ if (dy < 0 || sy < 0) ++ continue; ++ + touched = FALSE; + for (dx = dmincol, sx = smincol; + dx <= dmaxcol; + sx++, dx++) { ++ ++ if (dx < 0 || sx < 0) ++ continue; ++ copied = TRUE; ++ + if (over) { + if ((CharOf(src->_line[sy].text[sx]) != L(' ')) && + (!CharEq(dst->_line[dy].text[dx], +@@ -201,7 +213,8 @@ + } + } + T(("finished copywin")); +- rc = OK; ++ if (copied) ++ rc = OK; + } + } + _nc_unlock_global(curses); +diff -Naur ncurses-5.9/ncurses/base/lib_printw.c ncurses-5.9.patch/ncurses/base/lib_printw.c +--- ncurses-5.9/ncurses/base/lib_printw.c 2009-10-25 00:07:03.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_printw.c 2014-09-01 16:33:22.373792151 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free 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 <dickey@clark.net> 1997 * ++ * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ + + /* +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_printw.c,v 1.20 2009/10/24 22:07:03 tom Exp $") ++MODULE_ID("$Id: lib_printw.c,v 1.23 2012/09/03 17:55:28 tom Exp $") + + NCURSES_EXPORT(int) + printw(const char *fmt,...) +@@ -48,10 +48,11 @@ + int code; + + #ifdef TRACE +- va_start(argp, fmt); ++ va_list argq; ++ va_start(argq, fmt); + T((T_CALLED("printw(%s%s)"), +- _nc_visbuf(fmt), _nc_varargs(fmt, argp))); +- va_end(argp); ++ _nc_visbuf(fmt), _nc_varargs(fmt, argq))); ++ va_end(argq); + #endif + + va_start(argp, fmt); +@@ -68,10 +69,11 @@ + int code; + + #ifdef TRACE +- va_start(argp, fmt); ++ va_list argq; ++ va_start(argq, fmt); + T((T_CALLED("wprintw(%p,%s%s)"), +- (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); +- va_end(argp); ++ (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq))); ++ va_end(argq); + #endif + + va_start(argp, fmt); +@@ -88,10 +90,11 @@ + int code; + + #ifdef TRACE +- va_start(argp, fmt); ++ va_list argq; ++ va_start(argq, fmt); + T((T_CALLED("mvprintw(%d,%d,%s%s)"), +- y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); +- va_end(argp); ++ y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argq))); ++ va_end(argq); + #endif + + if ((code = move(y, x)) != ERR) { +@@ -109,10 +112,11 @@ + int code; + + #ifdef TRACE +- va_start(argp, fmt); ++ va_list argq; ++ va_start(argq, fmt); + T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"), +- y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); +- va_end(argp); ++ y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq))); ++ va_end(argq); + #endif + + if ((code = wmove(win, y, x)) != ERR) { +diff -Naur ncurses-5.9/ncurses/base/lib_refresh.c ncurses-5.9.patch/ncurses/base/lib_refresh.c +--- ncurses-5.9/ncurses/base/lib_refresh.c 2010-12-19 02:22:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_refresh.c 2014-09-01 16:33:22.374792153 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -42,7 +42,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_refresh.c,v 1.44 2010/12/19 01:22:58 tom Exp $") ++MODULE_ID("$Id: lib_refresh.c,v 1.45 2011/06/25 19:02:22 Vassili.Courzakis Exp $") + + NCURSES_EXPORT(int) + wrefresh(WINDOW *win) +@@ -90,12 +90,6 @@ + #endif + + T((T_CALLED("wnoutrefresh(%p)"), (void *) win)); +-#ifdef TRACE +- if (USE_TRACEF(TRACE_UPDATE)) { +- _tracedump("...win", win); +- _nc_unlock_global(tracef); +- } +-#endif /* TRACE */ + + /* + * This function will break badly if we try to refresh a pad. +@@ -104,6 +98,13 @@ + || (win->_flags & _ISPAD)) + returnCode(ERR); + ++#ifdef TRACE ++ if (USE_TRACEF(TRACE_UPDATE)) { ++ _tracedump("...win", win); ++ _nc_unlock_global(tracef); ++ } ++#endif /* TRACE */ ++ + /* put them here so "win == 0" won't break our code */ + begx = win->_begx; + begy = win->_begy; +diff -Naur ncurses-5.9/ncurses/base/lib_restart.c ncurses-5.9.patch/ncurses/base/lib_restart.c +--- ncurses-5.9/ncurses/base/lib_restart.c 2009-10-25 00:47:43.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_restart.c 2014-09-01 16:33:22.411792212 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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,11 +41,7 @@ + + #include <curses.priv.h> + +-#if SVR4_TERMIO && !defined(_POSIX_SOURCE) +-#define _POSIX_SOURCE +-#endif +- +-MODULE_ID("$Id: lib_restart.c,v 1.13 2009/10/24 22:47:43 tom Exp $") ++MODULE_ID("$Id: lib_restart.c,v 1.15 2012/12/08 20:40:06 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx +@@ -55,7 +51,7 @@ + { + int result; + #ifdef USE_TERM_DRIVER +- TERMINAL *new_term; ++ TERMINAL *new_term = 0; + #endif + + T((T_CALLED("restartterm(%p,%s,%d,%p)"), +diff -Naur ncurses-5.9/ncurses/base/lib_scanw.c ncurses-5.9.patch/ncurses/base/lib_scanw.c +--- ncurses-5.9/ncurses/base/lib_scanw.c 2009-10-25 00:35:14.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_scanw.c 2014-09-01 16:33:22.411792212 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2001,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -40,14 +40,14 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_scanw.c,v 1.12 2009/10/24 22:35:14 tom Exp $") ++MODULE_ID("$Id: lib_scanw.c,v 1.13 2011/10/22 16:31:35 tom Exp $") + + NCURSES_EXPORT(int) + vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp) + { + char buf[BUFSIZ]; + +- if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR) ++ if (wgetnstr(win, buf, (int) sizeof(buf) - 1) == ERR) + return (ERR); + + return (vsscanf(buf, fmt, argp)); +diff -Naur ncurses-5.9/ncurses/base/lib_screen.c ncurses-5.9.patch/ncurses/base/lib_screen.c +--- ncurses-5.9/ncurses/base/lib_screen.c 2009-10-25 00:08:55.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_screen.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_screen.c,v 1.38 2009/10/24 22:08:55 tom Exp $") ++MODULE_ID("$Id: lib_screen.c,v 1.41 2011/10/22 15:03:11 tom Exp $") + + #define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */ + +@@ -51,8 +51,11 @@ + + T((T_CALLED("getwin(%p)"), (void *) filep)); + ++ if (filep == 0) { ++ returnWin(0); ++ } + clearerr(filep); +- if (fread(&tmp, 1, sizeof(WINDOW), filep) < sizeof(WINDOW) ++ if (fread(&tmp, (size_t) 1, sizeof(WINDOW), filep) < sizeof(WINDOW) + || ferror(filep) + || tmp._maxy == 0 + || tmp._maxy > MAX_SIZE +@@ -110,7 +113,7 @@ + + for (n = 0; n <= nwin->_maxy; n++) { + clearerr(filep); +- if (fread(nwin->_line[n].text, 1, linesize, filep) < linesize ++ if (fread(nwin->_line[n].text, (size_t) 1, linesize, filep) < linesize + || ferror(filep)) { + delwin(nwin); + returnWin(0); +@@ -141,7 +144,7 @@ + size_t len = (size_t) (win->_maxx + 1); + + clearerr(filep); +- if (fwrite(win, sizeof(WINDOW), 1, filep) != 1 ++ if (fwrite(win, sizeof(WINDOW), (size_t) 1, filep) != 1 + || ferror(filep)) + returnCode(code); + +@@ -189,18 +192,20 @@ + NCURSES_EXPORT(int) + scr_dump(const char *file) + { ++ int result; + FILE *fp = 0; + + T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file))); + + if (_nc_access(file, W_OK) < 0 + || (fp = fopen(file, "wb")) == 0) { +- returnCode(ERR); ++ result = ERR; + } else { + (void) putwin(newscr, fp); + (void) fclose(fp); +- returnCode(OK); ++ result = OK; + } ++ returnCode(result); + } + + NCURSES_EXPORT(int) +diff -Naur ncurses-5.9/ncurses/base/lib_scroll.c ncurses-5.9.patch/ncurses/base/lib_scroll.c +--- ncurses-5.9/ncurses/base/lib_scroll.c 2010-12-19 02:48:09.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_scroll.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -43,13 +43,13 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_scroll.c,v 1.28 2010/12/19 01:48:09 tom Exp $") ++MODULE_ID("$Id: lib_scroll.c,v 1.29 2011/10/22 16:34:50 tom Exp $") + + NCURSES_EXPORT(void) + _nc_scroll_window(WINDOW *win, + int const n, +- NCURSES_SIZE_T const top, +- NCURSES_SIZE_T const bottom, ++ int const top, ++ int const bottom, + NCURSES_CH_T blank) + { + int limit; +diff -Naur ncurses-5.9/ncurses/base/lib_set_term.c ncurses-5.9.patch/ncurses/base/lib_set_term.c +--- ncurses-5.9/ncurses/base/lib_set_term.c 2010-12-20 01:42:20.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_set_term.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_set_term.c,v 1.138 2010/12/20 00:42:20 tom Exp $") ++MODULE_ID("$Id: lib_set_term.c,v 1.149 2014/03/08 20:32:59 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define MaxColors InfoOf(sp).maxcolors +@@ -188,18 +188,7 @@ + FreeIfNeeded(sp->_acs_map); + FreeIfNeeded(sp->_screen_acs_map); + +- /* +- * If the associated output stream has been closed, we can discard the +- * set-buffer. Limit the error check to EBADF, since fflush may fail +- * for other reasons than trying to operate upon a closed stream. +- */ +- if (sp->_ofp != 0 +- && sp->_setbuf != 0 +- && fflush(sp->_ofp) != 0 +- && errno == EBADF) { +- free(sp->_setbuf); +- } +- ++ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx sp->_term); + free(sp); + +@@ -272,8 +261,8 @@ + } + #endif + +-#define ReturnScreenError() _nc_set_screen(0); \ +- returnCode(ERR) ++#define ReturnScreenError() { _nc_set_screen(0); \ ++ returnCode(ERR); } while (0) + + /* OS-independent screen initializations */ + NCURSES_EXPORT(int) +@@ -284,7 +273,7 @@ + int slines, + int scolumns, + FILE *output, +- bool filtered, ++ int filtered, + int slk_format) + { + char *env; +@@ -362,7 +351,7 @@ + slines = 1; + SET_LINES(slines); + #ifdef USE_TERM_DRIVER +- CallDriver(sp, setfilter); ++ CallDriver(sp, td_setfilter); + #else + clear_screen = 0; + cursor_down = parm_down_cursor = 0; +@@ -383,7 +372,15 @@ + sp->_lines = (NCURSES_SIZE_T) slines; + sp->_lines_avail = (NCURSES_SIZE_T) slines; + sp->_columns = (NCURSES_SIZE_T) scolumns; ++ ++ fflush(output); ++ sp->_ofd = output ? fileno(output) : -1; + sp->_ofp = output; ++ sp->out_limit = (size_t) ((2 + slines) * (6 + scolumns)); ++ if ((sp->out_buffer = malloc(sp->out_limit)) == 0) ++ sp->out_limit = 0; ++ sp->out_inuse = 0; ++ + SP_PRE_INIT(sp); + SetNoPadding(sp); + +@@ -510,16 +507,7 @@ + + 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 +- ); ++ sp->_xmc_triggers = sp->_ok_attributes & XMC_CONFLICT; + #if 0 + /* + * We "should" treat colors as an attribute. The wyse350 (and its +@@ -584,9 +572,13 @@ + + NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_ARG); + #if USE_WIDEC_SUPPORT ++ sp->_screen_unicode = _nc_unicode_locale(); + _nc_init_wacs(); ++ if (_nc_wacs == 0) { ++ ReturnScreenError(); ++ } + +- sp->_screen_acs_fix = (_nc_unicode_locale() ++ sp->_screen_acs_fix = (sp->_screen_unicode + && _nc_locale_breaks_acs(sp->_term)); + #endif + env = _nc_get_locale(); +@@ -619,6 +611,7 @@ + #endif + #if USE_SIZECHANGE + sp->_resize = NCURSES_SP_NAME(resizeterm); ++ sp->_ungetch = safe_ungetch; + #endif + + NewScreen(sp)->_clear = TRUE; +@@ -695,7 +688,7 @@ + _nc_setupscreen(int slines GCC_UNUSED, + int scolumns GCC_UNUSED, + FILE *output, +- bool filtered, ++ int filtered, + int slk_format) + { + SCREEN *sp = 0; +@@ -759,6 +752,7 @@ + int line, + int (*init) (WINDOW *, int)) + { ++ START_TRACE(); + return NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx + (line < 0) ? -1 : 1, + init); +diff -Naur ncurses-5.9/ncurses/base/lib_slkatr_set.c ncurses-5.9.patch/ncurses/base/lib_slkatr_set.c +--- ncurses-5.9/ncurses/base/lib_slkatr_set.c 2009-10-25 00:47:03.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_slkatr_set.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2014 Free 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,12 +38,12 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkatr_set.c,v 1.14 2009/10/24 22:47:03 tom Exp $") ++MODULE_ID("$Id: lib_slkatr_set.c,v 1.15 2014/02/01 22:10:42 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_attr_set) (NCURSES_SP_DCLx + const attr_t attr, +- short color_pair_number, ++ NCURSES_PAIRS_T color_pair_number, + void *opts) + { + int code = ERR; +@@ -51,7 +51,7 @@ + T((T_CALLED("slk_attr_set(%p,%s,%d)"), + (void *) SP_PARM, + _traceattr(attr), +- color_pair_number)); ++ (int) color_pair_number)); + + if (SP_PARM != 0 + && SP_PARM->_slk != 0 +@@ -71,7 +71,7 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-slk_attr_set(const attr_t attr, short color_pair_number, void *opts) ++slk_attr_set(const attr_t attr, NCURSES_COLOR_T color_pair_number, void *opts) + { + return NCURSES_SP_NAME(slk_attr_set) (CURRENT_SCREEN, attr, + color_pair_number, opts); +diff -Naur ncurses-5.9/ncurses/base/lib_slkcolor.c ncurses-5.9.patch/ncurses/base/lib_slkcolor.c +--- ncurses-5.9/ncurses/base/lib_slkcolor.c 2009-10-25 00:12:21.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_slkcolor.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2014 Free 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,14 +38,14 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkcolor.c,v 1.16 2009/10/24 22:12:21 tom Exp $") ++MODULE_ID("$Id: lib_slkcolor.c,v 1.17 2014/02/01 22:10:42 tom Exp $") + + NCURSES_EXPORT(int) +-NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx short color_pair_number) ++NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx NCURSES_PAIRS_T color_pair_number) + { + int code = ERR; + +- T((T_CALLED("slk_color(%p,%d)"), (void *) SP_PARM, color_pair_number)); ++ T((T_CALLED("slk_color(%p,%d)"), (void *) SP_PARM, (int) color_pair_number)); + + if (SP_PARM != 0 + && SP_PARM->_slk != 0 +@@ -61,7 +61,7 @@ + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-slk_color(short color_pair_number) ++slk_color(NCURSES_PAIRS_T color_pair_number) + { + return NCURSES_SP_NAME(slk_color) (CURRENT_SCREEN, color_pair_number); + } +diff -Naur ncurses-5.9/ncurses/base/lib_slkrefr.c ncurses-5.9.patch/ncurses/base/lib_slkrefr.c +--- ncurses-5.9/ncurses/base/lib_slkrefr.c 2010-05-01 21:17:28.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_slkrefr.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_slkrefr.c,v 1.26 2010/05/01 19:17:28 tom Exp $") ++MODULE_ID("$Id: lib_slkrefr.c,v 1.30 2014/03/08 20:32:59 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define NumLabels InfoOf(SP_PARM).numlabels +@@ -97,25 +97,25 @@ + if (slk->ent[i].visible) { + if (numlab > 0 && SLK_STDFMT(fmt)) { + #ifdef USE_TERM_DRIVER +- CallDriver_2(sp, hwlabel, i + 1, slk->ent[i].form_text); ++ CallDriver_2(sp, td_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)); ++ NCURSES_PUTP2("plab_norm", ++ 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) { +- (void) wattrset(slk->win, AttrOf(sp->_slk->attr)); +- } ++ (void) wattrset(slk->win, (int) AttrOf(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 */ +- (void) wattrset(slk->win, WINDOW_ATTRS(StdScreen(sp))); ++ (void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp))); + } + } + slk->ent[i].dirty = FALSE; +@@ -125,14 +125,12 @@ + + if (numlab > 0) { + #ifdef USE_TERM_DRIVER +- CallDriver_1(sp, hwlabelOnOff, slk->hidden ? FALSE : TRUE); ++ CallDriver_1(sp, td_hwlabelOnOff, slk->hidden ? FALSE : TRUE); + #else + if (slk->hidden) { +- TPUTS_TRACE("label_off"); +- putp(label_off); ++ NCURSES_PUTP2("label_off", label_off); + } else { +- TPUTS_TRACE("label_on"); +- putp(label_on); ++ NCURSES_PUTP2("label_on", label_on); + } + #endif + } +diff -Naur ncurses-5.9/ncurses/base/lib_slkset.c ncurses-5.9.patch/ncurses/base/lib_slkset.c +--- ncurses-5.9/ncurses/base/lib_slkset.c 2010-12-26 00:43:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_slkset.c 2014-09-01 16:33:22.412792214 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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,13 +44,13 @@ + #endif + #endif + +-MODULE_ID("$Id: lib_slkset.c,v 1.21 2010/12/25 23:43:58 tom Exp $") ++MODULE_ID("$Id: lib_slkset.c,v 1.24 2012/12/08 23:09:25 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) + { + SLK *slk; +- int offset; ++ int offset = 0; + int numchrs; + int numcols; + int limit; +@@ -111,13 +111,12 @@ + slk->ent[i].ent_text[numchrs] = '\0'; + + if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text, +- (unsigned) (limit + +- numchrs + 1)) ++ (size_t) (limit + ++ numchrs + 1)) + ) == 0) + returnCode(ERR); + + switch (format) { +- default: + case 0: /* left-justified */ + offset = 0; + break; +@@ -131,16 +130,16 @@ + if (offset <= 0) + offset = 0; + else +- memset(slk->ent[i].form_text, ' ', (unsigned) offset); ++ memset(slk->ent[i].form_text, ' ', (size_t) offset); + + memcpy(slk->ent[i].form_text + offset, + slk->ent[i].ent_text, +- (unsigned) numchrs); ++ (size_t) numchrs); + + if (offset < limit) { + memset(slk->ent[i].form_text + offset + numchrs, + ' ', +- (unsigned) (limit - (offset + numcols))); ++ (size_t) (limit - (offset + numcols))); + } + + slk->ent[i].form_text[numchrs - numcols + limit] = 0; +diff -Naur ncurses-5.9/ncurses/base/lib_touch.c ncurses-5.9.patch/ncurses/base/lib_touch.c +--- ncurses-5.9/ncurses/base/lib_touch.c 2010-12-19 02:22:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/lib_touch.c 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 <curses.priv.h> + +-MODULE_ID("$Id: lib_touch.c,v 1.11 2010/12/19 01:22:58 tom Exp $") ++MODULE_ID("$Id: lib_touch.c,v 1.12 2012/06/09 20:29:33 tom Exp $") + + NCURSES_EXPORT(bool) + is_linetouched(WINDOW *win, int line) +@@ -84,7 +84,7 @@ + for (i = y; i < y + n; i++) { + if (i > win->_maxy) + break; +- win->_line[i].firstchar = changed ? 0 : _NOCHANGE; ++ win->_line[i].firstchar = (NCURSES_SIZE_T) (changed ? 0 : _NOCHANGE); + win->_line[i].lastchar = (NCURSES_SIZE_T) (changed + ? win->_maxx + : _NOCHANGE); +diff -Naur ncurses-5.9/ncurses/base/lib_ungetch.c ncurses-5.9.patch/ncurses/base/lib_ungetch.c +--- ncurses-5.9/ncurses/base/lib_ungetch.c 2009-10-25 00:12:21.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/lib_ungetch.c 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 <curses.priv.h> + +-MODULE_ID("$Id: lib_ungetch.c,v 1.14 2009/10/24 22:12:21 tom Exp $") ++MODULE_ID("$Id: lib_ungetch.c,v 1.16 2012/08/04 17:38:53 tom Exp $") + + #include <fifo_defs.h> + +@@ -64,13 +64,14 @@ + + T((T_CALLED("ungetch(%p,%s)"), (void *) sp, _nc_tracechar(sp, ch))); + +- if (tail != -1) { +- if (head == -1) { ++ if (sp != 0 && tail >= 0) { ++ if (head < 0) { + head = 0; + t_inc(); + peek = tail; /* no raw keys */ +- } else ++ } else { + h_dec(); ++ } + + sp->_fifo[head] = ch; + T(("ungetch %s ok", _nc_tracechar(sp, ch))); +diff -Naur ncurses-5.9/ncurses/base/memmove.c ncurses-5.9.patch/ncurses/base/memmove.c +--- ncurses-5.9/ncurses/base/memmove.c 2007-08-11 19:12:43.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/memmove.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,69 +0,0 @@ +-/**************************************************************************** +- * Copyright (c) 1998-2000,2007 Free 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. * +- ****************************************************************************/ +- +-#include <curses.priv.h> +- +-MODULE_ID("$Id: memmove.c,v 1.5 2007/08/11 17:12:43 tom Exp $") +- +-/**************************************************************************** +- * Author: Thomas E. Dickey <dickey@clark.net> 1998 * +- ****************************************************************************/ +- +-#if USE_MY_MEMMOVE +-#define DST ((char *)s1) +-#define SRC ((const char *)s2) +-NCURSES_EXPORT(void *) +-_nc_memmove(void *s1, const void *s2, size_t n) +-{ +- if (n != 0) { +- if ((DST + n > SRC) && (SRC + n > DST)) { +- static char *bfr; +- static size_t length; +- register size_t j; +- if (length < n) { +- length = (n * 3) / 2; +- bfr = typeRealloc(char, length, bfr); +- } +- for (j = 0; j < n; j++) +- bfr[j] = SRC[j]; +- s2 = bfr; +- } +- while (n-- != 0) +- DST[n] = SRC[n]; +- } +- return s1; +-} +-#else +-extern +-NCURSES_EXPORT(void) +-_nc_memmove(void); /* quiet's gcc warning */ +-NCURSES_EXPORT(void) +-_nc_memmove(void) +-{ +-} /* nonempty for strict ANSI compilers */ +-#endif /* USE_MY_MEMMOVE */ +diff -Naur ncurses-5.9/ncurses/base/MKkeyname.awk ncurses-5.9.patch/ncurses/base/MKkeyname.awk +--- ncurses-5.9/ncurses/base/MKkeyname.awk 2010-12-19 02:36:14.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/MKkeyname.awk 2014-09-01 16:33:22.369792144 +0200 +@@ -1,6 +1,6 @@ +-# $Id: MKkeyname.awk,v 1.45 2010/12/19 01:36:14 tom Exp $ ++# $Id: MKkeyname.awk,v 1.48 2013/08/24 17:37:22 tom Exp $ + ############################################################################## +-# Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1999-2012,2013 Free 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"), # +@@ -65,6 +65,7 @@ + print "" + print "#define SIZEOF_TABLE 256" + print "#define MyTable _nc_globals.keyname_table" ++ print "#define MyInit _nc_globals.init_keyname" + print "" + print "NCURSES_EXPORT(NCURSES_CONST char *)" + print "safe_keyname (SCREEN *sp, int c)" +@@ -96,21 +97,36 @@ + print " if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {" + print " if (MyTable == 0)" + print " MyTable = typeCalloc(char *, SIZEOF_TABLE);" ++ print "" + print " if (MyTable != 0) {" ++ print " int m_prefix = (sp == 0 || sp->_use_meta);" ++ print "" ++ print " /* if sense of meta() changed, discard cached data */" ++ print " if (MyInit != (m_prefix + 1)) {" ++ print " MyInit = m_prefix + 1;" ++ print " for (i = 0; i < SIZEOF_TABLE; ++i) {" ++ print " if (MyTable[i]) {" ++ print " FreeAndNull(MyTable[i]);" ++ print " }" ++ print " }" ++ print " }" ++ print "" ++ print " /* create and cache result as needed */" + print " if (MyTable[c] == 0) {" + print " int cc = c;" + print " p = name;" +- print " if (cc >= 128 && (sp == 0 || sp->_use_meta)) {" +- print " strcpy(p, \"M-\");" ++ print "#define P_LIMIT (sizeof(name) - (size_t) (p - name))" ++ print " if (cc >= 128 && m_prefix) {" ++ print " _nc_STRCPY(p, \"M-\", P_LIMIT);" + print " p += 2;" + print " cc -= 128;" + print " }" + print " if (cc < 32)" +- print " sprintf(p, \"^%c\", cc + '@');" ++ print " _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) \"^%c\", cc + '@');" + print " else if (cc == 127)" +- print " strcpy(p, \"^?\");" ++ print " _nc_STRCPY(p, \"^?\", P_LIMIT);" + print " else" +- print " sprintf(p, \"%c\", cc);" ++ print " _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) \"%c\", cc);" + print " MyTable[c] = strdup(name);" + print " }" + print " result = MyTable[c];" +diff -Naur ncurses-5.9/ncurses/base/MKlib_gen.sh ncurses-5.9.patch/ncurses/base/MKlib_gen.sh +--- ncurses-5.9/ncurses/base/MKlib_gen.sh 2011-01-22 20:47:29.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/MKlib_gen.sh 2014-09-01 16:33:22.369792144 +0200 +@@ -2,7 +2,7 @@ + # + # MKlib_gen.sh -- generate sources from curses.h macro definitions + # +-# ($Id: MKlib_gen.sh,v 1.43 2011/01/22 19:47:29 tom Exp $) ++# ($Id: MKlib_gen.sh,v 1.46 2011/06/04 19:14:08 tom Exp $) + # + ############################################################################## + # Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # +@@ -410,10 +410,45 @@ + print "#undef vwprintw" + } + /^DECLARATIONS/ {start = 1; next;} +- {if (start) print \$0;} ++ { ++ if (start) { ++ if ( "$USE" == "generated" ) { ++ print \$0; ++ } else if ( \$0 ~ /^[{}]?\$/ ) { ++ print \$0; ++ } else if ( \$0 ~ /;/ ) { ++ print \$0; ++ } else { ++ calls[start] = \$0; ++ print \$0; ++ start++; ++ } ++ } ++ } + END { + if ( "$USE" != "generated" ) { +- print "int main(void) { return 0; }" ++ print "int main(void)" ++ print "{" ++ for (n = 1; n < start; ++n) { ++ value = calls[n]; ++ if ( value !~ /P_POUNDC/ ) { ++ gsub(/[[:blank:]]+/," ",value); ++ sub(/^[[:alnum:]_]+ /,"",value); ++ sub(/^\* /,"",value); ++ gsub(/[[:alnum:]_]+ \* /,"",value); ++ gsub(/ (const) /," ",value); ++ gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value); ++ gsub(/ void /,"",value); ++ sub(/^/,"call_",value); ++ gsub(/ (a[[:digit:]]|z) /, " 0 ", value); ++ gsub(/ int[[:blank:]]*[(][^)]+[)][(][^)]+[)]/, "0", value); ++ printf "\t%s;\n", value; ++ } else { ++ print value; ++ } ++ } ++ print " return 0;" ++ print "}" + } + } + EOF1 +@@ -422,6 +457,8 @@ + #include <ncurses_cfg.h> + #undef NCURSES_NOMACROS + #include <curses.h> ++#include <term.h> ++#include <unctrl.h> + + DECLARATIONS + +diff -Naur ncurses-5.9/ncurses/base/MKunctrl.awk ncurses-5.9.patch/ncurses/base/MKunctrl.awk +--- ncurses-5.9/ncurses/base/MKunctrl.awk 2009-07-05 00:05:15.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/MKunctrl.awk 2014-09-01 16:33:22.369792144 +0200 +@@ -1,6 +1,6 @@ +-# $Id: MKunctrl.awk,v 1.26 2009/07/04 22:05:15 Clemens.Ladisch Exp $ ++# $Id: MKunctrl.awk,v 1.27 2012/06/09 20:29:33 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2009,2012 Free 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"), # +@@ -140,7 +140,7 @@ + } else { + stringname = "unctrl" + } +- print "\tint check = ChCharOf(ch);" ++ print "\tint check = (int) ChCharOf(ch);" + print "\tconst char *result;" + print "" + print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {" +diff -Naur ncurses-5.9/ncurses/base/resizeterm.c ncurses-5.9.patch/ncurses/base/resizeterm.c +--- ncurses-5.9/ncurses/base/resizeterm.c 2011-01-10 02:34:49.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/base/resizeterm.c 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: resizeterm.c,v 1.43 2011/01/10 01:34:49 tom Exp $") ++MODULE_ID("$Id: resizeterm.c,v 1.46 2014/03/08 20:32:59 tom Exp $") + + /* + * If we're trying to be reentrant, do not want any local statics. +@@ -365,58 +365,71 @@ + } + #endif + if (ToLines > screen_lines(SP_PARM)) { +- increase_size(NCURSES_SP_ARGx +- myLines = ToLines, myCols, was_stolen EXTRA_ARGS); ++ result = increase_size(NCURSES_SP_ARGx ++ myLines = ToLines, ++ myCols, ++ was_stolen EXTRA_ARGS); + CurLines = myLines; + CurCols = myCols; + } + +- if (ToCols > screen_columns(SP_PARM)) { +- increase_size(NCURSES_SP_ARGx +- myLines, myCols = ToCols, was_stolen EXTRA_ARGS); ++ if ((result == OK) ++ && (ToCols > screen_columns(SP_PARM))) { ++ result = increase_size(NCURSES_SP_ARGx ++ myLines, ++ myCols = ToCols, ++ was_stolen EXTRA_ARGS); + CurLines = myLines; + CurCols = myCols; + } + +- if (ToLines < myLines || +- ToCols < myCols) { +- decrease_size(NCURSES_SP_ARGx ToLines, ToCols, was_stolen EXTRA_ARGS); ++ if ((result == OK) ++ && (ToLines < myLines || ++ ToCols < myCols)) { ++ result = decrease_size(NCURSES_SP_ARGx ++ ToLines, ++ ToCols, ++ was_stolen EXTRA_ARGS); + } + +- screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines; +- screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols; ++ if (result == OK) { ++ screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines; ++ screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols; + + #ifdef USE_TERM_DRIVER +- CallDriver_2(SP_PARM, setsize, ToLines, ToCols); ++ CallDriver_2(SP_PARM, td_setsize, ToLines, ToCols); + #else +- lines = (NCURSES_SIZE_T) ToLines; +- columns = (NCURSES_SIZE_T) ToCols; ++ lines = (NCURSES_SIZE_T) ToLines; ++ columns = (NCURSES_SIZE_T) ToCols; + #endif + +- SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen); ++ SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen); + +- if (SP_PARM->oldhash) { +- FreeAndNull(SP_PARM->oldhash); +- } +- if (SP_PARM->newhash) { +- FreeAndNull(SP_PARM->newhash); +- } ++ if (SP_PARM->oldhash) { ++ FreeAndNull(SP_PARM->oldhash); ++ } ++ if (SP_PARM->newhash) { ++ FreeAndNull(SP_PARM->newhash); ++ } + #ifdef TRACE +- if (USE_TRACEF(TRACE_UPDATE)) { +- SET_LINES(ToLines - was_stolen); +- SET_COLS(ToCols); +- show_window_sizes("after"); +- _nc_unlock_global(tracef); +- } ++ if (USE_TRACEF(TRACE_UPDATE)) { ++ SET_LINES(ToLines - was_stolen); ++ SET_COLS(ToCols); ++ show_window_sizes("after"); ++ _nc_unlock_global(tracef); ++ } + #endif ++ } + } + +- /* +- * Always update LINES, to allow for call from lib_doupdate.c which +- * needs to have the count adjusted by the stolen (ripped off) lines. +- */ +- SET_LINES(ToLines - was_stolen); +- SET_COLS(ToCols); ++ if (result == OK) { ++ /* ++ * Always update LINES, to allow for call from lib_doupdate.c which ++ * needs to have the count adjusted by the stolen (ripped off) lines. ++ */ ++ SET_LINES(ToLines - was_stolen); ++ SET_COLS(ToCols); ++ } + + _nc_nonsp_unlock_global(curses); + +@@ -471,7 +484,6 @@ + result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols); + + #if USE_SIGWINCH +- 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 +@@ -501,6 +513,9 @@ + } + #endif + } ++#if USE_SIGWINCH ++ safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ ++#endif + } + + returnCode(result); +diff -Naur ncurses-5.9/ncurses/base/safe_sprintf.c ncurses-5.9.patch/ncurses/base/safe_sprintf.c +--- ncurses-5.9/ncurses/base/safe_sprintf.c 2010-06-06 00:22:27.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/safe_sprintf.c 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,13 +27,13 @@ + ****************************************************************************/ + + /**************************************************************************** +- * Author: Thomas E. Dickey <dickey@clark.net> 1997 * ++ * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ + + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: safe_sprintf.c,v 1.24 2010/06/05 22:22:27 tom Exp $") ++MODULE_ID("$Id: safe_sprintf.c,v 1.27 2013/01/20 01:04:32 tom Exp $") + + #if USE_SAFE_SPRINTF + +@@ -109,12 +109,16 @@ + } else if (state == Prec) { + prec = ival; + } +- sprintf(fmt_arg, "%d", ival); ++ _nc_SPRINTF(fmt_arg, ++ _nc_SLIMIT(sizeof(fmt_arg)) ++ "%d", ival); + fmt_len += strlen(fmt_arg); + if ((format = _nc_doalloc(format, fmt_len)) == 0) { ++ free(buffer); + return -1; + } +- strcpy(&format[--f], fmt_arg); ++ --f; ++ _nc_STRCPY(&format[f], fmt_arg, fmt_len - f); + f = strlen(format); + } else if (isalpha(UChar(*fmt))) { + done = TRUE; +@@ -185,13 +189,13 @@ + format[f] = '\0'; + switch (used) { + case 'i': +- sprintf(buffer, format, ival); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, ival); + break; + case 'f': +- sprintf(buffer, format, fval); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, fval); + break; + default: +- sprintf(buffer, format, pval); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, pval); + break; + } + len += (int) strlen(buffer); +diff -Naur ncurses-5.9/ncurses/base/vsscanf.c ncurses-5.9.patch/ncurses/base/vsscanf.c +--- ncurses-5.9/ncurses/base/vsscanf.c 2004-04-03 22:27:02.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/vsscanf.c 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2004,2012 Free 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 @@ + + #if !HAVE_VSSCANF + +-MODULE_ID("$Id: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $") ++MODULE_ID("$Id: vsscanf.c,v 1.20 2012/02/22 22:26:58 tom Exp $") + + #if !(HAVE_VFSCANF || HAVE__DOSCAN) + +@@ -293,12 +293,12 @@ + + /* add %n, if the format was not that */ + if (chunk != cAssigned) { +- strcat(my_fmt, "%n"); ++ _nc_STRCAT(my_fmt, "%n", len_fmt); + } + + switch (chunk) { + case cAssigned: +- strcat(my_fmt, "%n"); ++ _nc_STRCAT(my_fmt, "%n", len_fmt); + pointer = &eaten; + break; + case cInt: +diff -Naur ncurses-5.9/ncurses/base/wresize.c ncurses-5.9.patch/ncurses/base/wresize.c +--- ncurses-5.9/ncurses/base/wresize.c 2010-06-06 00:36:26.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/base/wresize.c 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -33,7 +33,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: wresize.c,v 1.34 2010/06/05 22:36:26 tom Exp $") ++MODULE_ID("$Id: wresize.c,v 1.35 2011/05/21 18:55:07 tom Exp $") + + static int + cleanup_lines(struct ldat *data, int length) +@@ -175,9 +175,10 @@ + for (col = 0; col <= ToCols; ++col) + s[col] = win->_nc_bkgd; + } +- } else { +- assert(pline != 0); ++ } else if (pline != 0 && pline[win->_pary + row].text != 0) { + s = &pline[win->_pary + row].text[win->_parx]; ++ } else { ++ s = 0; + } + + if_USE_SCROLL_HINTS(new_lines[row].oldindex = row); +diff -Naur ncurses-5.9/ncurses/build.priv.h ncurses-5.9.patch/ncurses/build.priv.h +--- ncurses-5.9/ncurses/build.priv.h 2010-05-22 22:30:35.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/build.priv.h 2014-09-01 16:33:22.413792217 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2010,2012 Free 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,9 +30,8 @@ + * Author: Thomas E. Dickey 2010 * + ****************************************************************************/ + +- + /* +- * $Id: build.priv.h,v 1.6 2010/05/22 20:30:35 tom Exp $ ++ * $Id: build.priv.h,v 1.9 2012/02/22 22:17:02 tom Exp $ + * + * build.priv.h + * +@@ -83,6 +82,7 @@ + #define SIZEOF(v) (sizeof(v) / sizeof(v[0])) + + #include <nc_alloc.h> ++#include <nc_string.h> + + /* declare these, to avoid needing term.h */ + #if BROKEN_LINKER || USE_REENTRANT +diff -Naur ncurses-5.9/ncurses/curses.priv.h ncurses-5.9.patch/ncurses/curses.priv.h +--- ncurses-5.9/ncurses/curses.priv.h 2011-01-22 22:10:19.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/curses.priv.h 2014-09-01 16:33:22.414792220 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 @@ + ****************************************************************************/ + + /* +- * $Id: curses.priv.h,v 1.475 2011/01/22 21:10:19 tom Exp $ ++ * $Id: curses.priv.h,v 1.531 2014/03/08 19:58:54 tom Exp $ + * + * curses.priv.h + * +@@ -65,6 +65,7 @@ + #include <stdlib.h> + #include <string.h> + #include <sys/types.h> ++#include <sys/stat.h> + + #if HAVE_UNISTD_H + #include <unistd.h> +@@ -85,6 +86,12 @@ + + #include <errno.h> + ++#if defined __hpux ++# ifndef EILSEQ ++# define EILSEQ 47 ++# endif ++#endif ++ + #ifndef PATH_MAX + # if defined(_POSIX_PATH_MAX) + # define PATH_MAX _POSIX_PATH_MAX +@@ -111,6 +118,14 @@ + #define USE_FUNC_POLL 0 + #endif + ++#if HAVE_INTTYPES_H ++# include <inttypes.h> ++#else ++# if HAVE_STDINT_H ++# include <stdint.h> ++# endif ++#endif ++ + /* include signal.h before curses.h to work-around defect in glibc 2.1.3 */ + #include <signal.h> + +@@ -135,6 +150,15 @@ + #define USE_EMX_MOUSE 0 + #endif + ++/* kLIBC keyboard/mouse support */ ++#if defined(__OS2__) && defined(__KLIBC__) ++#define USE_KLIBC_KBD 1 ++#define USE_KLIBC_MOUSE 1 ++#else ++#define USE_KLIBC_KBD 0 ++#define USE_KLIBC_MOUSE 0 ++#endif ++ + #define DEFAULT_MAXCLICK 166 + #define EV_MAX 8 /* size of mouse circular event queue */ + +@@ -192,6 +216,18 @@ + #endif + + /* ++ * Either/both S_ISxxx and/or S_IFxxx are defined in sys/types.h; some systems ++ * lack one or the other. ++ */ ++#ifndef S_ISDIR ++#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR) ++#endif ++ ++#ifndef S_ISREG ++#define S_ISREG(mode) ((mode & S_IFMT) == S_IFREG) ++#endif ++ ++/* + * Scroll hints are useless when hashmap is used + */ + #if !USE_SCROLL_HINTS +@@ -208,6 +244,8 @@ + #define if_USE_SCROLL_HINTS(stmt) /*nothing*/ + #endif + ++#include <nc_string.h> ++ + /* + * Options for terminal drivers, etc... + */ +@@ -250,14 +288,6 @@ + * Structure for palette tables + */ + +-typedef struct +-{ +- short red, green, blue; /* what color_content() returns */ +- short r, g, b; /* params to init_color() */ +- int init; /* true if we called init_color() */ +-} +-color_t; +- + #define MAXCOLUMNS 135 + #define MAXLINES 66 + #define FIFO_SIZE MAXCOLUMNS+2 /* for nocbreak mode input */ +@@ -282,6 +312,14 @@ + + #include <curses.h> /* we'll use -Ipath directive to get the right one! */ + ++typedef struct ++{ ++ NCURSES_COLOR_T red, green, blue; /* what color_content() returns */ ++ NCURSES_COLOR_T r, g, b; /* params to init_color() */ ++ int init; /* true if we called init_color() */ ++} ++color_t; ++ + /* + * If curses.h did not expose the SCREEN-functions, then we do not need the + * parameter in the corresponding unextended functions. +@@ -312,7 +350,7 @@ + #define HasTerminal(sp) (((sp) != 0) && (0 != ((sp)->_term))) + #define IsValidScreen(sp) (HasTerminal(sp) && !IsPreScreen(sp)) + +-#if BROKEN_LINKER || USE_REENTRANT ++#if USE_REENTRANT + #define CurTerm _nc_prescreen._cur_term + #else + #define CurTerm cur_term +@@ -325,6 +363,7 @@ + #endif + + #include <term.h> ++#include <nc_termios.h> + + /* + * Reduce dependency on cur_term global by using terminfo data from SCREEN's +@@ -341,6 +380,16 @@ + #include <nc_tparm.h> + + /* ++ * Simplify ifdef's for the "*_ATTR" macros in case italics are not configured. ++ */ ++#ifdef A_ITALIC ++#define USE_ITALIC 1 ++#else ++#define USE_ITALIC 0 ++#define A_ITALIC 0 ++#endif ++ ++/* + * Use these macros internally, to make tracing less verbose. But leave the + * option for compiling the tracing into the library. + */ +@@ -365,7 +414,7 @@ + #define if_EXT_COLORS(stmt) stmt + #define SetPair(value,p) SetPair2((value).ext_color, AttrOf(value), p) + #define SetPair2(c,a,p) c = (p), \ +- a = (unColor2(a) | (A_COLOR & ColorPair(oldColor(c)))) ++ a = (unColor2(a) | (A_COLOR & (unsigned) ColorPair(oldColor(c)))) + #define GetPair(value) GetPair2((value).ext_color, AttrOf(value)) + #define GetPair2(c,a) ((c) ? (c) : PairNumber(a)) + #define oldColor(p) (((p) > 255) ? 255 : (p)) +@@ -373,11 +422,7 @@ + #define SET_WINDOW_PAIR(w,p) (w)->_color = (p) + #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b)) + +-#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 ++#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vid_puts)(NCURSES_SP_ARGx attr, (short) pair, 0, NCURSES_OUTC_FUNC) + + #else /* !NCURSES_EXT_COLORS */ + +@@ -390,14 +435,14 @@ + WINDOW_ATTRS(w) |= (A_COLOR & (attr_t) ColorPair(p)) + #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b)) + +-#if NCURSES_SP_FUNCS +-#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidattr)(sp, attr) +-#else +-#define VIDATTR(sp,attr,pair) vidattr(attr) +-#endif ++#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidputs)(NCURSES_SP_ARGx attr, NCURSES_OUTC_FUNC) + + #endif /* NCURSES_EXT_COLORS */ + ++#define NCURSES_OUTC_FUNC NCURSES_SP_NAME(_nc_outch) ++#define NCURSES_PUTP2(name,value) NCURSES_SP_NAME(_nc_putp)(NCURSES_SP_ARGx name, value) ++#define NCURSES_PUTP2_FLUSH(name,value) NCURSES_SP_NAME(_nc_putp_flush)(NCURSES_SP_ARGx name, value) ++ + #if NCURSES_NO_PADDING + #define GetNoPadding(sp) ((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding) + #define SetNoPadding(sp) _nc_set_no_padding(sp) +@@ -467,6 +512,9 @@ + # endif + # define _declare(name) __extension__ extern __typeof__(name) name + # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak)) ++#else ++# undef USE_WEAK_SYMBOLS ++# define USE_WEAK_SYMBOLS 0 + #endif + #endif + +@@ -665,6 +713,9 @@ + #if USE_GPM_SUPPORT + #undef buttons /* term.h defines this, and gpm uses it! */ + #include <gpm.h> ++#if USE_WEAK_SYMBOLS ++weak_symbol(Gpm_Wgetch); ++#endif + + #ifdef HAVE_LIBDL + /* link dynamically to GPM */ +@@ -766,17 +817,23 @@ + #define INIT_TERM_DRIVER() /* nothing */ + #endif + ++typedef struct { ++ const char *name; ++ char *value; ++} ITERATOR_VARS; ++ + /* + * Global data which is not specific to a screen. + */ + typedef struct { ++ SIG_ATOMIC_T have_sigtstp; + SIG_ATOMIC_T have_sigwinch; + SIG_ATOMIC_T cleanup_nested; + + bool init_signals; + bool init_screen; + +- const char *comp_sourcename; ++ char *comp_sourcename; + char *comp_termtype; + + bool have_tic_directory; +@@ -788,6 +845,7 @@ + + char *first_name; + char **keyname_table; ++ int init_keyname; + + int slk_format; + +@@ -798,6 +856,12 @@ + int tgetent_index; + long tgetent_sequence; + ++ char *dbd_blob; /* string-heap for dbd_list[] */ ++ char **dbd_list; /* distinct places to look for data */ ++ int dbd_size; /* length of dbd_list[] */ ++ time_t dbd_time; /* cache last updated */ ++ ITERATOR_VARS dbd_vars[dbdLAST]; ++ + #ifndef USE_SP_WINDOWLIST + WINDOWLIST *_nc_windowlist; + #define WindowList(sp) _nc_globals._nc_windowlist +@@ -891,6 +955,7 @@ + const char *_tputs_trace; + #endif + #endif ++ bool use_tioctl; + } NCURSES_PRESCREEN; + + /* +@@ -911,11 +976,13 @@ + */ + + struct screen { +- int _ifd; /* input file ptr for screen */ ++ int _ifd; /* input file descriptor for screen */ ++ int _ofd; /* output file descriptor for screen */ + FILE *_ofp; /* output file ptr for screen */ +- char *_setbuf; /* buffered I/O for output */ ++ char *out_buffer; /* output buffer */ ++ size_t out_limit; /* output buffer size */ ++ size_t out_inuse; /* output buffer current use */ + 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 */ +@@ -1015,6 +1082,7 @@ + int _pair_count; /* count of color pairs */ + int _pair_limit; /* actual limit of color-pairs */ + #if NCURSES_EXT_FUNCS ++ bool _assumed_color; /* use assumed colors */ + bool _default_color; /* use default colors */ + bool _has_sgr_39_49; /* has ECMA default color support */ + int _default_fg; /* assumed default foreground */ +@@ -1031,6 +1099,13 @@ + /* used in lib_vidattr.c */ + bool _use_rmso; /* true if we may use 'rmso' */ + bool _use_rmul; /* true if we may use 'rmul' */ ++#if USE_ITALIC ++ bool _use_ritm; /* true if we may use 'ritm' */ ++#endif ++ ++#if USE_KLIBC_KBD ++ bool _extended_key; /* true if an extended key */ ++#endif + + /* + * These data correspond to the state of the idcok() and idlok() +@@ -1055,7 +1130,9 @@ + void (*_mouse_wrap) (SCREEN *); + int _mouse_fd; /* file-descriptor, if any */ + bool _mouse_active; /* true if initialized */ +- mmask_t _mouse_mask; ++ mmask_t _mouse_mask; /* set via mousemask() */ ++ mmask_t _mouse_mask2; /* OR's in press/release bits */ ++ mmask_t _mouse_bstate; + NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */ + MEVENT _mouse_events[EV_MAX]; /* hold the last mouse event seen */ + MEVENT *_mouse_eventp; /* next free slot in event queue */ +@@ -1102,6 +1179,7 @@ + */ + #if USE_SIZECHANGE + int (*_resize)(NCURSES_SP_DCLx int y, int x); ++ int (*_ungetch)(SCREEN *, int); + #endif + + /* +@@ -1120,7 +1198,6 @@ + int *_oldnum_list; + int _oldnum_size; + +- bool _cleanup; /* cleanup after int/quit signal */ + NCURSES_SP_OUTC _outch; /* output handler if not putc */ + + int _legacy_coding; /* see use_legacy_coding() */ +@@ -1158,7 +1235,10 @@ + * UTF-8, but do not permit ACS at the same time (see tty_update.c). + */ + bool _screen_acs_fix; ++ bool _screen_unicode; + #endif ++ ++ bool _use_tioctl; + }; + + extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain; +@@ -1168,7 +1248,7 @@ + WINDOWLIST *next; + SCREEN *screen; /* screen containing the window */ + WINDOW win; /* WINDOW_EXT() needs to account for offset */ +-#ifdef NCURSES_WIDECHAR ++#if NCURSES_WIDECHAR + char addch_work[(MB_LEN_MAX * 9) + 1]; + unsigned addch_used; /* number of bytes in addch_work[] */ + int addch_x; /* x-position for addch_work[] */ +@@ -1189,7 +1269,7 @@ + sp->_endwin = TRUE; \ + sp->_cursor = -1; \ + WindowList(sp) = 0; \ +- sp->_outch = NCURSES_SP_NAME(_nc_outch); \ ++ sp->_outch = NCURSES_OUTC_FUNC; \ + sp->jump = 0 \ + + /* usually in <limits.h> */ +@@ -1267,8 +1347,8 @@ + + #define UChar(c) ((unsigned char)(c)) + #define UShort(c) ((unsigned short)(c)) +-#define ChCharOf(c) ((c) & (chtype)A_CHARTEXT) +-#define ChAttrOf(c) ((c) & (chtype)A_ATTRIBUTES) ++#define ChCharOf(c) ((chtype)(c) & (chtype)A_CHARTEXT) ++#define ChAttrOf(c) ((chtype)(c) & (chtype)A_ATTRIBUTES) + + #ifndef MB_LEN_MAX + #define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */ +@@ -1322,9 +1402,9 @@ + #define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \ + mbstate_t PUT_st; wchar_t PUTC_ch + #define PUTC_INIT init_mb (PUT_st) +-#define PUTC(ch,b) do { if(!isWidecExt(ch)) { \ ++#define PUTC(ch) do { if(!isWidecExt(ch)) { \ + if (Charable(ch)) { \ +- fputc(CharOf(ch), b); \ ++ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \ + COUNT_OUTCHARS(1); \ + } else { \ + PUTC_INIT; \ +@@ -1336,10 +1416,14 @@ + (ch).chars[PUTC_i], &PUT_st); \ + if (PUTC_n <= 0) { \ + if (PUTC_ch && is8bits(PUTC_ch) && PUTC_i == 0) \ +- putc(PUTC_ch,b); \ ++ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \ + break; \ ++ } else { \ ++ int PUTC_j; \ ++ for (PUTC_j = 0; PUTC_j < PUTC_n; ++PUTC_j) { \ ++ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx PUTC_buf[PUTC_j]); \ ++ } \ + } \ +- IGNORE_RC(fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b)); \ + } \ + COUNT_OUTCHARS(PUTC_i); \ + } } } while (0) +@@ -1362,7 +1446,7 @@ + AttrOf(dst) |= (attr_t) (ext + 1) + + #define if_WIDEC(code) code +-#define Charable(ch) ((SP_PARM != 0 && SP_PARM->_legacy_coding) \ ++#define Charable(ch) ((SP_PARM->_legacy_coding) \ + || (AttrOf(ch) & A_ALTCHARSET) \ + || (!isWidecExt(ch) && \ + (ch).chars[1] == L'\0' && \ +@@ -1383,8 +1467,8 @@ + #define CHDEREF(wch) wch + #define ARG_CH_T NCURSES_CH_T + #define CARG_CH_T NCURSES_CH_T +-#define PUTC_DATA int data = 0 +-#define PUTC(ch,b) do { data = CharOf(ch); putc(data,b); } while (0) ++#define PUTC_DATA /* nothing */ ++#define PUTC(ch) NCURSES_OUTC_FUNC (NCURSES_SP_ARGx (int) ch) + + #define BLANK (' '|A_NORMAL) + #define ZEROS ('\0'|A_NORMAL) +@@ -1412,25 +1496,25 @@ + + #define CHANGED_CELL(line,col) \ + if (line->firstchar == _NOCHANGE) \ +- line->firstchar = line->lastchar = (NCURSES_SIZE_T) col; \ ++ line->firstchar = line->lastchar = (NCURSES_SIZE_T) (col); \ + else if ((col) < line->firstchar) \ +- line->firstchar = (NCURSES_SIZE_T) col; \ ++ line->firstchar = (NCURSES_SIZE_T) (col); \ + else if ((col) > line->lastchar) \ +- line->lastchar = (NCURSES_SIZE_T) col ++ line->lastchar = (NCURSES_SIZE_T) (col) + + #define CHANGED_RANGE(line,start,end) \ + if (line->firstchar == _NOCHANGE \ + || line->firstchar > (start)) \ +- line->firstchar = (NCURSES_SIZE_T) start; \ ++ line->firstchar = (NCURSES_SIZE_T) (start); \ + if (line->lastchar == _NOCHANGE \ + || line->lastchar < (end)) \ +- line->lastchar = (NCURSES_SIZE_T) end ++ line->lastchar = (NCURSES_SIZE_T) (end) + + #define CHANGED_TO_EOL(line,start,end) \ + if (line->firstchar == _NOCHANGE \ + || line->firstchar > (start)) \ +- line->firstchar = (NCURSES_SIZE_T) start; \ +- line->lastchar = (NCURSES_SIZE_T) end ++ line->firstchar = (NCURSES_SIZE_T) (start); \ ++ line->lastchar = (NCURSES_SIZE_T) (end) + + #define SIZEOF(v) (sizeof(v)/sizeof(v[0])) + +@@ -1444,6 +1528,20 @@ + #include <nc_alloc.h> + + /* ++ * Use these for tic/infocmp malloc failures. Generally the ncurses library ++ * tries to limp along after a failure. ++ */ ++#define TYPE_MALLOC(type, size, name) \ ++ name = typeMalloc(type, size); \ ++ if (name == 0) \ ++ _nc_err_abort(MSG_NO_MEMORY) ++ ++#define TYPE_REALLOC(type, size, name) \ ++ name = typeRealloc(type, size, name); \ ++ if (name == 0) \ ++ _nc_err_abort(MSG_NO_MEMORY) ++ ++/* + * TTY bit definition for converting tabs to spaces. + */ + #ifdef TAB3 +@@ -1528,7 +1626,7 @@ + #define returnVoidPtr(code) TRACE_RETURN(code,void_ptr) + #define returnWin(code) TRACE_RETURN(code,win) + +-extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (NCURSES_BOOL); ++extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (int); + extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *); + extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *); + extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *); +@@ -1539,7 +1637,7 @@ + extern NCURSES_EXPORT(chtype) _nc_retrace_chtype (chtype); + extern NCURSES_EXPORT(const char *) _nc_altcharset_name(attr_t, chtype); + extern NCURSES_EXPORT(const char *) _nc_retrace_cptr (const char *); +-extern NCURSES_EXPORT(char) _nc_retrace_char (char); ++extern NCURSES_EXPORT(char) _nc_retrace_char (int); + extern NCURSES_EXPORT(int) _nc_retrace_int (int); + extern NCURSES_EXPORT(int) _nc_retrace_int_attr_t (attr_t); + extern NCURSES_EXPORT(mmask_t) _nc_retrace_mmask_t (SCREEN *, mmask_t); +@@ -1619,7 +1717,9 @@ + NCURSES_EXPORT(void) name (void) { } + + #define ALL_BUT_COLOR ((chtype)~(A_COLOR)) +-#define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK) ++#define NONBLANK_ATTR (A_BOLD | A_DIM | A_BLINK | A_ITALIC) ++#define TPARM_ATTR (A_STANDOUT | A_UNDERLINE | A_REVERSE | A_BLINK | A_DIM | A_BOLD | A_ALTCHARSET | A_INVIS | A_PROTECT) ++#define XMC_CONFLICT (A_STANDOUT | A_UNDERLINE | A_REVERSE | A_BLINK | A_DIM | A_BOLD | A_INVIS | A_PROTECT | A_ITALIC) + #define XMC_CHANGES(c) ((c) & SP_PARM->_xmc_suppress) + + #define toggle_attr_on(S,at) {\ +@@ -1795,6 +1895,8 @@ + /* lib_mvcur.c */ + #define INFINITY 1000000 /* cost: too high to use */ + ++extern NCURSES_EXPORT(int) _nc_mvcur(int yold, int xold, int ynew, int xnew); ++ + extern NCURSES_EXPORT(void) _nc_mvcur_init (void); + extern NCURSES_EXPORT(void) _nc_mvcur_resume (void); + extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void); +@@ -1816,12 +1918,31 @@ + 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_tinfo_cmdch(TERMINAL *, char); ++extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, int); ++extern NCURSES_EXPORT(void) _nc_tinfo_cmdch(TERMINAL *, int); + + /* lib_set_term.c */ + extern NCURSES_EXPORT(int) _nc_ripoffline(int, int(*)(WINDOW*, int)); + ++/* lib_setup.c */ ++#define ret_error(code, fmt, arg) if (errret) {\ ++ *errret = code;\ ++ returnCode(ERR);\ ++ } else {\ ++ fprintf(stderr, fmt, arg);\ ++ exit(EXIT_FAILURE);\ ++ } ++ ++#define ret_error1(code, fmt, arg) ret_error(code, "'%s': " fmt, arg) ++ ++#define ret_error0(code, msg) if (errret) {\ ++ *errret = code;\ ++ returnCode(ERR);\ ++ } else {\ ++ fprintf(stderr, msg);\ ++ exit(EXIT_FAILURE);\ ++ } ++ + /* lib_tstp.c */ + #if USE_SIGWINCH + extern NCURSES_EXPORT(int) _nc_handle_sigwinch(SCREEN *); +@@ -1875,16 +1996,17 @@ + extern NCURSES_EXPORT(int) _nc_baudrate (int); + extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *); + extern NCURSES_EXPORT(int) _nc_getenv_num (const char *); +-extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, bool); ++extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, int); + extern NCURSES_EXPORT(int) _nc_ospeed (int); + extern NCURSES_EXPORT(int) _nc_outch (int); ++extern NCURSES_EXPORT(int) _nc_putchar (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_setup_tinfo(const char *, TERMTYPE *); ++extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, int, 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, NCURSES_OUTC); ++extern NCURSES_EXPORT(void) _nc_do_color (int, int, int, NCURSES_OUTC); + extern NCURSES_EXPORT(void) _nc_flush (void); + extern NCURSES_EXPORT(void) _nc_free_and_exit (int) GCC_NORETURN; + extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *); +@@ -1895,8 +2017,9 @@ + extern NCURSES_EXPORT(void) _nc_make_oldhash (int i); + extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot); + extern NCURSES_EXPORT(void) _nc_scroll_optimize (void); +-extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool); +-extern NCURSES_EXPORT(void) _nc_signal_handler (bool); ++extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, int); ++extern NCURSES_EXPORT(void) _nc_setenv_num (const char *, int); ++extern NCURSES_EXPORT(void) _nc_signal_handler (int); + extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *); + extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *); + +@@ -1905,7 +2028,9 @@ + extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void); + extern NCURSES_EXPORT(void) _nc_codes_leaks(void); + extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void); ++extern NCURSES_EXPORT(void) _nc_comp_error_leaks(void); + extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void); ++extern NCURSES_EXPORT(void) _nc_db_iterator_leaks(void); + extern NCURSES_EXPORT(void) _nc_keyname_leaks(void); + extern NCURSES_EXPORT(void) _nc_names_leaks(void); + extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void); +@@ -1914,7 +2039,7 @@ + #if !(defined(USE_TERMLIB) || defined(USE_BUILD_CC)) + extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T); + extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T); +-extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, NCURSES_SIZE_T const, NCURSES_SIZE_T const, NCURSES_CH_T); ++extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, int const, int const, NCURSES_CH_T); + #endif + + #if USE_WIDEC_SUPPORT +@@ -1946,8 +2071,26 @@ + * Wide-character macros to hide some platform-differences. + */ + #if USE_WIDEC_SUPPORT ++ ++#if defined(__MINGW32__) ++/* ++ * MinGW has wide-character functions, but they do not work correctly. ++ */ ++ ++extern int __MINGW_NOTHROW _nc_wctomb(char *, wchar_t); ++#define wctomb(s,wc) _nc_wctomb(s,wc) ++#define wcrtomb(s,wc,n) _nc_wctomb(s,wc) ++ ++extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *, const char *, size_t); ++#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n) ++ ++extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t); ++#define mblen(s,n) _nc_mblen(s, n) ++ ++#endif /* __MINGW32__ */ ++ + #if HAVE_MBTOWC && HAVE_MBLEN +-#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0)) ++#define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0)) + #define count_mbytes(buffer,length,state) mblen(buffer,length) + #define check_mbytes(wch,buffer,length,state) \ + (int) mbtowc(&wch, buffer, length) +@@ -1960,7 +2103,8 @@ + #else + make an error + #endif +-#endif ++ ++#endif /* USE_WIDEC_SUPPORT */ + + /* + * Not everyone has vsscanf(), but we'd like to use it for scanw(). +@@ -1974,8 +2118,6 @@ + + #define USE_SETBUF_0 0 + +-#define NC_BUFFERED(sp,flag) NCURSES_SP_NAME(_nc_set_buffer)(NCURSES_SP_ARGx sp->_ofp, flag) +- + #define NC_OUTPUT(sp) ((sp != 0) ? sp->_ofp : stdout) + + /* +@@ -2049,9 +2191,9 @@ + + #define SetSafeOutcWrapper(outc) \ + SCREEN* sp = CURRENT_SCREEN; \ ++ struct screen outc_wrapper; \ + if (sp==0) { \ +- struct screen dummy; \ +- sp = &dummy; \ ++ sp = &outc_wrapper; \ + memset(sp,0,sizeof(struct screen)); \ + sp->_outch = _nc_outc_wrapper; \ + }\ +@@ -2084,40 +2226,40 @@ + + 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*); +- int (*testmouse)(struct DriverTCB*,int); +- 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); ++ bool (*td_CanHandle)(struct DriverTCB*, const char*, int*); ++ void (*td_init)(struct DriverTCB*); ++ void (*td_release)(struct DriverTCB*); ++ int (*td_size)(struct DriverTCB*, int* Line, int *Cols); ++ int (*td_sgmode)(struct DriverTCB*, int setFlag, TTY*); ++ chtype (*td_conattr)(struct DriverTCB*); ++ int (*td_hwcur)(struct DriverTCB*, int yold, int xold, int y, int x); ++ int (*td_mode)(struct DriverTCB*, int progFlag, int defFlag); ++ bool (*td_rescol)(struct DriverTCB*); ++ bool (*td_rescolors)(struct DriverTCB*); ++ void (*td_color)(struct DriverTCB*, int fore, int color, int(*)(SCREEN*, int)); ++ int (*td_doBeepOrFlash)(struct DriverTCB*, int); ++ void (*td_initpair)(struct DriverTCB*, int, int, int); ++ void (*td_initcolor)(struct DriverTCB*, int, int, int, int); ++ void (*td_docolor)(struct DriverTCB*, int, int, int, int(*)(SCREEN*, int)); ++ void (*td_initmouse)(struct DriverTCB*); ++ int (*td_testmouse)(struct DriverTCB*, int EVENTLIST_2nd(_nc_eventlist*)); ++ void (*td_setfilter)(struct DriverTCB*); ++ void (*td_hwlabel)(struct DriverTCB*, int, char*); ++ void (*td_hwlabelOnOff)(struct DriverTCB*, int); ++ int (*td_update)(struct DriverTCB*); ++ int (*td_defaultcolors)(struct DriverTCB*, int, int); ++ int (*td_print)(struct DriverTCB*, char*, int); ++ int (*td_getsize)(struct DriverTCB*, int*, int*); ++ int (*td_setsize)(struct DriverTCB*, int, int); ++ void (*td_initacs)(struct DriverTCB*, chtype*, chtype*); ++ void (*td_scinit)(SCREEN *); ++ void (*td_scexit)(SCREEN *); ++ int (*td_twait)(struct DriverTCB*, int, int, int* EVENTLIST_2nd(_nc_eventlist*)); ++ int (*td_read)(struct DriverTCB*, int*); ++ int (*td_nap)(struct DriverTCB*, int); ++ int (*td_kpad)(struct DriverTCB*, int); ++ int (*td_kyOk)(struct DriverTCB*, int, int); ++ bool (*td_kyExist)(struct DriverTCB*, int); + } TERM_DRIVER; + + typedef struct DriverTCB +@@ -2166,7 +2308,7 @@ + #else + #define TINFO_HAS_KEY NCURSES_SP_NAME(has_key) + #define TINFO_DOUPDATE NCURSES_SP_NAME(doupdate) +-#define TINFO_MVCUR NCURSES_SP_NAME(mvcur) ++#define TINFO_MVCUR NCURSES_SP_NAME(_nc_mvcur) + #endif + + /* +@@ -2174,7 +2316,7 @@ + */ + #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); ++extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, NCURSES_CONST char *, int , int *, int); + #define TINFO_GET_SIZE(sp, tp, lp, cp) \ + _nc_get_screensize(sp, tp, lp, cp) + #define TINFO_SET_CURTERM(sp, tp) \ +@@ -2200,12 +2342,13 @@ + #endif + + #ifdef USE_TERM_DRIVER +-#define IsTermInfo(sp) (TCBOf(sp) && ((TCBOf(sp)->drv->isTerminfo))) ++#define IsTermInfo(sp) ((TCBOf(sp) != 0) && ((TCBOf(sp)->drv->isTerminfo))) ++#define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp)) + #else + #define IsTermInfo(sp) TRUE ++#define HasTInfoTerminal(sp) (0 != TerminalOf(sp)) + #endif + +-#define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp)) + #define IsValidTIScreen(sp) (HasTInfoTerminal(sp)) + + /* +@@ -2239,7 +2382,9 @@ + 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_mvcur)(SCREEN*, int, int, int, int); + extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_outch)(SCREEN*, int); ++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putchar)(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*); +@@ -2250,12 +2395,12 @@ + 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_setupscreen)(SCREEN**, int, int, FILE *, int, 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_vid_attr)(SCREEN *, attr_t, NCURSES_COLOR_T, 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_color)(SCREEN*, int, int, int, 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; +@@ -2271,7 +2416,7 @@ + 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) NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, int); + + extern NCURSES_EXPORT(void) _nc_cookie_init(SCREEN *sp); + +diff -Naur ncurses-5.9/ncurses/fifo_defs.h ncurses-5.9.patch/ncurses/fifo_defs.h +--- ncurses-5.9/ncurses/fifo_defs.h 2008-06-28 17:52:32.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/fifo_defs.h 2014-09-01 16:33:22.414792220 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2002,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2008,2012 Free 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 @@ + /* + * Common macros for lib_getch.c, lib_ungetch.c + * +- * $Id: fifo_defs.h,v 1.6 2008/06/28 15:52:32 tom Exp $ ++ * $Id: fifo_defs.h,v 1.7 2012/08/04 15:59:17 tom Exp $ + */ + + #ifndef FIFO_DEFS_H +@@ -45,14 +45,42 @@ + /* peek points to next uninterpreted character */ + #define peek sp->_fifopeek + +-#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;} +-#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;} +-#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;} +-#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear(sp);} +-#define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;} ++#define h_inc() { \ ++ (head >= FIFO_SIZE-1) \ ++ ? head = 0 \ ++ : head++; \ ++ if (head == tail) \ ++ head = -1, tail = 0; \ ++ } ++#define h_dec() { \ ++ (head <= 0) \ ++ ? head = FIFO_SIZE-1 \ ++ : head--; \ ++ if (head == tail) \ ++ tail = -1; \ ++ } ++#define t_inc() { \ ++ (tail >= FIFO_SIZE-1) \ ++ ? tail = 0 \ ++ : tail++; \ ++ if (tail == head) \ ++ tail = -1; \ ++ } ++#define t_dec() { \ ++ (tail <= 0) \ ++ ? tail = FIFO_SIZE-1 \ ++ : tail--; \ ++ if (head == tail) \ ++ fifo_clear(sp); \ ++ } ++#define p_inc() { \ ++ (peek >= FIFO_SIZE-1) \ ++ ? peek = 0 \ ++ : peek++; \ ++ } + +-#define cooked_key_in_fifo() ((head != -1) && (peek != head)) +-#define raw_key_in_fifo() ((head != -1) && (peek != tail)) ++#define cooked_key_in_fifo() ((head >= 0) && (peek != head)) ++#define raw_key_in_fifo() ((head >= 0) && (peek != tail)) + + #undef HIDE_EINTR + +diff -Naur ncurses-5.9/ncurses/llib-lncurses ncurses-5.9.patch/ncurses/llib-lncurses +--- ncurses-5.9/ncurses/llib-lncurses 2011-01-08 19:57:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-lncurses 2014-09-01 16:33:22.415792222 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2013 Free 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-2010,2011 * ++ * Author: Thomas E. Dickey 1996-on * + ****************************************************************************/ + /* LINTLIBRARY */ + +@@ -95,8 +95,6 @@ + + /* ./base/lib_addch.c */ + +-#include <ctype.h> +- + #undef _nc_render + chtype _nc_render( + WINDOW *win, +@@ -219,8 +217,6 @@ + + /* ./base/lib_color.c */ + +-#include <tic.h> +- + #undef COLOR_PAIRS + int COLOR_PAIRS; + #undef COLORS +@@ -329,17 +325,17 @@ + #undef _nc_do_color_sp + void _nc_do_color_sp( + SCREEN *sp, +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + + #undef _nc_do_color + void _nc_do_color( +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC outc) + { /* void */ } + +@@ -418,85 +414,85 @@ + /* ./lib_gen.c */ + + #undef addch +-int addch( ++int (addch)( + const chtype z) + { return(*(int *)0); } + + #undef addchnstr +-int addchnstr( ++int (addchnstr)( + const chtype *a1, + int z) + { return(*(int *)0); } + + #undef addchstr +-int addchstr( ++int (addchstr)( + const chtype *z) + { return(*(int *)0); } + + #undef addnstr +-int addnstr( ++int (addnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef addstr +-int addstr( ++int (addstr)( + const char *z) + { return(*(int *)0); } + + #undef attroff +-int attroff( ++int (attroff)( + NCURSES_ATTR_T z) + { return(*(int *)0); } + + #undef attron +-int attron( ++int (attron)( + NCURSES_ATTR_T z) + { return(*(int *)0); } + + #undef attrset +-int attrset( ++int (attrset)( + NCURSES_ATTR_T z) + { return(*(int *)0); } + + #undef attr_get +-int attr_get( ++int (attr_get)( + attr_t *a1, + short *a2, + void *z) + { return(*(int *)0); } + + #undef attr_off +-int attr_off( ++int (attr_off)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_on +-int attr_on( ++int (attr_on)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_set +-int attr_set( ++int (attr_set)( + attr_t a1, + short a2, + void *z) + { return(*(int *)0); } + + #undef bkgd +-int bkgd( ++int (bkgd)( + chtype z) + { return(*(int *)0); } + + #undef bkgdset +-void bkgdset( ++void (bkgdset)( + chtype z) + { /* void */ } + + #undef border +-int border( ++int (border)( + chtype a1, + chtype a2, + chtype a3, +@@ -508,14 +504,14 @@ + { return(*(int *)0); } + + #undef box +-int box( ++int (box)( + WINDOW *a1, + chtype a2, + chtype z) + { return(*(int *)0); } + + #undef chgat +-int chgat( ++int (chgat)( + int a1, + attr_t a2, + short a3, +@@ -523,137 +519,137 @@ + { return(*(int *)0); } + + #undef clear +-int clear(void) ++int (clear)(void) + { return(*(int *)0); } + + #undef clrtobot +-int clrtobot(void) ++int (clrtobot)(void) + { return(*(int *)0); } + + #undef clrtoeol +-int clrtoeol(void) ++int (clrtoeol)(void) + { return(*(int *)0); } + + #undef color_set +-int color_set( ++int (color_set)( + short a1, + void *z) + { return(*(int *)0); } + + #undef COLOR_PAIR +-int COLOR_PAIR( ++int (COLOR_PAIR)( + int z) + { return(*(int *)0); } + + #undef delch +-int delch(void) ++int (delch)(void) + { return(*(int *)0); } + + #undef deleteln +-int deleteln(void) ++int (deleteln)(void) + { return(*(int *)0); } + + #undef echochar +-int echochar( ++int (echochar)( + const chtype z) + { return(*(int *)0); } + + #undef erase +-int erase(void) ++int (erase)(void) + { return(*(int *)0); } + + #undef getbkgd +-chtype getbkgd( ++chtype (getbkgd)( + WINDOW *z) + { return(*(chtype *)0); } + + #undef getch +-int getch(void) ++int (getch)(void) + { return(*(int *)0); } + + #undef getnstr +-int getnstr( ++int (getnstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef getstr +-int getstr( ++int (getstr)( + char *z) + { return(*(int *)0); } + + #undef hline +-int hline( ++int (hline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef inch +-chtype inch(void) ++chtype (inch)(void) + { return(*(chtype *)0); } + + #undef inchnstr +-int inchnstr( ++int (inchnstr)( + chtype *a1, + int z) + { return(*(int *)0); } + + #undef inchstr +-int inchstr( ++int (inchstr)( + chtype *z) + { return(*(int *)0); } + + #undef innstr +-int innstr( ++int (innstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef insch +-int insch( ++int (insch)( + chtype z) + { return(*(int *)0); } + + #undef insdelln +-int insdelln( ++int (insdelln)( + int z) + { return(*(int *)0); } + + #undef insertln +-int insertln(void) ++int (insertln)(void) + { return(*(int *)0); } + + #undef insnstr +-int insnstr( ++int (insnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef insstr +-int insstr( ++int (insstr)( + const char *z) + { return(*(int *)0); } + + #undef instr +-int instr( ++int (instr)( + char *z) + { return(*(int *)0); } + + #undef move +-int move( ++int (move)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvaddch +-int mvaddch( ++int (mvaddch)( + int a1, + int a2, + const chtype z) + { return(*(int *)0); } + + #undef mvaddchnstr +-int mvaddchnstr( ++int (mvaddchnstr)( + int a1, + int a2, + const chtype *a3, +@@ -661,14 +657,14 @@ + { return(*(int *)0); } + + #undef mvaddchstr +-int mvaddchstr( ++int (mvaddchstr)( + int a1, + int a2, + const chtype *z) + { return(*(int *)0); } + + #undef mvaddnstr +-int mvaddnstr( ++int (mvaddnstr)( + int a1, + int a2, + const char *a3, +@@ -676,14 +672,14 @@ + { return(*(int *)0); } + + #undef mvaddstr +-int mvaddstr( ++int (mvaddstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvchgat +-int mvchgat( ++int (mvchgat)( + int a1, + int a2, + int a3, +@@ -693,19 +689,19 @@ + { return(*(int *)0); } + + #undef mvdelch +-int mvdelch( ++int (mvdelch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetch +-int mvgetch( ++int (mvgetch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetnstr +-int mvgetnstr( ++int (mvgetnstr)( + int a1, + int a2, + char *a3, +@@ -713,14 +709,14 @@ + { return(*(int *)0); } + + #undef mvgetstr +-int mvgetstr( ++int (mvgetstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvhline +-int mvhline( ++int (mvhline)( + int a1, + int a2, + chtype a3, +@@ -728,13 +724,13 @@ + { return(*(int *)0); } + + #undef mvinch +-chtype mvinch( ++chtype (mvinch)( + int a1, + int z) + { return(*(chtype *)0); } + + #undef mvinchnstr +-int mvinchnstr( ++int (mvinchnstr)( + int a1, + int a2, + chtype *a3, +@@ -742,14 +738,14 @@ + { return(*(int *)0); } + + #undef mvinchstr +-int mvinchstr( ++int (mvinchstr)( + int a1, + int a2, + chtype *z) + { return(*(int *)0); } + + #undef mvinnstr +-int mvinnstr( ++int (mvinnstr)( + int a1, + int a2, + char *a3, +@@ -757,14 +753,14 @@ + { return(*(int *)0); } + + #undef mvinsch +-int mvinsch( ++int (mvinsch)( + int a1, + int a2, + chtype z) + { return(*(int *)0); } + + #undef mvinsnstr +-int mvinsnstr( ++int (mvinsnstr)( + int a1, + int a2, + const char *a3, +@@ -772,21 +768,21 @@ + { return(*(int *)0); } + + #undef mvinsstr +-int mvinsstr( ++int (mvinsstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvinstr +-int mvinstr( ++int (mvinstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvvline +-int mvvline( ++int (mvvline)( + int a1, + int a2, + chtype a3, +@@ -794,7 +790,7 @@ + { return(*(int *)0); } + + #undef mvwaddch +-int mvwaddch( ++int (mvwaddch)( + WINDOW *a1, + int a2, + int a3, +@@ -802,7 +798,7 @@ + { return(*(int *)0); } + + #undef mvwaddchnstr +-int mvwaddchnstr( ++int (mvwaddchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -811,7 +807,7 @@ + { return(*(int *)0); } + + #undef mvwaddchstr +-int mvwaddchstr( ++int (mvwaddchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -819,7 +815,7 @@ + { return(*(int *)0); } + + #undef mvwaddnstr +-int mvwaddnstr( ++int (mvwaddnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -828,7 +824,7 @@ + { return(*(int *)0); } + + #undef mvwaddstr +-int mvwaddstr( ++int (mvwaddstr)( + WINDOW *a1, + int a2, + int a3, +@@ -836,7 +832,7 @@ + { return(*(int *)0); } + + #undef mvwchgat +-int mvwchgat( ++int (mvwchgat)( + WINDOW *a1, + int a2, + int a3, +@@ -847,21 +843,21 @@ + { return(*(int *)0); } + + #undef mvwdelch +-int mvwdelch( ++int (mvwdelch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetch +-int mvwgetch( ++int (mvwgetch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetnstr +-int mvwgetnstr( ++int (mvwgetnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -870,7 +866,7 @@ + { return(*(int *)0); } + + #undef mvwgetstr +-int mvwgetstr( ++int (mvwgetstr)( + WINDOW *a1, + int a2, + int a3, +@@ -878,7 +874,7 @@ + { return(*(int *)0); } + + #undef mvwhline +-int mvwhline( ++int (mvwhline)( + WINDOW *a1, + int a2, + int a3, +@@ -887,14 +883,14 @@ + { return(*(int *)0); } + + #undef mvwinch +-chtype mvwinch( ++chtype (mvwinch)( + WINDOW *a1, + int a2, + int z) + { return(*(chtype *)0); } + + #undef mvwinchnstr +-int mvwinchnstr( ++int (mvwinchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -903,7 +899,7 @@ + { return(*(int *)0); } + + #undef mvwinchstr +-int mvwinchstr( ++int (mvwinchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -911,7 +907,7 @@ + { return(*(int *)0); } + + #undef mvwinnstr +-int mvwinnstr( ++int (mvwinnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -920,7 +916,7 @@ + { return(*(int *)0); } + + #undef mvwinsch +-int mvwinsch( ++int (mvwinsch)( + WINDOW *a1, + int a2, + int a3, +@@ -928,7 +924,7 @@ + { return(*(int *)0); } + + #undef mvwinsnstr +-int mvwinsnstr( ++int (mvwinsnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -937,7 +933,7 @@ + { return(*(int *)0); } + + #undef mvwinsstr +-int mvwinsstr( ++int (mvwinsstr)( + WINDOW *a1, + int a2, + int a3, +@@ -945,7 +941,7 @@ + { return(*(int *)0); } + + #undef mvwinstr +-int mvwinstr( ++int (mvwinstr)( + WINDOW *a1, + int a2, + int a3, +@@ -953,7 +949,7 @@ + { return(*(int *)0); } + + #undef mvwvline +-int mvwvline( ++int (mvwvline)( + WINDOW *a1, + int a2, + int a3, +@@ -962,117 +958,117 @@ + { return(*(int *)0); } + + #undef PAIR_NUMBER +-int PAIR_NUMBER( ++int (PAIR_NUMBER)( + int z) + { return(*(int *)0); } + + #undef redrawwin +-int redrawwin( ++int (redrawwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef refresh +-int refresh(void) ++int (refresh)(void) + { return(*(int *)0); } + + #undef scrl +-int scrl( ++int (scrl)( + int z) + { return(*(int *)0); } + + #undef scroll +-int scroll( ++int (scroll)( + WINDOW *z) + { return(*(int *)0); } + + #undef setscrreg +-int setscrreg( ++int (setscrreg)( + int a1, + int z) + { return(*(int *)0); } + + #undef standout +-int standout(void) ++int (standout)(void) + { return(*(int *)0); } + + #undef standend +-int standend(void) ++int (standend)(void) + { return(*(int *)0); } + + #undef timeout +-void timeout( ++void (timeout)( + int z) + { /* void */ } + + #undef touchline +-int touchline( ++int (touchline)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef touchwin +-int touchwin( ++int (touchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef untouchwin +-int untouchwin( ++int (untouchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef vline +-int vline( ++int (vline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef vw_printw +-int vw_printw( ++int (vw_printw)( + WINDOW *a1, + const char *a2, + va_list z) + { return(*(int *)0); } + + #undef vw_scanw +-int vw_scanw( ++int (vw_scanw)( + WINDOW *a1, + char *a2, + va_list z) + { return(*(int *)0); } + + #undef waddchstr +-int waddchstr( ++int (waddchstr)( + WINDOW *a1, + const chtype *z) + { return(*(int *)0); } + + #undef waddstr +-int waddstr( ++int (waddstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef wattron +-int wattron( ++int (wattron)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattroff +-int wattroff( ++int (wattroff)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattrset +-int wattrset( ++int (wattrset)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattr_get +-int wattr_get( ++int (wattr_get)( + WINDOW *a1, + attr_t *a2, + short *a3, +@@ -1080,7 +1076,7 @@ + { return(*(int *)0); } + + #undef wattr_set +-int wattr_set( ++int (wattr_set)( + WINDOW *a1, + attr_t a2, + short a3, +@@ -1088,168 +1084,168 @@ + { return(*(int *)0); } + + #undef wdeleteln +-int wdeleteln( ++int (wdeleteln)( + WINDOW *z) + { return(*(int *)0); } + + #undef wgetstr +-int wgetstr( ++int (wgetstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef winchstr +-int winchstr( ++int (winchstr)( + WINDOW *a1, + chtype *z) + { return(*(int *)0); } + + #undef winsertln +-int winsertln( ++int (winsertln)( + WINDOW *z) + { return(*(int *)0); } + + #undef winsstr +-int winsstr( ++int (winsstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef winstr +-int winstr( ++int (winstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef wstandout +-int wstandout( ++int (wstandout)( + WINDOW *z) + { return(*(int *)0); } + + #undef wstandend +-int wstandend( ++int (wstandend)( + WINDOW *z) + { return(*(int *)0); } + + #undef getattrs +-int getattrs( ++int (getattrs)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcurx +-int getcurx( ++int (getcurx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcury +-int getcury( ++int (getcury)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegx +-int getbegx( ++int (getbegx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegy +-int getbegy( ++int (getbegy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxx +-int getmaxx( ++int (getmaxx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxy +-int getmaxy( ++int (getmaxy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getparx +-int getparx( ++int (getparx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getpary +-int getpary( ++int (getpary)( + const WINDOW *z) + { return(*(int *)0); } + + #undef wgetparent +-WINDOW *wgetparent( ++WINDOW *(wgetparent)( + const WINDOW *z) + { return(*(WINDOW **)0); } + + #undef is_cleared +-NCURSES_BOOL is_cleared( ++NCURSES_BOOL (is_cleared)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idcok +-NCURSES_BOOL is_idcok( ++NCURSES_BOOL (is_idcok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idlok +-NCURSES_BOOL is_idlok( ++NCURSES_BOOL (is_idlok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_immedok +-NCURSES_BOOL is_immedok( ++NCURSES_BOOL (is_immedok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_keypad +-NCURSES_BOOL is_keypad( ++NCURSES_BOOL (is_keypad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_leaveok +-NCURSES_BOOL is_leaveok( ++NCURSES_BOOL (is_leaveok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_nodelay +-NCURSES_BOOL is_nodelay( ++NCURSES_BOOL (is_nodelay)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_notimeout +-NCURSES_BOOL is_notimeout( ++NCURSES_BOOL (is_notimeout)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_pad +-NCURSES_BOOL is_pad( ++NCURSES_BOOL (is_pad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_scrollok +-NCURSES_BOOL is_scrollok( ++NCURSES_BOOL (is_scrollok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_subwin +-NCURSES_BOOL is_subwin( ++NCURSES_BOOL (is_subwin)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_syncok +-NCURSES_BOOL is_syncok( ++NCURSES_BOOL (is_syncok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef wgetscrreg +-int wgetscrreg( ++int (wgetscrreg)( + const WINDOW *a1, + int *a2, + int *z) + { return(*(int *)0); } + + #undef mouse_trafo +-NCURSES_BOOL mouse_trafo( ++NCURSES_BOOL (mouse_trafo)( + int *a1, + int *a2, + NCURSES_BOOL z) +@@ -1257,8 +1253,6 @@ + + /* ./base/lib_getch.c */ + +-#include <fifo_defs.h> +- + #undef ESCDELAY + int ESCDELAY; + +@@ -1523,6 +1517,23 @@ + void _nc_mvcur_wrap(void) + { /* void */ } + ++#undef _nc_mvcur_sp ++int _nc_mvcur_sp( ++ SCREEN *sp, ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ ++#undef _nc_mvcur ++int _nc_mvcur( ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ + #undef mvcur_sp + int mvcur_sp( + SCREEN *sp, +@@ -1932,8 +1943,8 @@ + void _nc_scroll_window( + WINDOW *win, + int const n, +- short const top, +- short const bottom, ++ int const top, ++ int const bottom, + chtype blank) + { /* void */ } + +@@ -1978,7 +1989,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -1987,7 +1998,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -2263,11 +2274,9 @@ + + /* ./tty/lib_tstp.c */ + +-#include <SigAction.h> +- + #undef _nc_signal_handler + void _nc_signal_handler( +- NCURSES_BOOL enable) ++ int enable) + { /* void */ } + + /* ./base/lib_ungetch.c */ +@@ -2425,9 +2434,6 @@ + + /* ./tty/tty_update.c */ + +-#include <sys/time.h> +-#include <sys/times.h> +- + #undef doupdate_sp + int doupdate_sp( + SCREEN *sp) +@@ -2504,12 +2510,6 @@ + va_list ap) + { return(*(char **)0); } + +-/* ./base/memmove.c */ +- +-#undef _nc_memmove +-void _nc_memmove(void) +- { /* void */ } +- + /* ./base/vsscanf.c */ + + #undef _nc_vsscanf +@@ -2769,7 +2769,7 @@ + #undef _nc_copy_termtype + void _nc_copy_termtype( + TERMTYPE *dst, +- TERMTYPE *src) ++ const TERMTYPE *src) + { /* void */ } + + /* ./codes.c */ +@@ -2783,8 +2783,6 @@ + + /* ./comp_captab.c */ + +-#include <hashsize.h> +- + #undef _nc_get_table + const struct name_table_entry *_nc_get_table( + NCURSES_BOOL termcap) +@@ -2959,6 +2957,12 @@ + const char *name) + { return(*(int *)0); } + ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ + /* ./tinfo/home_terminfo.c */ + + #undef _nc_home_terminfo +@@ -2967,15 +2971,6 @@ + + /* ./tinfo/init_keytry.c */ + +-#if 0 +- +-#include <init_keytry.h> +- +-#undef _nc_tinfo_fkeys +-const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0}; +- +-#endif +- + #undef _nc_init_keytry + void _nc_init_keytry( + SCREEN *sp) +@@ -2997,8 +2992,6 @@ + + /* ./tinfo/lib_baudrate.c */ + +-#include <termcap.h> +- + struct speed { + int s; + int sp; +@@ -3144,8 +3137,6 @@ + + /* ./tinfo/lib_napms.c */ + +-#include <time.h> +- + #undef napms_sp + int napms_sp( + SCREEN *sp, +@@ -3255,7 +3246,7 @@ + #undef _nc_keypad + int _nc_keypad( + SCREEN *sp, +- NCURSES_BOOL flag) ++ int flag) + { return(*(int *)0); } + + /* ./tinfo/lib_raw.c */ +@@ -3329,10 +3320,6 @@ + + /* ./tinfo/lib_setup.c */ + +-#include <locale.h> +-#include <sys/ioctl.h> +-#include <langinfo.h> +- + #undef ttytype + char ttytype[256]; + #undef LINES +@@ -3364,11 +3351,22 @@ + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef use_env + void use_env( + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl ++void use_tioctl( ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef _nc_get_screensize + void _nc_get_screensize( + SCREEN *sp, +@@ -3390,7 +3388,7 @@ + #undef _nc_tinfo_cmdch + void _nc_tinfo_cmdch( + TERMINAL *termp, +- char proto) ++ int proto) + { /* void */ } + + #undef _nc_get_locale +@@ -3411,7 +3409,7 @@ + char *tname, + int Filedes, + int *errret, +- NCURSES_BOOL reuse) ++ int reuse) + { return(*(int *)0); } + + #undef new_prescr +@@ -3439,12 +3437,6 @@ + const char *name) + { return(*(int *)0); } + +-#if 0 +- +-#include <capdefaults.c> +- +-#endif +- + #undef tgetent + int tgetent( + char *bufp, +@@ -3550,7 +3542,7 @@ + int _nc_tparm_analyze( + const char *string, + char *p_is_s[9], +- int *popcount) ++ int *_nc_popcount) + { return(*(int *)0); } + + #undef tparm +@@ -3570,7 +3562,7 @@ + #undef PC + char PC; + #undef ospeed +-NCURSES_OSPEED ospeed; ++short ospeed; + #undef _nc_nulls_sent + int _nc_nulls_sent; + +@@ -3610,12 +3602,28 @@ + int ch) + { return(*(int *)0); } + ++#undef _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ + #undef putp_sp + int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + ++#undef putp ++int putp( ++ const char *string) ++ { return(*(int *)0); } ++ + #undef _nc_putp_sp + int _nc_putp_sp( + SCREEN *sp, +@@ -3623,11 +3631,6 @@ + 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, +@@ -3678,12 +3681,12 @@ + + #undef _nc_retrace_bool + NCURSES_BOOL _nc_retrace_bool( +- NCURSES_BOOL code) ++ int code) + { return(*(NCURSES_BOOL *)0); } + + #undef _nc_retrace_char + char _nc_retrace_char( +- char code) ++ int code) + { return(*(char *)0); } + + #undef _nc_retrace_int +@@ -3917,9 +3920,27 @@ + #undef strfnames + char *const strfnames[] = {0}; + ++/* ./tinfo/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ + /* ./tinfo/read_entry.c */ + +-#include <hashed_db.h> ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } + + #undef _nc_read_termtype + int _nc_read_termtype( +@@ -3943,27 +3964,8 @@ + + /* ./tinfo/read_termcap.c */ + +-#include <sys/types.h> +- +-#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) ++#undef _nc_read_termcap ++void _nc_read_termcap(void) + { /* void */ } + + /* ./tinfo/strings.c */ +@@ -4189,6 +4191,8 @@ + + #undef _nc_syntax + int _nc_syntax; ++#undef _nc_strict_bsd ++int _nc_strict_bsd; + #undef _nc_curr_file_pos + long _nc_curr_file_pos; + #undef _nc_comment_start +diff -Naur ncurses-5.9/ncurses/llib-lncursest ncurses-5.9.patch/ncurses/llib-lncursest +--- ncurses-5.9/ncurses/llib-lncursest 2011-01-08 20:03:20.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-lncursest 2014-09-01 16:33:22.415792222 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2011,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -332,17 +332,17 @@ + #undef _nc_do_color_sp + void _nc_do_color_sp( + SCREEN *sp, +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + + #undef _nc_do_color + void _nc_do_color( +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC outc) + { /* void */ } + +@@ -420,86 +420,88 @@ + + /* ./lib_gen.c */ + ++#include <ncurses_cfg.h> ++ + #undef addch +-int addch( ++int (addch)( + const chtype z) + { return(*(int *)0); } + + #undef addchnstr +-int addchnstr( ++int (addchnstr)( + const chtype *a1, + int z) + { return(*(int *)0); } + + #undef addchstr +-int addchstr( ++int (addchstr)( + const chtype *z) + { return(*(int *)0); } + + #undef addnstr +-int addnstr( ++int (addnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef addstr +-int addstr( ++int (addstr)( + const char *z) + { return(*(int *)0); } + + #undef attroff +-int attroff( +- NCURSES_ATTR_T z) ++int (attroff)( ++ int z) + { return(*(int *)0); } + + #undef attron +-int attron( +- NCURSES_ATTR_T z) ++int (attron)( ++ int z) + { return(*(int *)0); } + + #undef attrset +-int attrset( +- NCURSES_ATTR_T z) ++int (attrset)( ++ int z) + { return(*(int *)0); } + + #undef attr_get +-int attr_get( ++int (attr_get)( + attr_t *a1, + short *a2, + void *z) + { return(*(int *)0); } + + #undef attr_off +-int attr_off( ++int (attr_off)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_on +-int attr_on( ++int (attr_on)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_set +-int attr_set( ++int (attr_set)( + attr_t a1, + short a2, + void *z) + { return(*(int *)0); } + + #undef bkgd +-int bkgd( ++int (bkgd)( + chtype z) + { return(*(int *)0); } + + #undef bkgdset +-void bkgdset( ++void (bkgdset)( + chtype z) + { /* void */ } + + #undef border +-int border( ++int (border)( + chtype a1, + chtype a2, + chtype a3, +@@ -511,14 +513,14 @@ + { return(*(int *)0); } + + #undef box +-int box( ++int (box)( + WINDOW *a1, + chtype a2, + chtype z) + { return(*(int *)0); } + + #undef chgat +-int chgat( ++int (chgat)( + int a1, + attr_t a2, + short a3, +@@ -526,137 +528,137 @@ + { return(*(int *)0); } + + #undef clear +-int clear(void) ++int (clear)(void) + { return(*(int *)0); } + + #undef clrtobot +-int clrtobot(void) ++int (clrtobot)(void) + { return(*(int *)0); } + + #undef clrtoeol +-int clrtoeol(void) ++int (clrtoeol)(void) + { return(*(int *)0); } + + #undef color_set +-int color_set( ++int (color_set)( + short a1, + void *z) + { return(*(int *)0); } + + #undef COLOR_PAIR +-int COLOR_PAIR( ++int (COLOR_PAIR)( + int z) + { return(*(int *)0); } + + #undef delch +-int delch(void) ++int (delch)(void) + { return(*(int *)0); } + + #undef deleteln +-int deleteln(void) ++int (deleteln)(void) + { return(*(int *)0); } + + #undef echochar +-int echochar( ++int (echochar)( + const chtype z) + { return(*(int *)0); } + + #undef erase +-int erase(void) ++int (erase)(void) + { return(*(int *)0); } + + #undef getbkgd +-chtype getbkgd( ++chtype (getbkgd)( + WINDOW *z) + { return(*(chtype *)0); } + + #undef getch +-int getch(void) ++int (getch)(void) + { return(*(int *)0); } + + #undef getnstr +-int getnstr( ++int (getnstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef getstr +-int getstr( ++int (getstr)( + char *z) + { return(*(int *)0); } + + #undef hline +-int hline( ++int (hline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef inch +-chtype inch(void) ++chtype (inch)(void) + { return(*(chtype *)0); } + + #undef inchnstr +-int inchnstr( ++int (inchnstr)( + chtype *a1, + int z) + { return(*(int *)0); } + + #undef inchstr +-int inchstr( ++int (inchstr)( + chtype *z) + { return(*(int *)0); } + + #undef innstr +-int innstr( ++int (innstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef insch +-int insch( ++int (insch)( + chtype z) + { return(*(int *)0); } + + #undef insdelln +-int insdelln( ++int (insdelln)( + int z) + { return(*(int *)0); } + + #undef insertln +-int insertln(void) ++int (insertln)(void) + { return(*(int *)0); } + + #undef insnstr +-int insnstr( ++int (insnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef insstr +-int insstr( ++int (insstr)( + const char *z) + { return(*(int *)0); } + + #undef instr +-int instr( ++int (instr)( + char *z) + { return(*(int *)0); } + + #undef move +-int move( ++int (move)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvaddch +-int mvaddch( ++int (mvaddch)( + int a1, + int a2, + const chtype z) + { return(*(int *)0); } + + #undef mvaddchnstr +-int mvaddchnstr( ++int (mvaddchnstr)( + int a1, + int a2, + const chtype *a3, +@@ -664,14 +666,14 @@ + { return(*(int *)0); } + + #undef mvaddchstr +-int mvaddchstr( ++int (mvaddchstr)( + int a1, + int a2, + const chtype *z) + { return(*(int *)0); } + + #undef mvaddnstr +-int mvaddnstr( ++int (mvaddnstr)( + int a1, + int a2, + const char *a3, +@@ -679,14 +681,14 @@ + { return(*(int *)0); } + + #undef mvaddstr +-int mvaddstr( ++int (mvaddstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvchgat +-int mvchgat( ++int (mvchgat)( + int a1, + int a2, + int a3, +@@ -696,19 +698,19 @@ + { return(*(int *)0); } + + #undef mvdelch +-int mvdelch( ++int (mvdelch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetch +-int mvgetch( ++int (mvgetch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetnstr +-int mvgetnstr( ++int (mvgetnstr)( + int a1, + int a2, + char *a3, +@@ -716,14 +718,14 @@ + { return(*(int *)0); } + + #undef mvgetstr +-int mvgetstr( ++int (mvgetstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvhline +-int mvhline( ++int (mvhline)( + int a1, + int a2, + chtype a3, +@@ -731,13 +733,13 @@ + { return(*(int *)0); } + + #undef mvinch +-chtype mvinch( ++chtype (mvinch)( + int a1, + int z) + { return(*(chtype *)0); } + + #undef mvinchnstr +-int mvinchnstr( ++int (mvinchnstr)( + int a1, + int a2, + chtype *a3, +@@ -745,14 +747,14 @@ + { return(*(int *)0); } + + #undef mvinchstr +-int mvinchstr( ++int (mvinchstr)( + int a1, + int a2, + chtype *z) + { return(*(int *)0); } + + #undef mvinnstr +-int mvinnstr( ++int (mvinnstr)( + int a1, + int a2, + char *a3, +@@ -760,14 +762,14 @@ + { return(*(int *)0); } + + #undef mvinsch +-int mvinsch( ++int (mvinsch)( + int a1, + int a2, + chtype z) + { return(*(int *)0); } + + #undef mvinsnstr +-int mvinsnstr( ++int (mvinsnstr)( + int a1, + int a2, + const char *a3, +@@ -775,21 +777,21 @@ + { return(*(int *)0); } + + #undef mvinsstr +-int mvinsstr( ++int (mvinsstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvinstr +-int mvinstr( ++int (mvinstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvvline +-int mvvline( ++int (mvvline)( + int a1, + int a2, + chtype a3, +@@ -797,7 +799,7 @@ + { return(*(int *)0); } + + #undef mvwaddch +-int mvwaddch( ++int (mvwaddch)( + WINDOW *a1, + int a2, + int a3, +@@ -805,7 +807,7 @@ + { return(*(int *)0); } + + #undef mvwaddchnstr +-int mvwaddchnstr( ++int (mvwaddchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -814,7 +816,7 @@ + { return(*(int *)0); } + + #undef mvwaddchstr +-int mvwaddchstr( ++int (mvwaddchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -822,7 +824,7 @@ + { return(*(int *)0); } + + #undef mvwaddnstr +-int mvwaddnstr( ++int (mvwaddnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -831,7 +833,7 @@ + { return(*(int *)0); } + + #undef mvwaddstr +-int mvwaddstr( ++int (mvwaddstr)( + WINDOW *a1, + int a2, + int a3, +@@ -839,7 +841,7 @@ + { return(*(int *)0); } + + #undef mvwchgat +-int mvwchgat( ++int (mvwchgat)( + WINDOW *a1, + int a2, + int a3, +@@ -850,21 +852,21 @@ + { return(*(int *)0); } + + #undef mvwdelch +-int mvwdelch( ++int (mvwdelch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetch +-int mvwgetch( ++int (mvwgetch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetnstr +-int mvwgetnstr( ++int (mvwgetnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -873,7 +875,7 @@ + { return(*(int *)0); } + + #undef mvwgetstr +-int mvwgetstr( ++int (mvwgetstr)( + WINDOW *a1, + int a2, + int a3, +@@ -881,7 +883,7 @@ + { return(*(int *)0); } + + #undef mvwhline +-int mvwhline( ++int (mvwhline)( + WINDOW *a1, + int a2, + int a3, +@@ -890,14 +892,14 @@ + { return(*(int *)0); } + + #undef mvwinch +-chtype mvwinch( ++chtype (mvwinch)( + WINDOW *a1, + int a2, + int z) + { return(*(chtype *)0); } + + #undef mvwinchnstr +-int mvwinchnstr( ++int (mvwinchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -906,7 +908,7 @@ + { return(*(int *)0); } + + #undef mvwinchstr +-int mvwinchstr( ++int (mvwinchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -914,7 +916,7 @@ + { return(*(int *)0); } + + #undef mvwinnstr +-int mvwinnstr( ++int (mvwinnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -923,7 +925,7 @@ + { return(*(int *)0); } + + #undef mvwinsch +-int mvwinsch( ++int (mvwinsch)( + WINDOW *a1, + int a2, + int a3, +@@ -931,7 +933,7 @@ + { return(*(int *)0); } + + #undef mvwinsnstr +-int mvwinsnstr( ++int (mvwinsnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -940,7 +942,7 @@ + { return(*(int *)0); } + + #undef mvwinsstr +-int mvwinsstr( ++int (mvwinsstr)( + WINDOW *a1, + int a2, + int a3, +@@ -948,7 +950,7 @@ + { return(*(int *)0); } + + #undef mvwinstr +-int mvwinstr( ++int (mvwinstr)( + WINDOW *a1, + int a2, + int a3, +@@ -956,7 +958,7 @@ + { return(*(int *)0); } + + #undef mvwvline +-int mvwvline( ++int (mvwvline)( + WINDOW *a1, + int a2, + int a3, +@@ -965,117 +967,117 @@ + { return(*(int *)0); } + + #undef PAIR_NUMBER +-int PAIR_NUMBER( ++int (PAIR_NUMBER)( + int z) + { return(*(int *)0); } + + #undef redrawwin +-int redrawwin( ++int (redrawwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef refresh +-int refresh(void) ++int (refresh)(void) + { return(*(int *)0); } + + #undef scrl +-int scrl( ++int (scrl)( + int z) + { return(*(int *)0); } + + #undef scroll +-int scroll( ++int (scroll)( + WINDOW *z) + { return(*(int *)0); } + + #undef setscrreg +-int setscrreg( ++int (setscrreg)( + int a1, + int z) + { return(*(int *)0); } + + #undef standout +-int standout(void) ++int (standout)(void) + { return(*(int *)0); } + + #undef standend +-int standend(void) ++int (standend)(void) + { return(*(int *)0); } + + #undef timeout +-void timeout( ++void (timeout)( + int z) + { /* void */ } + + #undef touchline +-int touchline( ++int (touchline)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef touchwin +-int touchwin( ++int (touchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef untouchwin +-int untouchwin( ++int (untouchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef vline +-int vline( ++int (vline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef vw_printw +-int vw_printw( ++int (vw_printw)( + WINDOW *a1, + const char *a2, + va_list z) + { return(*(int *)0); } + + #undef vw_scanw +-int vw_scanw( ++int (vw_scanw)( + WINDOW *a1, + char *a2, + va_list z) + { return(*(int *)0); } + + #undef waddchstr +-int waddchstr( ++int (waddchstr)( + WINDOW *a1, + const chtype *z) + { return(*(int *)0); } + + #undef waddstr +-int waddstr( ++int (waddstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef wattron +-int wattron( ++int (wattron)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattroff +-int wattroff( ++int (wattroff)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattrset +-int wattrset( ++int (wattrset)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattr_get +-int wattr_get( ++int (wattr_get)( + WINDOW *a1, + attr_t *a2, + short *a3, +@@ -1083,7 +1085,7 @@ + { return(*(int *)0); } + + #undef wattr_set +-int wattr_set( ++int (wattr_set)( + WINDOW *a1, + attr_t a2, + short a3, +@@ -1091,168 +1093,168 @@ + { return(*(int *)0); } + + #undef wdeleteln +-int wdeleteln( ++int (wdeleteln)( + WINDOW *z) + { return(*(int *)0); } + + #undef wgetstr +-int wgetstr( ++int (wgetstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef winchstr +-int winchstr( ++int (winchstr)( + WINDOW *a1, + chtype *z) + { return(*(int *)0); } + + #undef winsertln +-int winsertln( ++int (winsertln)( + WINDOW *z) + { return(*(int *)0); } + + #undef winsstr +-int winsstr( ++int (winsstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef winstr +-int winstr( ++int (winstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef wstandout +-int wstandout( ++int (wstandout)( + WINDOW *z) + { return(*(int *)0); } + + #undef wstandend +-int wstandend( ++int (wstandend)( + WINDOW *z) + { return(*(int *)0); } + + #undef getattrs +-int getattrs( ++int (getattrs)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcurx +-int getcurx( ++int (getcurx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcury +-int getcury( ++int (getcury)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegx +-int getbegx( ++int (getbegx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegy +-int getbegy( ++int (getbegy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxx +-int getmaxx( ++int (getmaxx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxy +-int getmaxy( ++int (getmaxy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getparx +-int getparx( ++int (getparx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getpary +-int getpary( ++int (getpary)( + const WINDOW *z) + { return(*(int *)0); } + + #undef wgetparent +-WINDOW *wgetparent( ++WINDOW *(wgetparent)( + const WINDOW *z) + { return(*(WINDOW **)0); } + + #undef is_cleared +-NCURSES_BOOL is_cleared( ++NCURSES_BOOL (is_cleared)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idcok +-NCURSES_BOOL is_idcok( ++NCURSES_BOOL (is_idcok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idlok +-NCURSES_BOOL is_idlok( ++NCURSES_BOOL (is_idlok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_immedok +-NCURSES_BOOL is_immedok( ++NCURSES_BOOL (is_immedok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_keypad +-NCURSES_BOOL is_keypad( ++NCURSES_BOOL (is_keypad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_leaveok +-NCURSES_BOOL is_leaveok( ++NCURSES_BOOL (is_leaveok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_nodelay +-NCURSES_BOOL is_nodelay( ++NCURSES_BOOL (is_nodelay)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_notimeout +-NCURSES_BOOL is_notimeout( ++NCURSES_BOOL (is_notimeout)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_pad +-NCURSES_BOOL is_pad( ++NCURSES_BOOL (is_pad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_scrollok +-NCURSES_BOOL is_scrollok( ++NCURSES_BOOL (is_scrollok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_subwin +-NCURSES_BOOL is_subwin( ++NCURSES_BOOL (is_subwin)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_syncok +-NCURSES_BOOL is_syncok( ++NCURSES_BOOL (is_syncok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef wgetscrreg +-int wgetscrreg( ++int (wgetscrreg)( + const WINDOW *a1, + int *a2, + int *z) + { return(*(int *)0); } + + #undef mouse_trafo +-NCURSES_BOOL mouse_trafo( ++NCURSES_BOOL (mouse_trafo)( + int *a1, + int *a2, + NCURSES_BOOL z) +@@ -1532,6 +1534,23 @@ + void _nc_mvcur_wrap(void) + { /* void */ } + ++#undef _nc_mvcur_sp ++int _nc_mvcur_sp( ++ SCREEN *sp, ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ ++#undef _nc_mvcur ++int _nc_mvcur( ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ + #undef mvcur_sp + int mvcur_sp( + SCREEN *sp, +@@ -1598,6 +1617,8 @@ + + /* ./base/lib_newwin.c */ + ++#include "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h" ++ + #undef _nc_freewin + int _nc_freewin( + WINDOW *win) +@@ -1987,7 +2008,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -1996,7 +2017,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -2276,7 +2297,7 @@ + + #undef _nc_signal_handler + void _nc_signal_handler( +- NCURSES_BOOL enable) ++ int enable) + { /* void */ } + + /* ./base/lib_ungetch.c */ +@@ -2513,12 +2534,6 @@ + va_list ap) + { return(*(char **)0); } + +-/* ./base/memmove.c */ +- +-#undef _nc_memmove +-void _nc_memmove(void) +- { /* void */ } +- + /* ./base/vsscanf.c */ + + #undef _nc_vsscanf +@@ -2778,7 +2793,7 @@ + #undef _nc_copy_termtype + void _nc_copy_termtype( + TERMTYPE *dst, +- TERMTYPE *src) ++ const TERMTYPE *src) + { /* void */ } + + /* ./codes.c */ +@@ -2882,6 +2897,8 @@ + + /* ./tinfo/db_iterator.c */ + ++#include <time.h> ++ + #undef _nc_tic_dir + const char *_nc_tic_dir( + const char *path) +@@ -2973,6 +2990,12 @@ + const char *name) + { return(*(int *)0); } + ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ + /* ./tinfo/home_terminfo.c */ + + #undef _nc_home_terminfo +@@ -3313,7 +3336,7 @@ + #undef _nc_keypad + int _nc_keypad( + SCREEN *sp, +- NCURSES_BOOL flag) ++ int flag) + { return(*(int *)0); } + + /* ./tinfo/lib_raw.c */ +@@ -3444,11 +3467,22 @@ + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef use_env + void use_env( + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl ++void use_tioctl( ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef _nc_get_screensize + void _nc_get_screensize( + SCREEN *sp, +@@ -3470,7 +3504,7 @@ + #undef _nc_tinfo_cmdch + void _nc_tinfo_cmdch( + TERMINAL *termp, +- char proto) ++ int proto) + { /* void */ } + + #undef _nc_get_locale +@@ -3491,7 +3525,7 @@ + char *tname, + int Filedes, + int *errret, +- NCURSES_BOOL reuse) ++ int reuse) + { return(*(int *)0); } + + #undef new_prescr +@@ -3630,7 +3664,7 @@ + int _nc_tparm_analyze( + const char *string, + char *p_is_s[9], +- int *popcount) ++ int *_nc_popcount) + { return(*(int *)0); } + + #undef tparm +@@ -3650,7 +3684,7 @@ + #undef PC + char PC; + #undef ospeed +-NCURSES_OSPEED ospeed; ++short ospeed; + #undef _nc_nulls_sent + int _nc_nulls_sent; + +@@ -3690,12 +3724,28 @@ + int ch) + { return(*(int *)0); } + ++#undef _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ + #undef putp_sp + int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + ++#undef putp ++int putp( ++ const char *string) ++ { return(*(int *)0); } ++ + #undef _nc_putp_sp + int _nc_putp_sp( + SCREEN *sp, +@@ -3703,11 +3753,6 @@ + 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, +@@ -3772,12 +3817,12 @@ + + #undef _nc_retrace_bool + NCURSES_BOOL _nc_retrace_bool( +- NCURSES_BOOL code) ++ int code) + { return(*(NCURSES_BOOL *)0); } + + #undef _nc_retrace_char + char _nc_retrace_char( +- char code) ++ int code) + { return(*(char *)0); } + + #undef _nc_retrace_int +@@ -4033,10 +4078,30 @@ + char *const *_nc_strfnames(void) + { return(*(char **)0); } + ++/* ./tinfo/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ + /* ./tinfo/read_entry.c */ + + #include <hashed_db.h> + ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ + #undef _nc_read_termtype + int _nc_read_termtype( + TERMTYPE *ptr, +@@ -4061,25 +4126,8 @@ + + #include <sys/types.h> + +-#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) ++#undef _nc_read_termcap ++void _nc_read_termcap(void) + { /* void */ } + + /* ./tinfo/strings.c */ +@@ -4305,6 +4353,8 @@ + + #undef _nc_syntax + int _nc_syntax; ++#undef _nc_strict_bsd ++int _nc_strict_bsd; + #undef _nc_curr_file_pos + long _nc_curr_file_pos; + #undef _nc_comment_start +diff -Naur ncurses-5.9/ncurses/llib-lncursestw ncurses-5.9.patch/ncurses/llib-lncursestw +--- ncurses-5.9/ncurses/llib-lncursestw 2011-01-08 20:11:35.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-lncursestw 2014-09-01 16:33:22.416792223 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2011,2013 Free 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 2009-2010,2011 * ++ * Author: Thomas E. Dickey 2009-on * + ****************************************************************************/ + /* LINTLIBRARY */ + +@@ -369,17 +369,17 @@ + #undef _nc_do_color_sp + void _nc_do_color_sp( + SCREEN *sp, +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + + #undef _nc_do_color + void _nc_do_color( +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC outc) + { /* void */ } + +@@ -457,86 +457,88 @@ + + /* ./lib_gen.c */ + ++#include <ncurses_cfg.h> ++ + #undef addch +-int addch( ++int (addch)( + const chtype z) + { return(*(int *)0); } + + #undef addchnstr +-int addchnstr( ++int (addchnstr)( + const chtype *a1, + int z) + { return(*(int *)0); } + + #undef addchstr +-int addchstr( ++int (addchstr)( + const chtype *z) + { return(*(int *)0); } + + #undef addnstr +-int addnstr( ++int (addnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef addstr +-int addstr( ++int (addstr)( + const char *z) + { return(*(int *)0); } + + #undef attroff +-int attroff( +- NCURSES_ATTR_T z) ++int (attroff)( ++ int z) + { return(*(int *)0); } + + #undef attron +-int attron( +- NCURSES_ATTR_T z) ++int (attron)( ++ int z) + { return(*(int *)0); } + + #undef attrset +-int attrset( +- NCURSES_ATTR_T z) ++int (attrset)( ++ int z) + { return(*(int *)0); } + + #undef attr_get +-int attr_get( ++int (attr_get)( + attr_t *a1, + short *a2, + void *z) + { return(*(int *)0); } + + #undef attr_off +-int attr_off( ++int (attr_off)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_on +-int attr_on( ++int (attr_on)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_set +-int attr_set( ++int (attr_set)( + attr_t a1, + short a2, + void *z) + { return(*(int *)0); } + + #undef bkgd +-int bkgd( ++int (bkgd)( + chtype z) + { return(*(int *)0); } + + #undef bkgdset +-void bkgdset( ++void (bkgdset)( + chtype z) + { /* void */ } + + #undef border +-int border( ++int (border)( + chtype a1, + chtype a2, + chtype a3, +@@ -548,14 +550,14 @@ + { return(*(int *)0); } + + #undef box +-int box( ++int (box)( + WINDOW *a1, + chtype a2, + chtype z) + { return(*(int *)0); } + + #undef chgat +-int chgat( ++int (chgat)( + int a1, + attr_t a2, + short a3, +@@ -563,137 +565,137 @@ + { return(*(int *)0); } + + #undef clear +-int clear(void) ++int (clear)(void) + { return(*(int *)0); } + + #undef clrtobot +-int clrtobot(void) ++int (clrtobot)(void) + { return(*(int *)0); } + + #undef clrtoeol +-int clrtoeol(void) ++int (clrtoeol)(void) + { return(*(int *)0); } + + #undef color_set +-int color_set( ++int (color_set)( + short a1, + void *z) + { return(*(int *)0); } + + #undef COLOR_PAIR +-int COLOR_PAIR( ++int (COLOR_PAIR)( + int z) + { return(*(int *)0); } + + #undef delch +-int delch(void) ++int (delch)(void) + { return(*(int *)0); } + + #undef deleteln +-int deleteln(void) ++int (deleteln)(void) + { return(*(int *)0); } + + #undef echochar +-int echochar( ++int (echochar)( + const chtype z) + { return(*(int *)0); } + + #undef erase +-int erase(void) ++int (erase)(void) + { return(*(int *)0); } + + #undef getbkgd +-chtype getbkgd( ++chtype (getbkgd)( + WINDOW *z) + { return(*(chtype *)0); } + + #undef getch +-int getch(void) ++int (getch)(void) + { return(*(int *)0); } + + #undef getnstr +-int getnstr( ++int (getnstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef getstr +-int getstr( ++int (getstr)( + char *z) + { return(*(int *)0); } + + #undef hline +-int hline( ++int (hline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef inch +-chtype inch(void) ++chtype (inch)(void) + { return(*(chtype *)0); } + + #undef inchnstr +-int inchnstr( ++int (inchnstr)( + chtype *a1, + int z) + { return(*(int *)0); } + + #undef inchstr +-int inchstr( ++int (inchstr)( + chtype *z) + { return(*(int *)0); } + + #undef innstr +-int innstr( ++int (innstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef insch +-int insch( ++int (insch)( + chtype z) + { return(*(int *)0); } + + #undef insdelln +-int insdelln( ++int (insdelln)( + int z) + { return(*(int *)0); } + + #undef insertln +-int insertln(void) ++int (insertln)(void) + { return(*(int *)0); } + + #undef insnstr +-int insnstr( ++int (insnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef insstr +-int insstr( ++int (insstr)( + const char *z) + { return(*(int *)0); } + + #undef instr +-int instr( ++int (instr)( + char *z) + { return(*(int *)0); } + + #undef move +-int move( ++int (move)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvaddch +-int mvaddch( ++int (mvaddch)( + int a1, + int a2, + const chtype z) + { return(*(int *)0); } + + #undef mvaddchnstr +-int mvaddchnstr( ++int (mvaddchnstr)( + int a1, + int a2, + const chtype *a3, +@@ -701,14 +703,14 @@ + { return(*(int *)0); } + + #undef mvaddchstr +-int mvaddchstr( ++int (mvaddchstr)( + int a1, + int a2, + const chtype *z) + { return(*(int *)0); } + + #undef mvaddnstr +-int mvaddnstr( ++int (mvaddnstr)( + int a1, + int a2, + const char *a3, +@@ -716,14 +718,14 @@ + { return(*(int *)0); } + + #undef mvaddstr +-int mvaddstr( ++int (mvaddstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvchgat +-int mvchgat( ++int (mvchgat)( + int a1, + int a2, + int a3, +@@ -733,19 +735,19 @@ + { return(*(int *)0); } + + #undef mvdelch +-int mvdelch( ++int (mvdelch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetch +-int mvgetch( ++int (mvgetch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetnstr +-int mvgetnstr( ++int (mvgetnstr)( + int a1, + int a2, + char *a3, +@@ -753,14 +755,14 @@ + { return(*(int *)0); } + + #undef mvgetstr +-int mvgetstr( ++int (mvgetstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvhline +-int mvhline( ++int (mvhline)( + int a1, + int a2, + chtype a3, +@@ -768,13 +770,13 @@ + { return(*(int *)0); } + + #undef mvinch +-chtype mvinch( ++chtype (mvinch)( + int a1, + int z) + { return(*(chtype *)0); } + + #undef mvinchnstr +-int mvinchnstr( ++int (mvinchnstr)( + int a1, + int a2, + chtype *a3, +@@ -782,14 +784,14 @@ + { return(*(int *)0); } + + #undef mvinchstr +-int mvinchstr( ++int (mvinchstr)( + int a1, + int a2, + chtype *z) + { return(*(int *)0); } + + #undef mvinnstr +-int mvinnstr( ++int (mvinnstr)( + int a1, + int a2, + char *a3, +@@ -797,14 +799,14 @@ + { return(*(int *)0); } + + #undef mvinsch +-int mvinsch( ++int (mvinsch)( + int a1, + int a2, + chtype z) + { return(*(int *)0); } + + #undef mvinsnstr +-int mvinsnstr( ++int (mvinsnstr)( + int a1, + int a2, + const char *a3, +@@ -812,21 +814,21 @@ + { return(*(int *)0); } + + #undef mvinsstr +-int mvinsstr( ++int (mvinsstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvinstr +-int mvinstr( ++int (mvinstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvvline +-int mvvline( ++int (mvvline)( + int a1, + int a2, + chtype a3, +@@ -834,7 +836,7 @@ + { return(*(int *)0); } + + #undef mvwaddch +-int mvwaddch( ++int (mvwaddch)( + WINDOW *a1, + int a2, + int a3, +@@ -842,7 +844,7 @@ + { return(*(int *)0); } + + #undef mvwaddchnstr +-int mvwaddchnstr( ++int (mvwaddchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -851,7 +853,7 @@ + { return(*(int *)0); } + + #undef mvwaddchstr +-int mvwaddchstr( ++int (mvwaddchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -859,7 +861,7 @@ + { return(*(int *)0); } + + #undef mvwaddnstr +-int mvwaddnstr( ++int (mvwaddnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -868,7 +870,7 @@ + { return(*(int *)0); } + + #undef mvwaddstr +-int mvwaddstr( ++int (mvwaddstr)( + WINDOW *a1, + int a2, + int a3, +@@ -876,7 +878,7 @@ + { return(*(int *)0); } + + #undef mvwchgat +-int mvwchgat( ++int (mvwchgat)( + WINDOW *a1, + int a2, + int a3, +@@ -887,21 +889,21 @@ + { return(*(int *)0); } + + #undef mvwdelch +-int mvwdelch( ++int (mvwdelch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetch +-int mvwgetch( ++int (mvwgetch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetnstr +-int mvwgetnstr( ++int (mvwgetnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -910,7 +912,7 @@ + { return(*(int *)0); } + + #undef mvwgetstr +-int mvwgetstr( ++int (mvwgetstr)( + WINDOW *a1, + int a2, + int a3, +@@ -918,7 +920,7 @@ + { return(*(int *)0); } + + #undef mvwhline +-int mvwhline( ++int (mvwhline)( + WINDOW *a1, + int a2, + int a3, +@@ -927,14 +929,14 @@ + { return(*(int *)0); } + + #undef mvwinch +-chtype mvwinch( ++chtype (mvwinch)( + WINDOW *a1, + int a2, + int z) + { return(*(chtype *)0); } + + #undef mvwinchnstr +-int mvwinchnstr( ++int (mvwinchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -943,7 +945,7 @@ + { return(*(int *)0); } + + #undef mvwinchstr +-int mvwinchstr( ++int (mvwinchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -951,7 +953,7 @@ + { return(*(int *)0); } + + #undef mvwinnstr +-int mvwinnstr( ++int (mvwinnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -960,7 +962,7 @@ + { return(*(int *)0); } + + #undef mvwinsch +-int mvwinsch( ++int (mvwinsch)( + WINDOW *a1, + int a2, + int a3, +@@ -968,7 +970,7 @@ + { return(*(int *)0); } + + #undef mvwinsnstr +-int mvwinsnstr( ++int (mvwinsnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -977,7 +979,7 @@ + { return(*(int *)0); } + + #undef mvwinsstr +-int mvwinsstr( ++int (mvwinsstr)( + WINDOW *a1, + int a2, + int a3, +@@ -985,7 +987,7 @@ + { return(*(int *)0); } + + #undef mvwinstr +-int mvwinstr( ++int (mvwinstr)( + WINDOW *a1, + int a2, + int a3, +@@ -993,7 +995,7 @@ + { return(*(int *)0); } + + #undef mvwvline +-int mvwvline( ++int (mvwvline)( + WINDOW *a1, + int a2, + int a3, +@@ -1002,129 +1004,129 @@ + { return(*(int *)0); } + + #undef PAIR_NUMBER +-int PAIR_NUMBER( ++int (PAIR_NUMBER)( + int z) + { return(*(int *)0); } + + #undef redrawwin +-int redrawwin( ++int (redrawwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef refresh +-int refresh(void) ++int (refresh)(void) + { return(*(int *)0); } + + #undef scrl +-int scrl( ++int (scrl)( + int z) + { return(*(int *)0); } + + #undef scroll +-int scroll( ++int (scroll)( + WINDOW *z) + { return(*(int *)0); } + + #undef setscrreg +-int setscrreg( ++int (setscrreg)( + int a1, + int z) + { return(*(int *)0); } + + #undef slk_attr_off +-int slk_attr_off( ++int (slk_attr_off)( + const attr_t a1, + void *z) + { return(*(int *)0); } + + #undef slk_attr_on +-int slk_attr_on( ++int (slk_attr_on)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef standout +-int standout(void) ++int (standout)(void) + { return(*(int *)0); } + + #undef standend +-int standend(void) ++int (standend)(void) + { return(*(int *)0); } + + #undef timeout +-void timeout( ++void (timeout)( + int z) + { /* void */ } + + #undef touchline +-int touchline( ++int (touchline)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef touchwin +-int touchwin( ++int (touchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef untouchwin +-int untouchwin( ++int (untouchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef vline +-int vline( ++int (vline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef vw_printw +-int vw_printw( ++int (vw_printw)( + WINDOW *a1, + const char *a2, + va_list z) + { return(*(int *)0); } + + #undef vw_scanw +-int vw_scanw( ++int (vw_scanw)( + WINDOW *a1, + char *a2, + va_list z) + { return(*(int *)0); } + + #undef waddchstr +-int waddchstr( ++int (waddchstr)( + WINDOW *a1, + const chtype *z) + { return(*(int *)0); } + + #undef waddstr +-int waddstr( ++int (waddstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef wattron +-int wattron( ++int (wattron)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattroff +-int wattroff( ++int (wattroff)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattrset +-int wattrset( ++int (wattrset)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattr_get +-int wattr_get( ++int (wattr_get)( + WINDOW *a1, + attr_t *a2, + short *a3, +@@ -1132,7 +1134,7 @@ + { return(*(int *)0); } + + #undef wattr_set +-int wattr_set( ++int (wattr_set)( + WINDOW *a1, + attr_t a2, + short a3, +@@ -1140,205 +1142,205 @@ + { return(*(int *)0); } + + #undef wdeleteln +-int wdeleteln( ++int (wdeleteln)( + WINDOW *z) + { return(*(int *)0); } + + #undef wgetstr +-int wgetstr( ++int (wgetstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef winchstr +-int winchstr( ++int (winchstr)( + WINDOW *a1, + chtype *z) + { return(*(int *)0); } + + #undef winsertln +-int winsertln( ++int (winsertln)( + WINDOW *z) + { return(*(int *)0); } + + #undef winsstr +-int winsstr( ++int (winsstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef winstr +-int winstr( ++int (winstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef wstandout +-int wstandout( ++int (wstandout)( + WINDOW *z) + { return(*(int *)0); } + + #undef wstandend +-int wstandend( ++int (wstandend)( + WINDOW *z) + { return(*(int *)0); } + + #undef getattrs +-int getattrs( ++int (getattrs)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcurx +-int getcurx( ++int (getcurx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcury +-int getcury( ++int (getcury)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegx +-int getbegx( ++int (getbegx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegy +-int getbegy( ++int (getbegy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxx +-int getmaxx( ++int (getmaxx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxy +-int getmaxy( ++int (getmaxy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getparx +-int getparx( ++int (getparx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getpary +-int getpary( ++int (getpary)( + const WINDOW *z) + { return(*(int *)0); } + + #undef wgetparent +-WINDOW *wgetparent( ++WINDOW *(wgetparent)( + const WINDOW *z) + { return(*(WINDOW **)0); } + + #undef is_cleared +-NCURSES_BOOL is_cleared( ++NCURSES_BOOL (is_cleared)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idcok +-NCURSES_BOOL is_idcok( ++NCURSES_BOOL (is_idcok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idlok +-NCURSES_BOOL is_idlok( ++NCURSES_BOOL (is_idlok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_immedok +-NCURSES_BOOL is_immedok( ++NCURSES_BOOL (is_immedok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_keypad +-NCURSES_BOOL is_keypad( ++NCURSES_BOOL (is_keypad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_leaveok +-NCURSES_BOOL is_leaveok( ++NCURSES_BOOL (is_leaveok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_nodelay +-NCURSES_BOOL is_nodelay( ++NCURSES_BOOL (is_nodelay)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_notimeout +-NCURSES_BOOL is_notimeout( ++NCURSES_BOOL (is_notimeout)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_pad +-NCURSES_BOOL is_pad( ++NCURSES_BOOL (is_pad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_scrollok +-NCURSES_BOOL is_scrollok( ++NCURSES_BOOL (is_scrollok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_subwin +-NCURSES_BOOL is_subwin( ++NCURSES_BOOL (is_subwin)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_syncok +-NCURSES_BOOL is_syncok( ++NCURSES_BOOL (is_syncok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef wgetscrreg +-int wgetscrreg( ++int (wgetscrreg)( + const WINDOW *a1, + int *a2, + int *z) + { return(*(int *)0); } + + #undef add_wch +-int add_wch( ++int (add_wch)( + const cchar_t *z) + { return(*(int *)0); } + + #undef add_wchnstr +-int add_wchnstr( ++int (add_wchnstr)( + const cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef add_wchstr +-int add_wchstr( ++int (add_wchstr)( + const cchar_t *z) + { return(*(int *)0); } + + #undef addnwstr +-int addnwstr( ++int (addnwstr)( + const wchar_t *a1, + int z) + { return(*(int *)0); } + + #undef addwstr +-int addwstr( ++int (addwstr)( + const wchar_t *z) + { return(*(int *)0); } + + #undef bkgrnd +-int bkgrnd( ++int (bkgrnd)( + const cchar_t *z) + { return(*(int *)0); } + + #undef bkgrndset +-void bkgrndset( ++void (bkgrndset)( + const cchar_t *z) + { /* void */ } + + #undef border_set +-int border_set( ++int (border_set)( + const cchar_t *a1, + const cchar_t *a2, + const cchar_t *a3, +@@ -1350,96 +1352,96 @@ + { return(*(int *)0); } + + #undef box_set +-int box_set( ++int (box_set)( + WINDOW *a1, + const cchar_t *a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef echo_wchar +-int echo_wchar( ++int (echo_wchar)( + const cchar_t *z) + { return(*(int *)0); } + + #undef get_wch +-int get_wch( ++int (get_wch)( + wint_t *z) + { return(*(int *)0); } + + #undef get_wstr +-int get_wstr( ++int (get_wstr)( + wint_t *z) + { return(*(int *)0); } + + #undef getbkgrnd +-int getbkgrnd( ++int (getbkgrnd)( + cchar_t *z) + { return(*(int *)0); } + + #undef getn_wstr +-int getn_wstr( ++int (getn_wstr)( + wint_t *a1, + int z) + { return(*(int *)0); } + + #undef hline_set +-int hline_set( ++int (hline_set)( + const cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef in_wch +-int in_wch( ++int (in_wch)( + cchar_t *z) + { return(*(int *)0); } + + #undef in_wchnstr +-int in_wchnstr( ++int (in_wchnstr)( + cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef in_wchstr +-int in_wchstr( ++int (in_wchstr)( + cchar_t *z) + { return(*(int *)0); } + + #undef innwstr +-int innwstr( ++int (innwstr)( + wchar_t *a1, + int z) + { return(*(int *)0); } + + #undef ins_nwstr +-int ins_nwstr( ++int (ins_nwstr)( + const wchar_t *a1, + int z) + { return(*(int *)0); } + + #undef ins_wch +-int ins_wch( ++int (ins_wch)( + const cchar_t *z) + { return(*(int *)0); } + + #undef ins_wstr +-int ins_wstr( ++int (ins_wstr)( + const wchar_t *z) + { return(*(int *)0); } + + #undef inwstr +-int inwstr( ++int (inwstr)( + wchar_t *z) + { return(*(int *)0); } + + #undef mvadd_wch +-int mvadd_wch( ++int (mvadd_wch)( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef mvadd_wchnstr +-int mvadd_wchnstr( ++int (mvadd_wchnstr)( + int a1, + int a2, + const cchar_t *a3, +@@ -1447,14 +1449,14 @@ + { return(*(int *)0); } + + #undef mvadd_wchstr +-int mvadd_wchstr( ++int (mvadd_wchstr)( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef mvaddnwstr +-int mvaddnwstr( ++int (mvaddnwstr)( + int a1, + int a2, + const wchar_t *a3, +@@ -1462,28 +1464,28 @@ + { return(*(int *)0); } + + #undef mvaddwstr +-int mvaddwstr( ++int (mvaddwstr)( + int a1, + int a2, + const wchar_t *z) + { return(*(int *)0); } + + #undef mvget_wch +-int mvget_wch( ++int (mvget_wch)( + int a1, + int a2, + wint_t *z) + { return(*(int *)0); } + + #undef mvget_wstr +-int mvget_wstr( ++int (mvget_wstr)( + int a1, + int a2, + wint_t *z) + { return(*(int *)0); } + + #undef mvgetn_wstr +-int mvgetn_wstr( ++int (mvgetn_wstr)( + int a1, + int a2, + wint_t *a3, +@@ -1491,7 +1493,7 @@ + { return(*(int *)0); } + + #undef mvhline_set +-int mvhline_set( ++int (mvhline_set)( + int a1, + int a2, + const cchar_t *a3, +@@ -1499,14 +1501,14 @@ + { return(*(int *)0); } + + #undef mvin_wch +-int mvin_wch( ++int (mvin_wch)( + int a1, + int a2, + cchar_t *z) + { return(*(int *)0); } + + #undef mvin_wchnstr +-int mvin_wchnstr( ++int (mvin_wchnstr)( + int a1, + int a2, + cchar_t *a3, +@@ -1514,14 +1516,14 @@ + { return(*(int *)0); } + + #undef mvin_wchstr +-int mvin_wchstr( ++int (mvin_wchstr)( + int a1, + int a2, + cchar_t *z) + { return(*(int *)0); } + + #undef mvinnwstr +-int mvinnwstr( ++int (mvinnwstr)( + int a1, + int a2, + wchar_t *a3, +@@ -1529,7 +1531,7 @@ + { return(*(int *)0); } + + #undef mvins_nwstr +-int mvins_nwstr( ++int (mvins_nwstr)( + int a1, + int a2, + const wchar_t *a3, +@@ -1537,28 +1539,28 @@ + { return(*(int *)0); } + + #undef mvins_wch +-int mvins_wch( ++int (mvins_wch)( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef mvins_wstr +-int mvins_wstr( ++int (mvins_wstr)( + int a1, + int a2, + const wchar_t *z) + { return(*(int *)0); } + + #undef mvinwstr +-int mvinwstr( ++int (mvinwstr)( + int a1, + int a2, + wchar_t *z) + { return(*(int *)0); } + + #undef mvvline_set +-int mvvline_set( ++int (mvvline_set)( + int a1, + int a2, + const cchar_t *a3, +@@ -1566,7 +1568,7 @@ + { return(*(int *)0); } + + #undef mvwadd_wch +-int mvwadd_wch( ++int (mvwadd_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1574,7 +1576,7 @@ + { return(*(int *)0); } + + #undef mvwadd_wchnstr +-int mvwadd_wchnstr( ++int (mvwadd_wchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1583,7 +1585,7 @@ + { return(*(int *)0); } + + #undef mvwadd_wchstr +-int mvwadd_wchstr( ++int (mvwadd_wchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1591,7 +1593,7 @@ + { return(*(int *)0); } + + #undef mvwaddnwstr +-int mvwaddnwstr( ++int (mvwaddnwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1600,7 +1602,7 @@ + { return(*(int *)0); } + + #undef mvwaddwstr +-int mvwaddwstr( ++int (mvwaddwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1608,7 +1610,7 @@ + { return(*(int *)0); } + + #undef mvwget_wch +-int mvwget_wch( ++int (mvwget_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1616,7 +1618,7 @@ + { return(*(int *)0); } + + #undef mvwget_wstr +-int mvwget_wstr( ++int (mvwget_wstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1624,7 +1626,7 @@ + { return(*(int *)0); } + + #undef mvwgetn_wstr +-int mvwgetn_wstr( ++int (mvwgetn_wstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1633,7 +1635,7 @@ + { return(*(int *)0); } + + #undef mvwhline_set +-int mvwhline_set( ++int (mvwhline_set)( + WINDOW *a1, + int a2, + int a3, +@@ -1642,7 +1644,7 @@ + { return(*(int *)0); } + + #undef mvwin_wch +-int mvwin_wch( ++int (mvwin_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1650,7 +1652,7 @@ + { return(*(int *)0); } + + #undef mvwin_wchnstr +-int mvwin_wchnstr( ++int (mvwin_wchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1659,7 +1661,7 @@ + { return(*(int *)0); } + + #undef mvwin_wchstr +-int mvwin_wchstr( ++int (mvwin_wchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1667,7 +1669,7 @@ + { return(*(int *)0); } + + #undef mvwinnwstr +-int mvwinnwstr( ++int (mvwinnwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1676,7 +1678,7 @@ + { return(*(int *)0); } + + #undef mvwins_nwstr +-int mvwins_nwstr( ++int (mvwins_nwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1685,7 +1687,7 @@ + { return(*(int *)0); } + + #undef mvwins_wch +-int mvwins_wch( ++int (mvwins_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1693,7 +1695,7 @@ + { return(*(int *)0); } + + #undef mvwins_wstr +-int mvwins_wstr( ++int (mvwins_wstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1701,7 +1703,7 @@ + { return(*(int *)0); } + + #undef mvwinwstr +-int mvwinwstr( ++int (mvwinwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1709,7 +1711,7 @@ + { return(*(int *)0); } + + #undef mvwvline_set +-int mvwvline_set( ++int (mvwvline_set)( + WINDOW *a1, + int a2, + int a3, +@@ -1718,49 +1720,49 @@ + { return(*(int *)0); } + + #undef vline_set +-int vline_set( ++int (vline_set)( + const cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef wadd_wchstr +-int wadd_wchstr( ++int (wadd_wchstr)( + WINDOW *a1, + const cchar_t *z) + { return(*(int *)0); } + + #undef waddwstr +-int waddwstr( ++int (waddwstr)( + WINDOW *a1, + const wchar_t *z) + { return(*(int *)0); } + + #undef wget_wstr +-int wget_wstr( ++int (wget_wstr)( + WINDOW *a1, + wint_t *z) + { return(*(int *)0); } + + #undef wgetbkgrnd +-int wgetbkgrnd( ++int (wgetbkgrnd)( + WINDOW *a1, + cchar_t *z) + { return(*(int *)0); } + + #undef win_wchstr +-int win_wchstr( ++int (win_wchstr)( + WINDOW *a1, + cchar_t *z) + { return(*(int *)0); } + + #undef wins_wstr +-int wins_wstr( ++int (wins_wstr)( + WINDOW *a1, + const wchar_t *z) + { return(*(int *)0); } + + #undef mouse_trafo +-NCURSES_BOOL mouse_trafo( ++NCURSES_BOOL (mouse_trafo)( + int *a1, + int *a2, + NCURSES_BOOL z) +@@ -2040,6 +2042,23 @@ + void _nc_mvcur_wrap(void) + { /* void */ } + ++#undef _nc_mvcur_sp ++int _nc_mvcur_sp( ++ SCREEN *sp, ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ ++#undef _nc_mvcur ++int _nc_mvcur( ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ + #undef mvcur_sp + int mvcur_sp( + SCREEN *sp, +@@ -2106,6 +2125,8 @@ + + /* ./base/lib_newwin.c */ + ++#include "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h" ++ + #undef _nc_freewin + int _nc_freewin( + WINDOW *win) +@@ -2495,7 +2516,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -2504,7 +2525,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -2786,7 +2807,7 @@ + + #undef _nc_signal_handler + void _nc_signal_handler( +- NCURSES_BOOL enable) ++ int enable) + { /* void */ } + + /* ./base/lib_ungetch.c */ +@@ -3023,12 +3044,6 @@ + va_list ap) + { return(*(char **)0); } + +-/* ./base/memmove.c */ +- +-#undef _nc_memmove +-void _nc_memmove(void) +- { /* void */ } +- + /* ./base/vsscanf.c */ + + #undef _nc_vsscanf +@@ -3563,7 +3578,7 @@ + #undef _nc_copy_termtype + void _nc_copy_termtype( + TERMTYPE *dst, +- TERMTYPE *src) ++ const TERMTYPE *src) + { /* void */ } + + /* ./codes.c */ +@@ -3667,6 +3682,8 @@ + + /* ./tinfo/db_iterator.c */ + ++#include <time.h> ++ + #undef _nc_tic_dir + const char *_nc_tic_dir( + const char *path) +@@ -3758,6 +3775,12 @@ + const char *name) + { return(*(int *)0); } + ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ + /* ./tinfo/home_terminfo.c */ + + #undef _nc_home_terminfo +@@ -4098,7 +4121,7 @@ + #undef _nc_keypad + int _nc_keypad( + SCREEN *sp, +- NCURSES_BOOL flag) ++ int flag) + { return(*(int *)0); } + + /* ./tinfo/lib_raw.c */ +@@ -4229,11 +4252,22 @@ + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef use_env + void use_env( + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl ++void use_tioctl( ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef _nc_get_screensize + void _nc_get_screensize( + SCREEN *sp, +@@ -4255,7 +4289,7 @@ + #undef _nc_tinfo_cmdch + void _nc_tinfo_cmdch( + TERMINAL *termp, +- char proto) ++ int proto) + { /* void */ } + + #undef _nc_get_locale +@@ -4276,7 +4310,7 @@ + char *tname, + int Filedes, + int *errret, +- NCURSES_BOOL reuse) ++ int reuse) + { return(*(int *)0); } + + #undef new_prescr +@@ -4415,7 +4449,7 @@ + int _nc_tparm_analyze( + const char *string, + char *p_is_s[9], +- int *popcount) ++ int *_nc_popcount) + { return(*(int *)0); } + + #undef tparm +@@ -4435,7 +4469,7 @@ + #undef PC + char PC; + #undef ospeed +-NCURSES_OSPEED ospeed; ++short ospeed; + #undef _nc_nulls_sent + int _nc_nulls_sent; + +@@ -4475,12 +4509,28 @@ + int ch) + { return(*(int *)0); } + ++#undef _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ + #undef putp_sp + int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + ++#undef putp ++int putp( ++ const char *string) ++ { return(*(int *)0); } ++ + #undef _nc_putp_sp + int _nc_putp_sp( + SCREEN *sp, +@@ -4488,11 +4538,6 @@ + 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, +@@ -4557,12 +4602,12 @@ + + #undef _nc_retrace_bool + NCURSES_BOOL _nc_retrace_bool( +- NCURSES_BOOL code) ++ int code) + { return(*(NCURSES_BOOL *)0); } + + #undef _nc_retrace_char + char _nc_retrace_char( +- char code) ++ int code) + { return(*(char *)0); } + + #undef _nc_retrace_int +@@ -4829,10 +4874,30 @@ + char *const *_nc_strfnames(void) + { return(*(char **)0); } + ++/* ./tinfo/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ + /* ./tinfo/read_entry.c */ + + #include <hashed_db.h> + ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ + #undef _nc_read_termtype + int _nc_read_termtype( + TERMTYPE *ptr, +@@ -4857,25 +4922,8 @@ + + #include <sys/types.h> + +-#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) ++#undef _nc_read_termcap ++void _nc_read_termcap(void) + { /* void */ } + + /* ./tinfo/strings.c */ +@@ -5123,6 +5171,8 @@ + + #undef _nc_syntax + int _nc_syntax; ++#undef _nc_strict_bsd ++int _nc_strict_bsd; + #undef _nc_curr_file_pos + long _nc_curr_file_pos; + #undef _nc_comment_start +diff -Naur ncurses-5.9/ncurses/llib-lncursesw ncurses-5.9.patch/ncurses/llib-lncursesw +--- ncurses-5.9/ncurses/llib-lncursesw 2011-01-08 20:01:11.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-lncursesw 2014-09-01 16:33:22.417792224 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2011,2013 Free 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-2010,2011 * ++ * Author: Thomas E. Dickey 2001-on * + ****************************************************************************/ + /* LINTLIBRARY */ + +@@ -366,17 +366,17 @@ + #undef _nc_do_color_sp + void _nc_do_color_sp( + SCREEN *sp, +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + + #undef _nc_do_color + void _nc_do_color( +- short old_pair, +- short pair, +- NCURSES_BOOL reverse, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_OUTC outc) + { /* void */ } + +@@ -454,86 +454,88 @@ + + /* ./lib_gen.c */ + ++#include <ncurses_cfg.h> ++ + #undef addch +-int addch( ++int (addch)( + const chtype z) + { return(*(int *)0); } + + #undef addchnstr +-int addchnstr( ++int (addchnstr)( + const chtype *a1, + int z) + { return(*(int *)0); } + + #undef addchstr +-int addchstr( ++int (addchstr)( + const chtype *z) + { return(*(int *)0); } + + #undef addnstr +-int addnstr( ++int (addnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef addstr +-int addstr( ++int (addstr)( + const char *z) + { return(*(int *)0); } + + #undef attroff +-int attroff( +- NCURSES_ATTR_T z) ++int (attroff)( ++ int z) + { return(*(int *)0); } + + #undef attron +-int attron( +- NCURSES_ATTR_T z) ++int (attron)( ++ int z) + { return(*(int *)0); } + + #undef attrset +-int attrset( +- NCURSES_ATTR_T z) ++int (attrset)( ++ int z) + { return(*(int *)0); } + + #undef attr_get +-int attr_get( ++int (attr_get)( + attr_t *a1, + short *a2, + void *z) + { return(*(int *)0); } + + #undef attr_off +-int attr_off( ++int (attr_off)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_on +-int attr_on( ++int (attr_on)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef attr_set +-int attr_set( ++int (attr_set)( + attr_t a1, + short a2, + void *z) + { return(*(int *)0); } + + #undef bkgd +-int bkgd( ++int (bkgd)( + chtype z) + { return(*(int *)0); } + + #undef bkgdset +-void bkgdset( ++void (bkgdset)( + chtype z) + { /* void */ } + + #undef border +-int border( ++int (border)( + chtype a1, + chtype a2, + chtype a3, +@@ -545,14 +547,14 @@ + { return(*(int *)0); } + + #undef box +-int box( ++int (box)( + WINDOW *a1, + chtype a2, + chtype z) + { return(*(int *)0); } + + #undef chgat +-int chgat( ++int (chgat)( + int a1, + attr_t a2, + short a3, +@@ -560,137 +562,137 @@ + { return(*(int *)0); } + + #undef clear +-int clear(void) ++int (clear)(void) + { return(*(int *)0); } + + #undef clrtobot +-int clrtobot(void) ++int (clrtobot)(void) + { return(*(int *)0); } + + #undef clrtoeol +-int clrtoeol(void) ++int (clrtoeol)(void) + { return(*(int *)0); } + + #undef color_set +-int color_set( ++int (color_set)( + short a1, + void *z) + { return(*(int *)0); } + + #undef COLOR_PAIR +-int COLOR_PAIR( ++int (COLOR_PAIR)( + int z) + { return(*(int *)0); } + + #undef delch +-int delch(void) ++int (delch)(void) + { return(*(int *)0); } + + #undef deleteln +-int deleteln(void) ++int (deleteln)(void) + { return(*(int *)0); } + + #undef echochar +-int echochar( ++int (echochar)( + const chtype z) + { return(*(int *)0); } + + #undef erase +-int erase(void) ++int (erase)(void) + { return(*(int *)0); } + + #undef getbkgd +-chtype getbkgd( ++chtype (getbkgd)( + WINDOW *z) + { return(*(chtype *)0); } + + #undef getch +-int getch(void) ++int (getch)(void) + { return(*(int *)0); } + + #undef getnstr +-int getnstr( ++int (getnstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef getstr +-int getstr( ++int (getstr)( + char *z) + { return(*(int *)0); } + + #undef hline +-int hline( ++int (hline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef inch +-chtype inch(void) ++chtype (inch)(void) + { return(*(chtype *)0); } + + #undef inchnstr +-int inchnstr( ++int (inchnstr)( + chtype *a1, + int z) + { return(*(int *)0); } + + #undef inchstr +-int inchstr( ++int (inchstr)( + chtype *z) + { return(*(int *)0); } + + #undef innstr +-int innstr( ++int (innstr)( + char *a1, + int z) + { return(*(int *)0); } + + #undef insch +-int insch( ++int (insch)( + chtype z) + { return(*(int *)0); } + + #undef insdelln +-int insdelln( ++int (insdelln)( + int z) + { return(*(int *)0); } + + #undef insertln +-int insertln(void) ++int (insertln)(void) + { return(*(int *)0); } + + #undef insnstr +-int insnstr( ++int (insnstr)( + const char *a1, + int z) + { return(*(int *)0); } + + #undef insstr +-int insstr( ++int (insstr)( + const char *z) + { return(*(int *)0); } + + #undef instr +-int instr( ++int (instr)( + char *z) + { return(*(int *)0); } + + #undef move +-int move( ++int (move)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvaddch +-int mvaddch( ++int (mvaddch)( + int a1, + int a2, + const chtype z) + { return(*(int *)0); } + + #undef mvaddchnstr +-int mvaddchnstr( ++int (mvaddchnstr)( + int a1, + int a2, + const chtype *a3, +@@ -698,14 +700,14 @@ + { return(*(int *)0); } + + #undef mvaddchstr +-int mvaddchstr( ++int (mvaddchstr)( + int a1, + int a2, + const chtype *z) + { return(*(int *)0); } + + #undef mvaddnstr +-int mvaddnstr( ++int (mvaddnstr)( + int a1, + int a2, + const char *a3, +@@ -713,14 +715,14 @@ + { return(*(int *)0); } + + #undef mvaddstr +-int mvaddstr( ++int (mvaddstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvchgat +-int mvchgat( ++int (mvchgat)( + int a1, + int a2, + int a3, +@@ -730,19 +732,19 @@ + { return(*(int *)0); } + + #undef mvdelch +-int mvdelch( ++int (mvdelch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetch +-int mvgetch( ++int (mvgetch)( + int a1, + int z) + { return(*(int *)0); } + + #undef mvgetnstr +-int mvgetnstr( ++int (mvgetnstr)( + int a1, + int a2, + char *a3, +@@ -750,14 +752,14 @@ + { return(*(int *)0); } + + #undef mvgetstr +-int mvgetstr( ++int (mvgetstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvhline +-int mvhline( ++int (mvhline)( + int a1, + int a2, + chtype a3, +@@ -765,13 +767,13 @@ + { return(*(int *)0); } + + #undef mvinch +-chtype mvinch( ++chtype (mvinch)( + int a1, + int z) + { return(*(chtype *)0); } + + #undef mvinchnstr +-int mvinchnstr( ++int (mvinchnstr)( + int a1, + int a2, + chtype *a3, +@@ -779,14 +781,14 @@ + { return(*(int *)0); } + + #undef mvinchstr +-int mvinchstr( ++int (mvinchstr)( + int a1, + int a2, + chtype *z) + { return(*(int *)0); } + + #undef mvinnstr +-int mvinnstr( ++int (mvinnstr)( + int a1, + int a2, + char *a3, +@@ -794,14 +796,14 @@ + { return(*(int *)0); } + + #undef mvinsch +-int mvinsch( ++int (mvinsch)( + int a1, + int a2, + chtype z) + { return(*(int *)0); } + + #undef mvinsnstr +-int mvinsnstr( ++int (mvinsnstr)( + int a1, + int a2, + const char *a3, +@@ -809,21 +811,21 @@ + { return(*(int *)0); } + + #undef mvinsstr +-int mvinsstr( ++int (mvinsstr)( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + + #undef mvinstr +-int mvinstr( ++int (mvinstr)( + int a1, + int a2, + char *z) + { return(*(int *)0); } + + #undef mvvline +-int mvvline( ++int (mvvline)( + int a1, + int a2, + chtype a3, +@@ -831,7 +833,7 @@ + { return(*(int *)0); } + + #undef mvwaddch +-int mvwaddch( ++int (mvwaddch)( + WINDOW *a1, + int a2, + int a3, +@@ -839,7 +841,7 @@ + { return(*(int *)0); } + + #undef mvwaddchnstr +-int mvwaddchnstr( ++int (mvwaddchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -848,7 +850,7 @@ + { return(*(int *)0); } + + #undef mvwaddchstr +-int mvwaddchstr( ++int (mvwaddchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -856,7 +858,7 @@ + { return(*(int *)0); } + + #undef mvwaddnstr +-int mvwaddnstr( ++int (mvwaddnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -865,7 +867,7 @@ + { return(*(int *)0); } + + #undef mvwaddstr +-int mvwaddstr( ++int (mvwaddstr)( + WINDOW *a1, + int a2, + int a3, +@@ -873,7 +875,7 @@ + { return(*(int *)0); } + + #undef mvwchgat +-int mvwchgat( ++int (mvwchgat)( + WINDOW *a1, + int a2, + int a3, +@@ -884,21 +886,21 @@ + { return(*(int *)0); } + + #undef mvwdelch +-int mvwdelch( ++int (mvwdelch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetch +-int mvwgetch( ++int (mvwgetch)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef mvwgetnstr +-int mvwgetnstr( ++int (mvwgetnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -907,7 +909,7 @@ + { return(*(int *)0); } + + #undef mvwgetstr +-int mvwgetstr( ++int (mvwgetstr)( + WINDOW *a1, + int a2, + int a3, +@@ -915,7 +917,7 @@ + { return(*(int *)0); } + + #undef mvwhline +-int mvwhline( ++int (mvwhline)( + WINDOW *a1, + int a2, + int a3, +@@ -924,14 +926,14 @@ + { return(*(int *)0); } + + #undef mvwinch +-chtype mvwinch( ++chtype (mvwinch)( + WINDOW *a1, + int a2, + int z) + { return(*(chtype *)0); } + + #undef mvwinchnstr +-int mvwinchnstr( ++int (mvwinchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -940,7 +942,7 @@ + { return(*(int *)0); } + + #undef mvwinchstr +-int mvwinchstr( ++int (mvwinchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -948,7 +950,7 @@ + { return(*(int *)0); } + + #undef mvwinnstr +-int mvwinnstr( ++int (mvwinnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -957,7 +959,7 @@ + { return(*(int *)0); } + + #undef mvwinsch +-int mvwinsch( ++int (mvwinsch)( + WINDOW *a1, + int a2, + int a3, +@@ -965,7 +967,7 @@ + { return(*(int *)0); } + + #undef mvwinsnstr +-int mvwinsnstr( ++int (mvwinsnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -974,7 +976,7 @@ + { return(*(int *)0); } + + #undef mvwinsstr +-int mvwinsstr( ++int (mvwinsstr)( + WINDOW *a1, + int a2, + int a3, +@@ -982,7 +984,7 @@ + { return(*(int *)0); } + + #undef mvwinstr +-int mvwinstr( ++int (mvwinstr)( + WINDOW *a1, + int a2, + int a3, +@@ -990,7 +992,7 @@ + { return(*(int *)0); } + + #undef mvwvline +-int mvwvline( ++int (mvwvline)( + WINDOW *a1, + int a2, + int a3, +@@ -999,129 +1001,129 @@ + { return(*(int *)0); } + + #undef PAIR_NUMBER +-int PAIR_NUMBER( ++int (PAIR_NUMBER)( + int z) + { return(*(int *)0); } + + #undef redrawwin +-int redrawwin( ++int (redrawwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef refresh +-int refresh(void) ++int (refresh)(void) + { return(*(int *)0); } + + #undef scrl +-int scrl( ++int (scrl)( + int z) + { return(*(int *)0); } + + #undef scroll +-int scroll( ++int (scroll)( + WINDOW *z) + { return(*(int *)0); } + + #undef setscrreg +-int setscrreg( ++int (setscrreg)( + int a1, + int z) + { return(*(int *)0); } + + #undef slk_attr_off +-int slk_attr_off( ++int (slk_attr_off)( + const attr_t a1, + void *z) + { return(*(int *)0); } + + #undef slk_attr_on +-int slk_attr_on( ++int (slk_attr_on)( + attr_t a1, + void *z) + { return(*(int *)0); } + + #undef standout +-int standout(void) ++int (standout)(void) + { return(*(int *)0); } + + #undef standend +-int standend(void) ++int (standend)(void) + { return(*(int *)0); } + + #undef timeout +-void timeout( ++void (timeout)( + int z) + { /* void */ } + + #undef touchline +-int touchline( ++int (touchline)( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + + #undef touchwin +-int touchwin( ++int (touchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef untouchwin +-int untouchwin( ++int (untouchwin)( + WINDOW *z) + { return(*(int *)0); } + + #undef vline +-int vline( ++int (vline)( + chtype a1, + int z) + { return(*(int *)0); } + + #undef vw_printw +-int vw_printw( ++int (vw_printw)( + WINDOW *a1, + const char *a2, + va_list z) + { return(*(int *)0); } + + #undef vw_scanw +-int vw_scanw( ++int (vw_scanw)( + WINDOW *a1, + char *a2, + va_list z) + { return(*(int *)0); } + + #undef waddchstr +-int waddchstr( ++int (waddchstr)( + WINDOW *a1, + const chtype *z) + { return(*(int *)0); } + + #undef waddstr +-int waddstr( ++int (waddstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef wattron +-int wattron( ++int (wattron)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattroff +-int wattroff( ++int (wattroff)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattrset +-int wattrset( ++int (wattrset)( + WINDOW *a1, + int z) + { return(*(int *)0); } + + #undef wattr_get +-int wattr_get( ++int (wattr_get)( + WINDOW *a1, + attr_t *a2, + short *a3, +@@ -1129,7 +1131,7 @@ + { return(*(int *)0); } + + #undef wattr_set +-int wattr_set( ++int (wattr_set)( + WINDOW *a1, + attr_t a2, + short a3, +@@ -1137,205 +1139,205 @@ + { return(*(int *)0); } + + #undef wdeleteln +-int wdeleteln( ++int (wdeleteln)( + WINDOW *z) + { return(*(int *)0); } + + #undef wgetstr +-int wgetstr( ++int (wgetstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef winchstr +-int winchstr( ++int (winchstr)( + WINDOW *a1, + chtype *z) + { return(*(int *)0); } + + #undef winsertln +-int winsertln( ++int (winsertln)( + WINDOW *z) + { return(*(int *)0); } + + #undef winsstr +-int winsstr( ++int (winsstr)( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + + #undef winstr +-int winstr( ++int (winstr)( + WINDOW *a1, + char *z) + { return(*(int *)0); } + + #undef wstandout +-int wstandout( ++int (wstandout)( + WINDOW *z) + { return(*(int *)0); } + + #undef wstandend +-int wstandend( ++int (wstandend)( + WINDOW *z) + { return(*(int *)0); } + + #undef getattrs +-int getattrs( ++int (getattrs)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcurx +-int getcurx( ++int (getcurx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getcury +-int getcury( ++int (getcury)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegx +-int getbegx( ++int (getbegx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getbegy +-int getbegy( ++int (getbegy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxx +-int getmaxx( ++int (getmaxx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getmaxy +-int getmaxy( ++int (getmaxy)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getparx +-int getparx( ++int (getparx)( + const WINDOW *z) + { return(*(int *)0); } + + #undef getpary +-int getpary( ++int (getpary)( + const WINDOW *z) + { return(*(int *)0); } + + #undef wgetparent +-WINDOW *wgetparent( ++WINDOW *(wgetparent)( + const WINDOW *z) + { return(*(WINDOW **)0); } + + #undef is_cleared +-NCURSES_BOOL is_cleared( ++NCURSES_BOOL (is_cleared)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idcok +-NCURSES_BOOL is_idcok( ++NCURSES_BOOL (is_idcok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_idlok +-NCURSES_BOOL is_idlok( ++NCURSES_BOOL (is_idlok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_immedok +-NCURSES_BOOL is_immedok( ++NCURSES_BOOL (is_immedok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_keypad +-NCURSES_BOOL is_keypad( ++NCURSES_BOOL (is_keypad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_leaveok +-NCURSES_BOOL is_leaveok( ++NCURSES_BOOL (is_leaveok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_nodelay +-NCURSES_BOOL is_nodelay( ++NCURSES_BOOL (is_nodelay)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_notimeout +-NCURSES_BOOL is_notimeout( ++NCURSES_BOOL (is_notimeout)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_pad +-NCURSES_BOOL is_pad( ++NCURSES_BOOL (is_pad)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_scrollok +-NCURSES_BOOL is_scrollok( ++NCURSES_BOOL (is_scrollok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_subwin +-NCURSES_BOOL is_subwin( ++NCURSES_BOOL (is_subwin)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef is_syncok +-NCURSES_BOOL is_syncok( ++NCURSES_BOOL (is_syncok)( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + + #undef wgetscrreg +-int wgetscrreg( ++int (wgetscrreg)( + const WINDOW *a1, + int *a2, + int *z) + { return(*(int *)0); } + + #undef add_wch +-int add_wch( ++int (add_wch)( + const cchar_t *z) + { return(*(int *)0); } + + #undef add_wchnstr +-int add_wchnstr( ++int (add_wchnstr)( + const cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef add_wchstr +-int add_wchstr( ++int (add_wchstr)( + const cchar_t *z) + { return(*(int *)0); } + + #undef addnwstr +-int addnwstr( ++int (addnwstr)( + const wchar_t *a1, + int z) + { return(*(int *)0); } + + #undef addwstr +-int addwstr( ++int (addwstr)( + const wchar_t *z) + { return(*(int *)0); } + + #undef bkgrnd +-int bkgrnd( ++int (bkgrnd)( + const cchar_t *z) + { return(*(int *)0); } + + #undef bkgrndset +-void bkgrndset( ++void (bkgrndset)( + const cchar_t *z) + { /* void */ } + + #undef border_set +-int border_set( ++int (border_set)( + const cchar_t *a1, + const cchar_t *a2, + const cchar_t *a3, +@@ -1347,96 +1349,96 @@ + { return(*(int *)0); } + + #undef box_set +-int box_set( ++int (box_set)( + WINDOW *a1, + const cchar_t *a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef echo_wchar +-int echo_wchar( ++int (echo_wchar)( + const cchar_t *z) + { return(*(int *)0); } + + #undef get_wch +-int get_wch( ++int (get_wch)( + wint_t *z) + { return(*(int *)0); } + + #undef get_wstr +-int get_wstr( ++int (get_wstr)( + wint_t *z) + { return(*(int *)0); } + + #undef getbkgrnd +-int getbkgrnd( ++int (getbkgrnd)( + cchar_t *z) + { return(*(int *)0); } + + #undef getn_wstr +-int getn_wstr( ++int (getn_wstr)( + wint_t *a1, + int z) + { return(*(int *)0); } + + #undef hline_set +-int hline_set( ++int (hline_set)( + const cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef in_wch +-int in_wch( ++int (in_wch)( + cchar_t *z) + { return(*(int *)0); } + + #undef in_wchnstr +-int in_wchnstr( ++int (in_wchnstr)( + cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef in_wchstr +-int in_wchstr( ++int (in_wchstr)( + cchar_t *z) + { return(*(int *)0); } + + #undef innwstr +-int innwstr( ++int (innwstr)( + wchar_t *a1, + int z) + { return(*(int *)0); } + + #undef ins_nwstr +-int ins_nwstr( ++int (ins_nwstr)( + const wchar_t *a1, + int z) + { return(*(int *)0); } + + #undef ins_wch +-int ins_wch( ++int (ins_wch)( + const cchar_t *z) + { return(*(int *)0); } + + #undef ins_wstr +-int ins_wstr( ++int (ins_wstr)( + const wchar_t *z) + { return(*(int *)0); } + + #undef inwstr +-int inwstr( ++int (inwstr)( + wchar_t *z) + { return(*(int *)0); } + + #undef mvadd_wch +-int mvadd_wch( ++int (mvadd_wch)( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef mvadd_wchnstr +-int mvadd_wchnstr( ++int (mvadd_wchnstr)( + int a1, + int a2, + const cchar_t *a3, +@@ -1444,14 +1446,14 @@ + { return(*(int *)0); } + + #undef mvadd_wchstr +-int mvadd_wchstr( ++int (mvadd_wchstr)( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef mvaddnwstr +-int mvaddnwstr( ++int (mvaddnwstr)( + int a1, + int a2, + const wchar_t *a3, +@@ -1459,28 +1461,28 @@ + { return(*(int *)0); } + + #undef mvaddwstr +-int mvaddwstr( ++int (mvaddwstr)( + int a1, + int a2, + const wchar_t *z) + { return(*(int *)0); } + + #undef mvget_wch +-int mvget_wch( ++int (mvget_wch)( + int a1, + int a2, + wint_t *z) + { return(*(int *)0); } + + #undef mvget_wstr +-int mvget_wstr( ++int (mvget_wstr)( + int a1, + int a2, + wint_t *z) + { return(*(int *)0); } + + #undef mvgetn_wstr +-int mvgetn_wstr( ++int (mvgetn_wstr)( + int a1, + int a2, + wint_t *a3, +@@ -1488,7 +1490,7 @@ + { return(*(int *)0); } + + #undef mvhline_set +-int mvhline_set( ++int (mvhline_set)( + int a1, + int a2, + const cchar_t *a3, +@@ -1496,14 +1498,14 @@ + { return(*(int *)0); } + + #undef mvin_wch +-int mvin_wch( ++int (mvin_wch)( + int a1, + int a2, + cchar_t *z) + { return(*(int *)0); } + + #undef mvin_wchnstr +-int mvin_wchnstr( ++int (mvin_wchnstr)( + int a1, + int a2, + cchar_t *a3, +@@ -1511,14 +1513,14 @@ + { return(*(int *)0); } + + #undef mvin_wchstr +-int mvin_wchstr( ++int (mvin_wchstr)( + int a1, + int a2, + cchar_t *z) + { return(*(int *)0); } + + #undef mvinnwstr +-int mvinnwstr( ++int (mvinnwstr)( + int a1, + int a2, + wchar_t *a3, +@@ -1526,7 +1528,7 @@ + { return(*(int *)0); } + + #undef mvins_nwstr +-int mvins_nwstr( ++int (mvins_nwstr)( + int a1, + int a2, + const wchar_t *a3, +@@ -1534,28 +1536,28 @@ + { return(*(int *)0); } + + #undef mvins_wch +-int mvins_wch( ++int (mvins_wch)( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + + #undef mvins_wstr +-int mvins_wstr( ++int (mvins_wstr)( + int a1, + int a2, + const wchar_t *z) + { return(*(int *)0); } + + #undef mvinwstr +-int mvinwstr( ++int (mvinwstr)( + int a1, + int a2, + wchar_t *z) + { return(*(int *)0); } + + #undef mvvline_set +-int mvvline_set( ++int (mvvline_set)( + int a1, + int a2, + const cchar_t *a3, +@@ -1563,7 +1565,7 @@ + { return(*(int *)0); } + + #undef mvwadd_wch +-int mvwadd_wch( ++int (mvwadd_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1571,7 +1573,7 @@ + { return(*(int *)0); } + + #undef mvwadd_wchnstr +-int mvwadd_wchnstr( ++int (mvwadd_wchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1580,7 +1582,7 @@ + { return(*(int *)0); } + + #undef mvwadd_wchstr +-int mvwadd_wchstr( ++int (mvwadd_wchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1588,7 +1590,7 @@ + { return(*(int *)0); } + + #undef mvwaddnwstr +-int mvwaddnwstr( ++int (mvwaddnwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1597,7 +1599,7 @@ + { return(*(int *)0); } + + #undef mvwaddwstr +-int mvwaddwstr( ++int (mvwaddwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1605,7 +1607,7 @@ + { return(*(int *)0); } + + #undef mvwget_wch +-int mvwget_wch( ++int (mvwget_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1613,7 +1615,7 @@ + { return(*(int *)0); } + + #undef mvwget_wstr +-int mvwget_wstr( ++int (mvwget_wstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1621,7 +1623,7 @@ + { return(*(int *)0); } + + #undef mvwgetn_wstr +-int mvwgetn_wstr( ++int (mvwgetn_wstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1630,7 +1632,7 @@ + { return(*(int *)0); } + + #undef mvwhline_set +-int mvwhline_set( ++int (mvwhline_set)( + WINDOW *a1, + int a2, + int a3, +@@ -1639,7 +1641,7 @@ + { return(*(int *)0); } + + #undef mvwin_wch +-int mvwin_wch( ++int (mvwin_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1647,7 +1649,7 @@ + { return(*(int *)0); } + + #undef mvwin_wchnstr +-int mvwin_wchnstr( ++int (mvwin_wchnstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1656,7 +1658,7 @@ + { return(*(int *)0); } + + #undef mvwin_wchstr +-int mvwin_wchstr( ++int (mvwin_wchstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1664,7 +1666,7 @@ + { return(*(int *)0); } + + #undef mvwinnwstr +-int mvwinnwstr( ++int (mvwinnwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1673,7 +1675,7 @@ + { return(*(int *)0); } + + #undef mvwins_nwstr +-int mvwins_nwstr( ++int (mvwins_nwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1682,7 +1684,7 @@ + { return(*(int *)0); } + + #undef mvwins_wch +-int mvwins_wch( ++int (mvwins_wch)( + WINDOW *a1, + int a2, + int a3, +@@ -1690,7 +1692,7 @@ + { return(*(int *)0); } + + #undef mvwins_wstr +-int mvwins_wstr( ++int (mvwins_wstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1698,7 +1700,7 @@ + { return(*(int *)0); } + + #undef mvwinwstr +-int mvwinwstr( ++int (mvwinwstr)( + WINDOW *a1, + int a2, + int a3, +@@ -1706,7 +1708,7 @@ + { return(*(int *)0); } + + #undef mvwvline_set +-int mvwvline_set( ++int (mvwvline_set)( + WINDOW *a1, + int a2, + int a3, +@@ -1715,49 +1717,49 @@ + { return(*(int *)0); } + + #undef vline_set +-int vline_set( ++int (vline_set)( + const cchar_t *a1, + int z) + { return(*(int *)0); } + + #undef wadd_wchstr +-int wadd_wchstr( ++int (wadd_wchstr)( + WINDOW *a1, + const cchar_t *z) + { return(*(int *)0); } + + #undef waddwstr +-int waddwstr( ++int (waddwstr)( + WINDOW *a1, + const wchar_t *z) + { return(*(int *)0); } + + #undef wget_wstr +-int wget_wstr( ++int (wget_wstr)( + WINDOW *a1, + wint_t *z) + { return(*(int *)0); } + + #undef wgetbkgrnd +-int wgetbkgrnd( ++int (wgetbkgrnd)( + WINDOW *a1, + cchar_t *z) + { return(*(int *)0); } + + #undef win_wchstr +-int win_wchstr( ++int (win_wchstr)( + WINDOW *a1, + cchar_t *z) + { return(*(int *)0); } + + #undef wins_wstr +-int wins_wstr( ++int (wins_wstr)( + WINDOW *a1, + const wchar_t *z) + { return(*(int *)0); } + + #undef mouse_trafo +-NCURSES_BOOL mouse_trafo( ++NCURSES_BOOL (mouse_trafo)( + int *a1, + int *a2, + NCURSES_BOOL z) +@@ -2031,6 +2033,23 @@ + void _nc_mvcur_wrap(void) + { /* void */ } + ++#undef _nc_mvcur_sp ++int _nc_mvcur_sp( ++ SCREEN *sp, ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ ++#undef _nc_mvcur ++int _nc_mvcur( ++ int yold, ++ int xold, ++ int ynew, ++ int xnew) ++ { return(*(int *)0); } ++ + #undef mvcur_sp + int mvcur_sp( + SCREEN *sp, +@@ -2097,6 +2116,8 @@ + + /* ./base/lib_newwin.c */ + ++#include "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h" ++ + #undef _nc_freewin + int _nc_freewin( + WINDOW *win) +@@ -2440,8 +2461,8 @@ + void _nc_scroll_window( + WINDOW *win, + int const n, +- short const top, +- short const bottom, ++ int const top, ++ int const bottom, + cchar_t blank) + { /* void */ } + +@@ -2486,7 +2507,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -2495,7 +2516,7 @@ + int slines, + int scolumns, + FILE *output, +- NCURSES_BOOL filtered, ++ int filtered, + int slk_format) + { return(*(int *)0); } + +@@ -2777,7 +2798,7 @@ + + #undef _nc_signal_handler + void _nc_signal_handler( +- NCURSES_BOOL enable) ++ int enable) + { /* void */ } + + /* ./base/lib_ungetch.c */ +@@ -3014,12 +3035,6 @@ + va_list ap) + { return(*(char **)0); } + +-/* ./base/memmove.c */ +- +-#undef _nc_memmove +-void _nc_memmove(void) +- { /* void */ } +- + /* ./base/vsscanf.c */ + + #undef _nc_vsscanf +@@ -3554,7 +3569,7 @@ + #undef _nc_copy_termtype + void _nc_copy_termtype( + TERMTYPE *dst, +- TERMTYPE *src) ++ const TERMTYPE *src) + { /* void */ } + + /* ./codes.c */ +@@ -3653,6 +3668,8 @@ + + /* ./tinfo/db_iterator.c */ + ++#include <time.h> ++ + #undef _nc_tic_dir + const char *_nc_tic_dir( + const char *path) +@@ -3744,6 +3761,12 @@ + const char *name) + { return(*(int *)0); } + ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ + /* ./tinfo/home_terminfo.c */ + + #undef _nc_home_terminfo +@@ -3929,8 +3952,6 @@ + + /* ./tinfo/lib_napms.c */ + +-#include <time.h> +- + #undef napms_sp + int napms_sp( + SCREEN *sp, +@@ -4040,7 +4061,7 @@ + #undef _nc_keypad + int _nc_keypad( + SCREEN *sp, +- NCURSES_BOOL flag) ++ int flag) + { return(*(int *)0); } + + /* ./tinfo/lib_raw.c */ +@@ -4149,11 +4170,22 @@ + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef use_env + void use_env( + NCURSES_BOOL f) + { /* void */ } + ++#undef use_tioctl ++void use_tioctl( ++ NCURSES_BOOL f) ++ { /* void */ } ++ + #undef _nc_get_screensize + void _nc_get_screensize( + SCREEN *sp, +@@ -4175,7 +4207,7 @@ + #undef _nc_tinfo_cmdch + void _nc_tinfo_cmdch( + TERMINAL *termp, +- char proto) ++ int proto) + { /* void */ } + + #undef _nc_get_locale +@@ -4196,7 +4228,7 @@ + char *tname, + int Filedes, + int *errret, +- NCURSES_BOOL reuse) ++ int reuse) + { return(*(int *)0); } + + #undef new_prescr +@@ -4335,7 +4367,7 @@ + int _nc_tparm_analyze( + const char *string, + char *p_is_s[9], +- int *popcount) ++ int *_nc_popcount) + { return(*(int *)0); } + + #undef tparm +@@ -4355,7 +4387,7 @@ + #undef PC + char PC; + #undef ospeed +-NCURSES_OSPEED ospeed; ++short ospeed; + #undef _nc_nulls_sent + int _nc_nulls_sent; + +@@ -4395,12 +4427,28 @@ + int ch) + { return(*(int *)0); } + ++#undef _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ + #undef putp_sp + int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + ++#undef putp ++int putp( ++ const char *string) ++ { return(*(int *)0); } ++ + #undef _nc_putp_sp + int _nc_putp_sp( + SCREEN *sp, +@@ -4408,11 +4456,6 @@ + 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, +@@ -4463,12 +4506,12 @@ + + #undef _nc_retrace_bool + NCURSES_BOOL _nc_retrace_bool( +- NCURSES_BOOL code) ++ int code) + { return(*(NCURSES_BOOL *)0); } + + #undef _nc_retrace_char + char _nc_retrace_char( +- char code) ++ int code) + { return(*(char *)0); } + + #undef _nc_retrace_int +@@ -4713,10 +4756,30 @@ + #undef strfnames + char *const strfnames[] = {0}; + ++/* ./tinfo/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ + /* ./tinfo/read_entry.c */ + + #include <hashed_db.h> + ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ + #undef _nc_read_termtype + int _nc_read_termtype( + TERMTYPE *ptr, +@@ -4741,25 +4804,8 @@ + + #include <sys/types.h> + +-#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) ++#undef _nc_read_termcap ++void _nc_read_termcap(void) + { /* void */ } + + /* ./tinfo/strings.c */ +@@ -5007,6 +5053,8 @@ + + #undef _nc_syntax + int _nc_syntax; ++#undef _nc_strict_bsd ++int _nc_strict_bsd; + #undef _nc_curr_file_pos + long _nc_curr_file_pos; + #undef _nc_comment_start +diff -Naur ncurses-5.9/ncurses/llib-ltic ncurses-5.9.patch/ncurses/llib-ltic +--- ncurses-5.9/ncurses/llib-ltic 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltic 2014-09-01 16:33:22.417792224 +0200 +@@ -0,0 +1,212 @@ ++/**************************************************************************** ++ * Copyright (c) 2012 Free 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 2012 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/alloc_entry.c */ ++ ++#include <curses.priv.h> ++#include <tic.h> ++ ++#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 */ ++ ++#include <ctype.h> ++ ++#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); } ++ ++/* ./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_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_strict_bsd ++int _nc_strict_bsd; ++#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 */ ++ ++#include <hashed_db.h> ++ ++#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); } +diff -Naur ncurses-5.9/ncurses/llib-ltict ncurses-5.9.patch/ncurses/llib-ltict +--- ncurses-5.9/ncurses/llib-ltict 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltict 2014-09-01 16:33:22.417792224 +0200 +@@ -0,0 +1,212 @@ ++/**************************************************************************** ++ * Copyright (c) 2013 Free 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 2013 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/alloc_entry.c */ ++ ++#include <curses.priv.h> ++#include <tic.h> ++ ++#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 */ ++ ++#include <ctype.h> ++ ++#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); } ++ ++/* ./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_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_strict_bsd ++int _nc_strict_bsd; ++#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 */ ++ ++#include <hashed_db.h> ++ ++#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); } +diff -Naur ncurses-5.9/ncurses/llib-ltictw ncurses-5.9.patch/ncurses/llib-ltictw +--- ncurses-5.9/ncurses/llib-ltictw 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltictw 2014-09-01 16:33:22.417792224 +0200 +@@ -0,0 +1,212 @@ ++/**************************************************************************** ++ * Copyright (c) 2012 Free 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 2012 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/alloc_entry.c */ ++ ++#include <curses.priv.h> ++#include <tic.h> ++ ++#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 */ ++ ++#include <ctype.h> ++ ++#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); } ++ ++/* ./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_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_strict_bsd ++int _nc_strict_bsd; ++#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 */ ++ ++#include <hashed_db.h> ++ ++#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); } +diff -Naur ncurses-5.9/ncurses/llib-lticw ncurses-5.9.patch/ncurses/llib-lticw +--- ncurses-5.9/ncurses/llib-lticw 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-lticw 2014-09-01 16:33:22.417792224 +0200 +@@ -0,0 +1,212 @@ ++/**************************************************************************** ++ * Copyright (c) 2012 Free 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 2012 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/alloc_entry.c */ ++ ++#include <curses.priv.h> ++#include <tic.h> ++ ++#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 */ ++ ++#include <ctype.h> ++ ++#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); } ++ ++/* ./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_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_strict_bsd ++int _nc_strict_bsd; ++#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 */ ++ ++#include <hashed_db.h> ++ ++#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); } +diff -Naur ncurses-5.9/ncurses/llib-ltinfo ncurses-5.9.patch/ncurses/llib-ltinfo +--- ncurses-5.9/ncurses/llib-ltinfo 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltinfo 2014-09-01 16:33:22.418792225 +0200 +@@ -0,0 +1,1526 @@ ++/**************************************************************************** ++ * Copyright (c) 2012,2013 Free 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 2012 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/access.c */ ++ ++#include <curses.priv.h> ++#include <ctype.h> ++#include <tic.h> ++ ++#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, ++ const TERMTYPE *src) ++ { /* void */ } ++ ++/* ./codes.c */ ++ ++#undef boolcodes ++char *const boolcodes[] = {0}; ++#undef numcodes ++char *const numcodes[] = {0}; ++#undef strcodes ++char *const strcodes[] = {0}; ++ ++/* ./comp_captab.c */ ++ ++#include <hashsize.h> ++ ++#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 HashValue *_nc_get_hash_table( ++ NCURSES_BOOL termcap) ++ { return(*(const HashValue **)0); } ++ ++#undef _nc_get_alias_table ++const struct alias *_nc_get_alias_table( ++ NCURSES_BOOL termcap) ++ { return(*(const struct alias **)0); } ++ ++#undef _nc_get_hash_info ++const HashData *_nc_get_hash_info( ++ NCURSES_BOOL termcap) ++ { return(*(const HashData **)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/comp_hash.c */ ++ ++#undef _nc_find_entry ++struct name_table_entry const *_nc_find_entry( ++ const char *string, ++ const HashValue *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, ++ NCURSES_BOOL termcap) ++ { return(*(struct name_table_entry const **)0); } ++ ++/* ./tinfo/db_iterator.c */ ++ ++#include <time.h> ++ ++#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); } ++ ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ ++/* ./tinfo/home_terminfo.c */ ++ ++#undef _nc_home_terminfo ++char *_nc_home_terminfo(void) ++ { return(*(char **)0); } ++ ++/* ./tinfo/init_keytry.c */ ++ ++#if 0 ++ ++#include <init_keytry.h> ++ ++#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 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 */ } ++ ++/* ./tinfo/lib_baudrate.c */ ++ ++#include <termcap.h> ++ ++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 cur_term ++TERMINAL *cur_term; ++ ++#undef set_curterm_sp ++TERMINAL *set_curterm_sp( ++ SCREEN *sp, ++ TERMINAL *termp) ++ { 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 stdscr ++WINDOW *stdscr; ++#undef curscr ++WINDOW *curscr; ++#undef newscr ++WINDOW *newscr; ++#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); } ++ ++/* ./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 ++char *longname(void) ++ { return(*(char **)0); } ++ ++/* ./tinfo/lib_napms.c */ ++ ++#include <sys/time.h> ++ ++#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_keypad ++int _nc_keypad( ++ SCREEN *sp, ++ int 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 <locale.h> ++#include <sys/ioctl.h> ++#include <langinfo.h> ++ ++#undef ttytype ++char ttytype[256]; ++#undef LINES ++int LINES; ++#undef COLS ++int COLS; ++#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) ++ { 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_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_env ++void use_env( ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_tioctl ++void use_tioctl( ++ 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_setup_tinfo ++int _nc_setup_tinfo( ++ const char *const tn, ++ TERMTYPE *const tp) ++ { return(*(int *)0); } ++ ++#undef _nc_tinfo_cmdch ++void _nc_tinfo_cmdch( ++ TERMINAL *termp, ++ int proto) ++ { /* 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, ++ int reuse) ++ { return(*(int *)0); } ++ ++#undef new_prescr ++SCREEN *new_prescr(void) ++ { return(*(SCREEN **)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 <capdefaults.c> ++ ++#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 *_nc_popcount) ++ { return(*(int *)0); } ++ ++#undef tparm ++char *tparm( ++ char *string, ++ ...) ++ { return(*(char **)0); } ++ ++#undef tiparm ++char *tiparm( ++ const char *string, ++ ...) ++ { return(*(char **)0); } ++ ++/* ./tinfo/lib_tputs.c */ ++ ++#undef PC ++char PC; ++#undef ospeed ++short 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 _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ ++#undef putp_sp ++int putp_sp( ++ SCREEN *sp, ++ const char *string) ++ { return(*(int *)0); } ++ ++#undef putp ++int putp( ++ 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 _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_tputs_trace ++const char *_nc_tputs_trace = {0}; ++#undef _nc_outchars ++long _nc_outchars; ++ ++#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( ++ int code) ++ { return(*(NCURSES_BOOL *)0); } ++ ++#undef _nc_retrace_char ++char _nc_retrace_char( ++ int code) ++ { return(*(char *)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); } ++ ++/* ./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_int_attr_t ++int _nc_retrace_int_attr_t( ++ attr_t code) ++ { return(*(int *)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); } ++ ++/* ./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 boolnames ++char *const boolnames[] = {0}; ++#undef boolfnames ++char *const boolfnames[] = {0}; ++#undef numnames ++char *const numnames[] = {0}; ++#undef numfnames ++char *const numfnames[] = {0}; ++#undef strnames ++char *const strnames[] = {0}; ++#undef strfnames ++char *const strfnames[] = {0}; ++ ++/* ./tinfo/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++/* ./tinfo/read_entry.c */ ++ ++#include <hashed_db.h> ++ ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ ++#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 <sys/types.h> ++ ++#undef _nc_read_termcap ++void _nc_read_termcap(void) ++ { /* 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_viscbuf2 ++const char *_nc_viscbuf2( ++ int bufnum, ++ const chtype *buf, ++ int len) ++ { return(*(const char **)0); } ++ ++#undef _nc_viscbuf ++const char *_nc_viscbuf( ++ const chtype *buf, ++ int len) ++ { return(*(const char **)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.9/ncurses/llib-ltinfot ncurses-5.9.patch/ncurses/llib-ltinfot +--- ncurses-5.9/ncurses/llib-ltinfot 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltinfot 2014-09-01 16:33:22.418792225 +0200 +@@ -0,0 +1,1635 @@ ++/**************************************************************************** ++ * Copyright (c) 2013 Free 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 2013 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/access.c */ ++ ++#include <curses.priv.h> ++#include <ctype.h> ++#include <tic.h> ++ ++#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, ++ const 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); } ++ ++/* ./comp_captab.c */ ++ ++#include <hashsize.h> ++ ++#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 HashValue *_nc_get_hash_table( ++ NCURSES_BOOL termcap) ++ { return(*(const HashValue **)0); } ++ ++#undef _nc_get_alias_table ++const struct alias *_nc_get_alias_table( ++ NCURSES_BOOL termcap) ++ { return(*(const struct alias **)0); } ++ ++#undef _nc_get_hash_info ++const HashData *_nc_get_hash_info( ++ NCURSES_BOOL termcap) ++ { return(*(const HashData **)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/comp_hash.c */ ++ ++#undef _nc_find_entry ++struct name_table_entry const *_nc_find_entry( ++ const char *string, ++ const HashValue *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, ++ NCURSES_BOOL termcap) ++ { return(*(struct name_table_entry const **)0); } ++ ++/* ./tinfo/db_iterator.c */ ++ ++#include <time.h> ++ ++#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); } ++ ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ ++/* ./tinfo/home_terminfo.c */ ++ ++#undef _nc_home_terminfo ++char *_nc_home_terminfo(void) ++ { return(*(char **)0); } ++ ++/* ./tinfo/init_keytry.c */ ++ ++#if 0 ++ ++#include <init_keytry.h> ++ ++#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 <termcap.h> ++ ++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_get_cur_term_sp ++TERMINAL *_nc_get_cur_term_sp( ++ SCREEN *sp) ++ { return(*(TERMINAL **)0); } ++ ++#undef _nc_get_cur_term ++TERMINAL *_nc_get_cur_term(void) ++ { return(*(TERMINAL **)0); } ++ ++#undef _nc_cur_term ++TERMINAL *_nc_cur_term(void) ++ { return(*(TERMINAL **)0); } ++ ++#undef set_curterm_sp ++TERMINAL *set_curterm_sp( ++ SCREEN *sp, ++ TERMINAL *termp) ++ { 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_keypad ++int _nc_keypad( ++ SCREEN *sp, ++ int 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 <locale.h> ++#include <sys/ioctl.h> ++#include <langinfo.h> ++ ++#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_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_env ++void use_env( ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_tioctl ++void use_tioctl( ++ 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_setup_tinfo ++int _nc_setup_tinfo( ++ const char *const tn, ++ TERMTYPE *const tp) ++ { return(*(int *)0); } ++ ++#undef _nc_tinfo_cmdch ++void _nc_tinfo_cmdch( ++ TERMINAL *termp, ++ int proto) ++ { /* 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, ++ int reuse) ++ { return(*(int *)0); } ++ ++#undef new_prescr ++SCREEN *new_prescr(void) ++ { return(*(SCREEN **)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 <capdefaults.c> ++ ++#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 *_nc_popcount) ++ { return(*(int *)0); } ++ ++#undef tparm ++char *tparm( ++ char *string, ++ ...) ++ { return(*(char **)0); } ++ ++#undef tiparm ++char *tiparm( ++ const char *string, ++ ...) ++ { return(*(char **)0); } ++ ++/* ./tinfo/lib_tputs.c */ ++ ++#undef PC ++char PC; ++#undef ospeed ++short 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 _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ ++#undef putp_sp ++int putp_sp( ++ SCREEN *sp, ++ const char *string) ++ { return(*(int *)0); } ++ ++#undef putp ++int putp( ++ 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 _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( ++ int code) ++ { return(*(NCURSES_BOOL *)0); } ++ ++#undef _nc_retrace_char ++char _nc_retrace_char( ++ int code) ++ { return(*(char *)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_int_attr_t ++int _nc_retrace_int_attr_t( ++ attr_t code) ++ { return(*(int *)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); } ++ ++/* ./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 */ ++ ++#include <sys/time.h> ++ ++#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/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++/* ./tinfo/read_entry.c */ ++ ++#include <hashed_db.h> ++ ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ ++#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 <sys/types.h> ++ ++#undef _nc_read_termcap ++void _nc_read_termcap(void) ++ { /* 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_viscbuf2 ++const char *_nc_viscbuf2( ++ int bufnum, ++ const chtype *buf, ++ int len) ++ { return(*(const char **)0); } ++ ++#undef _nc_viscbuf ++const char *_nc_viscbuf( ++ const chtype *buf, ++ int len) ++ { return(*(const char **)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.9/ncurses/llib-ltinfotw ncurses-5.9.patch/ncurses/llib-ltinfotw +--- ncurses-5.9/ncurses/llib-ltinfotw 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltinfotw 2014-09-01 16:33:22.418792225 +0200 +@@ -0,0 +1,1668 @@ ++/**************************************************************************** ++ * Copyright (c) 2012,2013 Free 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 2012 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/access.c */ ++ ++#include <curses.priv.h> ++#include <ctype.h> ++#include <tic.h> ++ ++#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, ++ const 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); } ++ ++/* ./comp_captab.c */ ++ ++#include <hashsize.h> ++ ++#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 HashValue *_nc_get_hash_table( ++ NCURSES_BOOL termcap) ++ { return(*(const HashValue **)0); } ++ ++#undef _nc_get_alias_table ++const struct alias *_nc_get_alias_table( ++ NCURSES_BOOL termcap) ++ { return(*(const struct alias **)0); } ++ ++#undef _nc_get_hash_info ++const HashData *_nc_get_hash_info( ++ NCURSES_BOOL termcap) ++ { return(*(const HashData **)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/comp_hash.c */ ++ ++#undef _nc_find_entry ++struct name_table_entry const *_nc_find_entry( ++ const char *string, ++ const HashValue *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, ++ NCURSES_BOOL termcap) ++ { return(*(struct name_table_entry const **)0); } ++ ++/* ./tinfo/db_iterator.c */ ++ ++#include <time.h> ++ ++#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); } ++ ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ ++/* ./tinfo/home_terminfo.c */ ++ ++#undef _nc_home_terminfo ++char *_nc_home_terminfo(void) ++ { return(*(char **)0); } ++ ++/* ./tinfo/init_keytry.c */ ++ ++#if 0 ++ ++#include <init_keytry.h> ++ ++#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 <termcap.h> ++ ++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_get_cur_term_sp ++TERMINAL *_nc_get_cur_term_sp( ++ SCREEN *sp) ++ { return(*(TERMINAL **)0); } ++ ++#undef _nc_get_cur_term ++TERMINAL *_nc_get_cur_term(void) ++ { return(*(TERMINAL **)0); } ++ ++#undef _nc_cur_term ++TERMINAL *_nc_cur_term(void) ++ { return(*(TERMINAL **)0); } ++ ++#undef set_curterm_sp ++TERMINAL *set_curterm_sp( ++ SCREEN *sp, ++ TERMINAL *termp) ++ { 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_keypad ++int _nc_keypad( ++ SCREEN *sp, ++ int 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 <locale.h> ++#include <sys/ioctl.h> ++#include <langinfo.h> ++ ++#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_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_env ++void use_env( ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_tioctl ++void use_tioctl( ++ 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_setup_tinfo ++int _nc_setup_tinfo( ++ const char *const tn, ++ TERMTYPE *const tp) ++ { return(*(int *)0); } ++ ++#undef _nc_tinfo_cmdch ++void _nc_tinfo_cmdch( ++ TERMINAL *termp, ++ int proto) ++ { /* 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, ++ int reuse) ++ { return(*(int *)0); } ++ ++#undef new_prescr ++SCREEN *new_prescr(void) ++ { return(*(SCREEN **)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 <capdefaults.c> ++ ++#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 *_nc_popcount) ++ { return(*(int *)0); } ++ ++#undef tparm ++char *tparm( ++ char *string, ++ ...) ++ { return(*(char **)0); } ++ ++#undef tiparm ++char *tiparm( ++ const char *string, ++ ...) ++ { return(*(char **)0); } ++ ++/* ./tinfo/lib_tputs.c */ ++ ++#undef PC ++char PC; ++#undef ospeed ++short 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 _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ ++#undef putp_sp ++int putp_sp( ++ SCREEN *sp, ++ const char *string) ++ { return(*(int *)0); } ++ ++#undef putp ++int putp( ++ 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 _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( ++ int code) ++ { return(*(NCURSES_BOOL *)0); } ++ ++#undef _nc_retrace_char ++char _nc_retrace_char( ++ int code) ++ { return(*(char *)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_int_attr_t ++int _nc_retrace_int_attr_t( ++ attr_t code) ++ { return(*(int *)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 */ ++ ++#include <sys/time.h> ++ ++#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/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++/* ./tinfo/read_entry.c */ ++ ++#include <hashed_db.h> ++ ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ ++#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 <sys/types.h> ++ ++#undef _nc_read_termcap ++void _nc_read_termcap(void) ++ { /* 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); } ++ ++/* ./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.9/ncurses/llib-ltinfow ncurses-5.9.patch/ncurses/llib-ltinfow +--- ncurses-5.9/ncurses/llib-ltinfow 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/llib-ltinfow 2014-09-01 16:33:22.419792227 +0200 +@@ -0,0 +1,1559 @@ ++/**************************************************************************** ++ * Copyright (c) 2012,2013 Free 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 2012 * ++ ****************************************************************************/ ++/* LINTLIBRARY */ ++ ++/* ./tinfo/access.c */ ++ ++#include <curses.priv.h> ++#include <ctype.h> ++#include <tic.h> ++ ++#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, ++ const TERMTYPE *src) ++ { /* void */ } ++ ++/* ./codes.c */ ++ ++#undef boolcodes ++char *const boolcodes[] = {0}; ++#undef numcodes ++char *const numcodes[] = {0}; ++#undef strcodes ++char *const strcodes[] = {0}; ++ ++/* ./comp_captab.c */ ++ ++#include <hashsize.h> ++ ++#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 HashValue *_nc_get_hash_table( ++ NCURSES_BOOL termcap) ++ { return(*(const HashValue **)0); } ++ ++#undef _nc_get_alias_table ++const struct alias *_nc_get_alias_table( ++ NCURSES_BOOL termcap) ++ { return(*(const struct alias **)0); } ++ ++#undef _nc_get_hash_info ++const HashData *_nc_get_hash_info( ++ NCURSES_BOOL termcap) ++ { return(*(const HashData **)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/comp_hash.c */ ++ ++#undef _nc_find_entry ++struct name_table_entry const *_nc_find_entry( ++ const char *string, ++ const HashValue *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, ++ NCURSES_BOOL termcap) ++ { return(*(struct name_table_entry const **)0); } ++ ++/* ./tinfo/db_iterator.c */ ++ ++#include <time.h> ++ ++#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); } ++ ++#undef _nc_setenv_num ++void _nc_setenv_num( ++ const char *name, ++ int value) ++ { /* void */ } ++ ++/* ./tinfo/home_terminfo.c */ ++ ++#undef _nc_home_terminfo ++char *_nc_home_terminfo(void) ++ { return(*(char **)0); } ++ ++/* ./tinfo/init_keytry.c */ ++ ++#if 0 ++ ++#include <init_keytry.h> ++ ++#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 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 */ } ++ ++/* ./tinfo/lib_baudrate.c */ ++ ++#include <termcap.h> ++ ++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 cur_term ++TERMINAL *cur_term; ++ ++#undef set_curterm_sp ++TERMINAL *set_curterm_sp( ++ SCREEN *sp, ++ TERMINAL *termp) ++ { 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 stdscr ++WINDOW *stdscr; ++#undef curscr ++WINDOW *curscr; ++#undef newscr ++WINDOW *newscr; ++#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); } ++ ++/* ./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 ++char *longname(void) ++ { return(*(char **)0); } ++ ++/* ./tinfo/lib_napms.c */ ++ ++#include <sys/time.h> ++ ++#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_keypad ++int _nc_keypad( ++ SCREEN *sp, ++ int 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 <locale.h> ++#include <sys/ioctl.h> ++#include <langinfo.h> ++ ++#undef ttytype ++char ttytype[256]; ++#undef LINES ++int LINES; ++#undef COLS ++int COLS; ++#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) ++ { 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_tioctl_sp ++void use_tioctl_sp( ++ SCREEN *sp, ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_env ++void use_env( ++ NCURSES_BOOL f) ++ { /* void */ } ++ ++#undef use_tioctl ++void use_tioctl( ++ 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_setup_tinfo ++int _nc_setup_tinfo( ++ const char *const tn, ++ TERMTYPE *const tp) ++ { return(*(int *)0); } ++ ++#undef _nc_tinfo_cmdch ++void _nc_tinfo_cmdch( ++ TERMINAL *termp, ++ int proto) ++ { /* 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, ++ int reuse) ++ { return(*(int *)0); } ++ ++#undef new_prescr ++SCREEN *new_prescr(void) ++ { return(*(SCREEN **)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 <capdefaults.c> ++ ++#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 *_nc_popcount) ++ { return(*(int *)0); } ++ ++#undef tparm ++char *tparm( ++ char *string, ++ ...) ++ { return(*(char **)0); } ++ ++#undef tiparm ++char *tiparm( ++ const char *string, ++ ...) ++ { return(*(char **)0); } ++ ++/* ./tinfo/lib_tputs.c */ ++ ++#undef PC ++char PC; ++#undef ospeed ++short 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 _nc_putchar_sp ++int _nc_putchar_sp( ++ SCREEN *sp, ++ int ch) ++ { return(*(int *)0); } ++ ++#undef _nc_putchar ++int _nc_putchar( ++ int ch) ++ { return(*(int *)0); } ++ ++#undef putp_sp ++int putp_sp( ++ SCREEN *sp, ++ const char *string) ++ { return(*(int *)0); } ++ ++#undef putp ++int putp( ++ 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 _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_tputs_trace ++const char *_nc_tputs_trace = {0}; ++#undef _nc_outchars ++long _nc_outchars; ++ ++#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( ++ int code) ++ { return(*(NCURSES_BOOL *)0); } ++ ++#undef _nc_retrace_char ++char _nc_retrace_char( ++ int code) ++ { return(*(char *)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); } ++ ++/* ./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_int_attr_t ++int _nc_retrace_int_attr_t( ++ attr_t code) ++ { return(*(int *)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 boolnames ++char *const boolnames[] = {0}; ++#undef boolfnames ++char *const boolfnames[] = {0}; ++#undef numnames ++char *const numnames[] = {0}; ++#undef numfnames ++char *const numfnames[] = {0}; ++#undef strnames ++char *const strnames[] = {0}; ++#undef strfnames ++char *const strfnames[] = {0}; ++ ++/* ./tinfo/obsolete.c */ ++ ++#undef _nc_set_buffer_sp ++void _nc_set_buffer_sp( ++ SCREEN *sp, ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++#undef _nc_set_buffer ++void _nc_set_buffer( ++ FILE *ofp, ++ int buffered) ++ { /* void */ } ++ ++/* ./tinfo/read_entry.c */ ++ ++#include <hashed_db.h> ++ ++#undef _nc_init_termtype ++void _nc_init_termtype( ++ TERMTYPE *const tp) ++ { /* void */ } ++ ++#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 <sys/types.h> ++ ++#undef _nc_read_termcap ++void _nc_read_termcap(void) ++ { /* 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); } ++ ++/* ./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.9/ncurses/Makefile.in ncurses-5.9.patch/ncurses/Makefile.in +--- ncurses-5.9/ncurses/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/Makefile.in 2014-09-01 16:33:22.369792144 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.130 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.139 2013/08/04 20:20:45 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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,7 +64,11 @@ + bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++datarootdir = @datarootdir@ + datadir = @datadir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -84,6 +88,7 @@ + AWK = @AWK@ + LD = @LD@ + LN_S = @LN_S@ ++NM = @NM@ + + CTAGS = @CTAGS@ + ETAGS = @ETAGS@ +@@ -107,7 +112,7 @@ + # is compiled into the build, or are test-programs that are not installed. + + BUILD_EXEEXT = @BUILD_EXEEXT@ +-x = @PROG_EXT@ ++x = @EXEEXT@ + + CFLAGS_LIBTOOL = $(CCFLAGS) + CFLAGS_NORMAL = $(CCFLAGS) +@@ -125,6 +130,7 @@ + TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@ + TICS_LIST = $(SHLIB_DIRS) @TICS_LIST@ + ++RPATH_LIST = @RPATH_LIST@ + MK_SHARED_LIB = @MK_SHARED_LIB@ + + NCURSES_MAJOR = @NCURSES_MAJOR@ +@@ -134,7 +140,7 @@ + + RANLIB = @LIB_PREP@ + +-LIBRARIES = @LIBS_TO_MAKE@ ++LIBRARIES = @Libs_To_Make@ + + LINT = @LINT@ + LINT_OPTS = @LINT_OPTS@ +@@ -254,6 +260,9 @@ + @MAKE_UPPER_TAGS@TAGS: + @MAKE_UPPER_TAGS@ $(ETAGS) *.[ch] */*.[ch] + ++ncurses.map : $(LIBRARIES) ++ $(NM) -p $(LIBRARIES) >$@ ++ + mostlyclean :: + -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace + -rm -f $(TEST_PROGS) +@@ -262,7 +271,7 @@ + -rm -f $(AUTO_SRC) + -rm -f make_keys$(BUILD_EXEEXT) + -rm -f make_hash$(BUILD_EXEEXT) +- -rm -rf .libs ++ -rm -rf .libs *.dSYM *.map + + distclean :: clean + -rm -f Makefile +@@ -282,21 +291,21 @@ + sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@ + + captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS) +- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS) ++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS) + + hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS) +- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS) ++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS) + + hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS) +- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS) ++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS) + + lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \ + ../@DFT_OBJ_SUBDIR@/dump_entry$o +- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS) ++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS) + + link_test$x : ./link_test.c $(TEST_DEPS) \ + ../@DFT_OBJ_SUBDIR@/link_test$o +- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS) ++ @ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS) + + ../@DFT_OBJ_SUBDIR@/dump_entry$o: + cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry$o +diff -Naur ncurses-5.9/ncurses/modules ncurses-5.9.patch/ncurses/modules +--- ncurses-5.9/ncurses/modules 2010-08-07 20:41:02.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/modules 2014-09-01 16:33:22.419792227 +0200 +@@ -1,6 +1,6 @@ +-# $Id: modules,v 1.117 2010/08/07 18:41:02 tom Exp $ ++# $Id: modules,v 1.120 2013/01/26 22:17:55 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -115,7 +115,6 @@ + varargs lib $(trace) $(HEADER_DEPS) + + # Modules for porting +-memmove lib $(base) $(HEADER_DEPS) + vsscanf lib $(base) $(HEADER_DEPS) + + # actually an extension, but with its own configure option (--disable-leaks) +@@ -199,9 +198,9 @@ + lib_twait lib $(serial) $(HEADER_DEPS) + name_match lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h + names lib . $(HEADER_DEPS) ++obsolete lib $(tinfo) $(HEADER_DEPS) + read_entry lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h $(INCDIR)/hashed_db.h + read_termcap lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h +-setbuf lib $(tinfo) $(HEADER_DEPS) + strings lib $(tinfo) $(HEADER_DEPS) + trace_buf lib $(trace) $(HEADER_DEPS) + trace_tries lib $(trace) $(HEADER_DEPS) +@@ -236,6 +235,7 @@ + @ port_win32con + gettimeofday lib $(win32con) $(HEADER_DEPS) + wcwidth lib $(win32con) $(HEADER_DEPS) ++widechars lib $(wide) $(HEADER_DEPS) + win_driver lib $(win32con) $(HEADER_DEPS) + + @ port_tinfo +diff -Naur ncurses-5.9/ncurses/tinfo/access.c ncurses-5.9.patch/ncurses/tinfo/access.c +--- ncurses-5.9/ncurses/tinfo/access.c 2010-01-23 18:57:43.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/access.c 2014-09-01 16:33:22.419792227 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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,11 +33,18 @@ + #include <curses.priv.h> + + #include <ctype.h> +-#include <sys/stat.h> + + #include <tic.h> + +-MODULE_ID("$Id: access.c,v 1.16 2010/01/23 17:57:43 tom Exp $") ++MODULE_ID("$Id: access.c,v 1.23 2012/09/01 19:21:29 tom Exp $") ++ ++#ifdef __TANDEM ++#define ROOT_UID 65535 ++#endif ++ ++#ifndef ROOT_UID ++#define ROOT_UID 0 ++#endif + + #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c)) + +@@ -53,7 +60,7 @@ + result = temp; + #if !MIXEDCASE_FILENAMES + for (s = result; *s != '\0'; ++s) { +- *s = LOWERCASE(*s); ++ *s = (char) LOWERCASE(*s); + } + #endif + #if defined(PROG_EXT) +@@ -108,24 +115,33 @@ + NCURSES_EXPORT(int) + _nc_access(const char *path, int mode) + { +- if (access(path, mode) < 0) { ++ int result; ++ ++ if (path == 0) { ++ result = -1; ++ } else if (access(path, mode) < 0) { + if ((mode & W_OK) != 0 + && errno == ENOENT + && strlen(path) < PATH_MAX) { + char head[PATH_MAX]; +- char *leaf = _nc_basename(strcpy(head, path)); ++ char *leaf; + ++ _nc_STRCPY(head, path, sizeof(head)); ++ leaf = _nc_basename(head); + if (leaf == 0) + leaf = head; + *leaf = '\0'; + if (head == leaf) +- (void) strcpy(head, "."); ++ _nc_STRCPY(head, ".", sizeof(head)); + +- return access(head, R_OK | W_OK | X_OK); ++ result = access(head, R_OK | W_OK | X_OK); ++ } else { ++ result = -1; + } +- return -1; ++ } else { ++ result = 0; + } +- return 0; ++ return result; + } + + NCURSES_EXPORT(bool) +@@ -135,7 +151,7 @@ + struct stat sb; + + if (stat(path, &sb) == 0 +- && (sb.st_mode & S_IFMT) == S_IFDIR) { ++ && S_ISDIR(sb.st_mode)) { + result = TRUE; + } + return result; +@@ -148,7 +164,7 @@ + struct stat sb; + + if (stat(path, &sb) == 0 +- && (sb.st_mode & S_IFMT) == S_IFREG) { ++ && S_ISREG(sb.st_mode)) { + result = TRUE; + } + return result; +@@ -170,6 +186,7 @@ + || getgid() != getegid()) + return FALSE; + #endif +- return getuid() != 0 && geteuid() != 0; /* ...finally, disallow root */ ++ /* ...finally, disallow root */ ++ return (getuid() != ROOT_UID) && (geteuid() != ROOT_UID); + } + #endif +diff -Naur ncurses-5.9/ncurses/tinfo/alloc_entry.c ncurses-5.9.patch/ncurses/tinfo/alloc_entry.c +--- ncurses-5.9/ncurses/tinfo/alloc_entry.c 2010-12-26 00:06:01.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/alloc_entry.c 2014-09-01 16:33:22.419792227 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + + #include <tic.h> + +-MODULE_ID("$Id: alloc_entry.c,v 1.51 2010/12/25 23:06:01 tom Exp $") ++MODULE_ID("$Id: alloc_entry.c,v 1.58 2013/08/17 19:20:38 tom Exp $") + + #define ABSENT_OFFSET -1 + #define CANCELLED_OFFSET -2 +@@ -61,8 +61,6 @@ + _nc_init_entry(TERMTYPE *const tp) + /* initialize a terminal type data block */ + { +- unsigned i; +- + #if NO_LEAKS + if (tp == 0) { + if (stringbuf != 0) { +@@ -73,33 +71,11 @@ + #endif + + if (stringbuf == 0) +- stringbuf = (char *) malloc(MAX_STRTAB); +- +-#if NCURSES_XNAMES +- tp->num_Booleans = BOOLCOUNT; +- tp->num_Numbers = NUMCOUNT; +- tp->num_Strings = STRCOUNT; +- tp->ext_Booleans = 0; +- tp->ext_Numbers = 0; +- tp->ext_Strings = 0; +-#endif +- if (tp->Booleans == 0) +- tp->Booleans = typeMalloc(NCURSES_SBOOL, BOOLCOUNT); +- if (tp->Numbers == 0) +- tp->Numbers = typeMalloc(short, NUMCOUNT); +- if (tp->Strings == 0) +- tp->Strings = typeMalloc(char *, STRCOUNT); +- +- for_each_boolean(i, tp) +- tp->Booleans[i] = FALSE; +- +- for_each_number(i, tp) +- tp->Numbers[i] = ABSENT_NUMERIC; +- +- for_each_string(i, tp) +- tp->Strings[i] = ABSENT_STRING; ++ TYPE_MALLOC(char, (size_t) MAX_STRTAB, stringbuf); + + next_free = 0; ++ ++ _nc_init_termtype(tp); + } + + NCURSES_EXPORT(ENTRY *) +@@ -131,13 +107,13 @@ + result = (stringbuf + next_free - 1); + } + } else if (next_free + len < MAX_STRTAB) { +- strcpy(&stringbuf[next_free], string); ++ _nc_STRCPY(&stringbuf[next_free], string, MAX_STRTAB); + DEBUG(7, ("Saved string %s", _nc_visbuf(string))); + DEBUG(7, ("at location %d", (int) next_free)); + next_free += len; + result = (stringbuf + old_next_free); + } else { +- _nc_warning("Too much data, some is lost"); ++ _nc_warning("Too much data, some is lost: %s", string); + } + return result; + } +@@ -194,8 +170,7 @@ + useoffsets[i] = (int) (ep->uses[i].name - stringbuf); + } + +- if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0) +- _nc_err_abort(MSG_NO_MEMORY); ++ TYPE_MALLOC(char, next_free, tp->str_table); + (void) memcpy(tp->str_table, stringbuf, next_free); + + tp->term_names = tp->str_table + n; +@@ -216,16 +191,18 @@ + if ((n = (unsigned) NUM_EXT_NAMES(tp)) != 0) { + if (n < SIZEOF(offsets)) { + size_t length = 0; ++ size_t offset; + for (i = 0; i < n; i++) { + length += strlen(tp->ext_Names[i]) + 1; + offsets[i] = (int) (tp->ext_Names[i] - stringbuf); + } +- if ((tp->ext_str_table = typeMalloc(char, length)) == 0) +- _nc_err_abort(MSG_NO_MEMORY); +- for (i = 0, length = 0; i < n; i++) { +- tp->ext_Names[i] = tp->ext_str_table + length; +- strcpy(tp->ext_Names[i], stringbuf + offsets[i]); +- length += strlen(tp->ext_Names[i]) + 1; ++ TYPE_MALLOC(char, length, tp->ext_str_table); ++ for (i = 0, offset = 0; i < n; i++) { ++ tp->ext_Names[i] = tp->ext_str_table + offset; ++ _nc_STRCPY(tp->ext_Names[i], ++ stringbuf + offsets[i], ++ length - offset); ++ offset += strlen(tp->ext_Names[i]) + 1; + } + } + } +diff -Naur ncurses-5.9/ncurses/tinfo/alloc_ttype.c ncurses-5.9.patch/ncurses/tinfo/alloc_ttype.c +--- ncurses-5.9/ncurses/tinfo/alloc_ttype.c 2010-12-19 01:24:09.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/alloc_ttype.c 2014-09-01 16:33:22.419792227 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -42,7 +42,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: alloc_ttype.c,v 1.22 2010/12/19 00:24:09 tom Exp $") ++MODULE_ID("$Id: alloc_ttype.c,v 1.27 2013/06/08 16:54:50 tom Exp $") + + #if NCURSES_XNAMES + /* +@@ -104,7 +104,7 @@ + + if (to->ext_Booleans != ext_Booleans) { + EXTEND_NUM(num_Booleans, ext_Booleans); +- to->Booleans = typeRealloc(NCURSES_SBOOL, to->num_Booleans, to->Booleans); ++ TYPE_REALLOC(NCURSES_SBOOL, to->num_Booleans, to->Booleans); + for (n = to->ext_Booleans - 1, + m = ext_Booleans - 1, + base = to->num_Booleans - (m + 1); m >= 0; m--) { +@@ -116,9 +116,10 @@ + } + to->ext_Booleans = UShort(ext_Booleans); + } ++ + if (to->ext_Numbers != ext_Numbers) { + EXTEND_NUM(num_Numbers, ext_Numbers); +- to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers); ++ TYPE_REALLOC(short, to->num_Numbers, to->Numbers); + for (n = to->ext_Numbers - 1, + m = ext_Numbers - 1, + base = to->num_Numbers - (m + 1); m >= 0; m--) { +@@ -132,7 +133,7 @@ + } + if (to->ext_Strings != ext_Strings) { + EXTEND_NUM(num_Strings, ext_Strings); +- to->Strings = typeRealloc(char *, to->num_Strings, to->Strings); ++ TYPE_REALLOC(char *, to->num_Strings, to->Strings); + for (n = to->ext_Strings - 1, + m = ext_Strings - 1, + base = to->num_Strings - (m + 1); m >= 0; m--) { +@@ -301,7 +302,7 @@ + } + } + +- tp->ext_Names = typeRealloc(char *, total, tp->ext_Names); ++ TYPE_REALLOC(char *, total, tp->ext_Names); + for (k = total - 1; k > j; k--) + tp->ext_Names[k] = tp->ext_Names[k - 1]; + tp->ext_Names[j] = name; +@@ -311,21 +312,21 @@ + case BOOLEAN: + tp->ext_Booleans++; + tp->num_Booleans++; +- tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans); ++ TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans); + for (k = (unsigned) (tp->num_Booleans - 1); k > j; k--) + tp->Booleans[k] = tp->Booleans[k - 1]; + break; + case NUMBER: + tp->ext_Numbers++; + tp->num_Numbers++; +- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers); ++ TYPE_REALLOC(short, tp->num_Numbers, tp->Numbers); + for (k = (unsigned) (tp->num_Numbers - 1); k > j; k--) + tp->Numbers[k] = tp->Numbers[k - 1]; + break; + case STRING: + tp->ext_Strings++; + tp->num_Strings++; +- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings); ++ TYPE_REALLOC(char *, tp->num_Strings, tp->Strings); + for (k = (unsigned) (tp->num_Strings - 1); k > j; k--) + tp->Strings[k] = tp->Strings[k - 1]; + break; +@@ -417,7 +418,7 @@ + * into it, updating to's counts for booleans, etc. Fortunately we do + * this only for the terminfo compiler (tic) and comparer (infocmp). + */ +- ext_Names = typeMalloc(char *, (size_t)(na + nb)); ++ TYPE_MALLOC(char *, (size_t)(na + nb), ext_Names); + + if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers)) + adjust_cancels(to, from); +@@ -461,7 +462,7 @@ + if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) { + nb = (ext_Booleans + ext_Numbers + ext_Strings); + realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings); +- from->ext_Names = typeRealloc(char *, (size_t) nb, from->ext_Names); ++ TYPE_REALLOC(char *, (size_t) nb, from->ext_Names); + memcpy(from->ext_Names, ext_Names, sizeof(char *) * (size_t) nb); + DEBUG(2, ("realigned %d extended names for '%s' (from)", + NUM_EXT_NAMES(from), from->term_names)); +@@ -473,22 +474,27 @@ + #endif + + NCURSES_EXPORT(void) +-_nc_copy_termtype(TERMTYPE *dst, TERMTYPE *src) ++_nc_copy_termtype(TERMTYPE *dst, const TERMTYPE *src) + { ++#if NCURSES_XNAMES + unsigned i; ++#endif + + *dst = *src; /* ...to copy the sizes and string-tables */ +- dst->Booleans = typeMalloc(NCURSES_SBOOL, NUM_BOOLEANS(dst)); +- dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst)); +- dst->Strings = typeMalloc(char *, NUM_STRINGS(dst)); +- +- /* FIXME: use memcpy for these and similar loops */ +- for_each_boolean(i, dst) +- dst->Booleans[i] = src->Booleans[i]; +- for_each_number(i, dst) +- dst->Numbers[i] = src->Numbers[i]; +- for_each_string(i, dst) +- dst->Strings[i] = src->Strings[i]; ++ ++ TYPE_MALLOC(NCURSES_SBOOL, NUM_BOOLEANS(dst), dst->Booleans); ++ TYPE_MALLOC(short, NUM_NUMBERS(dst), dst->Numbers); ++ TYPE_MALLOC(char *, NUM_STRINGS(dst), dst->Strings); ++ ++ memcpy(dst->Booleans, ++ src->Booleans, ++ NUM_BOOLEANS(dst) * sizeof(dst->Booleans[0])); ++ memcpy(dst->Numbers, ++ src->Numbers, ++ NUM_NUMBERS(dst) * sizeof(dst->Numbers[0])); ++ memcpy(dst->Strings, ++ src->Strings, ++ NUM_STRINGS(dst) * sizeof(dst->Strings[0])); + + /* FIXME: we probably should also copy str_table and ext_str_table, + * but tic and infocmp are not written to exploit that (yet). +@@ -496,11 +502,10 @@ + + #if NCURSES_XNAMES + if ((i = NUM_EXT_NAMES(src)) != 0) { +- dst->ext_Names = typeMalloc(char *, i); ++ TYPE_MALLOC(char *, i, dst->ext_Names); + memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *)); + } else { + dst->ext_Names = 0; + } + #endif +- + } +diff -Naur ncurses-5.9/ncurses/tinfo/captoinfo.c ncurses-5.9.patch/ncurses/tinfo/captoinfo.c +--- ncurses-5.9/ncurses/tinfo/captoinfo.c 2010-12-04 21:08:19.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/captoinfo.c 2014-09-01 16:33:22.420792229 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -93,7 +93,7 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: captoinfo.c,v 1.58 2010/12/04 20:08:19 tom Exp $") ++MODULE_ID("$Id: captoinfo.c,v 1.77 2012/12/30 00:50:40 tom Exp $") + + #define MAX_PUSHED 16 /* max # args we can push onto the stack */ + +@@ -114,9 +114,7 @@ + /* initialize 'my_string', 'my_length' */ + { + if (my_string == 0) +- my_string = typeMalloc(char, my_length = 256); +- if (my_string == 0) +- _nc_err_abort(MSG_NO_MEMORY); ++ TYPE_MALLOC(char, my_length = 256, my_string); + + *my_string = '\0'; + return my_string; +@@ -133,7 +131,7 @@ + _nc_err_abort(MSG_NO_MEMORY); + d = my_string + have; + } +- (void) strcpy(d, s); ++ _nc_STRCPY(d, s, my_length - have); + return d + strlen(d); + } + +@@ -240,6 +238,12 @@ + else if (parm == 2) + parm = 1; + } ++ ++ while (n--) { ++ dp = save_string(dp, "%p"); ++ dp = save_char(dp, '0' + parm); ++ } ++ + if (onstack == parm) { + if (n > 1) { + _nc_warning("string may not be optimal"); +@@ -255,11 +259,6 @@ + + onstack = parm; + +- while (n--) { +- dp = save_string(dp, "%p"); +- dp = save_char(dp, '0' + parm); +- } +- + if (seenn && parm < 3) { + dp = save_string(dp, "%{96}%^"); + } +@@ -469,73 +468,9 @@ + break; + } + break; +-#ifdef REVISIBILIZE +- case '\\': +- dp = save_char(dp, *s++); +- dp = save_char(dp, *s++); +- break; +- case '\n': +- dp = save_string(dp, "\\n"); +- s++; +- break; +- case '\t': +- dp = save_string(dp, "\\t"); +- s++; +- break; +- case '\r': +- dp = save_string(dp, "\\r"); +- s++; +- break; +- case '\200': +- dp = save_string(dp, "\\0"); +- s++; +- break; +- case '\f': +- dp = save_string(dp, "\\f"); +- s++; +- break; +- case '\b': +- dp = save_string(dp, "\\b"); +- s++; +- break; +- case ' ': +- dp = save_string(dp, "\\s"); +- s++; +- break; +- case '^': +- dp = save_string(dp, "\\^"); +- s++; +- break; +- case ':': +- dp = save_string(dp, "\\:"); +- s++; +- break; +- case ',': +- dp = save_string(dp, "\\,"); +- s++; +- break; +- default: +- if (*s == '\033') { +- dp = save_string(dp, "\\E"); +- s++; +- } else if (*s > 0 && *s < 32) { +- dp = save_char(dp, '^'); +- dp = save_char(dp, *s + '@'); +- s++; +- } else if (*s <= 0 || *s >= 127) { +- dp = save_char(dp, '\\'); +- dp = save_char(dp, ((*s & 0300) >> 6) + '0'); +- dp = save_char(dp, ((*s & 0070) >> 3) + '0'); +- dp = save_char(dp, (*s & 0007) + '0'); +- s++; +- } else +- dp = save_char(dp, *s++); +- break; +-#else + default: + dp = save_char(dp, *s++); + break; +-#endif + } + } + +@@ -578,7 +513,7 @@ + { + char buffer[80]; + int tst; +- sprintf(buffer, fmt, ch1, ch2); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) fmt, ch1, ch2); + tst = strlen(buffer) - 1; + assert(len == tst); + } +@@ -597,10 +532,13 @@ + bufptr = save_char(bufptr, '\\'); + bufptr = save_char(bufptr, c1); + } else { +- if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */ +- (void) strcpy(temp, unctrl((chtype) c1)); +- else +- (void) sprintf(temp, "\\%03o", c1); ++ if (c1 == (c1 & 0x1f)) { /* iscntrl() returns T on 255 */ ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "%.20s", unctrl((chtype) c1)); ++ } else { ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "\\%03o", c1); ++ } + bufptr = save_string(bufptr, temp); + } + return bufptr; +@@ -646,13 +584,15 @@ + int in0, in1, in2; + char ch1 = 0, ch2 = 0; + char *bufptr = init_string(); ++ char octal[4]; + int len; + bool syntax_error = FALSE; + + /* we may have to move some trailing mandatory padding up front */ + padding = str + strlen(str) - 1; +- if (padding > str && *padding == '>' && *--padding == '/') { +- --padding; ++ if (padding > str && *padding == '>') { ++ if (*--padding == '/') ++ --padding; + while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*') + padding--; + if (padding > str && *padding == '<' && *--padding == '$') +@@ -663,7 +603,7 @@ + bufptr = save_char(bufptr, *padding++); + } + +- for (; *str && str != trimmed; str++) { ++ for (; *str && ((trimmed == 0) || (str < trimmed)); str++) { + int c1, c2; + char *cp = 0; + +@@ -685,8 +625,72 @@ + } else if (str[1] == ',') { + bufptr = save_char(bufptr, *++str); + } else { ++ int xx1, xx2; ++ + bufptr = save_char(bufptr, *str++); +- bufptr = save_char(bufptr, *str); ++ xx1 = *str; ++ if (_nc_strict_bsd) { ++ if (isdigit(UChar(xx1))) { ++ int pad = 0; ++ ++ if (!isdigit(UChar(str[1]))) ++ pad = 2; ++ else if (str[1] && !isdigit(UChar(str[2]))) ++ pad = 1; ++ ++ /* ++ * Test for "\0", "\00" or "\000" and transform those ++ * into "\200". ++ */ ++ if (xx1 == '0' ++ && ((pad == 2) || (str[1] == '0')) ++ && ((pad >= 1) || (str[2] == '0'))) { ++ xx2 = '2'; ++ } else { ++ xx2 = '0'; ++ pad = 0; /* FIXME - optionally pad to 3 digits */ ++ } ++ while (pad-- > 0) { ++ bufptr = save_char(bufptr, xx2); ++ xx2 = '0'; ++ } ++ } else if (strchr("E\\nrtbf", xx1) == 0) { ++ switch (xx1) { ++ case 'e': ++ xx1 = 'E'; ++ break; ++ case 'l': ++ xx1 = 'n'; ++ break; ++ case 's': ++ bufptr = save_char(bufptr, '0'); ++ bufptr = save_char(bufptr, '4'); ++ xx1 = '0'; ++ break; ++ case ':': ++ /* ++ * Note: termcap documentation claims that ":" ++ * must be escaped as "\072", however the ++ * documentation is incorrect - read the code. ++ * The replacement does not work reliably, ++ * so the advice is not helpful. ++ */ ++ bufptr = save_char(bufptr, '0'); ++ bufptr = save_char(bufptr, '7'); ++ xx1 = '2'; ++ break; ++ default: ++ /* should not happen, but handle this anyway */ ++ _nc_SPRINTF(octal, _nc_SLIMIT(sizeof(octal)) ++ "%03o", UChar(xx1)); ++ bufptr = save_char(bufptr, octal[0]); ++ bufptr = save_char(bufptr, octal[1]); ++ xx1 = octal[2]; ++ break; ++ } ++ } ++ } ++ bufptr = save_char(bufptr, xx1); + } + } else if (str[0] == '$' && str[1] == '<') { /* discard padding */ + str += 2; +@@ -703,7 +707,8 @@ + && ((in0 == 4 && in1 == 10 && in2 == 48) + || (in0 == 3 && in1 == 9 && in2 == 38))) { + /* dumb-down an optimized case from xterm-256color for termcap */ +- str = strstr(str, ";m"); ++ if ((str = strstr(str, ";m")) == 0) ++ break; /* cannot happen */ + ++str; + if (in2 == 48) { + bufptr = save_string(bufptr, "[48;5;%dm"); +@@ -720,13 +725,13 @@ + bufptr = save_tc_inequality(bufptr, c1, c2); + } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) { + str = strchr(str, ';'); +- bufptr = save_tc_inequality(bufptr, c1, c2); ++ bufptr = save_tc_inequality(bufptr, c1, ch2); + } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) { + str = strchr(str, ';'); +- bufptr = save_tc_inequality(bufptr, c1, c2); ++ bufptr = save_tc_inequality(bufptr, ch1, c2); + } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) { + str = strchr(str, ';'); +- bufptr = save_tc_inequality(bufptr, c1, c2); ++ bufptr = save_tc_inequality(bufptr, ch1, ch2); + } else if ((len = bcd_expression(str)) != 0) { + str += len; + bufptr = save_string(bufptr, "%B"); +@@ -741,15 +746,15 @@ + bufptr = save_tc_char(bufptr, c1); + } + /* FIXME: this "works" for 'delta' */ +- else if (strncmp(str, "%{2}%*%-", 8) == 0) { ++ else if (strncmp(str, "%{2}%*%-", (size_t) 8) == 0) { + str += 7; + bufptr = save_string(bufptr, "%D"); +- } else if (strncmp(str, "%{96}%^", 7) == 0) { ++ } else if (strncmp(str, "%{96}%^", (size_t) 7) == 0) { + str += 6; + if (saw_m++ == 0) { + bufptr = save_string(bufptr, "%n"); + } +- } else if (strncmp(str, "%{127}%^", 8) == 0) { ++ } else if (strncmp(str, "%{127}%^", (size_t) 8) == 0) { + str += 7; + if (saw_n++ == 0) { + bufptr = save_string(bufptr, "%m"); +@@ -772,8 +777,25 @@ + case '8': + case '9': + bufptr = save_char(bufptr, '%'); +- while (isdigit(UChar(*str))) +- bufptr = save_char(bufptr, *str++); ++ ch1 = 0; ++ ch2 = 0; ++ while (isdigit(UChar(*str))) { ++ ch2 = ch1; ++ ch1 = *str++; ++ if (_nc_strict_bsd) { ++ if (ch1 > '3') ++ return 0; ++ } else { ++ bufptr = save_char(bufptr, ch1); ++ } ++ } ++ if (_nc_strict_bsd) { ++ if (ch2 != 0 && ch2 != '0') ++ return 0; ++ if (ch1 < '2') ++ ch1 = 'd'; ++ bufptr = save_char(bufptr, ch1); ++ } + if (strchr("doxX.", *str)) { + if (*str != 'd') /* termcap doesn't have octal, hex */ + return 0; +@@ -794,6 +816,8 @@ + * termcap notation. + */ + case 's': ++ if (_nc_strict_bsd) ++ return 0; + bufptr = save_string(bufptr, "%s"); + break; + +@@ -826,7 +850,7 @@ + * but that may not be the end of the string. + */ + assert(str != 0); +- if (*str == '\0') ++ if (str == 0 || *str == '\0') + break; + + } /* endwhile (*str) */ +diff -Naur ncurses-5.9/ncurses/tinfo/comp_error.c ncurses-5.9.patch/ncurses/tinfo/comp_error.c +--- ncurses-5.9/ncurses/tinfo/comp_error.c 2007-04-22 01:38:32.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/comp_error.c 2014-09-01 16:33:22.420792229 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -41,7 +41,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $") ++MODULE_ID("$Id: comp_error.c,v 1.36 2012/02/22 22:34:31 tom Exp $") + + NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE; + NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */ +@@ -59,7 +59,8 @@ + NCURSES_EXPORT(void) + _nc_set_source(const char *const name) + { +- SourceName = name; ++ FreeIfNeeded(SourceName); ++ SourceName = strdup(name); + } + + NCURSES_EXPORT(void) +@@ -70,7 +71,7 @@ + if (TermType != 0) { + TermType[0] = '\0'; + if (name) +- strncat(TermType, name, MAX_NAME_SIZE); ++ strncat(TermType, name, (size_t) MAX_NAME_SIZE); + } + } + +@@ -84,7 +85,7 @@ + } + #endif + if (name != 0) +- strcpy(name, TermType != 0 ? TermType : ""); ++ _nc_STRCPY(name, TermType != 0 ? TermType : "", MAX_NAME_SIZE); + } + + static NCURSES_INLINE void +@@ -151,3 +152,12 @@ + exit(EXIT_FAILURE); + #endif + } ++ ++#if NO_LEAKS ++NCURSES_EXPORT(void) ++_nc_comp_error_leaks(void) ++{ ++ FreeAndNull(SourceName); ++ FreeAndNull(TermType); ++} ++#endif +diff -Naur ncurses-5.9/ncurses/tinfo/comp_expand.c ncurses-5.9.patch/ncurses/tinfo/comp_expand.c +--- ncurses-5.9/ncurses/tinfo/comp_expand.c 2010-01-16 18:11:23.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/comp_expand.c 2014-09-01 16:33:22.420792229 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: comp_expand.c,v 1.21 2010/01/16 17:11:23 tom Exp $") ++MODULE_ID("$Id: comp_expand.c,v 1.25 2012/03/24 18:37:17 tom Exp $") + + static int + trailing_spaces(const char *src) +@@ -49,6 +49,8 @@ + #define REALCTL(s) (UChar(*(s)) < 127 && iscntrl(UChar(*(s)))) + #define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s)))) + ++#define P_LIMIT(p) (length - (size_t)(p)) ++ + NCURSES_EXPORT(char *) + _nc_tic_expand(const char *srcp, bool tic_format, int numbers) + { +@@ -61,15 +63,15 @@ + size_t need = (2 + strlen(str)) * 4; + int ch; + +-#if NO_LEAKS + if (srcp == 0) { ++#if NO_LEAKS + if (buffer != 0) { + FreeAndNull(buffer); + length = 0; + } ++#endif + return 0; + } +-#endif + if (buffer == 0 || need > length) { + if ((buffer = typeRealloc(char, length = need, buffer)) == 0) + return 0; +@@ -90,7 +92,8 @@ + && str[1] != '\\' + && REALPRINT(str + 1) + && str[2] == S_QUOTE) { +- sprintf(buffer + bufp, "{%d}", str[1]); ++ _nc_SPRINTF(buffer + bufp, _nc_SLIMIT(P_LIMIT(bufp)) ++ "{%d}", str[1]); + bufp += (int) strlen(buffer + bufp); + str += 2; + } else { +@@ -177,10 +180,12 @@ + #define UnCtl(c) ((c) + '@') + else if (REALCTL(str) && ch != '\\' + && (!islong || isdigit(UChar(str[1])))) { +- (void) sprintf(&buffer[bufp], "^%c", UnCtl(ch)); ++ _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp)) ++ "^%c", UnCtl(ch)); + bufp += 2; + } else { +- (void) sprintf(&buffer[bufp], "\\%03o", ch); ++ _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp)) ++ "\\%03o", ch); + bufp += 4; + } + +diff -Naur ncurses-5.9/ncurses/tinfo/comp_parse.c ncurses-5.9.patch/ncurses/tinfo/comp_parse.c +--- ncurses-5.9/ncurses/tinfo/comp_parse.c 2010-12-26 00:06:37.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/comp_parse.c 2014-09-01 16:33:22.420792229 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,15 +35,10 @@ + /* + * comp_parse.c -- parser driver loop and use handling. + * +- * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)()) +- * _nc_resolve_uses2(void) +- * _nc_free_entries(void) +- * + * Use this code by calling _nc_read_entry_source() on as many source + * files as you like (either terminfo or termcap syntax). If you + * want use-resolution, call _nc_resolve_uses2(). To free the list + * storage, do _nc_free_entries(). +- * + */ + + #include <curses.priv.h> +@@ -52,7 +47,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: comp_parse.c,v 1.73 2010/12/25 23:06:37 tom Exp $") ++MODULE_ID("$Id: comp_parse.c,v 1.90 2013/08/31 15:22:31 tom Exp $") + + static void sanity_check2(TERMTYPE *, bool); + NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2; +@@ -61,6 +56,8 @@ + static void sanity_check(TERMTYPE *); + NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check; + ++static void fixup_acsc(TERMTYPE *, int); ++ + static void + enqueue(ENTRY * ep) + /* add an entry to the in-core list */ +@@ -86,16 +83,28 @@ + if (len > MAX_NAME_SIZE) + len = MAX_NAME_SIZE; + (void) strncpy(dst, src, len); +- (void) strcpy(dst + len, "|"); ++ _nc_STRCPY(dst + len, "|", MAX_NAME_SIZE); + src = dst; + } + 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? */ ++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES ++static char * ++skip_index(char *name) ++{ ++ char *bar = strchr(name, '|'); ++ ++ if (bar != 0 && (bar - name) == 2) ++ name = bar + 1; ++ ++ return name; ++} ++#endif ++ ++static bool ++check_collisions(char *n1, char *n2, int counter) + { + char *pstart, *qstart, *pend, *qend; + char nc1[MAX_NAME_SIZE + 2]; +@@ -104,15 +113,95 @@ + 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) ++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES ++ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { ++ n1 = skip_index(n1); ++ n2 = skip_index(n2); ++ } ++#endif ++ ++ for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) { ++ for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) { + if ((pend - pstart == qend - qstart) +- && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) ++ && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) { ++ if (counter > 0) ++ (void) fprintf(stderr, "Name collision '%.*s' between\n", ++ (int) (pend - pstart), pstart); + return (TRUE); ++ } ++ } ++ } + + return (FALSE); + } + ++static char * ++next_name(char *name) ++{ ++ if (*name != '\0') ++ ++name; ++ return name; ++} ++ ++static char * ++name_ending(char *name) ++{ ++ if (*name == '\0') { ++ name = 0; ++ } else { ++ while (*name != '\0' && *name != '|') ++ ++name; ++ } ++ return name; ++} ++ ++/* ++ * Essentially, find the conflict reported in check_collisions() and remove ++ * it from the second name, unless that happens to be the last alias. ++ */ ++static bool ++remove_collision(char *n1, char *n2) ++{ ++ char *p2 = n2; ++ char *pstart, *qstart, *pend, *qend; ++ bool removed = FALSE; ++ ++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES ++ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { ++ n1 = skip_index(n1); ++ p2 = n2 = skip_index(n2); ++ } ++#endif ++ ++ for (pstart = n1; (pend = name_ending(pstart)); pstart = next_name(pend)) { ++ for (qstart = n2; (qend = name_ending(qstart)); qstart = next_name(qend)) { ++ if ((pend - pstart == qend - qstart) ++ && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) { ++ if (qstart != p2 || *qend == '|') { ++ if (*qend == '|') ++ ++qend; ++ while ((*qstart++ = *qend++) != '\0') ; ++ fprintf(stderr, "...now\t%s\n", p2); ++ } else { ++ fprintf(stderr, "Cannot remove alias '%.*s'\n", ++ (int) (qend - qstart), qstart); ++ } ++ removed = TRUE; ++ break; ++ } ++ } ++ } ++ ++ return removed; ++} ++ ++/* do any of the aliases in a pair of terminal names match? */ ++NCURSES_EXPORT(bool) ++_nc_entry_match(char *n1, char *n2) ++{ ++ return check_collisions(n1, n2, 0); ++} ++ + /**************************************************************************** + * + * Entry compiler and resolution logic +@@ -198,19 +287,19 @@ + + for_entry_list(rp) { + if (qp > rp +- && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) { +- matchcount++; +- if (matchcount == 1) { +- (void) fprintf(stderr, "Name collision between %s", +- _nc_first_name(qp->tterm.term_names)); +- multiples++; ++ && check_collisions(qp->tterm.term_names, ++ rp->tterm.term_names, ++ matchcount + 1)) { ++ if (!matchcount++) { ++ (void) fprintf(stderr, "\t%s\n", rp->tterm.term_names); ++ } ++ (void) fprintf(stderr, "and\t%s\n", qp->tterm.term_names); ++ if (!remove_collision(rp->tterm.term_names, ++ qp->tterm.term_names)) { ++ ++multiples; + } +- if (matchcount >= 1) +- (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names)); + } + } +- if (matchcount >= 1) +- (void) putc('\n', stderr); + } + if (multiples > 0) + return (FALSE); +@@ -256,9 +345,7 @@ + DEBUG(2, ("%s: resolving use=%s (compiled)", + child, lookfor)); + +- rp = typeMalloc(ENTRY, 1); +- if (rp == 0) +- _nc_err_abort(MSG_NO_MEMORY); ++ TYPE_MALLOC(ENTRY, 1, rp); + rp->tterm = thisterm; + rp->nuses = 0; + rp->next = lastread; +@@ -378,7 +465,34 @@ + for_entry_list(qp) { + _nc_curr_line = (int) qp->startline; + _nc_set_type(_nc_first_name(qp->tterm.term_names)); +- _nc_check_termtype2(&qp->tterm, literal); ++ /* ++ * tic overrides this function pointer to provide more verbose ++ * checking. ++ */ ++ if (_nc_check_termtype2 != sanity_check2) { ++ SCREEN *save_SP = SP; ++ SCREEN fake_sp; ++ TERMINAL fake_tm; ++ TERMINAL *save_tm = cur_term; ++ ++ /* ++ * Setup so that tic can use ordinary terminfo interface ++ * to obtain capability information. ++ */ ++ memset(&fake_sp, 0, sizeof(fake_sp)); ++ memset(&fake_tm, 0, sizeof(fake_tm)); ++ fake_sp._term = &fake_tm; ++ fake_tm.type = qp->tterm; ++ _nc_set_screen(&fake_sp); ++ set_curterm(&fake_tm); ++ ++ _nc_check_termtype2(&qp->tterm, literal); ++ ++ _nc_set_screen(save_SP); ++ set_curterm(save_tm); ++ } else { ++ fixup_acsc(&qp->tterm, literal); ++ } + } + DEBUG(2, ("SANITY CHECK FINISHED")); + } +@@ -403,6 +517,17 @@ + #define CUR tp-> + + static void ++fixup_acsc(TERMTYPE *tp, int literal) ++{ ++ if (!literal) { ++ if (acs_chars == 0 ++ && enter_alt_charset_mode != 0 ++ && exit_alt_charset_mode != 0) ++ acs_chars = strdup(VT_ACSC); ++ } ++} ++ ++static void + sanity_check2(TERMTYPE *tp, bool literal) + { + if (!PRESENT(exit_attribute_mode)) { +@@ -422,16 +547,14 @@ + #endif /* __UNUSED__ */ + PAIRED(enter_standout_mode, exit_standout_mode); + PAIRED(enter_underline_mode, exit_underline_mode); ++ PAIRED(enter_italics_mode, exit_italics_mode); + } + + /* we do this check/fix in postprocess_termcap(), but some packagers + * prefer to bypass it... + */ + if (!literal) { +- if (acs_chars == 0 +- && enter_alt_charset_mode != 0 +- && exit_alt_charset_mode != 0) +- acs_chars = strdup(VT_ACSC); ++ fixup_acsc(tp, literal); + ANDMISSING(enter_alt_charset_mode, acs_chars); + ANDMISSING(exit_alt_charset_mode, acs_chars); + } +diff -Naur ncurses-5.9/ncurses/tinfo/comp_scan.c ncurses-5.9.patch/ncurses/tinfo/comp_scan.c +--- ncurses-5.9/ncurses/tinfo/comp_scan.c 2010-12-26 00:06:37.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/comp_scan.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: comp_scan.c,v 1.89 2010/12/25 23:06:37 tom Exp $") ++MODULE_ID("$Id: comp_scan.c,v 1.102 2013/11/16 19:57:50 tom Exp $") + + /* + * Maximum length of string capability we'll accept before raising an error. +@@ -61,6 +61,7 @@ + #define iswhite(ch) (ch == ' ' || ch == '\t') + + NCURSES_EXPORT_VAR (int) _nc_syntax = 0; /* termcap or terminfo? */ ++NCURSES_EXPORT_VAR (int) _nc_strict_bsd = 1; /* ncurses extended termcap? */ + 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 */ +@@ -127,14 +128,19 @@ + * Returns the final nonblank character on the current input buffer + */ + static int +-last_char(void) ++last_char(int from_end) + { + size_t len = strlen(bufptr); ++ int result = 0; ++ + while (len--) { +- if (!isspace(UChar(bufptr[len]))) +- return bufptr[len]; ++ if (!isspace(UChar(bufptr[len]))) { ++ if (from_end < (int) len) ++ result = bufptr[(int) len - from_end]; ++ break; ++ } + } +- return 0; ++ return result; + } + + /* +@@ -195,7 +201,8 @@ + result = typeRealloc(char, allocated, result); + if (result == 0) + return (EOF); +- bufstart = result; ++ if (bufstart) ++ bufstart = result; + } + if (used == 0) + _nc_curr_file_pos = ftell(yyin); +@@ -212,7 +219,7 @@ + } + } else { + if (used != 0) +- strcat(result, "\n"); ++ _nc_STRCAT(result, "\n", allocated); + } + if ((bufptr = bufstart) != 0) { + used = strlen(bufptr); +@@ -256,12 +263,12 @@ + } + + static void +-push_back(char c) ++push_back(int c) + /* push a character back onto the input stream */ + { + if (bufptr == bufstart) + _nc_syserr_abort("Can't backspace off beginning of line"); +- *--bufptr = c; ++ *--bufptr = (char) c; + _nc_curr_col--; + } + +@@ -299,6 +306,8 @@ + *tok_ptr++ = (char) ch; \ + *tok_ptr = '\0' + ++static char *tok_buf; ++ + /* + * int + * get_token() +@@ -336,15 +345,14 @@ + _nc_get_token(bool silent) + { + static const char terminfo_punct[] = "@%&*!#"; +- static char *tok_buf; + +- char *after_list; +- char *after_name; ++ char *after_name; /* after primary name */ ++ char *after_list; /* after primary and alias list */ + char *numchk; + char *tok_ptr; + char *s; + char numbuf[80]; +- int ch; ++ int ch, c0, c1; + int dot_flag = FALSE; + int type; + long number; +@@ -372,11 +380,10 @@ + + if (end_of_stream()) { + yyin = 0; +- next_char(); /* frees its allocated memory */ ++ (void) next_char(); /* frees its allocated memory */ + if (tok_buf != 0) { + if (_nc_curr_token.tk_name == tok_buf) + _nc_curr_token.tk_name = 0; +- FreeAndNull(tok_buf); + } + return (EOF); + } +@@ -390,6 +397,7 @@ + } + + ch = eat_escaped_newline(ch); ++ _nc_curr_token.tk_valstring = 0; + + #ifdef TRACE + old_line = _nc_curr_line; +@@ -424,7 +432,7 @@ + #if NCURSES_EXT_FUNCS + && !(ch == '.' && _nc_disable_period) + #endif +- && !strchr(terminfo_punct, (char) ch)) { ++ && ((strchr) (terminfo_punct, (char) ch) == 0)) { + if (!silent) + _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'", + terminfo_punct, unctrl(UChar(ch))); +@@ -457,7 +465,7 @@ + after_list = tok_ptr; + if (after_name == 0) + after_name = tok_ptr; +- } else if (ch == ':' && last_char() != ',') { ++ } else if (ch == ':' && last_char(0) != ',') { + _nc_syntax = SYN_TERMCAP; + separator = ':'; + break; +@@ -471,12 +479,64 @@ + if (after_name == 0) + break; + /* +- * If we see a comma, we assume this is terminfo unless we +- * subsequently run into a colon. But we don't stop +- * looking for a colon until hitting a newline. This +- * allows commas to be embedded in description fields of +- * either syntax. ++ * We saw a comma, but are not entirely sure this is ++ * terminfo format, since we can still be parsing the ++ * description field (for either syntax). ++ * ++ * A properly formatted termcap line ends with either a ++ * colon, or a backslash after a colon. It is possible ++ * to have a backslash in the middle of a capability, but ++ * then there would be no leading whitespace on the next ++ * line - something we want to discourage. + */ ++ c0 = last_char(0); ++ c1 = last_char(1); ++ if (c1 != ':' && c0 != '\\' && c0 != ':') { ++ bool capability = FALSE; ++ ++ /* ++ * Since it is not termcap, assume the line is terminfo ++ * format. However, the comma can be embedded in a ++ * description field. It also can be a separator ++ * between a description field and a capability. ++ * ++ * Improve the guess by checking if the next word after ++ * the comma does not look like a capability. In that ++ * case, extend the description past the comma. ++ */ ++ for (s = bufptr; isspace(UChar(*s)); ++s) { ++ ; ++ } ++ if (islower(UChar(*s))) { ++ char *name = s; ++ while (isalnum(UChar(*s))) { ++ ++s; ++ } ++ if (*s == '#' || *s == '=' || *s == '@') { ++ /* ++ * Checking solely with syntax allows us to ++ * support extended capabilities with string ++ * values. ++ */ ++ capability = TRUE; ++ } else if (*s == ',') { ++ c0 = *s; ++ *s = '\0'; ++ /* ++ * Otherwise, we can handle predefined boolean ++ * capabilities, still aided by syntax. ++ */ ++ if (_nc_find_entry(name, ++ _nc_get_hash_table(FALSE))) { ++ capability = TRUE; ++ } ++ *s = (char) c0; ++ } ++ } ++ if (capability) { ++ break; ++ } ++ } + } else + ch = eat_escaped_newline(ch); + +@@ -748,7 +808,7 @@ + if (!(is7bits(c) && isprint(c))) { + _nc_warning("Illegal ^ character - '%s'", unctrl(UChar(c))); + } +- if (c == '?') { ++ if (c == '?' && (_nc_syntax != SYN_TERMCAP)) { + *(ptr++) = '\177'; + if (_nc_tracing) + _nc_warning("Allow ^? as synonym for \\177"); +@@ -758,23 +818,29 @@ + *(ptr++) = (char) (c); + } + } else if (c == '\\') { ++ bool strict_bsd = ((_nc_syntax == SYN_TERMCAP) && _nc_strict_bsd); ++ + c = next_char(); + if (c == EOF) + _nc_err_abort(MSG_NO_INPUTS); + +- if (c >= '0' && c <= '7') { ++#define isoctal(c) ((c) >= '0' && (c) <= '7') ++ ++ if (isoctal(c) || (strict_bsd && isdigit(c))) { + number = c - '0'; + for (i = 0; i < 2; i++) { + c = next_char(); + if (c == EOF) + _nc_err_abort(MSG_NO_INPUTS); + +- if (c < '0' || c > '7') { ++ if (!isoctal(c)) { + if (isdigit(c)) { +- _nc_warning("Non-octal digit `%c' in \\ sequence", c); +- /* allow the digit; it'll do less harm */ ++ if (!strict_bsd) { ++ _nc_warning("Non-octal digit `%c' in \\ sequence", c); ++ /* allow the digit; it'll do less harm */ ++ } + } else { +- push_back((char) c); ++ push_back(c); + break; + } + } +@@ -782,21 +848,16 @@ + number = number * 8 + c - '0'; + } + +- if (number == 0) ++ number = UChar(number); ++ if (number == 0 && !strict_bsd) + number = 0200; + *(ptr++) = (char) number; + } else { + switch (c) { + case 'E': +- case 'e': + *(ptr++) = '\033'; + break; + +- case 'a': +- *(ptr++) = '\007'; +- break; +- +- case 'l': + case 'n': + *(ptr++) = '\n'; + break; +@@ -809,10 +870,6 @@ + *(ptr++) = '\010'; + break; + +- case 's': +- *(ptr++) = ' '; +- break; +- + case 'f': + *(ptr++) = '\014'; + break; +@@ -833,16 +890,33 @@ + *(ptr++) = ','; + break; + +- case ':': +- *(ptr++) = ':'; +- break; +- + case '\n': + continue; + + default: +- _nc_warning("Illegal character '%s' in \\ sequence", +- unctrl(UChar(c))); ++ if ((_nc_syntax == SYN_TERMINFO) || !_nc_strict_bsd) { ++ switch (c) { ++ case 'a': ++ c = '\007'; ++ break; ++ case 'e': ++ c = '\033'; ++ break; ++ case 'l': ++ c = '\n'; ++ break; ++ case 's': ++ c = ' '; ++ break; ++ case ':': ++ c = ':'; ++ break; ++ default: ++ _nc_warning("Illegal character '%s' in \\ sequence", ++ unctrl(UChar(c))); ++ break; ++ } ++ } + /* FALLTHRU */ + case '|': + *(ptr++) = (char) c; +@@ -862,7 +936,7 @@ + + if (!ignored) { + if (_nc_curr_col <= 1) { +- push_back((char) c); ++ push_back(c); + c = '\n'; + break; + } +@@ -934,5 +1008,8 @@ + if (pushname != 0) { + FreeAndNull(pushname); + } ++ if (tok_buf != 0) { ++ FreeAndNull(tok_buf); ++ } + } + #endif +diff -Naur ncurses-5.9/ncurses/tinfo/db_iterator.c ncurses-5.9.patch/ncurses/tinfo/db_iterator.c +--- ncurses-5.9/ncurses/tinfo/db_iterator.c 2010-12-26 00:00:25.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/db_iterator.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2012,2013 Free 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,13 +36,142 @@ + + #include <curses.priv.h> + ++#include <time.h> + #include <tic.h> + +-MODULE_ID("$Id: db_iterator.c,v 1.9 2010/12/25 23:00:25 tom Exp $") ++#if USE_HASHED_DB ++#include <hashed_db.h> ++#endif ++ ++MODULE_ID("$Id: db_iterator.c,v 1.38 2013/12/14 21:23:20 tom Exp $") + + #define HaveTicDirectory _nc_globals.have_tic_directory + #define KeepTicDirectory _nc_globals.keep_tic_directory + #define TicDirectory _nc_globals.tic_directory ++#define my_blob _nc_globals.dbd_blob ++#define my_list _nc_globals.dbd_list ++#define my_size _nc_globals.dbd_size ++#define my_time _nc_globals.dbd_time ++#define my_vars _nc_globals.dbd_vars ++ ++static void ++add_to_blob(const char *text, size_t limit) ++{ ++ (void) limit; ++ ++ if (*text != '\0') { ++ char *last = my_blob + strlen(my_blob); ++ if (last != my_blob) ++ *last++ = NCURSES_PATHSEP; ++ _nc_STRCPY(last, text, limit); ++ } ++} ++ ++static bool ++check_existence(const char *name, struct stat *sb) ++{ ++ bool result = FALSE; ++ ++ if (stat(name, sb) == 0 ++ && (S_ISDIR(sb->st_mode) || S_ISREG(sb->st_mode))) { ++ result = TRUE; ++ } ++#if USE_HASHED_DB ++ else if (strlen(name) < PATH_MAX - sizeof(DBM_SUFFIX)) { ++ char temp[PATH_MAX]; ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%s%s", name, DBM_SUFFIX); ++ if (stat(temp, sb) == 0 && S_ISREG(sb->st_mode)) { ++ result = TRUE; ++ } ++ } ++#endif ++ return result; ++} ++ ++/* ++ * Store the latest value of an environment variable in my_vars[] so we can ++ * detect if one changes, invalidating the cached search-list. ++ */ ++static bool ++update_getenv(const char *name, DBDIRS which) ++{ ++ bool result = FALSE; ++ ++ if (which < dbdLAST) { ++ char *value; ++ ++ if ((value = getenv(name)) == 0 || (value = strdup(value)) == 0) { ++ ; ++ } else if (my_vars[which].name == 0 || strcmp(my_vars[which].name, name)) { ++ FreeIfNeeded(my_vars[which].value); ++ my_vars[which].name = name; ++ my_vars[which].value = value; ++ result = TRUE; ++ } else if ((my_vars[which].value != 0) ^ (value != 0)) { ++ FreeIfNeeded(my_vars[which].value); ++ my_vars[which].value = value; ++ result = TRUE; ++ } else if (value != 0 && strcmp(value, my_vars[which].value)) { ++ FreeIfNeeded(my_vars[which].value); ++ my_vars[which].value = value; ++ result = TRUE; ++ } else { ++ free(value); ++ } ++ } ++ return result; ++} ++ ++static char * ++cache_getenv(const char *name, DBDIRS which) ++{ ++ char *result = 0; ++ ++ (void) update_getenv(name, which); ++ if (which < dbdLAST) { ++ result = my_vars[which].value; ++ } ++ return result; ++} ++ ++/* ++ * The cache expires if at least a second has passed since the initial lookup, ++ * or if one of the environment variables changed. ++ * ++ * Only a few applications use multiple lookups of terminal entries, seems that ++ * aside from bulk I/O such as tic and toe, that leaves interactive programs ++ * which should not be modifying the terminal databases in a way that would ++ * invalidate the search-list. ++ * ++ * The "1-second" is to allow for user-directed changes outside the program. ++ */ ++static bool ++cache_expired(void) ++{ ++ bool result = FALSE; ++ time_t now = time((time_t *) 0); ++ ++ if (now > my_time) { ++ result = TRUE; ++ } else { ++ DBDIRS n; ++ for (n = (DBDIRS) 0; n < dbdLAST; ++n) { ++ if (my_vars[n].name != 0 ++ && update_getenv(my_vars[n].name, n)) { ++ result = TRUE; ++ break; ++ } ++ } ++ } ++ return result; ++} ++ ++static void ++free_cache(void) ++{ ++ FreeAndNull(my_blob); ++ FreeAndNull(my_list); ++} + + /* + * Record the "official" location of the terminfo directory, according to +@@ -51,17 +180,20 @@ + NCURSES_EXPORT(const char *) + _nc_tic_dir(const char *path) + { ++ T(("_nc_tic_dir %s", NonNull(path))); + if (!KeepTicDirectory) { + if (path != 0) { + TicDirectory = path; + HaveTicDirectory = TRUE; +- } else if (!HaveTicDirectory && use_terminfo_vars()) { +- char *envp; +- if ((envp = getenv("TERMINFO")) != 0) +- return _nc_tic_dir(envp); ++ } else if (HaveTicDirectory == 0) { ++ if (use_terminfo_vars()) { ++ char *envp; ++ if ((envp = getenv("TERMINFO")) != 0) ++ return _nc_tic_dir(envp); ++ } + } + } +- return TicDirectory; ++ return TicDirectory ? TicDirectory : TERMINFO; + } + + /* +@@ -77,61 +209,16 @@ + } + + /* +- * Process the list of :-separated directories, looking for the terminal type. +- * We don't use strtok because it does not show us empty tokens. +- */ +-#define ThisDbList _nc_globals.dbi_list +-#define ThisDbSize _nc_globals.dbi_size +- +-/* + * Cleanup. + */ + NCURSES_EXPORT(void) + _nc_last_db(void) + { +- if (ThisDbList != 0) { +- FreeAndNull(ThisDbList); ++ if (my_blob != 0 && cache_expired()) { ++ free_cache(); + } +- ThisDbSize = 0; + } + +-/* The TERMINFO_DIRS value, if defined by the configure script, begins with a +- * ":", which will be interpreted as TERMINFO. +- */ +-static const char * +-next_list_item(const char *source, int *offset) +-{ +- if (source != 0) { +- FreeIfNeeded(ThisDbList); +- ThisDbList = strdup(source); +- ThisDbSize = (int) strlen(source); +- } +- +- if (ThisDbList != 0 && ThisDbSize && *offset < ThisDbSize) { +- static char system_db[] = TERMINFO; +- char *result = ThisDbList + *offset; +- char *marker = strchr(result, NCURSES_PATHSEP); +- +- /* +- * Put a null on the marker if a separator was found. Set the offset +- * to the next position after the marker so we can call this function +- * again, using the data at the offset. +- */ +- if (marker == 0) { +- *offset += (int) strlen(result); +- } else { +- *marker++ = 0; +- *offset = (int) (marker - ThisDbList); +- } +- if (*result == 0 && result != (ThisDbList + ThisDbSize)) +- result = system_db; +- return result; +- } +- return 0; +-} +- +-#define NEXT_DBD(var, offset) next_list_item((*offset == 0) ? var : 0, offset) +- + /* + * This is a simple iterator which allows the caller to step through the + * possible locations for a terminfo directory. ncurses uses this to find +@@ -141,84 +228,186 @@ + _nc_next_db(DBDIRS * state, int *offset) + { + const char *result; +- char *envp; +- +- while (*state < dbdLAST) { +- DBDIRS next = (DBDIRS) ((int) (*state) + 1); + ++ (void) offset; ++ if ((int) *state < my_size ++ && my_list != 0 ++ && my_list[*state] != 0) { ++ result = my_list[*state]; ++ (*state)++; ++ } else { + result = 0; ++ } ++ if (result != 0) { ++ T(("_nc_next_db %d %s", *state, result)); ++ } ++ return result; ++} + +- switch (*state) { +- case dbdTIC: +- if (HaveTicDirectory) +- result = _nc_tic_dir(0); +- break; +-#if USE_DATABASE +- case dbdEnvOnce: +- if (use_terminfo_vars()) { +- if ((envp = getenv("TERMINFO")) != 0) +- result = _nc_tic_dir(envp); ++NCURSES_EXPORT(void) ++_nc_first_db(DBDIRS * state, int *offset) ++{ ++ bool cache_has_expired = FALSE; ++ *state = dbdTIC; ++ *offset = 0; ++ ++ T(("_nc_first_db")); ++ ++ /* build a blob containing all of the strings we will use for a lookup ++ * table. ++ */ ++ if (my_blob == 0 || (cache_has_expired = cache_expired())) { ++ size_t blobsize = 0; ++ const char *values[dbdLAST]; ++ struct stat *my_stat; ++ int j, k; ++ ++ if (cache_has_expired) ++ free_cache(); ++ ++ for (j = 0; j < dbdLAST; ++j) ++ values[j] = 0; ++ ++ /* ++ * This is the first item in the list, and is used only when tic is ++ * writing to the database, as a performance improvement. ++ */ ++ values[dbdTIC] = TicDirectory; ++ ++#if NCURSES_USE_DATABASE ++#ifdef TERMINFO_DIRS ++ values[dbdCfgList] = TERMINFO_DIRS; ++#endif ++#ifdef TERMINFO ++ values[dbdCfgOnce] = TERMINFO; ++#endif ++#endif ++ ++#if NCURSES_USE_TERMCAP ++ values[dbdCfgList2] = TERMPATH; ++#endif ++ ++ if (use_terminfo_vars()) { ++#if NCURSES_USE_DATABASE ++ values[dbdEnvOnce] = cache_getenv("TERMINFO", dbdEnvOnce); ++ values[dbdHome] = _nc_home_terminfo(); ++ (void) cache_getenv("HOME", dbdHome); ++ values[dbdEnvList] = cache_getenv("TERMINFO_DIRS", dbdEnvList); ++ ++#endif ++#if NCURSES_USE_TERMCAP ++ values[dbdEnvOnce2] = cache_getenv("TERMCAP", dbdEnvOnce2); ++ /* only use $TERMCAP if it is an absolute path */ ++ if (values[dbdEnvOnce2] != 0 ++ && *values[dbdEnvOnce2] != '/') { ++ values[dbdEnvOnce2] = 0; + } +- break; +- case dbdHome: +- if (use_terminfo_vars()) { +- result = _nc_home_terminfo(); ++ values[dbdEnvList2] = cache_getenv("TERMPATH", dbdEnvList2); ++#endif /* NCURSES_USE_TERMCAP */ ++ } ++ ++ for (j = 0; j < dbdLAST; ++j) { ++ if (values[j] == 0) ++ values[j] = ""; ++ blobsize += 2 + strlen(values[j]); ++ } ++ ++ my_blob = malloc(blobsize); ++ if (my_blob != 0) { ++ *my_blob = '\0'; ++ for (j = 0; j < dbdLAST; ++j) { ++ add_to_blob(values[j], blobsize); + } +- break; +- case dbdEnvList: +- if (use_terminfo_vars()) { +- if ((result = NEXT_DBD(getenv("TERMINFO_DIRS"), offset)) != 0) +- next = *state; ++ ++ /* Now, build an array which will be pointers to the distinct ++ * strings in the blob. ++ */ ++ blobsize = 2; ++ for (j = 0; my_blob[j] != '\0'; ++j) { ++ if (my_blob[j] == NCURSES_PATHSEP) ++ ++blobsize; + } +- break; +- case dbdCfgList: +-#ifdef TERMINFO_DIRS +- if ((result = NEXT_DBD(TERMINFO_DIRS, offset)) != 0) +- next = *state; ++ my_list = typeCalloc(char *, blobsize); ++ my_stat = typeCalloc(struct stat, blobsize); ++ if (my_list != 0 && my_stat != 0) { ++ k = 0; ++ my_list[k++] = my_blob; ++ for (j = 0; my_blob[j] != '\0'; ++j) { ++ if (my_blob[j] == NCURSES_PATHSEP) { ++ my_blob[j] = '\0'; ++ my_list[k++] = &my_blob[j + 1]; ++ } ++ } ++ ++ /* ++ * Eliminate duplicates from the list. ++ */ ++ for (j = 0; my_list[j] != 0; ++j) { ++#ifdef TERMINFO ++ if (*my_list[j] == '\0') ++ my_list[j] = strdup(TERMINFO); + #endif +- break; +- case dbdCfgOnce: +-#ifndef TERMINFO_DIRS +- result = TERMINFO; +-#endif +- break; +-#endif /* USE_DATABASE */ +-#if USE_TERMCAP +- case dbdEnvOnce2: +- if (use_terminfo_vars()) { +- if ((envp = getenv("TERMCAP")) != 0) +- result = _nc_tic_dir(envp); +- } +- break; +- case dbdEnvList2: +- if (use_terminfo_vars()) { +- if ((result = NEXT_DBD(getenv("TERMPATH"), offset)) != 0) +- next = *state; ++ for (k = 0; k < j; ++k) { ++ if (!strcmp(my_list[j], my_list[k])) { ++ k = j - 1; ++ while ((my_list[j] = my_list[j + 1]) != 0) { ++ ++j; ++ } ++ j = k; ++ break; ++ } ++ } ++ } ++ ++ /* ++ * Eliminate non-existent databases, and those that happen to ++ * be symlinked to another location. ++ */ ++ for (j = 0; my_list[j] != 0; ++j) { ++ bool found = check_existence(my_list[j], &my_stat[j]); ++#if HAVE_LINK ++ if (found) { ++ for (k = 0; k < j; ++k) { ++ if (my_stat[j].st_dev == my_stat[k].st_dev ++ && my_stat[j].st_ino == my_stat[k].st_ino) { ++ found = FALSE; ++ break; ++ } ++ } ++ } ++#endif ++ if (!found) { ++ k = j; ++ while ((my_list[k] = my_list[k + 1]) != 0) { ++ ++k; ++ } ++ --j; ++ } ++ } ++ my_size = j; ++ my_time = time((time_t *) 0); ++ } else { ++ FreeAndNull(my_blob); + } +- break; +- case dbdCfgList2: +- if ((result = NEXT_DBD(TERMPATH, offset)) != 0) +- next = *state; +- break; +-#endif /* USE_TERMCAP */ +- case dbdLAST: +- break; +- } +- if (*state != next) { +- *state = next; +- *offset = 0; +- _nc_last_db(); +- } +- if (result != 0) { +- return result; ++ free(my_stat); + } + } +- return 0; + } + +-NCURSES_EXPORT(void) +-_nc_first_db(DBDIRS * state, int *offset) ++#if NO_LEAKS ++void ++_nc_db_iterator_leaks(void) + { +- *state = dbdTIC; +- *offset = 0; ++ DBDIRS which; ++ ++ if (my_blob != 0) ++ FreeAndNull(my_blob); ++ if (my_list != 0) ++ FreeAndNull(my_list); ++ for (which = 0; (int) which < dbdLAST; ++which) { ++ my_vars[which].name = 0; ++ FreeIfNeeded(my_vars[which].value); ++ my_vars[which].value = 0; ++ } + } ++#endif +diff -Naur ncurses-5.9/ncurses/tinfo/doalloc.c ncurses-5.9.patch/ncurses/tinfo/doalloc.c +--- ncurses-5.9/ncurses/tinfo/doalloc.c 2002-08-31 23:48:11.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/doalloc.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998,2000 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2000,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: doalloc.c,v 1.8 2002/08/31 21:48:11 Philippe.Blain Exp $") ++MODULE_ID("$Id: doalloc.c,v 1.11 2012/11/03 19:27:41 tom Exp $") + + NCURSES_EXPORT(void *) + _nc_doalloc(void *oldp, size_t amount) +@@ -56,20 +56,3 @@ + } + return newp; + } +- +-#if !HAVE_STRDUP +-NCURSES_EXPORT(char *) +-_nc_strdup(const char *src) +-{ +- char *dst; +- if (src != 0) { +- dst = typeMalloc(char, strlen(src) + 1); +- if (dst != 0) { +- (void) strcpy(dst, src); +- } +- } else { +- dst = 0; +- } +- return dst; +-} +-#endif +diff -Naur ncurses-5.9/ncurses/tinfo/entries.c ncurses-5.9.patch/ncurses/tinfo/entries.c +--- ncurses-5.9/ncurses/tinfo/entries.c 2010-01-23 18:57:43.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/entries.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -37,7 +37,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: entries.c,v 1.17 2010/01/23 17:57:43 tom Exp $") ++MODULE_ID("$Id: entries.c,v 1.21 2012/05/05 20:33:44 tom Exp $") + + /**************************************************************************** + * +@@ -96,6 +96,9 @@ + if (last != 0) { + last->next = ep->next; + } ++ if (ep->next != 0) { ++ ep->next->last = last; ++ } + if (ep == _nc_head) { + _nc_head = ep->next; + } +@@ -128,19 +131,21 @@ + _nc_free_entries(_nc_head); + _nc_get_type(0); + _nc_first_name(0); ++ _nc_db_iterator_leaks(); + _nc_keyname_leaks(); + #if BROKEN_LINKER || USE_REENTRANT + _nc_names_leaks(); + _nc_codes_leaks(); + FreeIfNeeded(_nc_prescreen.real_acs_map); + #endif ++ _nc_comp_error_leaks(); + + if ((s = _nc_home_terminfo()) != 0) + free(s); + + #ifdef TRACE + trace(0); +- _nc_trace_buf(-1, 0); ++ _nc_trace_buf(-1, (size_t) 0); + #endif + + #endif /* NO_LEAKS */ +diff -Naur ncurses-5.9/ncurses/tinfo/getenv_num.c ncurses-5.9.patch/ncurses/tinfo/getenv_num.c +--- ncurses-5.9/ncurses/tinfo/getenv_num.c 2000-12-10 03:55:07.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/getenv_num.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998,2000 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -36,7 +36,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: getenv_num.c,v 1.3 2000/12/10 02:55:07 tom Exp $") ++MODULE_ID("$Id: getenv_num.c,v 1.6 2013/09/28 20:25:08 tom Exp $") + + NCURSES_EXPORT(int) + _nc_getenv_num(const char *name) +@@ -54,3 +54,20 @@ + + return (int) value; + } ++ ++NCURSES_EXPORT(void) ++_nc_setenv_num(const char *name, int value) ++{ ++ if (name != 0 && value >= 0) { ++ char buffer[128]; ++#if HAVE_SETENV ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%d", value); ++ setenv(name, buffer, 1); ++#elif HAVE_PUTENV ++ char *s; ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%s=%d", name, value); ++ if ((s = strdup(buffer)) != 0) ++ putenv(s); ++#endif ++ } ++} +diff -Naur ncurses-5.9/ncurses/tinfo/hashed_db.c ncurses-5.9.patch/ncurses/tinfo/hashed_db.c +--- ncurses-5.9/ncurses/tinfo/hashed_db.c 2008-12-13 21:59:02.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/hashed_db.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2011,2013 Free 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,12 +36,81 @@ + + #if USE_HASHED_DB + +-MODULE_ID("$Id: hashed_db.c,v 1.14 2008/12/13 20:59:02 tom Exp $") ++MODULE_ID("$Id: hashed_db.c,v 1.17 2013/12/15 00:33:01 tom Exp $") + + #if HASHED_DB_API >= 2 + static DBC *cursor; + #endif + ++typedef struct _myconn { ++ struct _myconn *next; ++ DB *db; ++ char *path; ++ bool modify; ++} MYCONN; ++ ++static MYCONN *connections; ++ ++static void ++cleanup(void) ++{ ++ while (connections != 0) { ++ _nc_db_close(connections->db); ++ } ++} ++ ++static DB * ++find_connection(const char *path, bool modify) ++{ ++ DB *result = 0; ++ MYCONN *p; ++ ++ for (p = connections; p != 0; p = p->next) { ++ if (!strcmp(p->path, path) && p->modify == modify) { ++ result = p->db; ++ break; ++ } ++ } ++ ++ return result; ++} ++ ++static void ++drop_connection(DB * db) ++{ ++ MYCONN *p, *q; ++ ++ for (p = connections, q = 0; p != 0; q = p, p = p->next) { ++ if (p->db == db) { ++ if (q != 0) ++ q->next = p->next; ++ else ++ connections = p->next; ++ free(p->path); ++ free(p); ++ break; ++ } ++ } ++} ++ ++static void ++make_connection(DB * db, const char *path, bool modify) ++{ ++ MYCONN *p = typeCalloc(MYCONN, 1); ++ ++ if (p != 0) { ++ p->db = db; ++ p->path = strdup(path); ++ p->modify = modify; ++ if (p->path != 0) { ++ p->next = connections; ++ connections = p; ++ } else { ++ free(p); ++ } ++ } ++} ++ + /* + * Open the database. + */ +@@ -51,50 +120,57 @@ + DB *result = 0; + int code; + ++ if (connections == 0) ++ atexit(cleanup); ++ ++ if ((result = find_connection(path, modify)) == 0) { ++ + #if HASHED_DB_API >= 4 +- db_create(&result, NULL, 0); +- if ((code = result->open(result, +- NULL, +- path, +- NULL, +- DB_HASH, +- modify ? DB_CREATE : DB_RDONLY, +- 0644)) != 0) { +- result = 0; +- } ++ db_create(&result, NULL, 0); ++ 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); +- if ((code = result->open(result, +- path, +- NULL, +- DB_HASH, +- modify ? DB_CREATE : DB_RDONLY, +- 0644)) != 0) { +- result = 0; +- } ++ db_create(&result, NULL, 0); ++ if ((code = result->open(result, ++ path, ++ NULL, ++ DB_HASH, ++ modify ? DB_CREATE : DB_RDONLY, ++ 0644)) != 0) { ++ result = 0; ++ } + #elif HASHED_DB_API >= 2 +- if ((code = db_open(path, +- DB_HASH, +- modify ? DB_CREATE : DB_RDONLY, +- 0644, +- (DB_ENV *) 0, +- (DB_INFO *) 0, +- &result)) != 0) { +- result = 0; +- } +-#else +- if ((result = dbopen(path, +- modify ? (O_CREAT | O_RDWR) : O_RDONLY, +- 0644, +- DB_HASH, +- NULL)) == 0) { +- code = errno; +- } ++ if ((code = db_open(path, ++ DB_HASH, ++ modify ? DB_CREATE : DB_RDONLY, ++ 0644, ++ (DB_ENV *) 0, ++ (DB_INFO *) 0, ++ &result)) != 0) { ++ result = 0; ++ } ++#else ++ 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))); ++ if (result != 0) { ++ make_connection(result, path, modify); ++ T(("opened %s", path)); ++ } else { ++ T(("cannot open %s: %s", path, strerror(code))); ++ } + } + return result; + } +@@ -107,6 +183,7 @@ + { + int result; + ++ drop_connection(db); + #if HASHED_DB_API >= 2 + result = db->close(db, 0); + #else +@@ -209,7 +286,7 @@ + _nc_db_have_index(DBT * key, DBT * data, char **buffer, int *size) + { + bool result = FALSE; +- int used = data->size - 1; ++ int used = (int) data->size - 1; + char *have = (char *) data->data; + + (void) key; +@@ -232,7 +309,7 @@ + _nc_db_have_data(DBT * key, DBT * data, char **buffer, int *size) + { + bool result = FALSE; +- int used = data->size - 1; ++ int used = (int) data->size - 1; + char *have = (char *) data->data; + + if (*have++ == 0) { +diff -Naur ncurses-5.9/ncurses/tinfo/home_terminfo.c ncurses-5.9.patch/ncurses/tinfo/home_terminfo.c +--- ncurses-5.9/ncurses/tinfo/home_terminfo.c 2010-12-26 00:43:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/home_terminfo.c 2014-09-01 16:33:22.421792231 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: home_terminfo.c,v 1.12 2010/12/25 23:43:58 tom Exp $") ++MODULE_ID("$Id: home_terminfo.c,v 1.15 2012/10/27 21:49:14 tom Exp $") + + /* ncurses extension...fall back on user's private directory */ + +@@ -54,10 +54,8 @@ + if (MyBuffer == 0) { + if ((home = getenv("HOME")) != 0) { + size_t want = (strlen(home) + sizeof(PRIVATE_INFO)); +- MyBuffer = typeMalloc(char, want); +- if (MyBuffer == 0) +- _nc_err_abort(MSG_NO_MEMORY); +- (void) sprintf(MyBuffer, PRIVATE_INFO, home); ++ TYPE_MALLOC(char, want, MyBuffer); ++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(want) PRIVATE_INFO, home); + } + } + result = MyBuffer; +diff -Naur ncurses-5.9/ncurses/tinfo/lib_acs.c ncurses-5.9.patch/ncurses/tinfo/lib_acs.c +--- ncurses-5.9/ncurses/tinfo/lib_acs.c 2010-12-26 00:00:45.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_acs.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_acs.c,v 1.43 2010/12/25 23:00:45 tom Exp $") ++MODULE_ID("$Id: lib_acs.c,v 1.45 2014/03/08 20:32:59 tom Exp $") + + #if BROKEN_LINKER || USE_REENTRANT + #define MyBuffer _nc_prescreen.real_acs_map +@@ -166,11 +166,10 @@ + real_map['E'] = '+'; /* large plus or crossover */ + + #ifdef USE_TERM_DRIVER +- CallDriver_2(SP_PARM, initacs, real_map, fake_map); ++ CallDriver_2(SP_PARM, td_initacs, real_map, fake_map); + #else + if (ena_acs != NULL) { +- TPUTS_TRACE("ena_acs"); +- putp(ena_acs); ++ NCURSES_PUTP2("ena_acs", ena_acs); + } + #if NCURSES_EXT_FUNCS + /* +diff -Naur ncurses-5.9/ncurses/tinfo/lib_baudrate.c ncurses-5.9.patch/ncurses/tinfo/lib_baudrate.c +--- ncurses-5.9/ncurses/tinfo/lib_baudrate.c 2010-12-19 02:50:50.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_baudrate.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -49,7 +49,7 @@ + * of the indices up to B115200 fit nicely in a 'short', allowing us to retain + * ospeed's type for compatibility. + */ +-#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__) ++#if NCURSES_OSPEED_COMPAT && ((defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)) + #undef B0 + #undef B50 + #undef B75 +@@ -79,7 +79,7 @@ + #undef USE_OLD_TTY + #endif /* USE_OLD_TTY */ + +-MODULE_ID("$Id: lib_baudrate.c,v 1.31 2010/12/19 01:50:50 tom Exp $") ++MODULE_ID("$Id: lib_baudrate.c,v 1.34 2013/12/15 01:29:02 tom Exp $") + + /* + * int +@@ -90,54 +90,55 @@ + */ + + struct speed { +- int s; /* value for 'ospeed' is an index */ ++ NCURSES_OSPEED s; /* values for 'ospeed' */ + int sp; /* the actual speed */ + }; + ++#define DATA(number) { B##number, number } ++ + static struct speed const speeds[] = + { +- {B0, 0}, +- {B50, 50}, +- {B75, 75}, +- {B110, 110}, +- {B134, 134}, +- {B150, 150}, +- {B200, 200}, +- {B300, 300}, +- {B600, 600}, +- {B1200, 1200}, +- {B1800, 1800}, +- {B2400, 2400}, +- {B4800, 4800}, +- {B9600, 9600}, ++ DATA(0), ++ DATA(50), ++ DATA(75), ++ DATA(110), ++ DATA(134), ++ DATA(150), ++ DATA(200), ++ DATA(300), ++ DATA(600), ++ DATA(1200), ++ DATA(1800), ++ DATA(2400), ++ DATA(4800), ++ DATA(9600), + #ifdef B19200 +- {B19200, 19200}, +-#else +-#ifdef EXTA ++ DATA(19200), ++#elif defined(EXTA) + {EXTA, 19200}, + #endif +-#endif + #ifdef B38400 +- {B38400, 38400}, +-#else +-#ifdef EXTB ++ DATA(38400), ++#elif defined(EXTB) + {EXTB, 38400}, + #endif +-#endif + #ifdef B57600 +- {B57600, 57600}, ++ DATA(57600), + #endif ++ /* ifdef to prevent overflow when OLD_TTY is not available */ ++#if !(NCURSES_OSPEED_COMPAT && defined(__FreeBSD__) && (__FreeBSD_version > 700000)) + #ifdef B115200 +- {B115200, 115200}, ++ DATA(115200), + #endif + #ifdef B230400 +- {B230400, 230400}, ++ DATA(230400), + #endif + #ifdef B460800 +- {B460800, 460800}, ++ DATA(460800), + #endif + #ifdef B921600 +- {B921600, 921600}, ++ DATA(921600), ++#endif + #endif + }; + +@@ -167,7 +168,7 @@ + } + } + #if !USE_REENTRANT +- if (OSpeed == last_OSpeed) { ++ if (OSpeed != last_OSpeed) { + last_OSpeed = OSpeed; + last_baudrate = result; + } +@@ -219,8 +220,8 @@ + + if (IsValidTIScreen(SP_PARM)) { + #ifdef USE_OLD_TTY +- result = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); +- ospeed = _nc_ospeed(result); ++ result = (int) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); ++ ospeed = (NCURSES_OSPEED) _nc_ospeed(result); + #else /* !USE_OLD_TTY */ + #ifdef TERMIOS + ospeed = (NCURSES_OSPEED) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); +diff -Naur ncurses-5.9/ncurses/tinfo/lib_cur_term.c ncurses-5.9.patch/ncurses/tinfo/lib_cur_term.c +--- ncurses-5.9/ncurses/tinfo/lib_cur_term.c 2010-12-19 02:38:45.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_cur_term.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,14 +39,12 @@ + #include <curses.priv.h> + #include <termcap.h> /* ospeed */ + +-MODULE_ID("$Id: lib_cur_term.c,v 1.30 2010/12/19 01:38:45 tom Exp $") ++MODULE_ID("$Id: lib_cur_term.c,v 1.33 2014/03/08 20:32:59 tom Exp $") + + #undef CUR + #define CUR termp->type. + +-#if BROKEN_LINKER && !USE_REENTRANT +-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0; +-#elif BROKEN_LINKER || USE_REENTRANT ++#if USE_REENTRANT + + NCURSES_EXPORT(TERMINAL *) + NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0) +@@ -55,6 +53,7 @@ + } + + #if NCURSES_SP_FUNCS ++ + NCURSES_EXPORT(TERMINAL *) + _nc_get_cur_term(void) + { +@@ -87,10 +86,10 @@ + oldterm = cur_term; + if (SP_PARM) + SP_PARM->_term = termp; +-#if BROKEN_LINKER && !USE_REENTRANT +- cur_term = termp; +-#else ++#if USE_REENTRANT + CurTerm = termp; ++#else ++ cur_term = termp; + #endif + if (termp != 0) { + #ifdef USE_TERM_DRIVER +@@ -133,9 +132,7 @@ + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; + #endif + TERMINAL *cur = ( +-#if BROKEN_LINKER && !USE_REENTRANT +- cur_term +-#elif BROKEN_LINKER || USE_REENTRANT ++#if USE_REENTRANT + NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG) + #else + cur_term +@@ -148,12 +145,13 @@ + + FreeIfNeeded(termp->_termname); + #if USE_HOME_TERMINFO +- if (_nc_globals.home_terminfo != 0) ++ if (_nc_globals.home_terminfo != 0) { + FreeAndNull(_nc_globals.home_terminfo); ++ } + #endif + #ifdef USE_TERM_DRIVER + if (TCB->drv) +- TCB->drv->release(TCB); ++ TCB->drv->td_release(TCB); + #endif + free(termp); + +diff -Naur ncurses-5.9/ncurses/tinfo/lib_data.c ncurses-5.9.patch/ncurses/tinfo/lib_data.c +--- ncurses-5.9/ncurses/tinfo/lib_data.c 2010-05-16 00:06:56.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_data.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 <curses.priv.h> + +-MODULE_ID("$Id: lib_data.c,v 1.61 2010/05/15 22:06:56 tom Exp $") ++MODULE_ID("$Id: lib_data.c,v 1.66 2013/08/24 17:28:24 tom Exp $") + + /* + * OS/2's native linker complains if we don't initialize public data when +@@ -114,6 +114,7 @@ + #define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 } + + NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = { ++ 0, /* have_sigtstp */ + 0, /* have_sigwinch */ + 0, /* cleanup_nested */ + +@@ -125,13 +126,14 @@ + + FALSE, /* have_tic_directory */ + FALSE, /* keep_tic_directory */ +- TERMINFO, /* tic_directory */ ++ 0, /* tic_directory */ + + NULL, /* dbi_list */ + 0, /* dbi_size */ + + NULL, /* first_name */ + NULL, /* keyname_table */ ++ 0, /* init_keyname */ + + 0, /* slk_format */ + +@@ -142,6 +144,12 @@ + 0, /* tgetent_index */ + 0, /* tgetent_sequence */ + ++ 0, /* dbd_blob */ ++ 0, /* dbd_list */ ++ 0, /* dbd_size */ ++ 0, /* dbd_time */ ++ { { 0, 0 } }, /* dbd_vars */ ++ + #ifndef USE_SP_WINDOWLIST + 0, /* _nc_windowlist */ + #endif +@@ -249,6 +257,7 @@ + NULL, /* _tputs_trace */ + #endif + #endif ++ FALSE, /* use_tioctl */ + }; + /* *INDENT-ON* */ + +diff -Naur ncurses-5.9/ncurses/tinfo/lib_has_cap.c ncurses-5.9.patch/ncurses/tinfo/lib_has_cap.c +--- ncurses-5.9/ncurses/tinfo/lib_has_cap.c 2009-10-25 00:15:47.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_has_cap.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2013 Free 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 CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_has_cap.c,v 1.9 2009/10/24 22:15:47 tom Exp $") ++MODULE_ID("$Id: lib_has_cap.c,v 1.10 2013/11/16 19:57:22 tom Exp $") + + NCURSES_EXPORT(bool) + NCURSES_SP_NAME(has_ic) (NCURSES_SP_DCL0) +@@ -55,7 +55,7 @@ + + T((T_CALLED("has_ic(%p)"), (void *) SP_PARM)); + +- if (IsValidTIScreen(SP_PARM) && IsTermInfo(SP_PARM)) { ++ if (HasTInfoTerminal(SP_PARM)) { + code = ((insert_character || parm_ich + || (enter_insert_mode && exit_insert_mode)) + && (delete_character || parm_dch)) ? TRUE : FALSE; +@@ -77,7 +77,7 @@ + { + bool code = FALSE; + T((T_CALLED("has_il(%p)"), (void *) SP_PARM)); +- if (IsValidTIScreen(SP_PARM) && IsTermInfo(SP_PARM)) { ++ if (HasTInfoTerminal(SP_PARM)) { + code = ((insert_line || parm_insert_line) + && (delete_line || parm_delete_line)) ? TRUE : FALSE; + } +diff -Naur ncurses-5.9/ncurses/tinfo/lib_napms.c ncurses-5.9.patch/ncurses/tinfo/lib_napms.c +--- ncurses-5.9/ncurses/tinfo/lib_napms.c 2009-11-07 21:37:30.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_napms.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -51,17 +51,21 @@ + #endif + #endif + +-MODULE_ID("$Id: lib_napms.c,v 1.20 2009/11/07 20:37:30 tom Exp $") ++MODULE_ID("$Id: lib_napms.c,v 1.24 2014/03/08 20:32:59 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms) + { +- (void) SP_PARM; + T((T_CALLED("napms(%d)"), ms)); + + #ifdef USE_TERM_DRIVER +- CallDriver_1(SP_PARM, nap, ms); ++ if (HasTerminal(SP_PARM)) { ++ CallDriver_1(SP_PARM, td_nap, ms); ++ } + #else /* !USE_TERM_DRIVER */ ++#if NCURSES_SP_FUNCS ++ (void) sp; ++#endif + #if HAVE_NANOSLEEP + { + struct timespec request, remaining; +diff -Naur ncurses-5.9/ncurses/tinfo/lib_options.c ncurses-5.9.patch/ncurses/tinfo/lib_options.c +--- ncurses-5.9/ncurses/tinfo/lib_options.c 2009-10-24 23:56:15.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_options.c 2014-09-01 16:33:22.422792233 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_options.c,v 1.71 2009/10/24 21:56:15 tom Exp $") ++MODULE_ID("$Id: lib_options.c,v 1.77 2014/03/08 20:32:59 tom Exp $") + + NCURSES_EXPORT(int) + idlok(WINDOW *win, bool flag) +@@ -56,7 +56,11 @@ + + if (win) { + SCREEN *sp = _nc_screen_of(win); +- if (sp && IsTermInfo(sp)) { ++ if (sp != 0 ++#ifdef USE_TERM_DRIVER ++ && IsTermInfo(sp) ++#endif ++ ) { + sp->_nc_sp_idlok = + win->_idlok = (flag && (NCURSES_SP_NAME(has_il) (NCURSES_SP_ARG) + || change_scroll_region)); +@@ -165,16 +169,16 @@ + #ifdef USE_TERM_DRIVER + if (IsTermInfo(sp)) { + if (flag) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on); ++ NCURSES_PUTP2("meta_on", meta_on); + } else { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off); ++ NCURSES_PUTP2("meta_off", meta_off); + } + } + #else + if (flag) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on); ++ NCURSES_PUTP2("meta_on", meta_on); + } else { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off); ++ NCURSES_PUTP2("meta_off", meta_off); + } + #endif + result = OK; +@@ -199,19 +203,16 @@ + if (!bBuiltIn) { + switch (vis) { + case 2: +- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx +- "cursor_visible", +- cursor_visible); ++ code = NCURSES_PUTP2_FLUSH("cursor_visible", ++ cursor_visible); + break; + case 1: +- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx +- "cursor_normal", +- cursor_normal); ++ code = NCURSES_PUTP2_FLUSH("cursor_normal", ++ cursor_normal); + break; + case 0: +- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx +- "cursor_invisible", +- cursor_invisible); ++ code = NCURSES_PUTP2_FLUSH("cursor_invisible", ++ cursor_invisible); + break; + } + } else +@@ -301,7 +302,7 @@ + NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_DCLx + const char *name, const char *value) + { +- int rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value); ++ int rc = NCURSES_PUTP2(name, value); + if (rc != ERR) { + _nc_flush(); + } +@@ -324,7 +325,7 @@ + * the terminal state _before_ switching modes. + */ + NCURSES_EXPORT(int) +-_nc_keypad(SCREEN *sp, bool flag) ++_nc_keypad(SCREEN *sp, int flag) + { + int rc = ERR; + +@@ -349,18 +350,14 @@ + #endif + { + #ifdef USE_TERM_DRIVER +- rc = CallDriver_1(sp, kpad, flag); ++ rc = CallDriver_1(sp, td_kpad, flag); + if (rc == OK) + sp->_keypad_on = flag; + #else + if (flag) { +- (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx +- "keypad_xmit", +- keypad_xmit); ++ (void) NCURSES_PUTP2_FLUSH("keypad_xmit", keypad_xmit); + } else if (!flag && keypad_local) { +- (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx +- "keypad_local", +- keypad_local); ++ (void) NCURSES_PUTP2_FLUSH("keypad_local", keypad_local); + } + + if (flag && !sp->_tried) { +diff -Naur ncurses-5.9/ncurses/tinfo/lib_print.c ncurses-5.9.patch/ncurses/tinfo/lib_print.c +--- ncurses-5.9/ncurses/tinfo/lib_print.c 2010-06-06 00:18:35.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_print.c 2014-09-01 16:33:22.423792234 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_print.c,v 1.20 2010/06/05 22:18:35 tom Exp $") ++MODULE_ID("$Id: lib_print.c,v 1.23 2012/02/22 22:34:31 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len) +@@ -76,10 +76,10 @@ + return (ERR); + } + +- (void) strcpy(mybuf, switchon); +- memcpy(mybuf + onsize, data, (unsigned) len); ++ _nc_STRCPY(mybuf, switchon, need); ++ memcpy(mybuf + onsize, data, (size_t) len); + if (offsize) +- (void) strcpy(mybuf + onsize + len, prtr_off); ++ _nc_STRCPY(mybuf + onsize + len, prtr_off, need); + + /* + * We're relying on the atomicity of UNIX writes here. The +diff -Naur ncurses-5.9/ncurses/tinfo/lib_raw.c ncurses-5.9.patch/ncurses/tinfo/lib_raw.c +--- ncurses-5.9/ncurses/tinfo/lib_raw.c 2010-04-25 01:49:12.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_raw.c 2014-09-01 16:33:22.423792234 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -49,11 +49,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_raw.c,v 1.19 2010/04/24 23:49:12 tom Exp $") +- +-#if SVR4_TERMIO && !defined(_POSIX_SOURCE) +-#define _POSIX_SOURCE +-#endif ++MODULE_ID("$Id: lib_raw.c,v 1.21 2012/01/21 19:21:29 KO.Myung-Hun Exp $") + + #if HAVE_SYS_TERMIO_H + #include <sys/termio.h> /* needed for ISC */ +@@ -66,6 +62,11 @@ + #define _nc_setmode(mode) /* nothing */ + #endif + ++#if USE_KLIBC_KBD ++#define INCL_KBD ++#include <os2.h> ++#endif ++ + #define COOKED_INPUT (IXON|BRKINT|PARMRK) + + #ifdef TRACE +@@ -100,6 +101,17 @@ + #endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { ++#if USE_KLIBC_KBD ++ KBDINFO kbdinfo; ++ ++ kbdinfo.cb = sizeof(kbdinfo); ++ KbdGetStatus(&kbdinfo, 0); ++ ++ kbdinfo.cb = sizeof(kbdinfo); ++ kbdinfo.fsMask &= ~KEYBOARD_ASCII_MODE; ++ kbdinfo.fsMask |= KEYBOARD_BINARY_MODE; ++ KbdSetStatus(&kbdinfo, 0); ++#endif + SP_PARM->_raw = TRUE; + SP_PARM->_cbreak = 1; + termp->Nttyb = buf; +@@ -218,6 +230,17 @@ + #endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { ++#if USE_KLIBC_KBD ++ KBDINFO kbdinfo; ++ ++ kbdinfo.cb = sizeof(kbdinfo); ++ KbdGetStatus(&kbdinfo, 0); ++ ++ kbdinfo.cb = sizeof(kbdinfo); ++ kbdinfo.fsMask &= ~KEYBOARD_BINARY_MODE; ++ kbdinfo.fsMask |= KEYBOARD_ASCII_MODE; ++ KbdSetStatus(&kbdinfo, 0); ++#endif + SP_PARM->_raw = FALSE; + SP_PARM->_cbreak = 0; + termp->Nttyb = buf; +diff -Naur ncurses-5.9/ncurses/tinfo/lib_setup.c ncurses-5.9.patch/ncurses/tinfo/lib_setup.c +--- ncurses-5.9/ncurses/tinfo/lib_setup.c 2011-02-06 02:04:21.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_setup.c 2014-09-01 16:33:22.423792234 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,21 +37,18 @@ + * Terminal setup routines common to termcap and terminfo: + * + * use_env(bool) ++ * use_tioctl(bool) + * setupterm(char *, int, int *) + */ + + #include <curses.priv.h> + #include <tic.h> /* for MAX_NAME_SIZE */ + +-#if SVR4_TERMIO && !defined(_POSIX_SOURCE) +-#define _POSIX_SOURCE +-#endif +- + #if HAVE_LOCALE_H + #include <locale.h> + #endif + +-MODULE_ID("$Id: lib_setup.c,v 1.135 2011/02/06 01:04:21 tom Exp $") ++MODULE_ID("$Id: lib_setup.c,v 1.159 2014/03/08 20:32:59 tom Exp $") + + /**************************************************************************** + * +@@ -225,6 +222,7 @@ + { + T((T_CALLED("use_env(%p,%d)"), (void *) SP_PARM, (int) f)); + #if NCURSES_SP_FUNCS ++ START_TRACE(); + if (IsPreScreen(SP_PARM)) { + SP_PARM->_use_env = f; + } +@@ -234,14 +232,39 @@ + returnVoid; + } + ++NCURSES_EXPORT(void) ++NCURSES_SP_NAME(use_tioctl) (NCURSES_SP_DCLx bool f) ++{ ++ T((T_CALLED("use_tioctl(%p,%d)"), (void *) SP_PARM, (int) f)); ++#if NCURSES_SP_FUNCS ++ START_TRACE(); ++ if (IsPreScreen(SP_PARM)) { ++ SP_PARM->_use_tioctl = f; ++ } ++#else ++ _nc_prescreen.use_tioctl = f; ++#endif ++ returnVoid; ++} ++ + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(void) + use_env(bool f) + { + T((T_CALLED("use_env(%d)"), (int) f)); ++ START_TRACE(); + _nc_prescreen.use_env = f; + returnVoid; + } ++ ++NCURSES_EXPORT(void) ++use_tioctl(bool f) ++{ ++ T((T_CALLED("use_tioctl(%d)"), (int) f)); ++ START_TRACE(); ++ _nc_prescreen.use_tioctl = f; ++ returnVoid; ++} + #endif + + NCURSES_EXPORT(void) +@@ -260,7 +283,7 @@ + TCB = (TERMINAL_CONTROL_BLOCK *) termp; + + my_tabsize = TCB->info.tabsize; +- TCB->drv->size(TCB, linep, colp); ++ TCB->drv->td_size(TCB, linep, colp); + + #if USE_REENTRANT + if (sp != 0) { +@@ -281,7 +304,7 @@ + *linep = (int) lines; + *colp = (int) columns; + +- if (_nc_prescreen.use_env) { ++ if (_nc_prescreen.use_env || _nc_prescreen.use_tioctl) { + int value; + + #ifdef __EMX__ +@@ -289,7 +312,9 @@ + int screendata[2]; + _scrsize(screendata); + *colp = screendata[0]; +- *linep = screendata[1]; ++ *linep = ((sp != 0 && sp->_filtered) ++ ? 1 ++ : screendata[1]); + T(("EMX screen size: environment LINES = %d COLUMNS = %d", + *linep, *colp)); + } +@@ -315,19 +340,33 @@ + } + #endif /* HAVE_SIZECHANGE */ + +- /* +- * Finally, look for environment variables. +- * +- * Solaris lets users override either dimension with an environment +- * variable. +- */ +- if ((value = _nc_getenv_num("LINES")) > 0) { +- *linep = value; +- T(("screen size: environment LINES = %d", *linep)); +- } +- if ((value = _nc_getenv_num("COLUMNS")) > 0) { +- *colp = value; +- T(("screen size: environment COLUMNS = %d", *colp)); ++ if (_nc_prescreen.use_env) { ++ if (_nc_prescreen.use_tioctl) { ++ /* ++ * If environment variables are used, update them. ++ */ ++ if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) { ++ _nc_setenv_num("LINES", *linep); ++ } ++ if (_nc_getenv_num("COLUMNS") > 0) { ++ _nc_setenv_num("COLUMNS", *colp); ++ } ++ } ++ ++ /* ++ * Finally, look for environment variables. ++ * ++ * Solaris lets users override either dimension with an environment ++ * variable. ++ */ ++ if ((value = _nc_getenv_num("LINES")) > 0) { ++ *linep = value; ++ T(("screen size: environment LINES = %d", *linep)); ++ } ++ if ((value = _nc_getenv_num("COLUMNS")) > 0) { ++ *colp = value; ++ T(("screen size: environment COLUMNS = %d", *colp)); ++ } + } + + /* if we can't get dynamic info about the size, use static */ +@@ -384,7 +423,7 @@ + + assert(sp != 0); + +- CallDriver_2(sp, getsize, &old_lines, &old_cols); ++ CallDriver_2(sp, td_getsize, &old_lines, &old_cols); + + #else + TERMINAL *termp = cur_term; +@@ -399,10 +438,12 @@ + * We're doing it this way because those functions belong to the upper + * ncurses library, while this resides in the lower terminfo library. + */ +- if (sp != 0 +- && sp->_resize != 0) { +- if ((new_lines != old_lines) || (new_cols != old_cols)) ++ if (sp != 0 && sp->_resize != 0) { ++ if ((new_lines != old_lines) || (new_cols != old_cols)) { + sp->_resize(NCURSES_SP_ARGx new_lines, new_cols); ++ } else if (sp->_sig_winch && (sp->_ungetch != 0)) { ++ sp->_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ ++ } + sp->_sig_winch = FALSE; + } + } +@@ -414,23 +455,7 @@ + * + ****************************************************************************/ + +-#define ret_error(code, fmt, arg) if (errret) {\ +- *errret = code;\ +- returnCode(ERR);\ +- } else {\ +- fprintf(stderr, fmt, arg);\ +- exit(EXIT_FAILURE);\ +- } +- +-#define ret_error0(code, msg) if (errret) {\ +- *errret = code;\ +- returnCode(ERR);\ +- } else {\ +- fprintf(stderr, msg);\ +- exit(EXIT_FAILURE);\ +- } +- +-#if USE_DATABASE || USE_TERMCAP ++#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP + /* + * Return 1 if entry found, 0 if not found, -1 if database not accessible, + * just like tgetent(). +@@ -467,7 +492,7 @@ + ** and substitute it in for the prototype given in 'command_character'. + */ + void +-_nc_tinfo_cmdch(TERMINAL * termp, char proto) ++_nc_tinfo_cmdch(TERMINAL * termp, int proto) + { + unsigned i; + char CC; +@@ -481,8 +506,8 @@ + if ((tmp = getenv("CC")) != 0 && strlen(tmp) == 1) { + CC = *tmp; + for_each_string(i, &(termp->type)) { +- for (tmp = termp->type.Strings[i]; *tmp; tmp++) { +- if (*tmp == proto) ++ for (tmp = termp->type.Strings[i]; tmp && *tmp; tmp++) { ++ if (UChar(*tmp) == proto) + *tmp = CC; + } + } +@@ -520,7 +545,9 @@ + _nc_unicode_locale(void) + { + int result = 0; +-#if HAVE_LANGINFO_CODESET ++#if defined(__MINGW32__) && USE_WIDEC_SUPPORT ++ result = 1; ++#elif HAVE_LANGINFO_CODESET + char *env = nl_langinfo(CODESET); + result = !strcmp(env, "UTF-8"); + T(("_nc_unicode_locale(%s) ->%d", env, result)); +@@ -551,7 +578,7 @@ + int value; + int result = 0; + +- if ((env = getenv(env_name)) != 0) { ++ if (getenv(env_name) != 0) { + result = _nc_getenv_num(env_name); + } else if ((value = tigetnum("U8")) >= 0) { + result = value; /* use extension feature */ +@@ -578,7 +605,7 @@ + NCURSES_CONST char *tname, + int Filedes, + int *errret, +- bool reuse) ++ int reuse) + { + #ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = 0; +@@ -608,7 +635,11 @@ + if (tname == 0) { + tname = getenv("TERM"); + if (tname == 0 || *tname == '\0') { ++#ifdef USE_TERM_DRIVER ++ tname = "unknown"; ++#else + ret_error0(TGETENT_ERR, "TERM environment variable not set.\n"); ++#endif + } + } + +@@ -651,9 +682,14 @@ + && _nc_name_match(termp->type.term_names, tname, "|")) { + T(("reusing existing terminal information and mode-settings")); + code = OK; ++#ifdef USE_TERM_DRIVER ++ TCB = (TERMINAL_CONTROL_BLOCK *) termp; ++#endif + } else { + #ifdef USE_TERM_DRIVER +- termp = (TERMINAL *) typeCalloc(TERMINAL_CONTROL_BLOCK, 1); ++ TERMINAL_CONTROL_BLOCK *my_tcb; ++ my_tcb = typeCalloc(TERMINAL_CONTROL_BLOCK, 1); ++ termp = &(my_tcb->term); + #else + termp = typeCalloc(TERMINAL, 1); + #endif +@@ -673,7 +709,7 @@ + "Could not find any driver to handle this terminal.\n"); + } + #else +-#if USE_DATABASE || USE_TERMCAP ++#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP + status = _nc_setup_tinfo(tname, &termp->type); + #else + status = TGETENT_NO; +@@ -684,7 +720,7 @@ + const TERMTYPE *fallback = _nc_fallback(tname); + + if (fallback) { +- termp->type = *fallback; ++ _nc_copy_termtype(&(termp->type), fallback); + status = TGETENT_YES; + } + } +@@ -694,11 +730,11 @@ + 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); ++ ret_error1(status, "unknown terminal type.\n", tname); + } + } + #if !USE_REENTRANT +- strncpy(ttytype, termp->type.term_names, NAMESIZE - 1); ++ strncpy(ttytype, termp->type.term_names, (size_t) (NAMESIZE - 1)); + ttytype[NAMESIZE - 1] = '\0'; + #endif + +@@ -708,7 +744,7 @@ + set_curterm(termp); + + if (command_character) +- _nc_tinfo_cmdch(termp, *command_character); ++ _nc_tinfo_cmdch(termp, UChar(*command_character)); + + /* + * If an application calls setupterm() rather than initscr() or +@@ -727,7 +763,7 @@ + #ifdef USE_TERM_DRIVER + *tp = termp; + NCURSES_SP_NAME(set_curterm) (sp, termp); +- TCB->drv->init(TCB); ++ TCB->drv->td_init(TCB); + #else + sp = SP; + #endif +@@ -742,10 +778,20 @@ + + #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); ++ /* ++ * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity ++ * check before giving up. ++ */ ++ if ((VALID_STRING(cursor_address) ++ || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home))) ++ && VALID_STRING(clear_screen)) { ++ ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname); ++ } else { ++ del_curterm(termp); ++ ret_error1(TGETENT_NO, "I need something more specific.\n", tname); ++ } ++ } else if (hard_copy) { ++ ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname); + } + #endif + returnCode(code); +@@ -798,10 +844,10 @@ + _nc_setupterm(NCURSES_CONST char *tname, + int Filedes, + int *errret, +- bool reuse) ++ int reuse) + { + int res; +- TERMINAL *termp; ++ TERMINAL *termp = 0; + res = TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse); + if (ERR != res) + NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN_PRE, termp); +diff -Naur ncurses-5.9/ncurses/tinfo/lib_termcap.c ncurses-5.9.patch/ncurses/tinfo/lib_termcap.c +--- ncurses-5.9/ncurses/tinfo/lib_termcap.c 2010-12-25 20:27:12.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_termcap.c 2014-09-01 16:33:22.423792234 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_termcap.c,v 1.73 2010/12/25 19:27:12 tom Exp $") ++MODULE_ID("$Id: lib_termcap.c,v 1.80 2013/06/08 16:48:47 tom Exp $") + + NCURSES_EXPORT_VAR(char *) UP = 0; + NCURSES_EXPORT_VAR(char *) BC = 0; +@@ -63,6 +63,15 @@ + #define LAST_USE MyCache[CacheInx].last_used + #define LAST_SEQ MyCache[CacheInx].sequence + ++/* ++ * Termcap names are matched only using the first two bytes. ++ * Ignore any extended names longer than two bytes, to avoid problems ++ * with legacy code which passes in parameters whose use is long forgotten. ++ */ ++#define ValidCap(cap) (((cap)[0] != '\0') && ((cap)[1] != '\0')) ++#define SameCap(a,b) (((a)[0] == (b)[0]) && ((a)[1] == (b)[1])) ++#define ValidExt(ext) (ValidCap(ext) && (ext)[2] == '\0') ++ + /*************************************************************************** + * + * tgetent(bufp, term) +@@ -97,7 +106,7 @@ + #ifdef USE_TERM_DRIVER + if (termp == 0 || + !((TERMINAL_CONTROL_BLOCK *) termp)->drv->isTerminfo) +- return (rc); ++ returnCode(rc); + #endif + + /* +@@ -202,11 +211,13 @@ + static bool + same_tcname(const char *a, const char *b) + { +- fprintf(stderr, "compare(%s,%s)\n", a, b); +- return !strncmp(a, b, 2); ++ bool code = SameCap(a, b); ++ fprintf(stderr, "compare(%s,%s) %s\n", a, b, code ? "same" : "diff"); ++ return code; + } ++ + #else +-#define same_tcname(a,b) !strncmp(a,b,2) ++#define same_tcname(a,b) SameCap(a,b) + #endif + + /*************************************************************************** +@@ -222,10 +233,10 @@ + NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id) + { + int result = 0; /* Solaris returns zero for missing flag */ +- int i, j; ++ int j = -1; + + T((T_CALLED("tgetflag(%p, %s)"), (void *) SP_PARM, id)); +- if (HasTInfoTerminal(SP_PARM)) { ++ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + +@@ -235,10 +246,10 @@ + } + #if NCURSES_XNAMES + else { +- j = -1; ++ int i; + for_each_ext_boolean(i, tp) { + const char *capname = ExtBoolname(tp, i, boolcodes); +- if (same_tcname(id, capname)) { ++ if (same_tcname(id, capname) && ValidExt(capname)) { + j = i; + break; + } +@@ -274,10 +285,10 @@ + NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id) + { + int result = ABSENT_NUMERIC; +- int i, j; ++ int j = -1; + + T((T_CALLED("tgetnum(%p, %s)"), (void *) SP_PARM, id)); +- if (HasTInfoTerminal(SP_PARM)) { ++ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + +@@ -287,10 +298,10 @@ + } + #if NCURSES_XNAMES + else { +- j = -1; ++ int i; + for_each_ext_number(i, tp) { + const char *capname = ExtNumname(tp, i, numcodes); +- if (same_tcname(id, capname)) { ++ if (same_tcname(id, capname) && ValidExt(capname)) { + j = i; + break; + } +@@ -326,10 +337,10 @@ + NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx NCURSES_CONST char *id, char **area) + { + char *result = NULL; +- int i, j; ++ int j = -1; + + T((T_CALLED("tgetstr(%s,%p)"), id, (void *) area)); +- if (HasTInfoTerminal(SP_PARM)) { ++ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + +@@ -339,10 +350,10 @@ + } + #if NCURSES_XNAMES + else { +- j = -1; ++ int i; + for_each_ext_string(i, tp) { + const char *capname = ExtStrname(tp, i, strcodes); +- if (same_tcname(id, capname)) { ++ if (same_tcname(id, capname) && ValidExt(capname)) { + j = i; + break; + } +@@ -351,7 +362,7 @@ + #endif + if (j >= 0) { + result = tp->Strings[j]; +- TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result))); ++ TR(TRACE_DATABASE, ("found match %d: %s", j, _nc_visbuf(result))); + /* setupterm forces canceled strings to null */ + if (VALID_STRING(result)) { + if (result == exit_attribute_mode +@@ -361,7 +372,7 @@ + } + if (area != 0 + && *area != 0) { +- (void) strcpy(*area, result); ++ _nc_STRCPY(*area, result, 1024); + result = *area; + *area += strlen(*area) + 1; + } +diff -Naur ncurses-5.9/ncurses/tinfo/lib_tgoto.c ncurses-5.9.patch/ncurses/tinfo/lib_tgoto.c +--- ncurses-5.9/ncurses/tinfo/lib_tgoto.c 2008-08-16 21:29:32.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_tgoto.c 2014-09-01 16:33:22.423792234 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2000-2006,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 2000-2008,2012 Free 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 <ctype.h> + #include <termcap.h> + +-MODULE_ID("$Id: lib_tgoto.c,v 1.13 2008/08/16 19:29:32 tom Exp $") ++MODULE_ID("$Id: lib_tgoto.c,v 1.16 2012/02/24 02:08:08 tom Exp $") + + #if !PURE_TERMINFO + static bool +@@ -159,7 +159,8 @@ + break; + } + if (fmt != 0) { +- sprintf(result + used, fmt, *value++); ++ _nc_SPRINTF(result + used, _nc_SLIMIT(length - used) ++ fmt, *value++); + used += strlen(result + used); + fmt = 0; + } +@@ -174,7 +175,7 @@ + } + if (result != 0) { + if (need_BC) { +- strcpy(result + used, BC); ++ _nc_STRCPY(result + used, BC, length - used); + used += strlen(BC); + } + result[used] = '\0'; +diff -Naur ncurses-5.9/ncurses/tinfo/lib_ti.c ncurses-5.9.patch/ncurses/tinfo/lib_ti.c +--- ncurses-5.9/ncurses/tinfo/lib_ti.c 2010-01-23 18:57:43.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_ti.c 2014-09-01 16:33:22.423792234 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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 <tic.h> + +-MODULE_ID("$Id: lib_ti.c,v 1.29 2010/01/23 17:57:43 tom Exp $") ++MODULE_ID("$Id: lib_ti.c,v 1.30 2013/06/08 16:55:05 tom Exp $") + + #if 0 + static bool +@@ -53,7 +53,7 @@ + NCURSES_SP_NAME(tigetflag) (NCURSES_SP_DCLx NCURSES_CONST char *str) + { + int result = ABSENT_BOOLEAN; +- int i, j; ++ int j = -1; + + T((T_CALLED("tigetflag(%p, %s)"), (void *) SP_PARM, str)); + +@@ -67,7 +67,7 @@ + } + #if NCURSES_XNAMES + else { +- j = -1; ++ int i; + for_each_ext_boolean(i, tp) { + const char *capname = ExtBoolname(tp, i, boolnames); + if (same_name(str, capname)) { +@@ -97,7 +97,7 @@ + NCURSES_EXPORT(int) + NCURSES_SP_NAME(tigetnum) (NCURSES_SP_DCLx NCURSES_CONST char *str) + { +- int i, j; ++ int j = -1; + int result = CANCELLED_NUMERIC; /* Solaris returns a -1 on error */ + + T((T_CALLED("tigetnum(%p, %s)"), (void *) SP_PARM, str)); +@@ -112,7 +112,7 @@ + } + #if NCURSES_XNAMES + else { +- j = -1; ++ int i; + for_each_ext_number(i, tp) { + const char *capname = ExtNumname(tp, i, numnames); + if (same_name(str, capname)) { +@@ -145,7 +145,7 @@ + NCURSES_SP_NAME(tigetstr) (NCURSES_SP_DCLx NCURSES_CONST char *str) + { + char *result = CANCELLED_STRING; +- int i, j; ++ int j = -1; + + T((T_CALLED("tigetstr(%p, %s)"), (void *) SP_PARM, str)); + +@@ -159,7 +159,7 @@ + } + #if NCURSES_XNAMES + else { +- j = -1; ++ int i; + for_each_ext_string(i, tp) { + const char *capname = ExtStrname(tp, i, strnames); + if (same_name(str, capname)) { +diff -Naur ncurses-5.9/ncurses/tinfo/lib_tparm.c ncurses-5.9.patch/ncurses/tinfo/lib_tparm.c +--- ncurses-5.9/ncurses/tinfo/lib_tparm.c 2011-01-15 23:19:12.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_tparm.c 2014-09-01 16:33:22.424792236 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: lib_tparm.c,v 1.82 2011/01/15 22:19:12 tom Exp $") ++MODULE_ID("$Id: lib_tparm.c,v 1.90 2013/11/09 14:53:05 tom Exp $") + + /* + * char * +@@ -53,7 +53,7 @@ + * + * Cursor addressing and other strings requiring parame- + * ters in the terminal are described by a parameterized string +- * capability, with like escapes %x in it. For example, to ++ * capability, with escapes like %x in it. For example, to + * address the cursor, the cup capability is given, using two + * parameters: the row and column to address to. (Rows and + * columns are numbered from zero and refer to the physical +@@ -107,6 +107,7 @@ + NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0; + + #define TPS(var) _nc_prescreen.tparm_state.var ++#define popcount _nc_popcount /* workaround for NetBSD 6.0 defect */ + + #if NO_LEAKS + NCURSES_EXPORT(void) +@@ -128,9 +129,7 @@ + need += TPS(out_used); + if (need > TPS(out_size)) { + TPS(out_size) = need * 2; +- TPS(out_buff) = typeRealloc(char, TPS(out_size), TPS(out_buff)); +- if (TPS(out_buff) == 0) +- _nc_err_abort(MSG_NO_MEMORY); ++ TYPE_REALLOC(char, TPS(out_size), TPS(out_buff)); + } + } + +@@ -143,7 +142,9 @@ + + get_space(s_len + 1); + +- (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, s); ++ _nc_SPRINTF(TPS(out_buff) + TPS(out_used), ++ _nc_SLIMIT(TPS(out_size) - TPS(out_used)) ++ fmt, s); + TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used)); + } + +@@ -153,9 +154,11 @@ + if (len < 30) + len = 30; /* actually log10(MAX_INT)+1 */ + +- get_space((unsigned) len + 1); ++ get_space((size_t) len + 1); + +- (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, number); ++ _nc_SPRINTF(TPS(out_buff) + TPS(out_used), ++ _nc_SLIMIT(TPS(out_size) - TPS(out_used)) ++ fmt, number); + TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used)); + } + +@@ -164,7 +167,7 @@ + { + if (c == 0) + c = 0200; +- get_space(1); ++ get_space((size_t) 1); + TPS(out_buff)[TPS(out_used)++] = (char) c; + } + +@@ -450,7 +453,7 @@ + } + + static NCURSES_INLINE char * +-tparam_internal(bool use_TPARM_ARG, const char *string, va_list ap) ++tparam_internal(int use_TPARM_ARG, const char *string, va_list ap) + { + char *p_is_s[NUM_PARM]; + TPARM_ARG param[NUM_PARM]; +@@ -522,7 +525,7 @@ + } + #ifdef TRACE + if (USE_TRACEF(TRACE_CALLS)) { +- for (i = 0; i < popcount; i++) { ++ for (i = 0; i < num_args; i++) { + if (p_is_s[i] != 0) + save_text(", %s", _nc_visbuf(p_is_s[i]), 0); + else +@@ -559,7 +562,7 @@ + break; + + case 'l': +- save_number("%d", (int) strlen(spop()), 0); ++ npush((int) strlen(spop())); + break; + + case 's': +@@ -757,7 +760,7 @@ + cp++; + } /* endwhile (*cp) */ + +- get_space(1); ++ get_space((size_t) 1); + TPS(out_buff)[TPS(out_used)] = '\0'; + + T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff)))); +diff -Naur ncurses-5.9/ncurses/tinfo/lib_tputs.c ncurses-5.9.patch/ncurses/tinfo/lib_tputs.c +--- ncurses-5.9/ncurses/tinfo/lib_tputs.c 2010-12-20 01:42:50.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_tputs.c 2014-09-01 16:33:22.424792236 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -51,7 +51,7 @@ + #include <termcap.h> /* ospeed */ + #include <tic.h> + +-MODULE_ID("$Id: lib_tputs.c,v 1.81 2010/12/20 00:42:50 tom Exp $") ++MODULE_ID("$Id: lib_tputs.c,v 1.93 2013/01/12 20:57:32 tom Exp $") + + NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */ + NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */ +@@ -119,7 +119,17 @@ + NCURSES_EXPORT(void) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0) + { +- (void) fflush(NC_OUTPUT(SP_PARM)); ++ if (SP_PARM != 0 && SP_PARM->_ofd >= 0) { ++ if (SP_PARM->out_inuse) { ++ size_t amount = SP->out_inuse; ++ /* ++ * Help a little, if the write is interrupted, by first resetting ++ * our amount. ++ */ ++ SP->out_inuse = 0; ++ IGNORE_RC(write(SP_PARM->_ofd, SP_PARM->out_buffer, amount)); ++ } ++ } + } + + #if NCURSES_SP_FUNCS +@@ -138,17 +148,23 @@ + COUNT_OUTCHARS(1); + + if (HasTInfoTerminal(SP_PARM) +- && SP_PARM != 0 +- && SP_PARM->_cleanup) { +- char tmp = (char) ch; +- /* +- * POSIX says write() is safe in a signal handler, but the +- * buffered I/O is not. +- */ +- if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, 1) == -1) +- rc = ERR; ++ && SP_PARM != 0) { ++ if (SP_PARM->out_buffer != 0) { ++ if (SP_PARM->out_inuse + 1 >= SP_PARM->out_limit) ++ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); ++ SP_PARM->out_buffer[SP_PARM->out_inuse++] = (char) ch; ++ } else { ++ char tmp = (char) ch; ++ /* ++ * POSIX says write() is safe in a signal handler, but the ++ * buffered I/O is not. ++ */ ++ if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, (size_t) 1) == -1) ++ rc = ERR; ++ } + } else { +- if (putc(ch, NC_OUTPUT(SP_PARM)) == EOF) ++ char tmp = (char) ch; ++ if (write(fileno(stdout), &tmp, (size_t) 1) == -1) + rc = ERR; + } + return rc; +@@ -162,13 +178,48 @@ + } + #endif + ++/* ++ * This is used for the putp special case. ++ */ ++NCURSES_EXPORT(int) ++NCURSES_SP_NAME(_nc_putchar) (NCURSES_SP_DCLx int ch) ++{ ++ (void) SP_PARM; ++ return putchar(ch); ++} ++ ++#if NCURSES_SP_FUNCS ++NCURSES_EXPORT(int) ++_nc_putchar(int ch) ++{ ++ return putchar(ch); ++} ++#endif ++ ++/* ++ * putp is special - per documentation it calls tputs with putchar as the ++ * parameter for outputting characters. This means that it uses stdio, which ++ * is not signal-safe. Applications call this entrypoint; we do not call it ++ * from within the library. ++ */ + 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)); ++ string, 1, NCURSES_SP_NAME(_nc_putchar)); + } + ++#if NCURSES_SP_FUNCS ++NCURSES_EXPORT(int) ++putp(const char *string) ++{ ++ return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string); ++} ++#endif ++ ++/* ++ * Use these entrypoints rather than "putp" within the library. ++ */ + NCURSES_EXPORT(int) + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_DCLx + const char *name GCC_UNUSED, +@@ -178,19 +229,14 @@ + + if (string != 0) { + TPUTS_TRACE(name); +- rc = NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx string); ++ rc = NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx ++ string, 1, NCURSES_SP_NAME(_nc_outch)); + } + return rc; + } + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-putp(const char *string) +-{ +- return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string); +-} +- +-NCURSES_EXPORT(int) + _nc_putp(const char *name, const char *string) + { + return NCURSES_SP_NAME(_nc_putp) (CURRENT_SCREEN, name, string); +@@ -216,9 +262,9 @@ + + if (USE_TRACEF(TRACE_TPUTS)) { + if (outc == NCURSES_SP_NAME(_nc_outch)) +- (void) strcpy(addrbuf, "_nc_outch"); ++ _nc_STRCPY(addrbuf, "_nc_outch", sizeof(addrbuf)); + else +- (void) sprintf(addrbuf, "%p", outc); ++ _nc_SPRINTF(addrbuf, _nc_SLIMIT(sizeof(addrbuf)) "%p", outc); + if (_nc_tputs_trace) { + _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace, + _nc_visbuf(string), affcnt, addrbuf); +diff -Naur ncurses-5.9/ncurses/tinfo/lib_ttyflags.c ncurses-5.9.patch/ncurses/tinfo/lib_ttyflags.c +--- ncurses-5.9/ncurses/tinfo/lib_ttyflags.c 2010-12-26 00:43:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/lib_ttyflags.c 2014-09-01 16:33:22.452792282 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2014 Free 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 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_ttyflags.c,v 1.27 2010/12/25 23:43:58 tom Exp $") ++MODULE_ID("$Id: lib_ttyflags.c,v 1.29 2014/03/08 20:32:59 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf) +@@ -57,7 +57,7 @@ + result = ERR; + } else { + #ifdef USE_TERM_DRIVER +- result = CallDriver_2(SP_PARM, sgmode, FALSE, buf); ++ result = CallDriver_2(SP_PARM, td_sgmode, FALSE, buf); + #else + for (;;) { + if (GET_TTY(termp->Filedes, buf) != 0) { +@@ -102,10 +102,14 @@ + result = ERR; + } else { + #ifdef USE_TERM_DRIVER +- result = CallDriver_2(SP_PARM, sgmode, TRUE, buf); ++ result = CallDriver_2(SP_PARM, td_sgmode, TRUE, buf); + #else + for (;;) { +- if (SET_TTY(termp->Filedes, buf) != 0) { ++ if ((SET_TTY(termp->Filedes, buf) != 0) ++#if USE_KLIBC_KBD ++ && !isatty(termp->Filedes) ++#endif ++ ) { + if (errno == EINTR) + continue; + if ((errno == ENOTTY) && (SP_PARM != 0)) +@@ -141,7 +145,7 @@ + + if (termp != 0) { + #ifdef USE_TERM_DRIVER +- rc = CallDriver_2(SP_PARM, mode, FALSE, TRUE); ++ rc = CallDriver_2(SP_PARM, td_mode, FALSE, TRUE); + #else + /* + * If XTABS was on, remove the tab and backtab capabilities. +@@ -179,7 +183,7 @@ + + if (termp != 0) { + #ifdef USE_TERM_DRIVER +- rc = CallDriver_2(SP_PARM, mode, TRUE, TRUE); ++ rc = CallDriver_2(SP_PARM, td_mode, TRUE, TRUE); + #else + /* + * Turn off the XTABS bit in the tty structure if it was on. +@@ -215,13 +219,12 @@ + + if (termp != 0) { + #ifdef USE_TERM_DRIVER +- rc = CallDriver_2(SP_PARM, mode, TRUE, FALSE); ++ rc = CallDriver_2(SP_PARM, td_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); + } + rc = OK; + } +@@ -248,12 +251,11 @@ + + if (termp != 0) { + #ifdef USE_TERM_DRIVER +- rc = CallDriver_2(SP_PARM, mode, FALSE, FALSE); ++ rc = CallDriver_2(SP_PARM, td_mode, FALSE, FALSE); + #else + if (SP_PARM) { + _nc_keypad(SP_PARM, FALSE); + _nc_flush(); +- NC_BUFFERED(SP_PARM, FALSE); + } + rc = _nc_set_tty_mode(&termp->Ottyb); + #endif +diff -Naur ncurses-5.9/ncurses/tinfo/make_hash.c ncurses-5.9.patch/ncurses/tinfo/make_hash.c +--- ncurses-5.9/ncurses/tinfo/make_hash.c 2010-05-22 20:02:50.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/make_hash.c 2014-09-01 16:33:22.452792282 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 <ctype.h> + +-MODULE_ID("$Id: make_hash.c,v 1.3 2010/05/22 18:02:50 tom Exp $") ++MODULE_ID("$Id: make_hash.c,v 1.13 2013/09/28 20:55:47 tom Exp $") + + /* + * _nc_make_hash_table() +@@ -59,6 +59,24 @@ + #define MODULE_ID(id) /*nothing */ + #include <tinfo/doalloc.c> + ++static void ++failed(const char *s) ++{ ++ perror(s); ++ exit(EXIT_FAILURE); ++} ++ ++static char * ++strmalloc(char *s) ++{ ++ size_t need = strlen(s) + 1; ++ char *result = malloc(need); ++ if (result == 0) ++ failed("strmalloc"); ++ _nc_STRCPY(result, s, need); ++ return result; ++} ++ + /* + * int hash_function(string) + * +@@ -119,6 +137,18 @@ + + #define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */ + ++static int ++count_columns(char **list) ++{ ++ int result = 0; ++ if (list != 0) { ++ while (*list++) { ++ ++result; ++ } ++ } ++ return result; ++} ++ + static char ** + parse_columns(char *buffer) + { +@@ -126,7 +156,7 @@ + + int col = 0; + +- if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0) ++ if (list == 0 && (list = typeCalloc(char *, (MAX_COLUMNS + 1))) == 0) + return (0); + + if (*buffer != '#') { +@@ -201,8 +231,15 @@ + list = parse_columns(buffer); + if (list == 0) /* blank or comment */ + continue; ++ if (column > count_columns(list)) { ++ fprintf(stderr, "expected %d columns, have %d:\n%s\n", ++ column, ++ count_columns(list), ++ buffer); ++ exit(EXIT_FAILURE); ++ } + name_table[n].nte_link = -1; /* end-of-hash */ +- name_table[n].nte_name = strdup(list[column]); ++ name_table[n].nte_name = strmalloc(list[column]); + if (!strcmp(list[2], "bool")) { + name_table[n].nte_type = BOOLEAN; + name_table[n].nte_index = BoolCount++; +@@ -256,13 +293,12 @@ + 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", ++ printf("static struct name_table_entry const _nc_%s_table[] =\n", + root_name); + printf("{\n"); + for (n = 0; n < CAPTABSIZE; n++) { +- sprintf(buffer, "\"%s\"", +- name_table[n].nte_name); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "\"%s\"", ++ name_table[n].nte_name); + printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n", + buffer, + typenames[name_table[n].nte_type], +diff -Naur ncurses-5.9/ncurses/tinfo/make_keys.c ncurses-5.9.patch/ncurses/tinfo/make_keys.c +--- ncurses-5.9/ncurses/tinfo/make_keys.c 2010-06-06 00:08:00.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/make_keys.c 2014-09-01 16:33:22.452792282 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + #define USE_TERMLIB 1 + #include <build.priv.h> + +-MODULE_ID("$Id: make_keys.c,v 1.19 2010/06/05 22:08:00 tom Exp $") ++MODULE_ID("$Id: make_keys.c,v 1.20 2011/10/22 16:34:50 tom Exp $") + + #include <names.c> + +@@ -76,7 +76,7 @@ + unsigned maxlen = 16; + int scanned; + +- while (fgets(buffer, sizeof(buffer), ifp) != 0) { ++ while (fgets(buffer, (int) sizeof(buffer), ifp) != 0) { + if (*buffer == '#') + continue; + +diff -Naur ncurses-5.9/ncurses/tinfo/MKcaptab.sh ncurses-5.9.patch/ncurses/tinfo/MKcaptab.sh +--- ncurses-5.9/ncurses/tinfo/MKcaptab.sh 2010-12-26 00:43:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/MKcaptab.sh 2014-09-01 16:33:22.419792227 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + ############################################################################## +-# Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 2007-2010,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKcaptab.sh,v 1.13 2010/12/25 23:43:58 tom Exp $ ++# $Id: MKcaptab.sh,v 1.14 2011/10/22 16:34:50 tom Exp $ + AWK=${1-awk} + OPT1=${2-0} + OPT2=${3-tinfo/MKcaptab.awk} +@@ -99,12 +99,12 @@ + _nc_build_alias(struct alias **actual, + const alias_table_data *source, + const char *strings, +- unsigned tablesize) ++ size_t tablesize) + { + if (*actual == 0) { + *actual = typeCalloc(struct alias, tablesize + 1); + if (*actual != 0) { +- unsigned n; ++ size_t n; + for (n = 0; n < tablesize; ++n) { + add_alias(from); + add_alias(to); +@@ -178,7 +178,7 @@ + static int + compare_tcap_names(const char *a, const char *b) + { +- return !strncmp(a, b, TCAP_LEN); ++ return !strncmp(a, b, (size_t) TCAP_LEN); + } + + static int +diff -Naur ncurses-5.9/ncurses/tinfo/name_match.c ncurses-5.9.patch/ncurses/tinfo/name_match.c +--- ncurses-5.9/ncurses/tinfo/name_match.c 2008-11-16 01:19:59.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/name_match.c 2014-09-01 16:33:22.452792282 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2012,2013 Free 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,25 +33,38 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: name_match.c,v 1.18 2008/11/16 00:19:59 juergen Exp $") ++MODULE_ID("$Id: name_match.c,v 1.23 2013/05/25 20:20:08 tom Exp $") + +-/* +- * _nc_first_name(char *names) +- * +- * Extract the primary name from a compiled entry. +- */ + #define FirstName _nc_globals.first_name + ++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES ++static const char * ++skip_index(const char *name) ++{ ++ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { ++ const char *bar = strchr(name, '|'); ++ if (bar != 0 && (bar - name) == 2) ++ name = bar + 1; ++ } ++ return name; ++} ++#endif ++ ++/* ++ * Get the primary name from the given name list. For terminfo, this is the ++ * first name. For termcap, this may be the second name, if the first one ++ * happens to be two characters. ++ */ + NCURSES_EXPORT(char *) + _nc_first_name(const char *const sp) +-/* get the first name from the given name list */ + { + unsigned n; + + #if NO_LEAKS + if (sp == 0) { +- if (FirstName != 0) ++ if (FirstName != 0) { + FreeAndNull(FirstName); ++ } + } else + #endif + { +@@ -59,8 +72,12 @@ + FirstName = typeMalloc(char, MAX_NAME_SIZE + 1); + + if (FirstName != 0) { ++ const char *src = sp; ++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES ++ src = skip_index(sp); ++#endif + for (n = 0; n < MAX_NAME_SIZE; n++) { +- if ((FirstName[n] = sp[n]) == '\0' ++ if ((FirstName[n] = src[n]) == '\0' + || (FirstName[n] == '|')) + break; + } +@@ -71,11 +88,8 @@ + } + + /* +- * int _nc_name_match(namelist, name, delim) +- * +- * Is the given name matched in namelist? ++ * Is the given name matched in namelist? + */ +- + NCURSES_EXPORT(int) + _nc_name_match(const char *const namelst, const char *const name, const char *const delim) + { +diff -Naur ncurses-5.9/ncurses/tinfo/obsolete.c ncurses-5.9.patch/ncurses/tinfo/obsolete.c +--- ncurses-5.9/ncurses/tinfo/obsolete.c 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/obsolete.c 2014-09-01 16:33:22.452792282 +0200 +@@ -0,0 +1,102 @@ ++/**************************************************************************** ++ * Copyright (c) 2013 Free 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 2013 * ++ ****************************************************************************/ ++ ++/* ++** Support for obsolete features. ++*/ ++ ++#include <curses.priv.h> ++ ++MODULE_ID("$Id: obsolete.c,v 1.1 2013/01/26 22:07:51 tom Exp $") ++ ++/* ++ * Obsolete entrypoint retained for binary compatbility. ++ */ ++NCURSES_EXPORT(void) ++NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_DCLx FILE *ofp, int buffered) ++{ ++#if NCURSES_SP_FUNCS ++ (void) SP_PARM; ++#endif ++ (void) ofp; ++ (void) buffered; ++} ++ ++#if NCURSES_SP_FUNCS ++NCURSES_EXPORT(void) ++_nc_set_buffer(FILE *ofp, int buffered) ++{ ++ NCURSES_SP_NAME(_nc_set_buffer) (CURRENT_SCREEN, ofp, buffered); ++} ++#endif ++ ++#if !HAVE_STRDUP ++NCURSES_EXPORT(char *) ++_nc_strdup(const char *s) ++{ ++ char *result = 0; ++ if (s != 0) { ++ size_t need = strlen(s); ++ result = malloc(need + 1); ++ if (result != 0) { ++ strcpy(result, s); ++ } ++ } ++ return result; ++} ++#endif ++ ++#if USE_MY_MEMMOVE ++#define DST ((char *)s1) ++#define SRC ((const char *)s2) ++NCURSES_EXPORT(void *) ++_nc_memmove(void *s1, const void *s2, size_t n) ++{ ++ if (n != 0) { ++ if ((DST + n > SRC) && (SRC + n > DST)) { ++ static char *bfr; ++ static size_t length; ++ register size_t j; ++ if (length < n) { ++ length = (n * 3) / 2; ++ bfr = typeRealloc(char, length, bfr); ++ } ++ for (j = 0; j < n; j++) ++ bfr[j] = SRC[j]; ++ s2 = bfr; ++ } ++ while (n-- != 0) ++ DST[n] = SRC[n]; ++ } ++ return s1; ++} ++#endif /* USE_MY_MEMMOVE */ +diff -Naur ncurses-5.9/ncurses/tinfo/parse_entry.c ncurses-5.9.patch/ncurses/tinfo/parse_entry.c +--- ncurses-5.9/ncurses/tinfo/parse_entry.c 2010-05-01 21:35:09.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/parse_entry.c 2014-09-01 16:33:22.452792282 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: parse_entry.c,v 1.75 2010/05/01 19:35:09 tom Exp $") ++MODULE_ID("$Id: parse_entry.c,v 1.79 2012/10/27 21:43:45 tom Exp $") + + #ifdef LINT + static short const parametrized[] = +@@ -145,27 +145,27 @@ + case BOOLEAN: + tp->ext_Booleans++; + tp->num_Booleans++; +- tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans); ++ TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans); + for_each_value(tp->num_Booleans) + tp->Booleans[last] = tp->Booleans[last - 1]; + break; + case NUMBER: + tp->ext_Numbers++; + tp->num_Numbers++; +- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers); ++ TYPE_REALLOC(short, tp->num_Numbers, tp->Numbers); + for_each_value(tp->num_Numbers) + tp->Numbers[last] = tp->Numbers[last - 1]; + break; + case STRING: + tp->ext_Strings++; + tp->num_Strings++; +- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings); ++ TYPE_REALLOC(char *, tp->num_Strings, tp->Strings); + for_each_value(tp->num_Strings) + tp->Strings[last] = tp->Strings[last - 1]; + break; + } + actual = NUM_EXT_NAMES(tp); +- tp->ext_Names = typeRealloc(char *, actual, tp->ext_Names); ++ TYPE_REALLOC(char *, actual, tp->ext_Names); + while (--actual > offset) + tp->ext_Names[actual] = tp->ext_Names[actual - 1]; + tp->ext_Names[offset] = _nc_save_str(name); +@@ -203,6 +203,8 @@ + { bad_tc_usage = TRUE; \ + _nc_warning("Legacy termcap allows only a trailing tc= clause"); } + ++#define MAX_NUMBER 0x7fff /* positive shorts only */ ++ + NCURSES_EXPORT(int) + _nc_parse_entry(struct entry *entryp, int literal, bool silent) + { +@@ -444,8 +446,12 @@ + break; + + case NUMBER: +- entryp->tterm.Numbers[entry_ptr->nte_index] = +- (short) _nc_curr_token.tk_valnumber; ++ if (_nc_curr_token.tk_valnumber > MAX_NUMBER) { ++ entryp->tterm.Numbers[entry_ptr->nte_index] = MAX_NUMBER; ++ } else { ++ entryp->tterm.Numbers[entry_ptr->nte_index] = ++ (short) _nc_curr_token.tk_valnumber; ++ } + break; + + case STRING: +@@ -654,14 +660,16 @@ + + if (WANTED(carriage_return)) { + if (carriage_return_delay > 0) { +- sprintf(buf, "%s$<%d>", C_CR, carriage_return_delay); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%s$<%d>", C_CR, carriage_return_delay); + carriage_return = _nc_save_str(buf); + } else + carriage_return = _nc_save_str(C_CR); + } + if (WANTED(cursor_left)) { + if (backspace_delay > 0) { +- sprintf(buf, "%s$<%d>", C_BS, backspace_delay); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%s$<%d>", C_BS, backspace_delay); + cursor_left = _nc_save_str(buf); + } else if (backspaces_with_bs == 1) + cursor_left = _nc_save_str(C_BS); +@@ -674,7 +682,8 @@ + cursor_down = linefeed_if_not_lf; + else if (linefeed_is_newline != 1) { + if (new_line_delay > 0) { +- sprintf(buf, "%s$<%d>", C_LF, new_line_delay); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%s$<%d>", C_LF, new_line_delay); + cursor_down = _nc_save_str(buf); + } else + cursor_down = _nc_save_str(C_LF); +@@ -685,7 +694,8 @@ + cursor_down = linefeed_if_not_lf; + else if (linefeed_is_newline != 1) { + if (new_line_delay > 0) { +- sprintf(buf, "%s$<%d>", C_LF, new_line_delay); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%s$<%d>", C_LF, new_line_delay); + scroll_forward = _nc_save_str(buf); + } else + scroll_forward = _nc_save_str(C_LF); +@@ -694,7 +704,8 @@ + if (WANTED(newline)) { + if (linefeed_is_newline == 1) { + if (new_line_delay > 0) { +- sprintf(buf, "%s$<%d>", C_LF, new_line_delay); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%s$<%d>", C_LF, new_line_delay); + newline = _nc_save_str(buf); + } else + newline = _nc_save_str(C_LF); +@@ -736,7 +747,8 @@ + */ + if (WANTED(tab)) { + if (horizontal_tab_delay > 0) { +- sprintf(buf, "%s$<%d>", C_HT, horizontal_tab_delay); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) ++ "%s$<%d>", C_HT, horizontal_tab_delay); + tab = _nc_save_str(buf); + } else + tab = _nc_save_str(C_HT); +diff -Naur ncurses-5.9/ncurses/tinfo/read_entry.c ncurses-5.9.patch/ncurses/tinfo/read_entry.c +--- ncurses-5.9/ncurses/tinfo/read_entry.c 2011-02-26 16:36:06.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/read_entry.c 2014-09-01 16:33:22.453792284 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,11 +41,11 @@ + + #include <tic.h> + +-MODULE_ID("$Id: read_entry.c,v 1.108 2011/02/26 15:36:06 tom Exp $") ++MODULE_ID("$Id: read_entry.c,v 1.127 2014/03/08 22:07:31 Xin.Li Exp $") + + #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts)) + +-#if USE_DATABASE ++#if NCURSES_USE_DATABASE + static void + convert_shorts(char *buf, short *Numbers, int count) + { +@@ -99,7 +99,7 @@ + if (have > 0) { + if ((int) want > have) + want = (unsigned) have; +- memcpy(dst, src + *offset, want); ++ memcpy(dst, src + *offset, (size_t) want); + *offset += (int) want; + } else { + want = 0; +@@ -107,22 +107,56 @@ + return (int) want; + } + +-#define Read(buf, count) fake_read(buffer, &offset, limit, buf, count) ++#define Read(buf, count) fake_read(buffer, &offset, limit, (char *) buf, (unsigned) count) + + #define read_shorts(buf, count) \ +- (Read(buf, (unsigned) (count)*2) == (int) (count)*2) ++ (Read(buf, (count)*2) == (int) (count)*2) + + #define even_boundary(value) \ + if ((value) % 2 != 0) Read(buf, 1) ++#endif ++ ++NCURSES_EXPORT(void) ++_nc_init_termtype(TERMTYPE *const tp) ++{ ++ unsigned i; ++ ++#if NCURSES_XNAMES ++ tp->num_Booleans = BOOLCOUNT; ++ tp->num_Numbers = NUMCOUNT; ++ tp->num_Strings = STRCOUNT; ++ tp->ext_Booleans = 0; ++ tp->ext_Numbers = 0; ++ tp->ext_Strings = 0; ++#endif ++ if (tp->Booleans == 0) ++ TYPE_MALLOC(NCURSES_SBOOL, BOOLCOUNT, tp->Booleans); ++ if (tp->Numbers == 0) ++ TYPE_MALLOC(short, NUMCOUNT, tp->Numbers); ++ if (tp->Strings == 0) ++ TYPE_MALLOC(char *, STRCOUNT, tp->Strings); ++ ++ for_each_boolean(i, tp) ++ tp->Booleans[i] = FALSE; ++ ++ for_each_number(i, tp) ++ tp->Numbers[i] = ABSENT_NUMERIC; + ++ for_each_string(i, tp) ++ tp->Strings[i] = ABSENT_STRING; ++} ++ ++#if NCURSES_USE_DATABASE ++/* ++ * Return TGETENT_YES if read, TGETENT_NO if not found or garbled. ++ */ + NCURSES_EXPORT(int) + _nc_read_termtype(TERMTYPE *ptr, char *buffer, int limit) +-/* return 1 if read, 0 if not found or garbled */ + { + int offset = 0; + int name_size, bool_count, num_count, str_count, str_size; + int i; +- char buf[MAX_ENTRY_SIZE + 1]; ++ char buf[MAX_ENTRY_SIZE + 2]; + char *string_table; + unsigned want, have; + +@@ -157,7 +191,7 @@ + want = (unsigned) (str_size + name_size + 1); + if (str_size) { + /* try to allocate space for the string table */ +- if (str_count * 2 >= (int) sizeof(buf) ++ if (str_count * 2 >= MAX_ENTRY_SIZE + || (string_table = typeMalloc(char, want)) == 0) { + return (TGETENT_NO); + } +@@ -173,7 +207,7 @@ + ptr->str_table = string_table; + ptr->term_names = string_table; + if ((have = (unsigned) Read(ptr->term_names, want)) != want) { +- memset(ptr->term_names + have, 0, want - have); ++ memset(ptr->term_names + have, 0, (size_t) (want - have)); + } + ptr->term_names[want] = '\0'; + string_table += (want + 1); +@@ -236,9 +270,9 @@ + unsigned need = (unsigned) (ext_bool_count + ext_num_count + ext_str_count); + int base = 0; + +- if (need >= sizeof(buf) +- || ext_str_size >= (int) sizeof(buf) +- || ext_str_limit >= (int) sizeof(buf) ++ if (need >= (MAX_ENTRY_SIZE / 2) ++ || ext_str_size >= MAX_ENTRY_SIZE ++ || ext_str_limit >= MAX_ENTRY_SIZE + || ext_bool_count < 0 + || ext_num_count < 0 + || ext_str_count < 0 +@@ -250,9 +284,9 @@ + ptr->num_Numbers = UShort(NUMCOUNT + ext_num_count); + ptr->num_Strings = UShort(STRCOUNT + ext_str_count); + +- ptr->Booleans = typeRealloc(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans); +- ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers); +- ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings); ++ TYPE_REALLOC(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans); ++ TYPE_REALLOC(short, ptr->num_Numbers, ptr->Numbers); ++ TYPE_REALLOC(char *, ptr->num_Strings, ptr->Strings); + + TR(TRACE_DATABASE, ("extended header is %d/%d/%d(%d:%d)", + ext_bool_count, ext_num_count, ext_str_count, +@@ -277,6 +311,8 @@ + } + + TR(TRACE_DATABASE, ("READ extended-offsets @%d", offset)); ++ if ((unsigned) (ext_str_count + (int) need) >= (MAX_ENTRY_SIZE / 2)) ++ return (TGETENT_NO); + if ((ext_str_count || need) + && !read_shorts(buf, ext_str_count + (int) need)) + return (TGETENT_NO); +@@ -313,7 +349,7 @@ + } + + if (need) { +- if (ext_str_count >= (MAX_ENTRY_SIZE * 2)) ++ if (ext_str_count >= (MAX_ENTRY_SIZE / 2)) + return (TGETENT_NO); + if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0) + return (TGETENT_NO); +@@ -326,17 +362,18 @@ + ext_str_limit, ptr->ext_str_table + base); + } + +- T(("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)", +- ptr->num_Booleans, ptr->ext_Booleans, +- ptr->num_Numbers, ptr->ext_Numbers, +- ptr->num_Strings, ptr->ext_Strings)); ++ TR(TRACE_DATABASE, ++ ("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)", ++ ptr->num_Booleans, ptr->ext_Booleans, ++ ptr->num_Numbers, ptr->ext_Numbers, ++ ptr->num_Strings, ptr->ext_Strings)); + + TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans)); + } else + #endif /* NCURSES_XNAMES */ + { +- T(("...done reading terminfo bool %d num %d str %d", +- bool_count, num_count, str_count)); ++ TR(TRACE_DATABASE, ("...done reading terminfo bool %d num %d str %d", ++ bool_count, num_count, str_count)); + #if NCURSES_XNAMES + TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans)); + #endif +@@ -371,13 +408,13 @@ + + if (_nc_access(filename, R_OK) < 0 + || (fp = fopen(filename, "rb")) == 0) { +- T(("cannot open terminfo %s (errno=%d)", filename, errno)); ++ TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno)); + code = TGETENT_NO; + } else { + if ((limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp)) + > 0) { + +- T(("read terminfo %s", filename)); ++ TR(TRACE_DATABASE, ("read terminfo %s", filename)); + if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) { + _nc_free_termtype(ptr); + } +@@ -390,6 +427,58 @@ + return (code); + } + ++#if USE_HASHED_DB ++/* ++ * Return if if we can build the filename of a ".db" file. ++ */ ++static bool ++make_db_filename(char *filename, unsigned limit, const char *const path) ++{ ++ static const char suffix[] = DBM_SUFFIX; ++ ++ size_t lens = sizeof(suffix) - 1; ++ size_t size = strlen(path); ++ size_t test = lens + size; ++ bool result = FALSE; ++ ++ if (test < limit) { ++ if (size >= lens ++ && !strcmp(path + size - lens, suffix)) ++ _nc_STRCPY(filename, path, limit); ++ else ++ _nc_SPRINTF(filename, _nc_SLIMIT(limit) "%s%s", path, suffix); ++ result = TRUE; ++ } ++ return result; ++} ++#endif ++ ++/* ++ * Return true if we can build the name of a filesystem entry. ++ */ ++static bool ++make_dir_filename(char *filename, ++ unsigned limit, ++ const char *const path, ++ const char *name) ++{ ++ bool result = FALSE; ++ ++#if NCURSES_USE_TERMCAP ++ if (_nc_is_dir_path(path)) ++#endif ++ { ++ unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name)); ++ ++ if (need <= limit) { ++ _nc_SPRINTF(filename, _nc_SLIMIT(limit) ++ "%s/" LEAF_FMT "/%s", path, *name, name); ++ result = TRUE; ++ } ++ } ++ return result; ++} ++ + /* + * Build a terminfo pathname and try to read the data. Returns TGETENT_YES on + * success, TGETENT_NO on failure. +@@ -401,103 +490,82 @@ + const char *name, + TERMTYPE *const tp) + { +- int result = TGETENT_NO; +- +- /* +- * If we are looking in a directory, assume the entry is a file under that, +- * according to the normal rules. +- */ +- unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name)); +- if (need <= limit) +- (void) sprintf(filename, "%s/" LEAF_FMT "/%s", path, *name, name); ++ int code = TGETENT_NO; + +- if (_nc_is_dir_path(path)) +- result = _nc_read_file_entry(filename, tp); + #if USE_HASHED_DB +- else { +- static const char suffix[] = DBM_SUFFIX; +- DB *capdbp; +- unsigned lens = sizeof(suffix) - 1; +- unsigned size = strlen(path); +- unsigned test = lens + size; +- +- if (test < limit) { +- if (size >= lens +- && !strcmp(path + size - lens, suffix)) +- (void) strcpy(filename, path); +- else +- (void) sprintf(filename, "%s%s", path, suffix); ++ DB *capdbp; + +- /* +- * It would be nice to optimize the dbopen/close activity, as +- * done in the cgetent implementation for tc= clauses. However, +- * since we support multiple database locations, we cannot do +- * that. +- */ +- if ((capdbp = _nc_db_open(filename, FALSE)) != 0) { +- DBT key, data; +- int reccnt = 0; +- char *save = strdup(name); +- +- memset(&key, 0, sizeof(key)); +- key.data = save; +- key.size = strlen(save); +- +- /* +- * This lookup could return termcap data, which we do not want. +- * We are looking for compiled (binary) terminfo data. +- * +- * cgetent uses a two-level lookup. On the first it uses the +- * given name to return a record containing only the aliases +- * for an entry. On the second (using that list of aliases as +- * a key), it returns the content of the terminal description. +- * We expect second lookup to return data beginning with the +- * same set of aliases. +- * +- * For compiled terminfo, the list of aliases in the second +- * case will be null-terminated. A termcap entry will not be, +- * and will run on into the description. So we can easily +- * distinguish between the two (source/binary) by checking the +- * lengths. +- */ +- while (_nc_db_get(capdbp, &key, &data) == 0) { +- int used = data.size - 1; +- char *have = (char *) data.data; +- +- if (*have++ == 0) { +- if (data.size > key.size +- && IS_TIC_MAGIC(have)) { +- result = _nc_read_termtype(tp, have, used); +- if (result == TGETENT_NO) { +- _nc_free_termtype(tp); +- } +- } +- break; +- } ++ if (make_db_filename(filename, limit, path) ++ && (capdbp = _nc_db_open(filename, FALSE)) != 0) { + +- /* +- * Just in case we have a corrupt database, do not waste +- * time with it. +- */ +- if (++reccnt >= 3) +- break; +- +- /* +- * Prepare for the second level. +- */ +- key.data = have; +- key.size = used; ++ DBT key, data; ++ int reccnt = 0; ++ char *save = strdup(name); ++ ++ memset(&key, 0, sizeof(key)); ++ key.data = save; ++ key.size = strlen(save); ++ ++ /* ++ * This lookup could return termcap data, which we do not want. We are ++ * looking for compiled (binary) terminfo data. ++ * ++ * cgetent uses a two-level lookup. On the first it uses the given ++ * name to return a record containing only the aliases for an entry. ++ * On the second (using that list of aliases as a key), it returns the ++ * content of the terminal description. We expect second lookup to ++ * return data beginning with the same set of aliases. ++ * ++ * For compiled terminfo, the list of aliases in the second case will ++ * be null-terminated. A termcap entry will not be, and will run on ++ * into the description. So we can easily distinguish between the two ++ * (source/binary) by checking the lengths. ++ */ ++ while (_nc_db_get(capdbp, &key, &data) == 0) { ++ int used = (int) data.size - 1; ++ char *have = (char *) data.data; ++ ++ if (*have++ == 0) { ++ if (data.size > key.size ++ && IS_TIC_MAGIC(have)) { ++ code = _nc_read_termtype(tp, have, used); ++ if (code == TGETENT_NO) { ++ _nc_free_termtype(tp); ++ } + } +- +- _nc_db_close(capdbp); +- free(save); ++ break; + } ++ ++ /* ++ * Just in case we have a corrupt database, do not waste time with ++ * it. ++ */ ++ if (++reccnt >= 3) ++ break; ++ ++ /* ++ * Prepare for the second level. ++ */ ++ key.data = have; ++ key.size = used; + } ++ ++ free(save); ++ } else /* may be either filesystem or flat file */ ++#endif ++ if (make_dir_filename(filename, limit, path, name)) { ++ code = _nc_read_file_entry(filename, tp); ++ } ++#if NCURSES_USE_TERMCAP ++ else if (code != TGETENT_YES) { ++ code = _nc_read_termcap_entry(name, tp); ++ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) ++ "%.*s", PATH_MAX - 1, _nc_get_source()); + } + #endif +- return result; ++ return code; + } +-#endif /* USE_DATABASE */ ++#endif /* NCURSES_USE_DATABASE */ + + /* + * _nc_read_entry(char *name, char *filename, TERMTYPE *tp) +@@ -513,31 +581,35 @@ + { + int code = TGETENT_NO; + +- sprintf(filename, "%.*s", PATH_MAX - 1, name); ++ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) ++ "%.*s", PATH_MAX - 1, name); ++ + if (strlen(name) == 0 + || strcmp(name, ".") == 0 + || strcmp(name, "..") == 0 + || _nc_pathlast(name) != 0 + || strchr(name, NCURSES_PATHSEP) != 0) { +- T(("illegal or missing entry name '%s'", name)); ++ TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", name)); + } else { +-#if USE_DATABASE +- DBDIRS state = dbdTIC; +- int offset = 0; ++#if NCURSES_USE_DATABASE ++ DBDIRS state; ++ int offset; + const char *path; + ++ _nc_first_db(&state, &offset); + while ((path = _nc_next_db(&state, &offset)) != 0) { ++ TR(TRACE_DATABASE, ("_nc_read_tic_entry path=%s, name=%s", path, name)); + code = _nc_read_tic_entry(filename, PATH_MAX, path, name, tp); + if (code == TGETENT_YES) { + _nc_last_db(); + break; + } + } +-#endif +-#if USE_TERMCAP ++#elif NCURSES_USE_TERMCAP + if (code != TGETENT_YES) { + code = _nc_read_termcap_entry(name, tp); +- sprintf(filename, "%.*s", PATH_MAX - 1, _nc_get_source()); ++ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) ++ "%.*s", PATH_MAX - 1, _nc_get_source()); + } + #endif + } +diff -Naur ncurses-5.9/ncurses/tinfo/read_termcap.c ncurses-5.9.patch/ncurses/tinfo/read_termcap.c +--- ncurses-5.9/ncurses/tinfo/read_termcap.c 2010-01-23 18:57:43.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/read_termcap.c 2014-09-01 16:33:22.453792284 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,10 +54,9 @@ + + #include <ctype.h> + #include <sys/types.h> +-#include <sys/stat.h> + #include <tic.h> + +-MODULE_ID("$Id: read_termcap.c,v 1.74 2010/01/23 17:57:43 tom Exp $") ++MODULE_ID("$Id: read_termcap.c,v 1.89 2013/12/15 00:32:43 tom Exp $") + + #if !PURE_TERMINFO + +@@ -74,7 +73,7 @@ + + if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0) + result = TERMPATH; +- T(("TERMPATH is %s", result)); ++ TR(TRACE_DATABASE, ("TERMPATH is %s", result)); + return result; + } + +@@ -162,7 +161,7 @@ + return (-1); + } + gottoprec = 0; +- (void) strcpy(toprec, ent); ++ _nc_STRCPY(toprec, ent, topreclen); + return (0); + } + +@@ -295,7 +294,7 @@ + errno = ENOMEM; + return (TC_SYS_ERR); + } +- (void) strcpy(record, toprec); ++ _nc_STRCPY(record, toprec, topreclen + BFRAG); + rp = record + topreclen + 1; + r_end = rp + BFRAG; + current = in_array; +@@ -384,7 +383,14 @@ + c = *bp++; + if (c == '\n') { + lineno++; +- if (rp == record || *(rp - 1) != '\\') ++ /* ++ * Unlike BSD 4.3, this ignores a backslash at the ++ * end of a comment-line. That makes it consistent ++ * with the rest of ncurses -TD ++ */ ++ if (rp == record ++ || *record == '#' ++ || *(rp - 1) != '\\') + break; + } + *rp++ = c; +@@ -442,8 +448,10 @@ + break; + } + +- if (!foundit) ++ if (!foundit) { ++ free(record); + return (TC_NOT_FOUND); ++ } + } + + /* +@@ -455,7 +463,7 @@ + register int newilen; + unsigned ilen; + int diff, iret, tclen, oline; +- char *icap, *scan, *tc, *tcstart, *tcend; ++ char *icap = 0, *scan, *tc, *tcstart, *tcend; + + /* + * Loop invariants: +@@ -468,8 +476,9 @@ + scan = record; + tc_not_resolved = FALSE; + for (;;) { +- if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0) ++ if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0) { + break; ++ } + + /* + * Find end of tc=name and stomp on the trailing `:' +@@ -486,6 +495,7 @@ + tclen = s - tcstart; + tcend = s; + ++ icap = 0; + iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd, + tc, depth + 1, 0); + newicap = icap; /* Put into a register. */ +@@ -496,12 +506,13 @@ + if (myfd) + (void) close(fd); + free(record); ++ FreeIfNeeded(icap); + return (iret); + } +- if (iret == TC_UNRESOLVED) ++ if (iret == TC_UNRESOLVED) { + tc_not_resolved = TRUE; +- /* couldn't resolve tc */ +- if (iret == TC_NOT_FOUND) { ++ /* couldn't resolve tc */ ++ } else if (iret == TC_NOT_FOUND) { + *(s - 1) = ':'; + scan = s - 1; + tc_not_resolved = TRUE; +@@ -581,8 +592,9 @@ + } + + *cap = record; +- if (tc_not_resolved) ++ if (tc_not_resolved) { + return (TC_UNRESOLVED); ++ } + return (current); + } + +@@ -697,8 +709,6 @@ + #define PVECSIZ 32 /* max number of names in path */ + #define TBUFSIZ (2048*2) + +-static char *tbuf; +- + /* + * On entry, srcp points to a non ':' character which is the beginning of the + * token, if any. We'll try to return a string that doesn't end with a ':'. +@@ -760,7 +770,7 @@ + dst = 0; + break; + } +- *dst++ = ch; ++ *dst++ = (char) ch; + } + return dst; + } +@@ -776,18 +786,16 @@ + register char *p; + register char *cp; + char *dummy = NULL; +- char **fname; ++ CGETENT_CONST char **fname; + char *home; + int i; + char pathbuf[PBUFSIZ]; /* holds raw path of filenames */ +- char *pathvec[PVECSIZ]; /* to point to names in pathbuf */ +- char **pvec; /* holds usable tail of path vector */ ++ CGETENT_CONST char *pathvec[PVECSIZ]; /* point to names in pathbuf */ + NCURSES_CONST char *termpath; + string_desc desc; + ++ *lineno = 1; + fname = pathvec; +- pvec = pathvec; +- tbuf = bp; + p = pathbuf; + cp = use_terminfo_vars()? getenv("TERMCAP") : NULL; + +@@ -812,10 +820,11 @@ + if ((home = getenv("HOME")) != 0 && *home != '\0' + && strchr(home, ' ') == 0 + && strlen(home) < sizeof(temp) - 10) { /* setup path */ +- sprintf(temp, "%s/", home); /* $HOME first */ ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "%s/", home); /* $HOME first */ + } + /* if no $HOME look in current directory */ +- strcat(temp, ".termcap"); ++ _nc_STRCAT(temp, ".termcap", sizeof(temp)); + _nc_safe_strcat(&desc, temp); + _nc_safe_strcat(&desc, " "); + _nc_safe_strcat(&desc, get_termpath()); +@@ -841,6 +850,9 @@ + } + } + *fname = 0; /* mark end of vector */ ++#if !HAVE_BSD_CGETENT ++ (void) _nc_cgetset(0); ++#endif + if (_nc_is_abs_path(cp)) { + if (_nc_cgetset(cp) < 0) { + return (TC_SYS_ERR); +@@ -853,6 +865,7 @@ + * empty fields, and mistakenly use the last valid cap entry instead of + * the first (breaks tc= includes) + */ ++ *bp = '\0'; + if (i >= 0) { + char *pd, *ps, *tok; + int endflag = FALSE; +@@ -874,7 +887,7 @@ + } + if (ignore != TRUE) { + list[count++] = tok; +- pd = copy_tc_token(pd, tok, TBUFSIZ - (2 + pd - bp)); ++ pd = copy_tc_token(pd, tok, (size_t) (TBUFSIZ - (2 + pd - bp))); + if (pd == 0) { + i = -1; + break; +@@ -932,7 +945,7 @@ + if (count < MAXPATHS + && _nc_access(path, R_OK) == 0) { + termpaths[count++] = path; +- T(("Adding termpath %s", path)); ++ TR(TRACE_DATABASE, ("Adding termpath %s", path)); + } + termpaths[count] = 0; + if (save != 0) +@@ -956,13 +969,13 @@ + static char *source; + static int lineno; + +- T(("read termcap entry for %s", tn)); ++ TR(TRACE_DATABASE, ("read termcap entry for %s", tn)); + + if (strlen(tn) == 0 + || strcmp(tn, ".") == 0 + || strcmp(tn, "..") == 0 + || _nc_pathlast(tn) != 0) { +- T(("illegal or missing entry name '%s'", tn)); ++ TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", tn)); + return TGETENT_NO; + } + +@@ -980,7 +993,7 @@ + _nc_curr_line = lineno; + _nc_set_source(source); + } +- _nc_read_entry_source((FILE *) 0, tc, FALSE, FALSE, NULLHOOK); ++ _nc_read_entry_source((FILE *) 0, tc, FALSE, TRUE, NULLHOOK); + #else + /* + * Here is what the 4.4BSD termcap(3) page prescribes: +@@ -1027,7 +1040,9 @@ + normal = FALSE; + } else if (_nc_name_match(tc, tn, "|:")) { /* treat as a capability file */ + use_buffer = TRUE; +- (void) sprintf(tc_buf, "%.*s\n", (int) sizeof(tc_buf) - 2, tc); ++ _nc_SPRINTF(tc_buf, ++ _nc_SLIMIT(sizeof(tc_buf)) ++ "%.*s\n", (int) sizeof(tc_buf) - 2, tc); + normal = FALSE; + } + } +@@ -1049,8 +1064,9 @@ + if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0' + && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) { + /* user's .termcap, if any, should override it */ +- (void) strcpy(envhome, h); +- (void) sprintf(pathbuf, PRIVATE_CAP, envhome); ++ _nc_STRCPY(envhome, h, sizeof(envhome)); ++ _nc_SPRINTF(pathbuf, _nc_SLIMIT(sizeof(pathbuf)) ++ PRIVATE_CAP, envhome); + ADD_TC(pathbuf, filecount); + } + } +@@ -1063,7 +1079,7 @@ + for (j = 0; j < filecount; j++) { + bool omit = FALSE; + if (stat(termpaths[j], &test_stat[j]) != 0 +- || (test_stat[j].st_mode & S_IFMT) != S_IFREG) { ++ || !S_ISREG(test_stat[j].st_mode)) { + omit = TRUE; + } else { + for (k = 0; k < j; k++) { +@@ -1075,7 +1091,7 @@ + } + } + if (omit) { +- T(("Path %s is a duplicate", termpaths[j])); ++ TR(TRACE_DATABASE, ("Path %s is a duplicate", termpaths[j])); + for (k = j + 1; k < filecount; k++) { + termpaths[k - 1] = termpaths[k]; + test_stat[k - 1] = test_stat[k]; +@@ -1100,7 +1116,7 @@ + + for (i = 0; i < filecount; i++) { + +- T(("Looking for %s in %s", tn, termpaths[i])); ++ TR(TRACE_DATABASE, ("Looking for %s in %s", tn, termpaths[i])); + if (_nc_access(termpaths[i], R_OK) == 0 + && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) { + _nc_set_source(termpaths[i]); +@@ -1138,8 +1154,7 @@ + * from the list. + */ + *tp = ep->tterm; +- _nc_delink_entry(_nc_head, &(ep->tterm)); +- free(ep); ++ _nc_free_entry(_nc_head, &(ep->tterm)); + + /* + * OK, now try to write the type to user's terminfo directory. +diff -Naur ncurses-5.9/ncurses/tinfo/setbuf.c ncurses-5.9.patch/ncurses/tinfo/setbuf.c +--- ncurses-5.9/ncurses/tinfo/setbuf.c 2010-08-28 23:08:31.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/setbuf.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,169 +0,0 @@ +-/**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free 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 <zmbenhal@netcom.com> 1992,1995 * +- * and: Eric S. Raymond <esr@snark.thyrsus.com> * +- * and: Thomas E. Dickey 1996-on * +- * and: Juergen Pfeifer 2008 * +- ****************************************************************************/ +- +-/* +-** setbuf.c +-** +-** Support for set_term(), reset_shell_mode(), reset_prog_mode(). +-** +-*/ +- +-#include <curses.priv.h> +- +-MODULE_ID("$Id: setbuf.c,v 1.16 2010/08/28 21:08:31 tom Exp $") +- +-/* +- * If the output file descriptor is connected to a tty (the typical case) it +- * will probably be line-buffered. Keith Bostic pointed out that we don't want +- * this; it hoses people running over networks by forcing out a bunch of small +- * packets instead of one big one, so screen updates on ptys look jerky. +- * Restore block buffering to prevent this minor lossage. +- * +- * The buffer size is a compromise. Ideally we'd like a buffer that can hold +- * the maximum possible update size (the whole screen plus cup commands to +- * change lines as it's painted). On a 66-line xterm this can become +- * excessive. So we min it with the amount of data we think we can get through +- * two Ethernet packets (maximum packet size - 100 for TCP/IP overhead). +- * +- * Why two ethernet packets? It used to be one, on the theory that said +- * packets define the maximum size of atomic update. But that's less than the +- * 2000 chars on a 25 x 80 screen, and we don't want local updates to flicker +- * either. Two packet lengths will handle up to a 35 x 80 screen. +- * +- * The magic '6' is the estimated length of the end-of-line cup sequence to go +- * to the next line. It's generous. We used to mess with the buffering in +- * init_mvcur() after cost computation, but that lost the sequences emitted by +- * init_acs() in setupscreen(). +- * +- * "The setvbuf function may be used only after the stream pointed to by stream +- * has been associated with an open file and before any other operation is +- * performed on the stream." (ISO 7.9.5.6.) +- * +- * Grrrr... +- * +- * On a lighter note, many implementations do in fact allow an application to +- * reset the buffering after it has been written to. We try to do this because +- * otherwise we leave stdout in buffered mode after endwin() is called. (This +- * also happens with SVr4 curses). +- * +- * There are pros/cons: +- * +- * con: +- * There is no guarantee that we can reestablish buffering once we've +- * dropped it. +- * +- * We _may_ lose data if the implementation does not coordinate this with +- * fflush. +- * +- * pro: +- * An implementation is more likely to refuse to change the buffering than +- * to do it in one of the ways mentioned above. +- * +- * The alternative is to have the application try to change buffering +- * itself, which is certainly no improvement. +- * +- * Just in case it does not work well on a particular system, the calls to +- * change buffering are all via the macro NC_BUFFERED. Some implementations +- * do indeed get confused by changing setbuf on/off, and will overrun the +- * buffer. So we disable this by default (there may yet be a workaround). +- */ +-NCURSES_EXPORT(void) +-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_PARM->_buffered != buffered) { +- unsigned buf_len; +- char *buf_ptr; +- +- if (getenv("NCURSES_NO_SETBUF") != 0) +- return; +- +- fflush(ofp); +-#ifdef __DJGPP__ +- setmode(ofp, O_BINARY); +-#endif +- if (buffered != 0) { +- buf_len = (unsigned) min(Lines * (Cols + 6), 2800); +- if ((buf_ptr = SP_PARM->_setbuf) == 0) { +- if ((buf_ptr = typeMalloc(char, buf_len)) == NULL) +- return; +- SP_PARM->_setbuf = buf_ptr; +- /* Don't try to free this! */ +- } +-#if !USE_SETBUF_0 +- else +- return; +-#endif +- } else { +-#if !USE_SETBUF_0 +- return; +-#else +- buf_len = 0; +- buf_ptr = 0; +-#endif +- } +- +-#if HAVE_SETVBUF +-#ifdef SETVBUF_REVERSED /* pre-svr3? */ +- (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF); +-#else +- (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len); +-#endif +-#elif HAVE_SETBUFFER +- (void) setbuffer(ofp, buf_ptr, (int) buf_len); +-#endif +- +- 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.9/ncurses/tinfo/strings.c ncurses-5.9.patch/ncurses/tinfo/strings.c +--- ncurses-5.9/ncurses/tinfo/strings.c 2007-08-11 19:12:17.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tinfo/strings.c 2014-09-01 16:33:22.453792284 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2000-2003,2007 Free Software Foundation, Inc. * ++ * Copyright (c) 2000-2007,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -36,7 +36,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: strings.c,v 1.6 2007/08/11 17:12:17 tom Exp $") ++MODULE_ID("$Id: strings.c,v 1.8 2012/02/22 22:34:31 tom Exp $") + + /**************************************************************************** + * Useful string functions (especially for mvcur) +@@ -110,7 +110,7 @@ + + if (len < dst->s_size) { + if (dst->s_tail != 0) { +- strcpy(dst->s_tail, src); ++ _nc_STRCPY(dst->s_tail, src, dst->s_size); + dst->s_tail += len; + } + dst->s_size -= len; +@@ -131,7 +131,7 @@ + + if (len < dst->s_size) { + if (dst->s_head != 0) { +- strcpy(dst->s_head, src); ++ _nc_STRCPY(dst->s_head, src, dst->s_size); + dst->s_tail = dst->s_head + len; + } + dst->s_size = dst->s_init - len; +diff -Naur ncurses-5.9/ncurses/tinfo/tinfo_driver.c ncurses-5.9.patch/ncurses/tinfo/tinfo_driver.c +--- ncurses-5.9/ncurses/tinfo/tinfo_driver.c 2010-12-20 02:47:09.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/tinfo_driver.c 2014-09-01 16:33:22.454792285 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2013,2014 Free 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 @@ + # endif + #endif + +-MODULE_ID("$Id: tinfo_driver.c,v 1.13 2010/12/20 01:47:09 tom Exp $") ++MODULE_ID("$Id: tinfo_driver.c,v 1.33 2014/03/08 20:33:38 tom Exp $") + + /* + * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, +@@ -93,7 +93,7 @@ + + #define TCBMAGIC NCDRV_MAGIC(NCDRV_TINFO) + #define AssertTCB() assert(TCB!=0 && TCB->magic==TCBMAGIC) +-#define SetSP() assert(TCB->csp!=0); sp = TCB->csp ++#define SetSP() assert(TCB->csp!=0); sp = TCB->csp; (void) sp + + /* + * This routine needs to do all the work to make curscr look +@@ -106,22 +106,6 @@ + return TINFO_DOUPDATE(TCB->csp); + } + +-#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);\ +- } +- + static bool + drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret) + { +@@ -135,7 +119,7 @@ + sp = TCB->csp; + TCB->magic = TCBMAGIC; + +-#if (USE_DATABASE || USE_TERMCAP) ++#if (NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP) + status = _nc_setup_tinfo(tname, &termp->type); + #else + status = TGETENT_NO; +@@ -156,12 +140,12 @@ + 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); ++ ret_error1(status, "unknown terminal type.\n", tname); + } + } + result = TRUE; + #if !USE_REENTRANT +- strncpy(ttytype, termp->type.term_names, NAMESIZE - 1); ++ strncpy(ttytype, termp->type.term_names, (size_t) NAMESIZE - 1); + ttytype[NAMESIZE - 1] = '\0'; + #endif + +@@ -169,17 +153,27 @@ + _nc_tinfo_cmdch(termp, *command_character); + + if (generic_type) { +- ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname); ++ /* ++ * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity ++ * check before giving up. ++ */ ++ if ((VALID_STRING(cursor_address) ++ || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home))) ++ && VALID_STRING(clear_screen)) { ++ ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname); ++ } else { ++ ret_error1(TGETENT_NO, "I need something more specific.\n", tname); ++ } + } + if (hard_copy) { +- ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname); ++ ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname); + } + + return result; + } + + static int +-drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, bool beepFlag) ++drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, int beepFlag) + { + SCREEN *sp; + int res = ERR; +@@ -190,22 +184,18 @@ + /* 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); ++ res = NCURSES_PUTP2("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); ++ res = NCURSES_PUTP2("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); ++ res = NCURSES_PUTP2("flash_screen", flash_screen); + NCURSES_SP_NAME(_nc_flush) (sp); + } else if (bell) { +- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell); ++ res = NCURSES_PUTP2("bell", bell); + NCURSES_SP_NAME(_nc_flush) (sp); + } + } +@@ -277,7 +267,7 @@ + + static void + drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB, +- bool fore, ++ int fore, + int color, + NCURSES_SP_OUTC outc) + { +@@ -321,7 +311,7 @@ + SetSP(); + + if (orig_pair != 0) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_pair", orig_pair); ++ NCURSES_PUTP2("orig_pair", orig_pair); + result = TRUE; + } + return result; +@@ -337,7 +327,7 @@ + SetSP(); + + if (orig_colors != 0) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_colors", orig_colors); ++ NCURSES_PUTP2("orig_colors", orig_colors); + result = TRUE; + } + return result; +@@ -348,14 +338,18 @@ + { + SCREEN *sp; + bool useEnv = TRUE; ++ bool useTioctl = TRUE; + + AssertTCB(); + sp = TCB->csp; /* can be null here */ + + if (sp) { + useEnv = sp->_use_env; +- } else ++ useTioctl = sp->_use_tioctl; ++ } else { + useEnv = _nc_prescreen.use_env; ++ useTioctl = _nc_prescreen.use_tioctl; ++ } + + /* figure out the size of the screen */ + T(("screen size: terminfo lines = %d columns = %d", lines, columns)); +@@ -363,7 +357,7 @@ + *linep = (int) lines; + *colp = (int) columns; + +- if (useEnv) { ++ if (useEnv || useTioctl) { + int value; + + #ifdef __EMX__ +@@ -371,7 +365,9 @@ + int screendata[2]; + _scrsize(screendata); + *colp = screendata[0]; +- *linep = screendata[1]; ++ *linep = ((sp != 0 && sp->_filtered) ++ ? 1 ++ : screendata[1]); + T(("EMX screen size: environment LINES = %d COLUMNS = %d", + *linep, *colp)); + } +@@ -400,19 +396,33 @@ + } + #endif /* HAVE_SIZECHANGE */ + +- /* +- * Finally, look for environment variables. +- * +- * Solaris lets users override either dimension with an environment +- * variable. +- */ +- if ((value = _nc_getenv_num("LINES")) > 0) { +- *linep = value; +- T(("screen size: environment LINES = %d", *linep)); +- } +- if ((value = _nc_getenv_num("COLUMNS")) > 0) { +- *colp = value; +- T(("screen size: environment COLUMNS = %d", *colp)); ++ if (useEnv) { ++ if (useTioctl) { ++ /* ++ * If environment variables are used, update them. ++ */ ++ if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) { ++ _nc_setenv_num("LINES", *linep); ++ } ++ if (_nc_getenv_num("COLUMNS") > 0) { ++ _nc_setenv_num("COLUMNS", *colp); ++ } ++ } ++ ++ /* ++ * Finally, look for environment variables. ++ * ++ * Solaris lets users override either dimension with an environment ++ * variable. ++ */ ++ if ((value = _nc_getenv_num("LINES")) > 0) { ++ *linep = value; ++ T(("screen size: environment LINES = %d", *linep)); ++ } ++ if ((value = _nc_getenv_num("COLUMNS")) > 0) { ++ *colp = value; ++ T(("screen size: environment COLUMNS = %d", *colp)); ++ } + } + + /* if we can't get dynamic info about the size, use static */ +@@ -463,7 +473,7 @@ + } + + static int +-drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf) ++drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, int setFlag, TTY * buf) + { + SCREEN *sp = TCB->csp; + TERMINAL *_term = (TERMINAL *) TCB; +@@ -497,7 +507,7 @@ + } + + static int +-drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag) ++drv_mode(TERMINAL_CONTROL_BLOCK * TCB, int progFlag, int defFlag) + { + SCREEN *sp; + TERMINAL *_term = (TERMINAL *) TCB; +@@ -527,7 +537,6 @@ + if (sp) { + if (sp->_keypad_on) + _nc_keypad(sp, TRUE); +- NC_BUFFERED(sp, TRUE); + } + code = OK; + } +@@ -553,7 +562,6 @@ + if (sp) { + _nc_keypad(sp, FALSE); + NCURSES_SP_NAME(_nc_flush) (sp); +- NC_BUFFERED(sp, FALSE); + } + code = drv_sgmode(TCB, TRUE, &(_term->Ottyb)); + } +@@ -620,15 +628,13 @@ + 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.initcolor = VALID_STRING(initialize_color); + TCB->info.canchange = can_change; + TCB->info.hascolor = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) + && (((set_foreground != NULL) +@@ -657,7 +663,7 @@ + * baudrate. + */ + if (isatty(trm->Filedes)) { +- TCB->drv->mode(TCB, TRUE, TRUE); ++ TCB->drv->td_mode(TCB, TRUE, TRUE); + } + } + +@@ -665,7 +671,7 @@ + #define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE) + + static void +-drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, short pair, short f, short b) ++drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, int pair, int f, int b) + { + SCREEN *sp; + +@@ -681,12 +687,11 @@ + 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)); ++ NCURSES_PUTP2("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)); + } + } + +@@ -712,23 +717,22 @@ + + static void + drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB, +- short color, short r, short g, short b) ++ int color, int r, int g, int 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)); ++ NCURSES_PUTP2("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, ++ int old_pair, ++ int pair, ++ int reverse, + NCURSES_SP_OUTC outc) + { + SCREEN *sp = TCB->csp; +@@ -759,7 +763,7 @@ + if (old_pair >= 0 + && sp != 0 + && NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx +- old_pair, ++ (short) old_pair, + &old_fg, + &old_bg) !=ERR) { + if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) +@@ -845,7 +849,9 @@ + } + + static int +-drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB, int delay) ++drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB, ++ int delay ++ EVENTLIST_2nd(_nc_eventlist * evl)) + { + int rc = 0; + SCREEN *sp; +@@ -860,11 +866,11 @@ + } else + #endif + { +- rc = TCBOf(sp)->drv->twait(TCBOf(sp), +- TWAIT_MASK, +- delay, +- (int *) 0 +- EVENTLIST_2nd(evl)); ++ rc = TCBOf(sp)->drv->td_twait(TCBOf(sp), ++ TWAIT_MASK, ++ delay, ++ (int *) 0 ++ EVENTLIST_2nd(evl)); + #if USE_SYSMOUSE + if ((sp->_mouse_type == M_SYSMOUSE) + && (sp->_sysmouse_head < sp->_sysmouse_tail) +@@ -882,7 +888,7 @@ + { + SCREEN *sp = TCB->csp; + AssertTCB(); +- return TINFO_MVCUR(sp, yold, xold, ynew, xnew); ++ return NCURSES_SP_NAME(_nc_mvcur) (sp, yold, xold, ynew, xnew); + } + + static void +@@ -892,22 +898,21 @@ + + AssertTCB(); + if (labnum > 0 && labnum <= num_labels) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "plab_norm", +- TPARM_2(plab_norm, labnum, text)); ++ NCURSES_PUTP2("plab_norm", ++ TPARM_2(plab_norm, labnum, text)); + } + } + + static void +-drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, bool OnFlag) ++drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, int OnFlag) + { + SCREEN *sp = TCB->csp; + + AssertTCB(); + if (OnFlag) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_on", label_on); ++ NCURSES_PUTP2("label_on", label_on); + } else { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_off", label_off); ++ NCURSES_PUTP2("label_off", label_off); + } + } + +@@ -948,6 +953,11 @@ + if (sp && sp->_coloron) + attrs |= A_COLOR; + ++#if USE_ITALIC ++ if (enter_italics_mode) ++ attrs |= A_ITALIC; ++#endif ++ + return (attrs); + } + +@@ -972,7 +982,7 @@ + AssertTCB(); + assert(sp != 0); + if (ena_acs != NULL) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "ena_acs", ena_acs); ++ NCURSES_PUTP2("ena_acs", ena_acs); + } + #if NCURSES_EXT_FUNCS + /* +@@ -1074,16 +1084,7 @@ + + 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 +- ); ++ sp->_xmc_triggers = sp->_ok_attributes & XMC_CONFLICT; + #if 0 + /* + * We "should" treat colors as an attribute. The wyse350 (and its +@@ -1176,7 +1177,7 @@ + if ((pthread_self) && (pthread_kill) && (pthread_equal)) + _nc_globals.read_thread = pthread_self(); + # endif +- n = read(sp->_ifd, &c2, 1); ++ n = read(sp->_ifd, &c2, (size_t) 1); + #if USE_PTHREADS_EINTR + _nc_globals.read_thread = 0; + #endif +@@ -1209,7 +1210,7 @@ + int rc = ERR; + + if (value) { +- rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value); ++ rc = NCURSES_PUTP2(name, value); + } + return rc; + } +@@ -1225,7 +1226,7 @@ + } + + static int +-drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag) ++drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, int flag) + { + int ret = ERR; + SCREEN *sp; +@@ -1251,7 +1252,7 @@ + } + + static int +-drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, bool flag) ++drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, int flag) + { + SCREEN *sp; + int code = ERR; +@@ -1264,7 +1265,8 @@ + if (c >= 0) { + unsigned ch = (unsigned) c; + if (flag) { +- while ((s = _nc_expand_try(sp->_key_ok, ch, &count, 0)) != 0 ++ while ((s = _nc_expand_try(sp->_key_ok, ++ ch, &count, (size_t) 0)) != 0 + && _nc_remove_key(&(sp->_key_ok), ch)) { + code = _nc_add_to_try(&(sp->_keytry), s, ch); + free(s); +@@ -1273,7 +1275,8 @@ + break; + } + } else { +- while ((s = _nc_expand_try(sp->_keytry, ch, &count, 0)) != 0 ++ while ((s = _nc_expand_try(sp->_keytry, ++ ch, &count, (size_t) 0)) != 0 + && _nc_remove_key(&(sp->_keytry), ch)) { + code = _nc_add_to_try(&(sp->_key_ok), s, ch); + free(s); +diff -Naur ncurses-5.9/ncurses/tinfo/trim_sgr0.c ncurses-5.9.patch/ncurses/tinfo/trim_sgr0.c +--- ncurses-5.9/ncurses/tinfo/trim_sgr0.c 2010-12-26 00:03:57.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/trim_sgr0.c 2014-09-01 16:33:22.454792285 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2005-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2005-2010,2012 Free 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 <tic.h> + +-MODULE_ID("$Id: trim_sgr0.c,v 1.12 2010/12/25 23:03:57 tom Exp $") ++MODULE_ID("$Id: trim_sgr0.c,v 1.15 2012/12/15 20:57:17 tom Exp $") + + #undef CUR + #define CUR tp-> +@@ -48,21 +48,28 @@ + static char * + set_attribute_9(TERMTYPE *tp, int flag) + { +- const char *result; ++ const char *value; ++ char *result; + +- if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0) +- result = ""; +- return strdup(result); ++ value = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag); ++ if (PRESENT(value)) ++ result = strdup(value); ++ else ++ result = 0; ++ return result; + } + + static int + is_csi(const char *s) + { +- if (UChar(s[0]) == CSI) +- return 1; +- else if (s[0] == ESC && s[1] == L_BRACK) +- return 2; +- return 0; ++ int result = 0; ++ if (s != 0) { ++ if (UChar(s[0]) == CSI) ++ result = 1; ++ else if (s[0] == ESC && s[1] == L_BRACK) ++ result = 2; ++ } ++ return result; + } + + static char * +@@ -97,7 +104,7 @@ + static bool + rewrite_sgr(char *s, char *attr) + { +- if (PRESENT(s)) { ++ if (s != 0) { + if (PRESENT(attr)) { + size_t len_s = strlen(s); + size_t len_a = strlen(attr); +@@ -108,7 +115,7 @@ + for (n = 0; n < len_s - len_a; ++n) { + s[n] = s[n + len_a]; + } +- strcpy(s + n, attr); ++ _nc_STRCPY(s + n, attr, strlen(s) + 1); + TR(TRACE_DATABASE, ("to:\n\t%s", s)); + } + } +@@ -121,33 +128,35 @@ + similar_sgr(char *a, char *b) + { + bool result = FALSE; +- int csi_a = is_csi(a); +- int csi_b = is_csi(b); +- size_t len_a; +- size_t len_b; +- +- TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s", +- _nc_visbuf2(1, a), +- _nc_visbuf2(2, b))); +- if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) { +- a += csi_a; +- b += csi_b; +- if (*a != *b) { +- a = skip_zero(a); +- b = skip_zero(b); ++ if (a != 0 && b != 0) { ++ int csi_a = is_csi(a); ++ int csi_b = is_csi(b); ++ size_t len_a; ++ size_t len_b; ++ ++ TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s", ++ _nc_visbuf2(1, a), ++ _nc_visbuf2(2, b))); ++ if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) { ++ a += csi_a; ++ b += csi_b; ++ if (*a != *b) { ++ a = skip_zero(a); ++ b = skip_zero(b); ++ } + } ++ len_a = strlen(a); ++ len_b = strlen(b); ++ if (len_a && len_b) { ++ if (len_a > len_b) ++ result = (strncmp(a, b, len_b) == 0); ++ else ++ result = (strncmp(a, b, len_a) == 0); ++ } ++ TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result, ++ _nc_visbuf2(1, a), ++ _nc_visbuf2(2, b))); + } +- len_a = strlen(a); +- len_b = strlen(b); +- if (len_a && len_b) { +- if (len_a > len_b) +- result = (strncmp(a, b, len_b) == 0); +- else +- result = (strncmp(a, b, len_a) == 0); +- } +- TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result, +- _nc_visbuf2(1, a), +- _nc_visbuf2(2, b))); + return result; + } + +diff -Naur ncurses-5.9/ncurses/tinfo/write_entry.c ncurses-5.9.patch/ncurses/tinfo/write_entry.c +--- ncurses-5.9/ncurses/tinfo/write_entry.c 2010-12-26 00:23:08.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tinfo/write_entry.c 2014-09-01 16:33:22.454792285 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,21 +39,15 @@ + #include <curses.priv.h> + #include <hashed_db.h> + +-#include <sys/stat.h> +- + #include <tic.h> + +-#ifndef S_ISDIR +-#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR) +-#endif +- + #if 1 + #define TRACE_OUT(p) DEBUG(2, p) + #else + #define TRACE_OUT(p) /*nothing */ + #endif + +-MODULE_ID("$Id: write_entry.c,v 1.78 2010/12/25 23:23:08 tom Exp $") ++MODULE_ID("$Id: write_entry.c,v 1.91 2013/12/14 21:29:42 tom Exp $") + + static int total_written; + +@@ -76,7 +70,7 @@ + DEBUG(1, ("Created %s", filename)); + + if (write_object(tp, buffer, &offset, limit) == ERR +- || fwrite(buffer, sizeof(char), offset, fp) != offset) { ++ || fwrite(buffer, sizeof(char), (size_t) offset, fp) != offset) { + _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename); + } + +@@ -99,13 +93,13 @@ + char dir[sizeof(LEAF_FMT)]; + char *s = 0; + +- if (code == 0 || (s = strchr(dirnames, code)) == 0) ++ if (code == 0 || (s = (strchr) (dirnames, code)) == 0) + _nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code); + + if (verified[s - dirnames]) + return; + +- sprintf(dir, LEAF_FMT, code); ++ _nc_SPRINTF(dir, _nc_SLIMIT(sizeof(dir)) LEAF_FMT, code); + if (make_db_root(dir) < 0) { + _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir); + } +@@ -115,36 +109,35 @@ + #endif /* !USE_HASHED_DB */ + + static int +-make_db_path(char *dst, const char *src, unsigned limit) ++make_db_path(char *dst, const char *src, size_t limit) + { + int rc = -1; + const char *top = _nc_tic_dir(0); + + if (src == top || _nc_is_abs_path(src)) { + if (strlen(src) + 1 <= limit) { +- (void) strcpy(dst, src); ++ _nc_STRCPY(dst, src, limit); + rc = 0; + } + } else { + if (strlen(top) + strlen(src) + 2 <= limit) { +- (void) sprintf(dst, "%s/%s", top, src); ++ _nc_SPRINTF(dst, _nc_SLIMIT(limit) "%s/%s", top, src); + rc = 0; + } + } + #if USE_HASHED_DB + if (rc == 0) { +- if (_nc_is_dir_path(dst)) { +- rc = -1; +- } else { +- static const char suffix[] = DBM_SUFFIX; +- unsigned have = strlen(dst); +- unsigned need = strlen(suffix); +- if (have > need && strcmp(dst + have - need, suffix)) { +- if (have + need <= limit) +- strcat(dst, suffix); +- else +- rc = -1; ++ static const char suffix[] = DBM_SUFFIX; ++ size_t have = strlen(dst); ++ size_t need = strlen(suffix); ++ if (have > need && strcmp(dst + (int) (have - need), suffix)) { ++ if (have + need <= limit) { ++ _nc_STRCAT(dst, suffix, limit); ++ } else { ++ rc = -1; + } ++ } else if (_nc_is_dir_path(dst)) { ++ rc = -1; + } + } + #endif +@@ -164,10 +157,11 @@ + #if USE_HASHED_DB + DB *capdbp; + +- if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL) ++ if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL) { + rc = -1; +- else if (_nc_db_close(capdbp) < 0) ++ } else if (_nc_db_close(capdbp) < 0) { + rc = -1; ++ } + #else + struct stat statbuf; + +@@ -197,7 +191,10 @@ + char actual[PATH_MAX]; + + if (dir == 0 +- && use_terminfo_vars()) ++#ifndef USE_ROOT_ENVIRON ++ && use_terminfo_vars() ++#endif ++ ) + dir = getenv("TERMINFO"); + + if (dir != 0) +@@ -279,16 +276,21 @@ + char name_list[MAX_TERMINFO_LENGTH]; + char *first_name, *other_names; + char *ptr; ++ char *term_names = tp->term_names; ++ size_t name_size = strlen(term_names); + +- assert(strlen(tp->term_names) != 0); +- assert(strlen(tp->term_names) < sizeof(name_list)); ++ if (name_size == 0) { ++ _nc_syserr_abort("no terminal name found."); ++ } else if (name_size >= sizeof(name_list) - 1) { ++ _nc_syserr_abort("terminal name too long: %s", term_names); ++ } + +- (void) strcpy(name_list, tp->term_names); ++ _nc_STRCPY(name_list, term_names, sizeof(name_list)); + DEBUG(7, ("Name list = '%s'", name_list)); + + first_name = name_list; + +- ptr = &name_list[strlen(name_list) - 1]; ++ ptr = &name_list[name_size - 1]; + other_names = ptr + 1; + + while (ptr > name_list && *ptr != '|') +@@ -322,8 +324,8 @@ + buffer[0] = 0; + + memset(&key, 0, sizeof(key)); +- key.data = tp->term_names; +- key.size = strlen(tp->term_names); ++ key.data = term_names; ++ key.size = name_size; + + memset(&data, 0, sizeof(data)); + data.data = buffer; +@@ -336,8 +338,10 @@ + key.data = name_list; + key.size = strlen(name_list); + +- strcpy(buffer + 1, tp->term_names); +- data.size = strlen(tp->term_names) + 1; ++ _nc_STRCPY(buffer + 1, ++ term_names, ++ sizeof(buffer) - 1); ++ data.size = name_size + 1; + + _nc_db_put(capdb, &key, &data); + +@@ -355,7 +359,6 @@ + + _nc_db_put(capdb, &key, &data); + } +- _nc_db_close(capdb); + } + } + #else /* !USE_HASHED_DB */ +@@ -366,7 +369,8 @@ + if (strlen(first_name) >= sizeof(filename) - (2 + LEAF_LEN)) + _nc_warning("terminal name too long."); + +- sprintf(filename, LEAF_FMT "/%s", first_name[0], first_name); ++ _nc_SPRINTF(filename, _nc_SLIMIT(sizeof(filename)) ++ LEAF_FMT "/%s", first_name[0], first_name); + + /* + * Has this primary name been written since the first call to +@@ -376,7 +380,22 @@ + if (start_time > 0 && + stat(filename, &statbuf) >= 0 + && statbuf.st_mtime >= start_time) { ++#if HAVE_LINK && !USE_SYMLINKS ++ /* ++ * If the file has more than one link, the reason for the previous ++ * write could be that the current primary name used to be an alias for ++ * the previous entry. In that case, unlink the file so that we will ++ * not modify the previous entry as we write this one. ++ */ ++ if (statbuf.st_nlink > 1) { ++ _nc_warning("name redefined."); ++ unlink(filename); ++ } else { ++ _nc_warning("name multiply defined."); ++ } ++#else + _nc_warning("name multiply defined."); ++#endif + } + + check_writeable(first_name[0]); +@@ -407,7 +426,8 @@ + } + + check_writeable(ptr[0]); +- sprintf(linkname, LEAF_FMT "/%s", ptr[0], ptr); ++ _nc_SPRINTF(linkname, _nc_SLIMIT(sizeof(linkname)) ++ LEAF_FMT "/%s", ptr[0], ptr); + + if (strcmp(filename, linkname) == 0) { + _nc_warning("self-synonym ignored"); +@@ -422,7 +442,7 @@ + if (first_name[0] == linkname[0]) + strncpy(symlinkname, first_name, sizeof(symlinkname) - 1); + else { +- strcpy(symlinkname, "../"); ++ _nc_STRCPY(symlinkname, "../", sizeof(suymlinkname)); + strncat(symlinkname, filename, sizeof(symlinkname) - 4); + } + symlinkname[sizeof(symlinkname) - 1] = '\0'; +@@ -491,7 +511,7 @@ + return (want / size); + } + +-#define Write(buf, size, count) fake_write(buffer, offset, limit, (char *) buf, count, size) ++#define Write(buf, size, count) fake_write(buffer, offset, (size_t) limit, (char *) buf, (size_t) count, (size_t) size) + + #undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */ + #define HI(x) ((x) / 256) +@@ -706,7 +726,7 @@ + return (ERR); + + nextfree = compute_offsets(tp->Strings + STRCOUNT, +- tp->ext_Strings, ++ (size_t) tp->ext_Strings, + offsets); + TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree)); + +@@ -714,7 +734,7 @@ + return (ERR); + + nextfree += compute_offsets(tp->ext_Names, +- extcnt, ++ (size_t) extcnt, + offsets + tp->ext_Strings); + TRACE_OUT(("after extended capnames, nextfree=%d", nextfree)); + strmax = tp->ext_Strings + extcnt; +@@ -742,7 +762,7 @@ + + TRACE_OUT(("WRITE %d numbers @%d", tp->ext_Numbers, *offset)); + if (tp->ext_Numbers) { +- convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers); ++ convert_shorts(buf, tp->Numbers + NUMCOUNT, (size_t) tp->ext_Numbers); + if (Write(buf, 2, tp->ext_Numbers) != tp->ext_Numbers) + return (ERR); + } +diff -Naur ncurses-5.9/ncurses/trace/lib_traceatr.c ncurses-5.9.patch/ncurses/trace/lib_traceatr.c +--- ncurses-5.9/ncurses/trace/lib_traceatr.c 2011-01-22 20:48:01.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/lib_traceatr.c 2014-09-01 16:33:22.454792285 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,10 +43,13 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_traceatr.c,v 1.74 2011/01/22 19:48:01 tom Exp $") ++MODULE_ID("$Id: lib_traceatr.c,v 1.81 2014/02/01 22:09:27 tom Exp $") + + #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name)) + ++#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size) ++#define COLOR_BUF_SIZE(num) (sizeof(my_buffer[num])) ++ + #ifdef TRACE + + static const char l_brace[] = StringOf(L_BRACE); +@@ -65,9 +68,12 @@ + my_cached = c; + my_select = !my_select; + if (c == COLOR_DEFAULT) +- strcpy(my_buffer[my_select], "default"); ++ _nc_STRCPY(my_buffer[my_select], "default", ++ COLOR_BUF_SIZE(my_select)); + else +- sprintf(my_buffer[my_select], "color%d", c); ++ _nc_SPRINTF(my_buffer[my_select], ++ _nc_SLIMIT(COLOR_BUF_SIZE(my_select)) ++ "color%d", c); + } + return my_buffer[my_select]; + } +@@ -97,6 +103,9 @@ + { A_CHARTEXT, "A_CHARTEXT" }, + { A_NORMAL, "A_NORMAL" }, + { A_COLOR, "A_COLOR" }, ++#if USE_ITALIC ++ { A_ITALIC, "A_ITALIC" }, ++#endif + /* *INDENT-ON* */ + + } +@@ -120,14 +129,14 @@ + ; + size_t n; + char temp[80]; +- char *result = _nc_trace_buf(bufnum, BUFSIZ); ++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + + if (result != 0) { + unsigned save_nc_tracing = _nc_tracing; + + _nc_tracing = 0; + +- strcpy(result, l_brace); ++ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); + + for (n = 0; n < SIZEOF(names); n++) { + if ((newmode & names[n].val) != 0) { +@@ -139,18 +148,20 @@ + short pairnum = (short) PairNumber(newmode); + #ifdef USE_TERMLIB + /* pair_content lives in libncurses */ +- (void) sprintf(temp, "{%d}", pairnum); ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "{%d}", pairnum); + #else +- short fg, bg; ++ NCURSES_COLOR_T fg, bg; + + if (pair_content(pairnum, &fg, &bg) == OK) { +- (void) sprintf(temp, +- "{%d = {%s, %s}}", +- pairnum, +- COLOR_OF(fg), +- COLOR_OF(bg)); ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "{%d = {%s, %s}}", ++ pairnum, ++ COLOR_OF(fg), ++ COLOR_OF(bg)); + } else { +- (void) sprintf(temp, "{%d}", pairnum); ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "{%d}", pairnum); + } + #endif + result = _nc_trace_bufcat(bufnum, temp); +@@ -243,7 +254,7 @@ + #if NCURSES_SP_FUNCS + (void) sp; + #endif +- if ((attr & A_ALTCHARSET) && (acs_chars != 0)) { ++ if (SP_PARM != 0 && (attr & A_ALTCHARSET) && (acs_chars != 0)) { + char *cp; + char *found = 0; + const ALT_NAMES *strp; +@@ -271,10 +282,10 @@ + _tracechtype2(int bufnum, chtype ch) + { + const char *found; +- char *result = _nc_trace_buf(bufnum, BUFSIZ); ++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + + if (result != 0) { +- strcpy(result, l_brace); ++ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); + if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) { + (void) _nc_trace_bufcat(bufnum, found); + } else +@@ -311,12 +322,12 @@ + NCURSES_EXPORT(char *) + _tracecchar_t2(int bufnum, const cchar_t *ch) + { +- char *result = _nc_trace_buf(bufnum, BUFSIZ); ++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + attr_t attr; + const char *found; + + if (result != 0) { +- strcpy(result, l_brace); ++ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); + if (ch != 0) { + attr = AttrOfD(ch); + if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != 0) { +diff -Naur ncurses-5.9/ncurses/trace/lib_tracebits.c ncurses-5.9.patch/ncurses/trace/lib_tracebits.c +--- ncurses-5.9/ncurses/trace/lib_tracebits.c 2011-01-09 01:23:03.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/lib_tracebits.c 2014-09-01 16:33:22.454792285 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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,11 +34,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_tracebits.c,v 1.19 2011/01/09 00:23:03 tom Exp $") +- +-#if SVR4_TERMIO && !defined(_POSIX_SOURCE) +-#define _POSIX_SOURCE +-#endif ++MODULE_ID("$Id: lib_tracebits.c,v 1.23 2012/06/09 19:55:46 tom Exp $") + + #if HAVE_SYS_TERMIO_H + #include <sys/termio.h> /* needed for ISC */ +@@ -80,22 +76,24 @@ + const char *name; + } BITNAMES; + ++#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size) ++ + static void + lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val) + { + const BITNAMES *sp; + +- (void) strcat(buf, label); +- (void) strcat(buf, ": {"); ++ _nc_STRCAT(buf, label, TRACE_BUF_SIZE(0)); ++ _nc_STRCAT(buf, ": {", TRACE_BUF_SIZE(0)); + for (sp = table; sp->name; sp++) + if (sp->val != 0 + && (val & sp->val) == sp->val) { +- (void) strcat(buf, sp->name); +- (void) strcat(buf, ", "); ++ _nc_STRCAT(buf, sp->name, TRACE_BUF_SIZE(0)); ++ _nc_STRCAT(buf, ", ", TRACE_BUF_SIZE(0)); + } + if (buf[strlen(buf) - 2] == ',') + buf[strlen(buf) - 2] = '\0'; +- (void) strcat(buf, "} "); ++ _nc_STRCAT(buf, "} ", TRACE_BUF_SIZE(0)); + } + + NCURSES_EXPORT(char *) +@@ -192,7 +190,7 @@ + CS_DATA(CS8), + }; + const char *result = "CSIZE? "; +- int value = (tty->c_cflag & CSIZE); ++ int value = (int) (tty->c_cflag & CSIZE); + unsigned n; + + if (value != 0) { +@@ -203,7 +201,7 @@ + } + } + } +- strcat(buf, result); ++ _nc_STRCAT(buf, result, TRACE_BUF_SIZE(0)); + } + #endif + +diff -Naur ncurses-5.9/ncurses/trace/lib_trace.c ncurses-5.9.patch/ncurses/trace/lib_trace.c +--- ncurses-5.9/ncurses/trace/lib_trace.c 2010-12-19 02:21:19.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/lib_trace.c 2014-09-01 16:33:22.454792285 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: lib_trace.c,v 1.76 2010/12/19 01:21:19 tom Exp $") ++MODULE_ID("$Id: lib_trace.c,v 1.82 2013/07/06 19:42:09 tom Exp $") + + NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */ + +@@ -103,9 +103,9 @@ + } + TracePath[size] = '\0'; + assert(strlen(TracePath) <= size); +- strcat(TracePath, "/trace"); ++ _nc_STRCAT(TracePath, "/trace", sizeof(TracePath)); + if (_nc_is_dir_path(TracePath)) { +- strcat(TracePath, ".log"); ++ _nc_STRCAT(TracePath, ".log", sizeof(TracePath)); + } + } + +@@ -121,7 +121,7 @@ + * end of each line. This is useful in case the program dies. + */ + #if HAVE_SETVBUF /* ANSI */ +- (void) setvbuf(TraceFP, (char *) 0, _IOLBF, 0); ++ (void) setvbuf(TraceFP, (char *) 0, _IOLBF, (size_t) 0); + #elif HAVE_SETBUF /* POSIX */ + (void) setbuffer(TraceFP, (char *) 0); + #endif +@@ -185,9 +185,9 @@ + if ((pthread_self)) + # endif + #ifdef __MINGW32__ +- fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self().p); ++ fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self().p); + #else +- fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self()); ++ fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self()); + #endif + #endif + if (before || after) { +@@ -218,7 +218,7 @@ + + /* Trace 'bool' return-values */ + NCURSES_EXPORT(NCURSES_BOOL) +-_nc_retrace_bool(NCURSES_BOOL code) ++_nc_retrace_bool(int code) + { + T((T_RETURN("%s"), code ? "TRUE" : "FALSE")); + return code; +@@ -226,10 +226,10 @@ + + /* Trace 'char' return-values */ + NCURSES_EXPORT(char) +-_nc_retrace_char(char code) ++_nc_retrace_char(int code) + { + T((T_RETURN("%c"), code)); +- return code; ++ return (char) code; + } + + /* Trace 'int' return-values */ +@@ -339,8 +339,9 @@ + _nc_va_tracef(fmt, ap); + va_end(ap); + +- if (--(_nc_globals.nested_tracef) == 0) ++ if (--(_nc_globals.nested_tracef) == 0) { + _nc_unlock_global(tracef); ++ } + } + #endif /* USE_REENTRANT */ + +diff -Naur ncurses-5.9/ncurses/trace/lib_tracechr.c ncurses-5.9.patch/ncurses/trace/lib_tracechr.c +--- ncurses-5.9/ncurses/trace/lib_tracechr.c 2009-04-19 00:48:29.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/trace/lib_tracechr.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free 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,10 +39,12 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: lib_tracechr.c,v 1.20 2009/04/18 22:48:29 tom Exp $") ++MODULE_ID("$Id: lib_tracechr.c,v 1.22 2012/02/22 22:40:24 tom Exp $") + + #ifdef TRACE + ++#define MyBufSize sizeof(_nc_globals.tracechr_buf) ++ + NCURSES_EXPORT(char *) + _nc_tracechar(SCREEN *sp, int ch) + { +@@ -55,19 +57,22 @@ + name = safe_keyname(SP_PARM, ch); + if (name == 0 || *name == '\0') + name = "NULL"; +- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch); ++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) ++ "'%.30s' = %#03o", name, ch); + } else if (!is8bits(ch) || !isprint(UChar(ch))) { + /* + * workaround for glibc bug: + * sprintf changes the result from unctrl() to an empty string if it + * does not correspond to a valid multibyte sequence. + */ +- (void) sprintf(MyBuffer, "%#03o", ch); ++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) ++ "%#03o", ch); + } else { + name = safe_unctrl(SP_PARM, (chtype) ch); + if (name == 0 || *name == 0) + name = "null"; /* shouldn't happen */ +- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch); ++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) ++ "'%.30s' = %#03o", name, ch); + } + return (MyBuffer); + } +diff -Naur ncurses-5.9/ncurses/trace/lib_tracedmp.c ncurses-5.9.patch/ncurses/trace/lib_tracedmp.c +--- ncurses-5.9/ncurses/trace/lib_tracedmp.c 2009-04-18 23:01:38.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/trace/lib_tracedmp.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_tracedmp.c,v 1.32 2009/04/18 21:01:38 tom Exp $") ++MODULE_ID("$Id: lib_tracedmp.c,v 1.34 2012/10/27 20:54:42 tom Exp $") + + #ifdef TRACE + +@@ -70,6 +70,8 @@ + if (++width + 1 > (int) my_length) { + my_length = (unsigned) (2 * (width + 1)); + my_buffer = typeRealloc(char, my_length, my_buffer); ++ if (my_buffer == 0) ++ return; + } + + for (n = 0; n <= win->_maxy; ++n) { +@@ -111,7 +113,7 @@ + if (multicolumn) { + ep = my_buffer; + for (j = 0; j < width; ++j) { +- chtype test = WidecExt(win->_line[n].text[j]); ++ int test = WidecExt(win->_line[n].text[j]); + if (test) { + ep[j] = (char) (test + '0'); + } else { +diff -Naur ncurses-5.9/ncurses/trace/lib_tracemse.c ncurses-5.9.patch/ncurses/trace/lib_tracemse.c +--- ncurses-5.9/ncurses/trace/lib_tracemse.c 2011-01-22 20:48:08.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/lib_tracemse.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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 <curses.priv.h> + +-MODULE_ID("$Id: lib_tracemse.c,v 1.18 2011/01/22 19:48:08 tom Exp $") ++MODULE_ID("$Id: lib_tracemse.c,v 1.21 2012/12/15 23:51:19 tom Exp $") + + #ifdef TRACE + +@@ -47,7 +47,11 @@ + static char * + _trace_mmask_t(SCREEN *sp, mmask_t code) + { +-#define SHOW(m, s) if ((code & m) == m) strcat(strcat(my_buffer, s), ", ") ++#define SHOW(m, s) \ ++ if ((code & m) == m) { \ ++ _nc_STRCAT(my_buffer, s, sizeof(my_buffer)); \ ++ _nc_STRCAT(my_buffer, ", ", sizeof(my_buffer)); \ ++ } + + SHOW(BUTTON1_RELEASED, "release-1"); + SHOW(BUTTON1_PRESSED, "press-1"); +@@ -110,23 +114,33 @@ + NCURSES_EXPORT(char *) + _nc_tracemouse(SCREEN *sp, MEVENT const *ep) + { +- (void) sprintf(my_buffer, TRACEMSE_FMT, +- ep->id, +- ep->x, +- ep->y, +- ep->z, +- (unsigned long) ep->bstate); ++ char *result = 0; + +- (void) _trace_mmask_t(sp, ep->bstate); +- (void) strcat(my_buffer, "}"); +- return (my_buffer); ++ if (sp != 0) { ++ _nc_SPRINTF(my_buffer, _nc_SLIMIT(sizeof(my_buffer)) ++ TRACEMSE_FMT, ++ ep->id, ++ ep->x, ++ ep->y, ++ ep->z, ++ (unsigned long) ep->bstate); ++ ++ (void) _trace_mmask_t(sp, ep->bstate); ++ _nc_STRCAT(my_buffer, "}", sizeof(my_buffer)); ++ result = (my_buffer); ++ } ++ return result; + } + + NCURSES_EXPORT(mmask_t) + _nc_retrace_mmask_t(SCREEN *sp, mmask_t code) + { +- *my_buffer = '\0'; +- T((T_RETURN("{%s}"), _trace_mmask_t(sp, code))); ++ if (sp != 0) { ++ *my_buffer = '\0'; ++ T((T_RETURN("{%s}"), _trace_mmask_t(sp, code))); ++ } else { ++ T((T_RETURN("{?}"))); ++ } + return code; + } + +diff -Naur ncurses-5.9/ncurses/trace/trace_buf.c ncurses-5.9.patch/ncurses/trace/trace_buf.c +--- ncurses-5.9/ncurses/trace/trace_buf.c 2011-01-22 20:48:16.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/trace_buf.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -35,7 +35,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: trace_buf.c,v 1.17 2011/01/22 19:48:16 tom Exp $") ++MODULE_ID("$Id: trace_buf.c,v 1.20 2012/02/22 22:34:31 tom Exp $") + + #ifdef TRACE + +@@ -103,13 +103,14 @@ + NCURSES_EXPORT(char *) + _nc_trace_bufcat(int bufnum, const char *value) + { +- char *buffer = _nc_trace_alloc(bufnum, 0); ++ char *buffer = _nc_trace_alloc(bufnum, (size_t) 0); + if (buffer != 0) { + size_t have = strlen(buffer); ++ size_t need = strlen(value) + have; + +- buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value)); ++ buffer = _nc_trace_alloc(bufnum, 1 + need); + if (buffer != 0) +- (void) strcpy(buffer + have, value); ++ _nc_STRCPY(buffer + have, value, need); + + } + return buffer; +diff -Naur ncurses-5.9/ncurses/trace/trace_tries.c ncurses-5.9.patch/ncurses/trace/trace_tries.c +--- ncurses-5.9/ncurses/trace/trace_tries.c 2011-01-09 01:23:27.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/trace_tries.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1999-2009,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -35,7 +35,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: trace_tries.c,v 1.16 2011/01/09 00:23:27 tom Exp $") ++MODULE_ID("$Id: trace_tries.c,v 1.17 2012/10/27 20:50:50 tom Exp $") + + #ifdef TRACE + #define my_buffer _nc_globals.tracetry_buf +@@ -49,28 +49,31 @@ + my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length); + } + +- while (tree != 0) { +- if ((my_buffer[level] = tree->ch) == 0) +- my_buffer[level] = 128; +- my_buffer[level + 1] = 0; +- if (tree->value != 0) { +- _tracef("%5d: %s (%s)", tree->value, +- _nc_visbuf((char *) my_buffer), keyname(tree->value)); ++ if (my_buffer != 0) { ++ while (tree != 0) { ++ if ((my_buffer[level] = tree->ch) == 0) ++ my_buffer[level] = 128; ++ my_buffer[level + 1] = 0; ++ if (tree->value != 0) { ++ _tracef("%5d: %s (%s)", tree->value, ++ _nc_visbuf((char *) my_buffer), keyname(tree->value)); ++ } ++ if (tree->child) ++ recur_tries(tree->child, level + 1); ++ tree = tree->sibling; + } +- if (tree->child) +- recur_tries(tree->child, level + 1); +- tree = tree->sibling; + } + } + + NCURSES_EXPORT(void) + _nc_trace_tries(TRIES * tree) + { +- my_buffer = typeMalloc(unsigned char, my_length = 80); +- _tracef("BEGIN tries %p", (void *) tree); +- recur_tries(tree, 0); +- _tracef(". . . tries %p", (void *) tree); +- free(my_buffer); ++ if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != 0) { ++ _tracef("BEGIN tries %p", (void *) tree); ++ recur_tries(tree, 0); ++ _tracef(". . . tries %p", (void *) tree); ++ free(my_buffer); ++ } + } + + #else +diff -Naur ncurses-5.9/ncurses/trace/varargs.c ncurses-5.9.patch/ncurses/trace/varargs.c +--- ncurses-5.9/ncurses/trace/varargs.c 2008-11-16 01:19:59.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/trace/varargs.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2001-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2008,2012 Free 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 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: varargs.c,v 1.8 2008/11/16 00:19:59 juergen Exp $") ++MODULE_ID("$Id: varargs.c,v 1.11 2012/10/27 21:03:28 tom Exp $") + + #ifdef TRACE + +@@ -149,25 +149,32 @@ + param = buffer; + switch (used) { + case atInteger: +- sprintf(buffer, "%d", ival); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%d", ival); + break; + case atFloat: +- sprintf(buffer, "%f", fval); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%f", fval); + break; + case atPoint: +- sprintf(buffer, "%p", pval); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%p", pval); + break; + case atString: + param = _nc_visbuf2(1, sval); + break; + case atUnknown: + default: +- strcpy(buffer, "?"); ++ _nc_STRCPY(buffer, "?", sizeof(buffer)); + break; + } + MyLength += strlen(param) + 2; + MyBuffer = typeRealloc(char, MyLength, MyBuffer); +- sprintf(MyBuffer + strlen(MyBuffer), ", %s", param); ++ if (MyBuffer != 0) { ++ _nc_SPRINTF(MyBuffer + strlen(MyBuffer), ++ _nc_SLIMIT(MyLength - strlen(MyBuffer)) ++ ", %s", param); ++ } + } + } + used = atUnknown; +@@ -177,7 +184,7 @@ + } + } + +- return (MyBuffer); ++ return (MyBuffer ? MyBuffer : dummy); + } + #else + EMPTY_MODULE(_nc_varargs) +diff -Naur ncurses-5.9/ncurses/trace/visbuf.c ncurses-5.9.patch/ncurses/trace/visbuf.c +--- ncurses-5.9/ncurses/trace/visbuf.c 2010-05-29 20:51:41.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/trace/visbuf.c 2014-09-01 16:33:22.455792287 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -42,7 +42,7 @@ + #include <tic.h> + #include <ctype.h> + +-MODULE_ID("$Id: visbuf.c,v 1.37 2010/05/29 18:51:41 tom Exp $") ++MODULE_ID("$Id: visbuf.c,v 1.43 2014/02/23 01:21:08 tom Exp $") + + #define NUM_VISBUFS 4 + +@@ -55,13 +55,21 @@ + static const char r_brace[] = StringOf(R_BRACE); + #endif + ++#if USE_STRING_HACKS && HAVE_SNPRINTF ++#define VisChar(tp, chr, limit) _nc_vischar(tp, chr, limit) ++#define LIMIT_ARG ,size_t limit ++#else ++#define VisChar(tp, chr, limit) _nc_vischar(tp, chr) ++#define LIMIT_ARG /* nothing */ ++#endif ++ + static char * +-_nc_vischar(char *tp, unsigned c) ++_nc_vischar(char *tp, unsigned c LIMIT_ARG) + { + if (c == '"' || c == '\\') { + *tp++ = '\\'; + *tp++ = (char) c; +- } else if (is7bits(c) && (isgraph(c) || c == ' ')) { ++ } else if (is7bits((int)c) && (isgraph((int)c) || c == ' ')) { + *tp++ = (char) c; + } else if (c == '\n') { + *tp++ = '\\'; +@@ -84,7 +92,8 @@ + *tp++ = '^'; + *tp++ = (char) ('@' + c); + } else { +- sprintf(tp, "\\%03lo", (unsigned long) ChCharOf(c)); ++ _nc_SPRINTF(tp, _nc_SLIMIT(limit) ++ "\\%03lo", (unsigned long) ChCharOf(c)); + tp += strlen(tp); + } + *tp = 0; +@@ -97,6 +106,7 @@ + const char *vbuf = 0; + char *tp; + int c; ++ int count; + + if (buf == 0) + return ("(null)"); +@@ -106,6 +116,7 @@ + if (len < 0) + len = (int) strlen(buf); + ++ count = len; + #ifdef TRACE + vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len)); + #else +@@ -124,8 +135,8 @@ + #endif + if (tp != 0) { + *tp++ = D_QUOTE; +- while ((--len >= 0) && (c = *buf++) != '\0') { +- tp = _nc_vischar(tp, UChar(c)); ++ while ((--count >= 0) && (c = *buf++) != '\0') { ++ tp = VisChar(tp, UChar(c), NormalLen(len)); + } + *tp++ = D_QUOTE; + *tp = '\0'; +@@ -175,6 +186,7 @@ + const char *vbuf; + char *tp; + wchar_t c; ++ int count; + + if (buf == 0) + return ("(null)"); +@@ -182,6 +194,7 @@ + if (len < 0) + len = (int) wcslen(buf); + ++ count = len; + #ifdef TRACE + vbuf = tp = _nc_trace_buf(bufnum, WideLen(len)); + #else +@@ -193,15 +206,16 @@ + #endif + if (tp != 0) { + *tp++ = D_QUOTE; +- while ((--len >= 0) && (c = *buf++) != '\0') { ++ while ((--count >= 0) && (c = *buf++) != '\0') { + char temp[CCHARW_MAX + 80]; + int j = wctomb(temp, c), k; + if (j <= 0) { +- sprintf(temp, "\\u%08X", (unsigned) c); ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) ++ "\\u%08X", (unsigned) c); + j = (int) strlen(temp); + } + for (k = 0; k < j; ++k) { +- tp = _nc_vischar(tp, UChar(temp[k])); ++ tp = VisChar(tp, UChar(temp[k]), WideLen(len)); + } + } + *tp++ = D_QUOTE; +@@ -248,10 +262,12 @@ + else + mybuf = typeMalloc(wchar_t, mylen); + } +- for (n = 0; buf[n] != 0; ++n) { +- mybuf[n] = (wchar_t) buf[n]; ++ if (mybuf != 0) { ++ for (n = 0; buf[n] != 0; ++n) { ++ mybuf[n] = (wchar_t) buf[n]; ++ } ++ mybuf[n] = L'\0'; + } +- mybuf[n] = L'\0'; + + return _nc_viswbuf2(0, mybuf); + } +@@ -261,7 +277,7 @@ + NCURSES_EXPORT(const char *) + _nc_viscbuf2(int bufnum, const NCURSES_CH_T * buf, int len) + { +- char *result = _nc_trace_buf(bufnum, BUFSIZ); ++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + int first; + const char *found; + +@@ -315,7 +331,7 @@ + break; + for (k = 0; k < PUTC_n; k++) { + char temp[80]; +- _nc_vischar(temp, UChar(PUTC_buf[k])); ++ VisChar(temp, UChar(PUTC_buf[k]), sizeof(temp)); + (void) _nc_trace_bufcat(bufnum, temp); + } + } +@@ -323,8 +339,8 @@ + #else + { + char temp[80]; +- _nc_vischar(temp, UChar(buf[j])); +- result = _nc_trace_bufcat(bufnum, temp); ++ VisChar(temp, UChar(buf[j]), sizeof(temp)); ++ (void) _nc_trace_bufcat(bufnum, temp); + } + #endif /* USE_WIDEC_SUPPORT */ + } +diff -Naur ncurses-5.9/ncurses/tty/hardscroll.c ncurses-5.9.patch/ncurses/tty/hardscroll.c +--- ncurses-5.9/ncurses/tty/hardscroll.c 2010-04-25 01:46:47.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tty/hardscroll.c 2014-09-01 16:33:22.456792288 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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,7 +147,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: hardscroll.c,v 1.47 2010/04/24 23:46:47 tom Exp $") ++MODULE_ID("$Id: hardscroll.c,v 1.51 2012/10/17 09:01:10 tom Exp $") + + #if defined(SCROLLDEBUG) || defined(HASHDEBUG) + +@@ -173,9 +173,9 @@ + # if USE_HASHMAP + # define oldnums(sp) (sp)->_oldnum_list + # define OLDNUM(sp,n) oldnums(sp)[n] +-# else /* !USE_HASHMAP */ ++# else /* !USE_HASHMAP */ + # define OLDNUM(sp,n) NewScreen(sp)->_line[n].oldindex +-# endif /* !USE_HASHMAP */ ++# endif /* !USE_HASHMAP */ + + #define OLDNUM_SIZE(sp) (sp)->_oldnum_size + +@@ -193,14 +193,20 @@ + #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) + #if USE_HASHMAP + /* get enough storage */ +- if (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) { ++ assert(OLDNUM_SIZE(SP_PARM) >= 0); ++ assert(screen_lines(SP_PARM) > 0); ++ if ((oldnums(SP_PARM) == 0) ++ || (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))) { ++ int need_lines = ((OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) ++ ? screen_lines(SP_PARM) ++ : OLDNUM_SIZE(SP_PARM)); + int *new_oldnums = typeRealloc(int, +- (size_t) screen_lines(SP_PARM), ++ (size_t) need_lines, + oldnums(SP_PARM)); + if (!new_oldnums) + return; + oldnums(SP_PARM) = new_oldnums; +- OLDNUM_SIZE(SP_PARM) = screen_lines(SP_PARM); ++ OLDNUM_SIZE(SP_PARM) = need_lines; + } + /* calculate the indices */ + NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_ARG); +@@ -302,7 +308,9 @@ + + *buf = '\0'; + for (n = 0; n < screen_lines(SP_PARM); n++) +- (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(SP_PARM, n)); ++ _nc_SPRINTF(buf + strlen(buf), ++ _nc_SLIMIT(want - strlen(buf)) ++ " %02d", OLDNUM(SP_PARM, n)); + TR(TRACE_UPDATE | TRACE_MOVE, ("virt %s", buf)); + free(buf); + } +diff -Naur ncurses-5.9/ncurses/tty/hashmap.c ncurses-5.9.patch/ncurses/tty/hashmap.c +--- ncurses-5.9/ncurses/tty/hashmap.c 2010-04-25 01:46:07.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tty/hashmap.c 2014-09-01 16:33:22.456792288 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -73,7 +73,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: hashmap.c,v 1.62 2010/04/24 23:46:07 tom Exp $") ++MODULE_ID("$Id: hashmap.c,v 1.63 2011/10/22 16:34:50 tom Exp $") + + #ifdef HASHDEBUG + +@@ -163,7 +163,7 @@ + * effective. 'blank' indicates whether the line 'to' would become blank. + */ + static NCURSES_INLINE bool +-cost_effective(SCREEN *sp, const int from, const int to, const bool blank) ++cost_effective(SCREEN *sp, const int from, const int to, const int blank) + { + int new_from; + +diff -Naur ncurses-5.9/ncurses/tty/lib_mvcur.c ncurses-5.9.patch/ncurses/tty/lib_mvcur.c +--- ncurses-5.9/ncurses/tty/lib_mvcur.c 2011-01-22 20:48:21.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tty/lib_mvcur.c 2014-09-01 16:33:22.456792288 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -159,7 +159,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_mvcur.c,v 1.126 2011/01/22 19:48:21 tom Exp $") ++MODULE_ID("$Id: lib_mvcur.c,v 1.134 2014/03/08 20:32:59 tom Exp $") + + #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */ + +@@ -176,6 +176,9 @@ + static float diff; + #endif /* MAIN */ + ++#undef NCURSES_OUTC_FUNC ++#define NCURSES_OUTC_FUNC myOutCh ++ + #define OPT_SIZE 512 + + static int normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt); +@@ -274,10 +277,9 @@ + /* Set the scroll-region to a known state (the default) */ + { + if (change_scroll_region) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "change_scroll_region", +- TPARM_2(change_scroll_region, +- 0, screen_lines(SP_PARM) - 1)); ++ NCURSES_PUTP2("change_scroll_region", ++ TPARM_2(change_scroll_region, ++ 0, screen_lines(SP_PARM) - 1)); + } + } + +@@ -285,14 +287,12 @@ + 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)) ++ if (!SP_PARM || !IsTermInfo(SP_PARM)) + return; + + /* initialize screen for cursor access */ + if (enter_ca_mode) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "enter_ca_mode", +- enter_ca_mode); ++ NCURSES_PUTP2("enter_ca_mode", enter_ca_mode); + } + + /* +@@ -327,13 +327,14 @@ + NCURSES_SP_NAME(_nc_mvcur_init) (NCURSES_SP_DCL0) + /* initialize the cost structure */ + { +- if (SP_PARM->_ofp && isatty(fileno(SP_PARM->_ofp))) ++ 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 ++ } else { + 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)); +@@ -481,9 +482,7 @@ + } + + if (exit_ca_mode) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "exit_ca_mode", +- exit_ca_mode); ++ NCURSES_PUTP2("exit_ca_mode", exit_ca_mode); + } + /* + * Reset terminal's tab counter. There's a long-time bug that +@@ -549,7 +548,7 @@ + int from_x, + int to_y, + int to_x, +- bool ovw) ++ int ovw) + /* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */ + { + string_desc save; +@@ -770,7 +769,10 @@ + */ + + static NCURSES_INLINE int +-onscreen_mvcur(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew, bool ovw) ++onscreen_mvcur(NCURSES_SP_DCLx ++ int yold, int xold, ++ int ynew, int xnew, int ovw, ++ NCURSES_SP_OUTC myOutCh) + /* onscreen move from (yold, xold) to (ynew, xnew) */ + { + string_desc result; +@@ -935,7 +937,7 @@ + if (usecost != INFINITY) { + TPUTS_TRACE("mvcur"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx +- buffer, 1, NCURSES_SP_NAME(_nc_outch)); ++ buffer, 1, myOutCh); + SP_PARM->_cursrow = ynew; + SP_PARM->_curscol = xnew; + return (OK); +@@ -943,9 +945,15 @@ + return (ERR); + } + +-NCURSES_EXPORT(int) +-TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew) +-/* optimized cursor move from (yold, xold) to (ynew, xnew) */ ++/* ++ * optimized cursor move from (yold, xold) to (ynew, xnew) ++ */ ++static int ++_nc_real_mvcur(NCURSES_SP_DCLx ++ int yold, int xold, ++ int ynew, int xnew, ++ NCURSES_SP_OUTC myOutCh, ++ int ovw) + { + NCURSES_CH_T oldattr; + int code; +@@ -994,20 +1002,18 @@ + + if (l > 0) { + if (carriage_return) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "carriage_return", +- carriage_return); +- } else +- NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\r'); ++ NCURSES_PUTP2("carriage_return", carriage_return); ++ } else { ++ myOutCh(NCURSES_SP_ARGx '\r'); ++ } + xold = 0; + + while (l > 0) { + if (newline) { +- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx +- "newline", +- newline); +- } else +- NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\n'); ++ NCURSES_PUTP2("newline", newline); ++ } else { ++ myOutCh(NCURSES_SP_ARGx '\n'); ++ } + l--; + } + } +@@ -1027,7 +1033,7 @@ + ynew = screen_lines(SP_PARM) - 1; + + /* destination location is on screen now */ +- code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, TRUE); ++ code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, ovw, myOutCh); + + /* + * Restore attributes if we disabled them before moving. +@@ -1042,13 +1048,66 @@ + returnCode(code); + } + +-#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER) ++/* ++ * These entrypoints are used within the library. ++ */ ++NCURSES_EXPORT(int) ++NCURSES_SP_NAME(_nc_mvcur) (NCURSES_SP_DCLx ++ int yold, int xold, ++ int ynew, int xnew) ++{ ++ return _nc_real_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, ++ NCURSES_SP_NAME(_nc_outch), ++ TRUE); ++} ++ ++#if NCURSES_SP_FUNCS ++NCURSES_EXPORT(int) ++_nc_mvcur(int yold, int xold, ++ int ynew, int xnew) ++{ ++ return NCURSES_SP_NAME(_nc_mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew); ++} ++#endif ++ ++#if defined(USE_TERM_DRIVER) ++/* ++ * The terminal driver does not support the external "mvcur()". ++ */ ++NCURSES_EXPORT(int) ++TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew) ++{ ++ return _nc_real_mvcur(NCURSES_SP_ARGx ++ yold, xold, ++ ynew, xnew, ++ NCURSES_SP_NAME(_nc_outch), ++ TRUE); ++} ++ ++#else /* !USE_TERM_DRIVER */ ++ ++/* ++ * These entrypoints support users of the library. ++ */ ++NCURSES_EXPORT(int) ++NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx int yold, int xold, int ynew, ++ int xnew) ++{ ++ return _nc_real_mvcur(NCURSES_SP_ARGx ++ yold, xold, ++ ynew, xnew, ++ NCURSES_SP_NAME(_nc_putchar), ++ FALSE); ++} ++ ++#if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) + mvcur(int yold, int xold, int ynew, int xnew) + { + return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew); + } + #endif ++#endif /* USE_TERM_DRIVER */ + + #if defined(TRACE) || defined(NCURSES_TEST) + NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL; +@@ -1128,7 +1187,6 @@ + baudrate(); + + _nc_mvcur_init(); +- NC_BUFFERED(FALSE); + + (void) puts("The mvcur tester. Type ? for help"); + +diff -Naur ncurses-5.9/ncurses/tty/lib_tstp.c ncurses-5.9.patch/ncurses/tty/lib_tstp.c +--- ncurses-5.9/ncurses/tty/lib_tstp.c 2010-05-15 23:31:12.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tty/lib_tstp.c 2014-09-01 16:33:22.456792288 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,11 +42,7 @@ + + #include <SigAction.h> + +-#if SVR4_ACTION && !defined(_POSIX_SOURCE) +-#define _POSIX_SOURCE +-#endif +- +-MODULE_ID("$Id: lib_tstp.c,v 1.41 2010/05/15 21:31:12 tom Exp $") ++MODULE_ID("$Id: lib_tstp.c,v 1.47 2013/04/27 19:50:17 tom Exp $") + + #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC) + #define USE_SIGTSTP 1 +@@ -138,7 +134,7 @@ + + #if USE_SIGTSTP + static void +-tstp(int dummy GCC_UNUSED) ++handle_SIGTSTP(int dummy GCC_UNUSED) + { + SCREEN *sp = CURRENT_SCREEN; + sigset_t mask, omask; +@@ -148,7 +144,8 @@ + int sigttou_blocked; + #endif + +- T(("tstp() called")); ++ _nc_globals.have_sigtstp = 1; ++ T(("handle_SIGTSTP() called")); + + /* + * The user may have changed the prog_mode tty bits, so save them. +@@ -239,21 +236,24 @@ + #endif /* USE_SIGTSTP */ + + static void +-cleanup(int sig) ++handle_SIGINT(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 +- * settings on the way out. ++ * Much of this is unsafe from a signal handler. But we'll _try_ to clean ++ * up the screen and terminal settings on the way out. ++ * ++ * There are at least the following problems: ++ * 1) Walking the SCREEN list is unsafe, since all list management ++ * is done without any signal blocking. ++ * 2) On systems which have REENTRANT turned on, set_term() uses ++ * _nc_lock_global() which could deadlock or misbehave in other ways. ++ * 3) endwin() calls all sorts of stuff, many of which use stdio or ++ * other library functions which are clearly unsafe. + */ + if (!_nc_globals.cleanup_nested++ +- && (sig == SIGINT +-#ifdef SIGQUIT +- || sig == SIGQUIT +-#endif +- )) { ++ && (sig == SIGINT || sig == SIGTERM)) { + #if HAVE_SIGACTION || HAVE_SIGVEC + sigaction_t act; + sigemptyset(&act.sa_mask); +@@ -268,22 +268,21 @@ + for (each_screen(scan)) { + if (scan->_ofp != 0 + && isatty(fileno(scan->_ofp))) { +- scan->_cleanup = TRUE; + scan->_outch = NCURSES_SP_NAME(_nc_outch); + } + set_term(scan); + NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG); + if (sp) +- sp->_endwin = FALSE; /* in case we have an atexit! */ ++ sp->_endwin = FALSE; /* in case of reuse */ + } + } + } +- exit(EXIT_FAILURE); ++ _exit(EXIT_FAILURE); + } + + #if USE_SIGWINCH + static void +-sigwinch(int sig GCC_UNUSED) ++handle_SIGWINCH(int sig GCC_UNUSED) + { + _nc_globals.have_sigwinch = 1; + # if USE_PTHREADS_EINTR +@@ -301,7 +300,7 @@ + * handler. + */ + static int +-CatchIfDefault(int sig, RETSIGTYPE (*handler) (int)) ++CatchIfDefault(int sig, void (*handler) (int)) + { + int result; + #if HAVE_SIGACTION || HAVE_SIGVEC +@@ -331,7 +330,7 @@ + result = FALSE; + } + #else /* !HAVE_SIGACTION */ +- RETSIGTYPE (*ohandler) (int); ++ void (*ohandler) (int); + + ohandler = signal(sig, SIG_IGN); + if (ohandler == SIG_DFL +@@ -364,7 +363,7 @@ + * the caller later changes its mind, but that doesn't seem correct. + */ + NCURSES_EXPORT(void) +-_nc_signal_handler(bool enable) ++_nc_signal_handler(int enable) + { + T((T_CALLED("_nc_signal_handler(%d)"), enable)); + #if USE_SIGTSTP /* Xenix 2.x doesn't have SIGTSTP, for example */ +@@ -385,7 +384,7 @@ + #ifdef SA_RESTART + new_sigaction.sa_flags |= SA_RESTART; + #endif /* SA_RESTART */ +- new_sigaction.sa_handler = tstp; ++ new_sigaction.sa_handler = handle_SIGTSTP; + (void) sigaction(SIGTSTP, &new_sigaction, NULL); + } else { + ignore_tstp = TRUE; +@@ -396,10 +395,10 @@ + + if (!_nc_globals.init_signals) { + if (enable) { +- CatchIfDefault(SIGINT, cleanup); +- CatchIfDefault(SIGTERM, cleanup); ++ CatchIfDefault(SIGINT, handle_SIGINT); ++ CatchIfDefault(SIGTERM, handle_SIGINT); + #if USE_SIGWINCH +- CatchIfDefault(SIGWINCH, sigwinch); ++ CatchIfDefault(SIGWINCH, handle_SIGWINCH); + #endif + _nc_globals.init_signals = TRUE; + } +diff -Naur ncurses-5.9/ncurses/tty/lib_twait.c ncurses-5.9.patch/ncurses/tty/lib_twait.c +--- ncurses-5.9/ncurses/tty/lib_twait.c 2010-12-26 00:43:58.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tty/lib_twait.c 2014-09-01 16:33:22.456792288 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,6 +53,11 @@ + #include <OS.h> + #endif + ++#if USE_KLIBC_KBD ++#define INCL_KBD ++#include <os2.h> ++#endif ++ + #if USE_FUNC_POLL + # if HAVE_SYS_TIME_H + # include <sys/time.h> +@@ -70,10 +75,10 @@ + #endif + #undef CUR + +-MODULE_ID("$Id: lib_twait.c,v 1.61 2010/12/25 23:43:58 tom Exp $") ++MODULE_ID("$Id: lib_twait.c,v 1.68 2014/03/08 20:32:59 tom Exp $") + + static long +-_nc_gettime(TimeType * t0, bool first) ++_nc_gettime(TimeType * t0, int first) + { + long res; + +@@ -97,7 +102,7 @@ + if (first) { + *t0 = t1; + } +- res = (t1 - *t0) * 1000; ++ res = (long) ((t1 - *t0) * 1000); + #endif + TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res)); + return res; +@@ -184,6 +189,12 @@ + fd_set set; + #endif + ++#if USE_KLIBC_KBD ++ fd_set saved_set; ++ KBDKEYINFO ki; ++ struct timeval tv; ++#endif ++ + long starttime, returntime; + + TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d", +@@ -207,6 +218,7 @@ + starttime = _nc_gettime(&t0, TRUE); + + count = 0; ++ (void) count; + + #ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) +@@ -217,8 +229,11 @@ + memset(fd_list, 0, sizeof(fd_list)); + + #ifdef NCURSES_WGETCH_EVENTS +- if ((mode & TW_EVENT) && evl) ++ if ((mode & TW_EVENT) && evl) { + fds = typeMalloc(struct pollfd, MIN_FDS + evl->count); ++ if (fds == 0) ++ return TW_NONE; ++ } + #endif + + if (mode & TW_INPUT) { +@@ -247,7 +262,7 @@ + } + #endif + +- result = poll(fds, (unsigned) count, milliseconds); ++ result = poll(fds, (size_t) count, milliseconds); + + #ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { +@@ -274,10 +289,6 @@ + } + } + } +- +- if (fds != fd_list) +- free((char *) fds); +- + #endif + + #elif defined(__BEOS__) +@@ -329,10 +340,12 @@ + */ + FD_ZERO(&set); + ++#if !USE_KLIBC_KBD + if (mode & TW_INPUT) { + FD_SET(sp->_ifd, &set); + count = sp->_ifd + 1; + } ++#endif + if ((mode & TW_MOUSE) + && (fd = sp->_mouse_fd) >= 0) { + FD_SET(fd, &set); +@@ -352,6 +365,31 @@ + } + #endif + ++#if USE_KLIBC_KBD ++ for (saved_set = set;; set = saved_set) { ++ if ((mode & TW_INPUT) ++ && (sp->_extended_key ++ || (KbdPeek(&ki, 0) == 0 ++ && (ki.fbStatus & KBDTRF_FINAL_CHAR_IN)))) { ++ FD_ZERO(&set); ++ FD_SET(sp->_ifd, &set); ++ result = 1; ++ break; ++ } ++ ++ tv.tv_sec = 0; ++ tv.tv_usec = (milliseconds == 0) ? 0 : (10 * 1000); ++ ++ if ((result = select(count, &set, NULL, NULL, &tv)) != 0) ++ break; ++ ++ /* Time out ? */ ++ if (milliseconds >= 0 && _nc_gettime(&t0, FALSE) >= milliseconds) { ++ result = 0; ++ break; ++ } ++ } ++#else + if (milliseconds >= 0) { + struct timeval ntimeout; + ntimeout.tv_sec = milliseconds / 1000; +@@ -360,6 +398,7 @@ + } else { + result = select(count, &set, NULL, NULL, NULL); + } ++#endif + + #ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { +@@ -462,5 +501,12 @@ + result |= TW_EVENT; + #endif + ++#if USE_FUNC_POLL ++#ifdef NCURSES_WGETCH_EVENTS ++ if (fds != fd_list) ++ free((char *) fds); ++#endif ++#endif ++ + return (result); + } +diff -Naur ncurses-5.9/ncurses/tty/lib_vidattr.c ncurses-5.9.patch/ncurses/tty/lib_vidattr.c +--- ncurses-5.9/ncurses/tty/lib_vidattr.c 2010-06-06 00:22:04.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/tty/lib_vidattr.c 2014-09-01 16:33:22.457792290 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -69,27 +69,27 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_vidattr.c,v 1.61 2010/06/05 22:22:04 tom Exp $") ++MODULE_ID("$Id: lib_vidattr.c,v 1.68 2014/03/08 20:32:59 tom Exp $") + + #define doPut(mode) \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc) + +-#define TurnOn(mask,mode) \ ++#define TurnOn(mask, mode) \ + if ((turn_on & mask) && mode) { doPut(mode); } + +-#define TurnOff(mask,mode) \ ++#define TurnOff(mask, mode) \ + if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; } + + /* if there is no current screen, assume we *can* do color */ +-#define SetColorsIf(why,old_attr) \ ++#define SetColorsIf(why, old_attr) \ + if (can_color && (why)) { \ + int old_pair = PairNumber(old_attr); \ + TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \ + if ((pair != old_pair) \ + || (fix_pair0 && (pair == 0)) \ + || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \ +- NCURSES_SP_NAME(_nc_do_color)(NCURSES_SP_ARGx \ ++ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx \ + (short) old_pair, \ + (short) pair, \ + reverse, outc); \ +@@ -139,6 +139,9 @@ + A_BOLD, + A_INVIS, + A_PROTECT, ++#if USE_ITALIC ++ A_ITALIC, ++#endif + }; + unsigned n; + int used = 0; +@@ -229,6 +232,11 @@ + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } ++#if USE_ITALIC ++ if (!SP_PARM || SP_PARM->_use_ritm) { ++ TurnOff(A_ITALIC, exit_italics_mode); ++ } ++#endif + } + PreviousAttr &= ALL_BUT_COLOR; + } +@@ -251,6 +259,15 @@ + 1, outc); + PreviousAttr &= ALL_BUT_COLOR; + } ++#if USE_ITALIC ++ if (!SP_PARM || SP_PARM->_use_ritm) { ++ if (turn_on & A_ITALIC) { ++ TurnOn(A_ITALIC, enter_italics_mode); ++ } else if (turn_off & A_ITALIC) { ++ TurnOff(A_ITALIC, exit_italics_mode); ++ } ++ } ++#endif + SetColorsIf((pair != 0) || fix_pair0, PreviousAttr); + } else { + +@@ -265,7 +282,11 @@ + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } +- ++#if USE_ITALIC ++ if (!SP_PARM || SP_PARM->_use_ritm) { ++ TurnOff(A_ITALIC, exit_italics_mode); ++ } ++#endif + if (turn_off && exit_attribute_mode) { + doPut(exit_attribute_mode); + turn_on |= (newmode & ALL_BUT_COLOR); +@@ -284,6 +305,9 @@ + TurnOn(A_PROTECT, enter_protected_mode); + TurnOn(A_INVIS, enter_secure_mode); + TurnOn(A_UNDERLINE, enter_underline_mode); ++#if USE_ITALIC ++ TurnOn(A_ITALIC, enter_italics_mode); ++#endif + #if USE_WIDEC_SUPPORT + TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode); + TurnOn(A_LEFT, enter_left_hl_mode); +@@ -324,7 +348,7 @@ + T((T_CALLED("vidattr(%p,%s)"), (void *) SP_PARM, _traceattr(newmode))); + returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx + newmode, +- NCURSES_SP_NAME(_nc_outch))); ++ NCURSES_SP_NAME(_nc_putchar))); + } + + #if NCURSES_SP_FUNCS +@@ -341,42 +365,49 @@ + chtype attrs = A_NORMAL; + + T((T_CALLED("termattrs(%p)"), (void *) SP_PARM)); ++ ++ if (HasTerminal(SP_PARM)) { + #ifdef USE_TERM_DRIVER +- if (HasTerminal(SP_PARM)) +- attrs = CallDriver(SP_PARM, conattr); +-#else ++ attrs = CallDriver(SP_PARM, td_conattr); ++#else /* ! USE_TERM_DRIVER */ + +- if (enter_alt_charset_mode) +- attrs |= A_ALTCHARSET; ++ if (enter_alt_charset_mode) ++ attrs |= A_ALTCHARSET; + +- if (enter_blink_mode) +- attrs |= A_BLINK; ++ if (enter_blink_mode) ++ attrs |= A_BLINK; + +- if (enter_bold_mode) +- attrs |= A_BOLD; ++ if (enter_bold_mode) ++ attrs |= A_BOLD; + +- if (enter_dim_mode) +- attrs |= A_DIM; ++ if (enter_dim_mode) ++ attrs |= A_DIM; + +- if (enter_reverse_mode) +- attrs |= A_REVERSE; ++ if (enter_reverse_mode) ++ attrs |= A_REVERSE; + +- if (enter_standout_mode) +- attrs |= A_STANDOUT; ++ if (enter_standout_mode) ++ attrs |= A_STANDOUT; + +- if (enter_protected_mode) +- attrs |= A_PROTECT; ++ if (enter_protected_mode) ++ attrs |= A_PROTECT; + +- if (enter_secure_mode) +- attrs |= A_INVIS; ++ if (enter_secure_mode) ++ attrs |= A_INVIS; + +- if (enter_underline_mode) +- attrs |= A_UNDERLINE; ++ if (enter_underline_mode) ++ attrs |= A_UNDERLINE; + +- if (SP_PARM->_coloron) +- attrs |= A_COLOR; ++ if (SP_PARM->_coloron) ++ attrs |= A_COLOR; + ++#if USE_ITALIC ++ if (enter_italics_mode) ++ attrs |= A_ITALIC; + #endif ++ ++#endif /* USE_TERM_DRIVER */ ++ } + returnChtype(attrs); + } + +diff -Naur ncurses-5.9/ncurses/tty/tty_display.h ncurses-5.9.patch/ncurses/tty/tty_display.h +--- ncurses-5.9/ncurses/tty/tty_display.h 2005-01-02 00:41:12.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tty/tty_display.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,140 +0,0 @@ +-/**************************************************************************** +- * Copyright (c) 1998-2003,2004 Free 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. * +- ************************************************************************** */ +- +-#ifndef TTY_DISPLAY_H +-#define TTY_DISPLAY_H 1 +- +-/* +- * $Id: tty_display.h,v 1.6 2005/01/01 23:41:12 tom Exp $ +- */ +-extern NCURSES_EXPORT(bool) _nc_tty_beep (void); +-extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void); +-extern NCURSES_EXPORT(bool) _nc_tty_cursor (int); +-extern NCURSES_EXPORT(bool) _nc_tty_flash (void); +-extern NCURSES_EXPORT(bool) _nc_tty_init_color (int,int,int,int); +-extern NCURSES_EXPORT(bool) _nc_tty_init_pair (int,int,int); +-extern NCURSES_EXPORT(bool) _nc_tty_slk_hide (bool); +-extern NCURSES_EXPORT(bool) _nc_tty_slk_update (int,const char *); +-extern NCURSES_EXPORT(bool) _nc_tty_start_color (void); +-extern NCURSES_EXPORT(void) _nc_tty_display_resume (void); +-extern NCURSES_EXPORT(void) _nc_tty_display_suspend (void); +-extern NCURSES_EXPORT(void) _nc_tty_dispose (void); /* frees SP->_term */ +-extern NCURSES_EXPORT(void) _nc_tty_switch_to (void); +-extern NCURSES_EXPORT(void) _nc_tty_update (void); +- +-struct tty_display_data { +- int _fifohold; /* set if breakout marked */ +- unsigned long _current_attr; /* terminal attribute current set */ +- int _cursrow; /* physical cursor row (-1=unknown) */ +- int _curscol; /* physical cursor column */ +- +- /* cursor movement costs; units are 10ths of milliseconds */ +- int _char_padding; /* cost of character put */ +- int _cr_cost; /* cost of (carriage_return) */ +- int _cup_cost; /* cost of (cursor_address) */ +- int _home_cost; /* cost of (cursor_home) */ +- int _ll_cost; /* cost of (cursor_to_ll) */ +-#if USE_HARD_TABS +- int _ht_cost; /* cost of (tab) */ +- int _cbt_cost; /* cost of (backtab) */ +-#endif /* USE_HARD_TABS */ +- int _cub1_cost; /* cost of (cursor_left) */ +- int _cuf1_cost; /* cost of (cursor_right) */ +- int _cud1_cost; /* cost of (cursor_down) */ +- int _cuu1_cost; /* cost of (cursor_up) */ +- int _cub_cost; /* cost of (parm_cursor_left) */ +- int _cuf_cost; /* cost of (parm_cursor_right) */ +- int _cud_cost; /* cost of (parm_cursor_down) */ +- int _cuu_cost; /* cost of (parm_cursor_up) */ +- int _hpa_cost; /* cost of (column_address) */ +- int _vpa_cost; /* cost of (row_address) */ +- /* used in lib_doupdate.c, must be chars */ +- int _ed_cost; /* cost of (clr_eos) */ +- int _el_cost; /* cost of (clr_eol) */ +- int _el1_cost; /* cost of (clr_bol) */ +- int _dch1_cost; /* cost of (delete_character) */ +- int _ich1_cost; /* cost of (insert_character) */ +- int _dch_cost; /* cost of (parm_dch) */ +- int _ich_cost; /* cost of (parm_ich) */ +- int _ech_cost; /* cost of (erase_chars) */ +- int _rep_cost; /* cost of (repeat_char) */ +- int _hpa_ch_cost; /* cost of (column_address) */ +- int _cup_ch_cost; /* cost of (cursor_address) */ +- int _smir_cost; /* cost of (enter_insert_mode) */ +- int _rmir_cost; /* cost of (exit_insert_mode) */ +- int _ip_cost; /* cost of (insert_padding) */ +- /* used in lib_mvcur.c */ +- char * _address_cursor; +- int _carriage_return_length; +- int _cursor_home_length; +- int _cursor_to_ll_length; +- +- chtype _xmc_suppress; /* attributes to suppress if xmc */ +- chtype _xmc_triggers; /* attributes to process if xmc */ +- +- bool _sig_winch; +-}; +- +- +-#define DelCharCost(count) \ +- ((parm_dch != 0) \ +- ? D->_dch_cost \ +- : ((delete_character != 0) \ +- ? (D->_dch1_cost * count) \ +- : INFINITY)) +- +-#define InsCharCost(count) \ +- ((parm_ich != 0) \ +- ? D->_ich_cost \ +- : ((enter_insert_mode && exit_insert_mode) \ +- ? D->_smir_cost + D->_rmir_cost + (D->_ip_cost * count) \ +- : ((insert_character != 0) \ +- ? ((D->_ich1_cost + D->_ip_cost) * count) \ +- : INFINITY))) +- +-#if USE_XMC_SUPPORT +-#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) { \ +- attr_t chg = D->_current_attr; \ +- vidattr(AttrOf(c)); \ +- if (magic_cookie_glitch > 0 \ +- && XMC_CHANGES((chg ^ D->_current_attr))) { \ +- T(("%s @%d before glitch %d,%d", \ +- __FILE__, __LINE__, \ +- D->_cursrow, \ +- D->_curscol)); \ +- _nc_do_xmc_glitch(chg); \ +- } \ +- } +-#else +-#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) \ +- vidattr(AttrOf(c)); +-#endif +- +-#define XMC_CHANGES(c) ((c) & D->_xmc_suppress) +- +-#endif /* TTY_DISPLAY_H */ +diff -Naur ncurses-5.9/ncurses/tty/tty_input.h ncurses-5.9.patch/ncurses/tty/tty_input.h +--- ncurses-5.9/ncurses/tty/tty_input.h 2000-12-10 03:26:51.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tty/tty_input.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,61 +0,0 @@ +-/**************************************************************************** +- * Copyright (c) 1998,2000 Free 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: tty_input.h,v 1.2 2000/12/10 02:26:51 tom Exp $ +- */ +- +-#ifndef TTY_INPUT_H +-#define TTY_INPUT_H 1 +- +-extern NCURSES_EXPORT(bool) _nc_tty_mouse_mask (mmask_t); +-extern NCURSES_EXPORT(bool) _nc_tty_pending (void); +-extern NCURSES_EXPORT(int) _nc_tty_next_event (int); +-extern NCURSES_EXPORT(void) _nc_tty_flags_changed (void); +-extern NCURSES_EXPORT(void) _nc_tty_flush (void); +-extern NCURSES_EXPORT(void) _nc_tty_input_resume (void); +-extern NCURSES_EXPORT(void) _nc_tty_input_suspend (void); +- +-struct tty_input_data { +- int _ifd; /* input file ptr for screen */ +- int _keypad_xmit; /* current terminal state */ +- int _meta_on; /* current terminal state */ +- +- /* +- * These are the data that support the mouse interface. +- */ +- bool (*_mouse_event) (SCREEN *); +- bool (*_mouse_inline)(SCREEN *); +- bool (*_mouse_parse) (int); +- void (*_mouse_resume)(SCREEN *); +- void (*_mouse_wrap) (SCREEN *); +- int _mouse_fd; /* file-descriptor, if any */ +- int mousetype; +-}; +- +-#endif /* TTY_INPUT_H */ +diff -Naur ncurses-5.9/ncurses/tty/tty_update.c ncurses-5.9.patch/ncurses/tty/tty_update.c +--- ncurses-5.9/ncurses/tty/tty_update.c 2010-12-19 02:21:02.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/tty/tty_update.c 2014-09-01 16:33:22.457792290 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -82,7 +82,7 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: tty_update.c,v 1.264 2010/12/19 01:21:02 tom Exp $") ++MODULE_ID("$Id: tty_update.c,v 1.277 2014/02/01 22:09:27 tom Exp $") + + /* + * This define controls the line-breakout optimization. Every once in a +@@ -145,8 +145,7 @@ + + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + memset(buf, '\0', sizeof(buf)); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx "\033[6n"); /* only works on ANSI-compatibles */ +- NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); ++ NCURSES_PUTP2_FLUSH("cpr", "\033[6n"); /* only works on ANSI-compatibles */ + *(s = buf) = 0; + do { + int ask = sizeof(buf) - 1 - (s - buf); +@@ -209,7 +208,9 @@ + { + int chlen = 1; + NCURSES_CH_T my_ch; ++#if USE_WIDEC_SUPPORT + PUTC_DATA; ++#endif + NCURSES_CH_T tilde; + NCURSES_CH_T attr = CHDEREF(ch); + +@@ -276,6 +277,11 @@ + && SP_PARM->_screen_acs_map[CharOf(my_ch)]) { + RemAttr(attr, A_ALTCHARSET); + my_ch = _nc_wacs[CharOf(my_ch)]; ++ } else if (SP_PARM->_screen_unicode ++ && !SP_PARM->_screen_acs_map[CharOf(my_ch)] ++ && _nc_wacs[CharOf(my_ch)].chars[0]) { ++ RemAttr(attr, A_ALTCHARSET); ++ my_ch = _nc_wacs[CharOf(my_ch)]; + } + #endif + /* +@@ -288,13 +294,12 @@ + int j = CharOfD(ch); + chtype temp = UChar(SP_PARM->_acs_map[j]); + +- if (!(SP_PARM->_screen_acs_map[j])) { ++ if (temp != 0) { ++ SetChar(my_ch, temp, AttrOf(attr)); ++ } else { ++ my_ch = CHDEREF(ch); + RemAttr(attr, A_ALTCHARSET); +- if (temp == 0) +- temp = ' '; + } +- if (temp != 0) +- SetChar(my_ch, temp, AttrOf(attr)); + } + ch = CHREF(my_ch); + } +@@ -304,22 +309,13 @@ + } + + UpdateAttrs(SP_PARM, attr); ++ PUTC(CHDEREF(ch)); + #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_PARM->_outch != 0) { +- SP_PARM->_outch(NCURSES_SP_ARGx UChar(ch)); +- } else ++ COUNT_OUTCHARS(1); + #endif +- { +- PUTC(CHDEREF(ch), SP_PARM->_ofp); /* macro's fastest... */ +- COUNT_OUTCHARS(1); +- } + SP_PARM->_curscol += chlen; + if (char_padding) { +- TPUTS_TRACE("char_padding"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx char_padding); ++ NCURSES_PUTP2("char_padding", char_padding); + } + } + +@@ -342,7 +338,7 @@ + struct pollfd fds[1]; + fds[0].fd = SP_PARM->_checkfd; + fds[0].events = POLLIN; +- if (poll(fds, 1, 0) > 0) { ++ if (poll(fds, (size_t) 1, 0) > 0) { + have_pending = TRUE; + } + #elif defined(__BEOS__) +@@ -390,8 +386,7 @@ + PutAttrChar(NCURSES_SP_ARGx ch); + } else if (enter_am_mode && exit_am_mode) { + /* we can suppress automargin */ +- TPUTS_TRACE("exit_am_mode"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_am_mode); ++ NCURSES_PUTP2("exit_am_mode", exit_am_mode); + + PutAttrChar(NCURSES_SP_ARGx ch); + SP_PARM->_curscol--; +@@ -400,8 +395,7 @@ + SP_PARM->_curscol, + "exit_am_mode"); + +- TPUTS_TRACE("enter_am_mode"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_am_mode); ++ NCURSES_PUTP2("enter_am_mode", enter_am_mode); + } else if ((enter_insert_mode && exit_insert_mode) + || insert_character || parm_ich) { + GoTo(NCURSES_SP_ARGx +@@ -496,12 +490,13 @@ + if (SP_PARM->_default_fg != C_MASK || SP_PARM->_default_bg != C_MASK) + return FALSE; + if ((pair = GetPair(CHDEREF(ch))) != 0) { +- short fg, bg; +- NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx +- (short) pair, +- &fg, &bg); +- if (fg != C_MASK || bg != C_MASK) ++ NCURSES_COLOR_T fg, bg; ++ if (NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx ++ (short) pair, ++ &fg, &bg) == ERR ++ || (fg != C_MASK || bg != C_MASK)) { + return FALSE; ++ } + } + #else + if (AttrOfD(ch) & A_COLOR) +@@ -563,8 +558,7 @@ + && 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)); ++ NCURSES_PUTP2("erase_chars", TPARM_1(erase_chars, runcount)); + + /* + * If this is the last part of the given interval, +@@ -677,6 +671,9 @@ + + T((T_CALLED("_nc_tinfo:doupdate(%p)"), (void *) SP_PARM)); + ++ if (SP_PARM == 0) ++ returnCode(ERR); ++ + #if !USE_REENTRANT + /* + * It is "legal" but unlikely that an application could assign a new +@@ -1076,32 +1073,29 @@ + */ + + static void +-ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, bool needclear) ++ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, int needclear) + { + int j; + +- if (SP_PARM != 0) { +- if (CurScreen(SP_PARM) != 0 +- && SP_PARM->_cursrow >= 0) { +- for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) { +- if (j >= 0) { +- NCURSES_CH_T *cp = +- &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]); +- +- if (!CharEq(*cp, blank)) { +- *cp = blank; +- needclear = TRUE; +- } ++ if (CurScreen(SP_PARM) != 0 ++ && SP_PARM->_cursrow >= 0) { ++ for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) { ++ if (j >= 0) { ++ NCURSES_CH_T *cp = ++ &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]); ++ ++ if (!CharEq(*cp, blank)) { ++ *cp = blank; ++ needclear = TRUE; + } + } + } + } + +- if (needclear && (SP_PARM != 0)) { ++ if (needclear) { + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("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); ++ NCURSES_PUTP2("clr_eol", clr_eol); + } else { + int count = (screen_columns(SP_PARM) - SP_PARM->_curscol); + while (count-- > 0) +@@ -1121,12 +1115,14 @@ + { + int row, col; + +- if (0 == SP_PARM) +- return; +- + row = SP_PARM->_cursrow; + col = SP_PARM->_curscol; + ++ if (row < 0) ++ row = 0; ++ if (col < 0) ++ col = 0; ++ + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("clr_eos"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx +@@ -1370,13 +1366,11 @@ + && SP_PARM->_el_cost <= SP_PARM->_el1_cost) { + GoTo(NCURSES_SP_ARGx lineno, 0); + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("clr_eol"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol); ++ NCURSES_PUTP2("clr_eol", clr_eol); + } else { + GoTo(NCURSES_SP_ARGx lineno, nFirstChar - 1); + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("clr_bol"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_bol); ++ NCURSES_PUTP2("clr_bol", clr_bol); + } + + while (firstChar < nFirstChar) +@@ -1574,8 +1568,7 @@ + if (fast_clear) { + if (clear_screen) { + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("clear_screen"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clear_screen); ++ NCURSES_PUTP2("clear_screen", clear_screen); + SP_PARM->_cursrow = SP_PARM->_curscol = 0; + position_check(SP_PARM, + SP_PARM->_cursrow, +@@ -1595,8 +1588,7 @@ + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < screen_lines(SP_PARM); i++) { + GoTo(NCURSES_SP_ARGx i, 0); +- TPUTS_TRACE("clr_eol"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol); ++ NCURSES_PUTP2("clr_eol", clr_eol); + } + GoTo(NCURSES_SP_ARGx 0, 0); + } +@@ -1647,27 +1639,22 @@ + count--; + } + } else if (enter_insert_mode && exit_insert_mode) { +- TPUTS_TRACE("enter_insert_mode"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_insert_mode); ++ NCURSES_PUTP2("enter_insert_mode", enter_insert_mode); + while (count) { + PutAttrChar(NCURSES_SP_ARGx CHREF(*line)); + if (insert_padding) { +- TPUTS_TRACE("insert_padding"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding); ++ NCURSES_PUTP2("insert_padding", insert_padding); + } + line++; + count--; + } +- TPUTS_TRACE("exit_insert_mode"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode); ++ NCURSES_PUTP2("exit_insert_mode", exit_insert_mode); + } else { + while (count) { +- TPUTS_TRACE("insert_character"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_character); ++ NCURSES_PUTP2("insert_character", insert_character); + PutAttrChar(NCURSES_SP_ARGx CHREF(*line)); + if (insert_padding) { +- TPUTS_TRACE("insert_padding"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding); ++ NCURSES_PUTP2("insert_padding", insert_padding); + } + line++; + count--; +@@ -1701,8 +1688,7 @@ + NCURSES_SP_NAME(_nc_outch)); + } else { + for (n = 0; n < count; n++) { +- TPUTS_TRACE("delete_character"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_character); ++ NCURSES_PUTP2("delete_character", delete_character); + } + } + } +@@ -1754,13 +1740,11 @@ + if (n == 1 && scroll_forward && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx bot, 0); + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("scroll_forward"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward); ++ NCURSES_PUTP2("scroll_forward", scroll_forward); + } else if (n == 1 && delete_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("delete_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line); ++ NCURSES_PUTP2("delete_line", delete_line); + } else if (parm_index && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx bot, 0); + UpdateAttrs(SP_PARM, blank); +@@ -1781,15 +1765,13 @@ + GoTo(NCURSES_SP_ARGx bot, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { +- TPUTS_TRACE("scroll_forward"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward); ++ NCURSES_PUTP2("scroll_forward", scroll_forward); + } + } else if (delete_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { +- TPUTS_TRACE("delete_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line); ++ NCURSES_PUTP2("delete_line", delete_line); + } + } else + return ERR; +@@ -1823,13 +1805,11 @@ + if (n == 1 && scroll_reverse && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("scroll_reverse"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse); ++ NCURSES_PUTP2("scroll_reverse", scroll_reverse); + } else if (n == 1 && insert_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); +- TPUTS_TRACE("insert_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line); ++ NCURSES_PUTP2("insert_line", insert_line); + } else if (parm_rindex && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); +@@ -1850,15 +1830,13 @@ + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { +- TPUTS_TRACE("scroll_reverse"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse); ++ NCURSES_PUTP2("scroll_reverse", scroll_reverse); + } + } else if (insert_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { +- TPUTS_TRACE("insert_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line); ++ NCURSES_PUTP2("insert_line", insert_line); + } + } else + return ERR; +@@ -1889,8 +1867,7 @@ + GoTo(NCURSES_SP_ARGx del, 0); + UpdateAttrs(SP_PARM, blank); + if (n == 1 && delete_line) { +- TPUTS_TRACE("delete_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line); ++ NCURSES_PUTP2("delete_line", delete_line); + } else if (parm_delete_line) { + TPUTS_TRACE("parm_delete_line"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx +@@ -1899,16 +1876,14 @@ + NCURSES_SP_NAME(_nc_outch)); + } else { /* if (delete_line) */ + for (i = 0; i < n; i++) { +- TPUTS_TRACE("delete_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line); ++ NCURSES_PUTP2("delete_line", delete_line); + } + } + + GoTo(NCURSES_SP_ARGx ins, 0); + UpdateAttrs(SP_PARM, blank); + if (n == 1 && insert_line) { +- TPUTS_TRACE("insert_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line); ++ NCURSES_PUTP2("insert_line", insert_line); + } else if (parm_insert_line) { + TPUTS_TRACE("parm_insert_line"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx +@@ -1917,8 +1892,7 @@ + NCURSES_SP_NAME(_nc_outch)); + } else { /* if (insert_line) */ + for (i = 0; i < n; i++) { +- TPUTS_TRACE("insert_line"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line); ++ NCURSES_PUTP2("insert_line", insert_line); + } + } + +@@ -1975,24 +1949,20 @@ + && (SP_PARM->_cursrow == bot || SP_PARM->_cursrow == bot - 1)) + && save_cursor && restore_cursor) { + cursor_saved = TRUE; +- TPUTS_TRACE("save_cursor"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor); ++ NCURSES_PUTP2("save_cursor", save_cursor); + } +- TPUTS_TRACE("change_scroll_region"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx +- TPARM_2(change_scroll_region, top, bot)); ++ NCURSES_PUTP2("change_scroll_region", ++ TPARM_2(change_scroll_region, top, bot)); + if (cursor_saved) { +- TPUTS_TRACE("restore_cursor"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor); ++ NCURSES_PUTP2("restore_cursor", restore_cursor); + } else { + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + + res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, top, bot, blank); + +- TPUTS_TRACE("change_scroll_region"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx +- TPARM_2(change_scroll_region, 0, maxy)); ++ NCURSES_PUTP2("change_scroll_region", ++ TPARM_2(change_scroll_region, 0, maxy)); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + +@@ -2025,15 +1995,12 @@ + SP_PARM->_cursrow == top - 1) + && save_cursor && restore_cursor) { + cursor_saved = TRUE; +- TPUTS_TRACE("save_cursor"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor); ++ NCURSES_PUTP2("save_cursor", save_cursor); + } +- TPUTS_TRACE("change_scroll_region"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx +- TPARM_2(change_scroll_region, top, bot)); ++ NCURSES_PUTP2("change_scroll_region", ++ TPARM_2(change_scroll_region, top, bot)); + if (cursor_saved) { +- TPUTS_TRACE("restore_cursor"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor); ++ NCURSES_PUTP2("restore_cursor", restore_cursor); + } else { + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } +@@ -2041,9 +2008,8 @@ + res = scroll_csr_backward(NCURSES_SP_ARGx + -n, top, bot, top, bot, blank); + +- TPUTS_TRACE("change_scroll_region"); +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx +- TPARM_2(change_scroll_region, 0, maxy)); ++ NCURSES_PUTP2("change_scroll_region", ++ TPARM_2(change_scroll_region, 0, maxy)); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + +@@ -2114,23 +2080,25 @@ + } + + if (exit_attribute_mode) +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_attribute_mode); ++ NCURSES_PUTP2("exit_attribute_mode", exit_attribute_mode); + else { + /* turn off attributes */ + if (exit_alt_charset_mode) +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_alt_charset_mode); ++ NCURSES_PUTP2("exit_alt_charset_mode", exit_alt_charset_mode); + if (exit_standout_mode) +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_standout_mode); ++ NCURSES_PUTP2("exit_standout_mode", exit_standout_mode); + if (exit_underline_mode) +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_underline_mode); ++ NCURSES_PUTP2("exit_underline_mode", exit_underline_mode); + } + if (exit_insert_mode) +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode); +- if (enter_am_mode && exit_am_mode) +- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx +- (auto_right_margin +- ? enter_am_mode +- : exit_am_mode)); ++ NCURSES_PUTP2("exit_insert_mode", exit_insert_mode); ++ if (enter_am_mode && exit_am_mode) { ++ if (auto_right_margin) { ++ NCURSES_PUTP2("enter_am_mode", enter_am_mode); ++ } else { ++ NCURSES_PUTP2("exit_am_mode", exit_am_mode); ++ } ++ } + } + + #if NCURSES_SP_FUNCS +@@ -2159,33 +2127,33 @@ + NCURSES_EXPORT(void) + NCURSES_SP_NAME(_nc_screen_wrap) (NCURSES_SP_DCL0) + { +- if (SP_PARM == 0) +- return; ++ if (SP_PARM != 0) { + +- UpdateAttrs(SP_PARM, normal); ++ UpdateAttrs(SP_PARM, normal); + #if NCURSES_EXT_FUNCS +- if (SP_PARM->_coloron +- && !SP_PARM->_default_color) { +- static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); +- 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; +- +- TINFO_MVCUR(NCURSES_SP_ARGx +- SP_PARM->_cursrow, +- SP_PARM->_curscol, +- screen_lines(SP_PARM) - 1, +- 0); ++ if (SP_PARM->_coloron ++ && !SP_PARM->_default_color) { ++ static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); ++ 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; ++ ++ TINFO_MVCUR(NCURSES_SP_ARGx ++ SP_PARM->_cursrow, ++ SP_PARM->_curscol, ++ screen_lines(SP_PARM) - 1, ++ 0); + +- ClrToEOL(NCURSES_SP_ARGx blank, TRUE); +- } ++ ClrToEOL(NCURSES_SP_ARGx blank, TRUE); ++ } + #endif +- if (SP_PARM->_color_defs) { +- NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG); ++ if (SP_PARM->_color_defs) { ++ NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG); ++ } + } + } + +diff -Naur ncurses-5.9/ncurses/wcwidth.h ncurses-5.9.patch/ncurses/wcwidth.h +--- ncurses-5.9/ncurses/wcwidth.h 2010-08-07 20:28:09.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/wcwidth.h 2014-09-01 16:33:22.457792290 +0200 +@@ -192,15 +192,18 @@ + (ucs <= 0x115f || /* Hangul Jamo init. consonants */ + ucs == 0x2329 || ucs == 0x232a || + (ucs >= 0x2e80 && ucs <= 0xa4cf && +- ucs != 0x303f) || /* CJK ... Yi */ +- (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */ +- (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */ +- (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */ +- (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ +- (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */ +- (ucs >= 0xffe0 && ucs <= 0xffe6) || +- (ucs >= 0x20000 && ucs <= 0x2fffd) || +- (ucs >= 0x30000 && ucs <= 0x3fffd))); ++ ucs != 0x303f) /* CJK ... Yi */ ++ || (ucs >= 0xac00 && ucs <= 0xd7a3) /* Hangul Syllables */ ++ || (ucs >= 0xf900 && ucs <= 0xfaff) /* CJK Compatibility Ideographs */ ++ || (ucs >= 0xfe10 && ucs <= 0xfe19) /* Vertical forms */ ++ || (ucs >= 0xfe30 && ucs <= 0xfe6f) /* CJK Compatibility Forms */ ++ || (ucs >= 0xff00 && ucs <= 0xff60) /* Fullwidth Forms */ ++ || (ucs >= 0xffe0 && ucs <= 0xffe6) ++#if !defined(SIZEOF_WCHAR_T) || (SIZEOF_WCHAR_T >= 4) ++ || (ucs >= 0x20000 && ucs <= 0x2fffd) ++ || (ucs >= 0x30000 && ucs <= 0x3fffd) ++#endif ++ )); + } + + +diff -Naur ncurses-5.9/ncurses/widechar/lib_box_set.c ncurses-5.9.patch/ncurses/widechar/lib_box_set.c +--- ncurses-5.9/ncurses/widechar/lib_box_set.c 2009-10-25 00:36:56.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/widechar/lib_box_set.c 2014-09-01 16:33:22.457792290 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2003,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_box_set.c,v 1.5 2009/10/24 22:36:56 tom Exp $") ++MODULE_ID("$Id: lib_box_set.c,v 1.6 2011/06/25 19:02:07 Vassili.Courzakis Exp $") + + NCURSES_EXPORT(int) + wborder_set(WINDOW *win, +@@ -52,7 +52,7 @@ + NCURSES_SIZE_T endx, endy; + NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr; + +- T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), ++ T((T_CALLED("wborder_set(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), + (void *) win, + _tracech_t2(1, ls), + _tracech_t2(2, rs), +diff -Naur ncurses-5.9/ncurses/widechar/lib_cchar.c ncurses-5.9.patch/ncurses/widechar/lib_cchar.c +--- ncurses-5.9/ncurses/widechar/lib_cchar.c 2010-12-26 00:46:26.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/lib_cchar.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -35,7 +35,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_cchar.c,v 1.20 2010/12/25 23:46:26 tom Exp $") ++MODULE_ID("$Id: lib_cchar.c,v 1.27 2014/02/01 22:10:42 tom Exp $") + + /* + * The SuSv2 description leaves some room for interpretation. We'll assume wch +@@ -47,7 +47,7 @@ + setcchar(cchar_t *wcval, + const wchar_t *wch, + const attr_t attrs, +- short color_pair, ++ NCURSES_PAIRS_T color_pair, + const void *opts) + { + unsigned i; +@@ -56,11 +56,11 @@ + + TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%lu,%d,%p)"), + (void *) wcval, _nc_viswbuf(wch), +- (unsigned long) attrs, color_pair, opts)); ++ (unsigned long) attrs, (int) color_pair, opts)); + +- len = (unsigned) wcslen(wch); + if (opts != NULL +- || (len > 1 && wcwidth(wch[0]) < 0)) { ++ || wch == NULL ++ || ((len = (unsigned) wcslen(wch)) > 1 && wcwidth(wch[0]) < 0)) { + code = ERR; + } else { + if (len > CCHARW_MAX) +@@ -80,7 +80,7 @@ + memset(wcval, 0, sizeof(*wcval)); + + if (len != 0) { +- SetAttr(*wcval, attrs | (attr_t) ColorPair(color_pair)); ++ SetAttr(*wcval, attrs); + SetPair(CHDEREF(wcval), color_pair); + memcpy(&wcval->chars, wch, len * sizeof(wchar_t)); + TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len, +@@ -96,7 +96,7 @@ + getcchar(const cchar_t *wcval, + wchar_t *wch, + attr_t *attrs, +- short *color_pair, ++ NCURSES_PAIRS_T *color_pair, + void *opts) + { + wchar_t *wp; +@@ -110,8 +110,8 @@ + (void *) color_pair, + opts)); + +- if (opts == NULL) { +- len = ((wp = wmemchr(wcval->chars, L'\0', CCHARW_MAX)) ++ if (opts == NULL && wcval != NULL) { ++ len = ((wp = wmemchr(wcval->chars, L'\0', (size_t) CCHARW_MAX)) + ? (int) (wp - wcval->chars) + : CCHARW_MAX); + +@@ -125,8 +125,8 @@ + code = ERR; + } else if (len >= 0) { + *attrs = AttrOf(*wcval) & A_ATTRIBUTES; +- *color_pair = (short) GetPair(*wcval); +- wmemcpy(wch, wcval->chars, (unsigned) len); ++ *color_pair = (NCURSES_PAIRS_T) GetPair(*wcval); ++ wmemcpy(wch, wcval->chars, (size_t) len); + wch[len] = L'\0'; + code = OK; + } +diff -Naur ncurses-5.9/ncurses/widechar/lib_erasewchar.c ncurses-5.9.patch/ncurses/widechar/lib_erasewchar.c +--- ncurses-5.9/ncurses/widechar/lib_erasewchar.c 2010-07-24 13:35:12.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/widechar/lib_erasewchar.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -32,7 +32,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_erasewchar.c,v 1.2 2010/07/24 11:35:12 tom Exp $") ++MODULE_ID("$Id: lib_erasewchar.c,v 1.3 2014/02/23 01:21:08 tom Exp $") + + /* + * erasewchar() +@@ -49,7 +49,7 @@ + + T((T_CALLED("erasewchar()"))); + if ((value = erasechar()) != ERR) { +- *wch = value; ++ *wch = (wchar_t) value; + result = OK; + } + returnCode(result); +@@ -70,7 +70,7 @@ + + T((T_CALLED("killwchar()"))); + if ((value = killchar()) != ERR) { +- *wch = value; ++ *wch = (wchar_t) value; + result = OK; + } + returnCode(result); +diff -Naur ncurses-5.9/ncurses/widechar/lib_get_wch.c ncurses-5.9.patch/ncurses/widechar/lib_get_wch.c +--- ncurses-5.9/ncurses/widechar/lib_get_wch.c 2010-08-28 23:00:35.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/widechar/lib_get_wch.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -40,7 +40,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_get_wch.c,v 1.22 2010/08/28 21:00:35 tom Exp $") ++MODULE_ID("$Id: lib_get_wch.c,v 1.23 2011/05/28 23:00:29 tom Exp $") + + NCURSES_EXPORT(int) + wget_wch(WINDOW *win, wint_t *result) +@@ -106,7 +106,10 @@ + } else { + code = ERR; + } +- *result = (wint_t) value; ++ ++ if (result != 0) ++ *result = (wint_t) value; ++ + _nc_unlock_global(curses); + T(("result %#o", value)); + returnCode(code); +diff -Naur ncurses-5.9/ncurses/widechar/lib_get_wstr.c ncurses-5.9.patch/ncurses/widechar/lib_get_wstr.c +--- ncurses-5.9/ncurses/widechar/lib_get_wstr.c 2009-10-25 00:38:11.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/widechar/lib_get_wstr.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_get_wstr.c,v 1.12 2009/10/24 22:38:11 tom Exp $") ++MODULE_ID("$Id: lib_get_wstr.c,v 1.13 2011/10/22 16:31:35 tom Exp $") + + static int + wadd_wint(WINDOW *win, wint_t *src) +@@ -49,7 +49,7 @@ + + wch[0] = (wchar_t) (*src); + wch[1] = 0; +- setcchar(&tmp, wch, A_NORMAL, 0, NULL); ++ setcchar(&tmp, wch, A_NORMAL, (short) 0, NULL); + return wadd_wch(win, &tmp); + } + +@@ -58,7 +58,7 @@ + * or other character, and handles reverse wraparound. + */ + static wint_t * +-WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed) ++WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, int echoed) + { + if (last > first) { + *--last = '\0'; +diff -Naur ncurses-5.9/ncurses/widechar/lib_ins_wch.c ncurses-5.9.patch/ncurses/widechar/lib_ins_wch.c +--- ncurses-5.9/ncurses/widechar/lib_ins_wch.c 2010-12-19 02:34:04.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/lib_ins_wch.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_ins_wch.c,v 1.16 2010/12/19 01:34:04 tom Exp $") ++MODULE_ID("$Id: lib_ins_wch.c,v 1.17 2011/10/22 16:34:50 tom Exp $") + + /* + * Insert the given character, updating the current location to simplify +@@ -132,7 +132,7 @@ + (void) setcchar(&tmp_cchar, + &tmp_wchar, + WA_NORMAL, +- 0, ++ (short) 0, + (void *) 0); + code = _nc_insert_wch(win, &tmp_cchar); + } else { +diff -Naur ncurses-5.9/ncurses/widechar/lib_inwstr.c ncurses-5.9.patch/ncurses/widechar/lib_inwstr.c +--- ncurses-5.9/ncurses/widechar/lib_inwstr.c 2009-10-25 00:37:29.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/widechar/lib_inwstr.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2004,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_inwstr.c,v 1.5 2009/10/24 22:37:29 tom Exp $") ++MODULE_ID("$Id: lib_inwstr.c,v 1.6 2011/05/28 22:49:49 tom Exp $") + + NCURSES_EXPORT(int) + winnwstr(WINDOW *win, wchar_t *wstr, int n) +@@ -93,8 +93,13 @@ + winwstr(WINDOW *win, wchar_t *wstr) + { + int result = OK; ++ + T((T_CALLED("winwstr(%p,%p)"), (void *) win, (void *) wstr)); +- if (winnwstr(win, wstr, CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) ++ if (win == 0) { ++ result = ERR; ++ } else if (winnwstr(win, wstr, ++ CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) { + result = ERR; ++ } + returnCode(result); + } +diff -Naur ncurses-5.9/ncurses/widechar/lib_slk_wset.c ncurses-5.9.patch/ncurses/widechar/lib_slk_wset.c +--- ncurses-5.9/ncurses/widechar/lib_slk_wset.c 2005-01-16 02:03:53.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/lib_slk_wset.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. * ++ * Copyright (c) 2003-2002,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -40,7 +40,7 @@ + #include <wctype.h> + #endif + +-MODULE_ID("$Id: lib_slk_wset.c,v 1.11 2005/01/16 01:03:53 tom Exp $") ++MODULE_ID("$Id: lib_slk_wset.c,v 1.13 2011/10/22 15:52:20 tom Exp $") + + NCURSES_EXPORT(int) + slk_wset(int i, const wchar_t *astr, int format) +@@ -53,19 +53,21 @@ + + T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format)); + +- init_mb(state); +- str = astr; +- if ((arglen = wcsrtombs(NULL, &str, 0, &state)) != (size_t) -1) { +- if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) { +- str = astr; +- if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) { +- /* glibc documentation claims that the terminating L'\0' +- * is written, but it is not... +- */ +- mystr[arglen] = 0; +- result = slk_set(i, mystr, format); ++ if (astr != 0) { ++ init_mb(state); ++ str = astr; ++ if ((arglen = wcsrtombs(NULL, &str, (size_t) 0, &state)) != (size_t) -1) { ++ if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) { ++ str = astr; ++ if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) { ++ /* glibc documentation claims that the terminating L'\0' ++ * is written, but it is not... ++ */ ++ mystr[arglen] = 0; ++ result = slk_set(i, mystr, format); ++ } ++ free(mystr); + } +- free(mystr); + } + } + returnCode(result); +diff -Naur ncurses-5.9/ncurses/widechar/lib_unget_wch.c ncurses-5.9.patch/ncurses/widechar/lib_unget_wch.c +--- ncurses-5.9/ncurses/widechar/lib_unget_wch.c 2010-07-24 13:35:21.000000000 +0200 ++++ ncurses-5.9.patch/ncurses/widechar/lib_unget_wch.c 2014-09-01 16:33:22.458792292 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_unget_wch.c,v 1.14 2010/07/24 11:35:21 tom Exp $") ++MODULE_ID("$Id: lib_unget_wch.c,v 1.15 2011/10/22 16:34:50 tom Exp $") + + /* + * Wrapper for wcrtomb() which obtains the length needed for the given +@@ -55,7 +55,7 @@ + const wchar_t *tempp = temp; + temp[0] = source; + temp[1] = 0; +- result = (int) wcsrtombs(NULL, &tempp, 0, state); ++ result = (int) wcsrtombs(NULL, &tempp, (size_t) 0, state); + } else { + result = (int) wcrtomb(target, source, state); + } +diff -Naur ncurses-5.9/ncurses/widechar/lib_vid_attr.c ncurses-5.9.patch/ncurses/widechar/lib_vid_attr.c +--- ncurses-5.9/ncurses/widechar/lib_vid_attr.c 2010-12-19 02:44:24.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/lib_vid_attr.c 2014-09-01 16:33:22.459792294 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2013,2014 Free 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,14 +36,16 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_vid_attr.c,v 1.14 2010/12/19 01:44:24 tom Exp $") ++MODULE_ID("$Id: lib_vid_attr.c,v 1.22 2014/02/01 22:09:27 tom Exp $") + +-#define doPut(mode) TPUTS_TRACE(#mode); NCURSES_SP_NAME(tputs)(NCURSES_SP_ARGx mode, 1, outc) ++#define doPut(mode) \ ++ TPUTS_TRACE(#mode); \ ++ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc) + +-#define TurnOn(mask,mode) \ ++#define TurnOn(mask, mode) \ + if ((turn_on & mask) && mode) { doPut(mode); } + +-#define TurnOff(mask,mode) \ ++#define TurnOff(mask, mode) \ + if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; } + + /* if there is no current screen, assume we *can* do color */ +@@ -66,7 +68,7 @@ + NCURSES_EXPORT(int) + NCURSES_SP_NAME(vid_puts) (NCURSES_SP_DCLx + attr_t newmode, +- short pair, ++ NCURSES_PAIRS_T pair, + void *opts GCC_UNUSED, + NCURSES_SP_OUTC outc) + { +@@ -120,7 +122,7 @@ + * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS + * macro so this will work properly for the wide-character layout. + */ +- unsigned value = no_color_video; ++ unsigned value = (unsigned) no_color_video; + attr_t mask = NCURSES_BITS((value & 63) + | ((value & 192) << 1) + | ((value & 256) >> 2), 8); +@@ -161,6 +163,11 @@ + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } ++#if USE_ITALIC ++ if (!SP_PARM || SP_PARM->_use_ritm) { ++ TurnOff(A_ITALIC, exit_italics_mode); ++ } ++#endif + } + previous_attr &= ALL_BUT_COLOR; + previous_pair = 0; +@@ -185,6 +192,15 @@ + previous_attr &= ALL_BUT_COLOR; + previous_pair = 0; + } ++#if USE_ITALIC ++ if (!SP_PARM || SP_PARM->_use_ritm) { ++ if (turn_on & A_ITALIC) { ++ TurnOn(A_ITALIC, enter_italics_mode); ++ } else if (turn_off & A_ITALIC) { ++ TurnOff(A_ITALIC, exit_italics_mode); ++ } ++ } ++#endif + SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair); + } else { + +@@ -199,7 +215,11 @@ + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } +- ++#if USE_ITALIC ++ if (!SP_PARM || SP_PARM->_use_ritm) { ++ TurnOff(A_ITALIC, exit_italics_mode); ++ } ++#endif + if (turn_off && exit_attribute_mode) { + doPut(exit_attribute_mode); + turn_on |= (newmode & ALL_BUT_COLOR); +@@ -219,6 +239,9 @@ + TurnOn(A_PROTECT, enter_protected_mode); + TurnOn(A_INVIS, enter_secure_mode); + TurnOn(A_UNDERLINE, enter_underline_mode); ++#if USE_ITALIC ++ TurnOn(A_ITALIC, enter_italics_mode); ++#endif + #if USE_WIDEC_SUPPORT + TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode); + TurnOn(A_LEFT, enter_left_hl_mode); +@@ -244,7 +267,7 @@ + + returnCode(OK); + #else +- T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair)); ++ T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), (int) pair)); + set_color(newmode, pair); + returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx newmode, outc)); + #endif +@@ -253,7 +276,7 @@ + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) + vid_puts(attr_t newmode, +- short pair, ++ NCURSES_PAIRS_T pair, + void *opts GCC_UNUSED, + NCURSES_OUTC outc) + { +@@ -270,20 +293,20 @@ + NCURSES_EXPORT(int) + NCURSES_SP_NAME(vid_attr) (NCURSES_SP_DCLx + attr_t newmode, +- short pair, ++ NCURSES_PAIRS_T pair, + void *opts) + { +- T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair)); ++ T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), (int) pair)); + returnCode(NCURSES_SP_NAME(vid_puts) (NCURSES_SP_ARGx + newmode, + pair, + opts, +- NCURSES_SP_NAME(_nc_outch))); ++ NCURSES_SP_NAME(_nc_putchar))); + } + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(int) +-vid_attr(attr_t newmode, short pair, void *opts) ++vid_attr(attr_t newmode, NCURSES_PAIRS_T pair, void *opts) + { + return NCURSES_SP_NAME(vid_attr) (CURRENT_SCREEN, newmode, pair, opts); + } +@@ -296,24 +319,26 @@ + NCURSES_EXPORT(attr_t) + NCURSES_SP_NAME(term_attrs) (NCURSES_SP_DCL0) + { +- attr_t attrs; ++ attr_t attrs = 0; + + T((T_CALLED("term_attrs()"))); +- attrs = SP_PARM ? NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG) : 0; ++ if (SP_PARM) { ++ attrs = NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG); + +- /* these are only supported for wide-character mode */ +- if (enter_horizontal_hl_mode) +- attrs |= WA_HORIZONTAL; +- if (enter_left_hl_mode) +- attrs |= WA_LEFT; +- if (enter_low_hl_mode) +- attrs |= WA_LOW; +- if (enter_right_hl_mode) +- attrs |= WA_RIGHT; +- if (enter_top_hl_mode) +- attrs |= WA_TOP; +- if (enter_vertical_hl_mode) +- attrs |= WA_VERTICAL; ++ /* these are only supported for wide-character mode */ ++ if (enter_horizontal_hl_mode) ++ attrs |= WA_HORIZONTAL; ++ if (enter_left_hl_mode) ++ attrs |= WA_LEFT; ++ if (enter_low_hl_mode) ++ attrs |= WA_LOW; ++ if (enter_right_hl_mode) ++ attrs |= WA_RIGHT; ++ if (enter_top_hl_mode) ++ attrs |= WA_TOP; ++ if (enter_vertical_hl_mode) ++ attrs |= WA_VERTICAL; ++ } + + returnAttr(attrs); + } +diff -Naur ncurses-5.9/ncurses/widechar/lib_wacs.c ncurses-5.9.patch/ncurses/widechar/lib_wacs.c +--- ncurses-5.9/ncurses/widechar/lib_wacs.c 2010-12-19 02:43:19.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/lib_wacs.c 2014-09-01 16:33:22.459792294 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -32,7 +32,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_wacs.c,v 1.10 2010/12/19 01:43:19 tom Exp $") ++MODULE_ID("$Id: lib_wacs.c,v 1.14 2014/02/23 01:21:08 tom Exp $") + + NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0; + +@@ -119,22 +119,24 @@ + T(("initializing WIDE-ACS map (Unicode is%s active)", + active ? "" : " not")); + +- _nc_wacs = typeCalloc(cchar_t, ACS_LEN); +- for (n = 0; n < SIZEOF(table); ++n) { +- int wide = wcwidth(table[n].value[active]); +- +- m = table[n].map; +- if (active && (wide == 1)) { +- SetChar(_nc_wacs[m], table[n].value[active], A_NORMAL); +- } else if (acs_map[m] & A_ALTCHARSET) { +- SetChar(_nc_wacs[m], m, A_ALTCHARSET); +- } else { +- SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL); +- } ++ if ((_nc_wacs = typeCalloc(cchar_t, ACS_LEN)) != 0) { ++ ++ for (n = 0; n < SIZEOF(table); ++n) { ++ int wide = wcwidth((wchar_t) table[n].value[active]); + +- T(("#%d, SetChar(%c, %#04x) = %s", +- n, m, +- table[n].value[active], +- _tracecchar_t(&_nc_wacs[m]))); ++ m = table[n].map; ++ if (active && (wide == 1)) { ++ SetChar(_nc_wacs[m], table[n].value[1], A_NORMAL); ++ } else if (acs_map[m] & A_ALTCHARSET) { ++ SetChar(_nc_wacs[m], m, A_ALTCHARSET); ++ } else { ++ SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL); ++ } ++ ++ T(("#%d, SetChar(%c, %#04x) = %s", ++ n, m, ++ table[n].value[active], ++ _tracecchar_t(&_nc_wacs[m]))); ++ } + } + } +diff -Naur ncurses-5.9/ncurses/widechar/lib_wunctrl.c ncurses-5.9.patch/ncurses/widechar/lib_wunctrl.c +--- ncurses-5.9/ncurses/widechar/lib_wunctrl.c 2010-12-19 02:42:15.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/lib_wunctrl.c 2014-09-01 16:33:22.459792294 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2001-2011,2012 Free 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,14 +35,17 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_wunctrl.c,v 1.14 2010/12/19 01:42:15 tom Exp $") ++MODULE_ID("$Id: lib_wunctrl.c,v 1.16 2012/12/15 20:53:42 tom Exp $") + + NCURSES_EXPORT(wchar_t *) + NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc) + { + static wchar_t str[CCHARW_MAX + 1], *wsp; ++ wchar_t *result; + +- if (Charable(*wc)) { ++ if (wc == 0) { ++ result = 0; ++ } else if (SP_PARM != 0 && Charable(*wc)) { + const char *p = + NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx + (unsigned) _nc_to_char((wint_t)CharOf(*wc))); +@@ -51,9 +54,11 @@ + *wsp++ = (wchar_t) _nc_to_widechar(*p); + } + *wsp = 0; +- return str; +- } else +- return wc->chars; ++ result = str; ++ } else { ++ result = wc->chars; ++ } ++ return result; + } + + #if NCURSES_SP_FUNCS +diff -Naur ncurses-5.9/ncurses/widechar/widechars.c ncurses-5.9.patch/ncurses/widechar/widechars.c +--- ncurses-5.9/ncurses/widechar/widechars.c 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/widechar/widechars.c 2014-09-01 16:33:22.518792397 +0200 +@@ -0,0 +1,152 @@ ++/**************************************************************************** ++ * Copyright (c) 2012,2013 Free 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. * ++ ****************************************************************************/ ++ ++#include <curses.priv.h> ++ ++#if USE_WIDEC_SUPPORT ++ ++MODULE_ID("$Id: widechars.c,v 1.5 2013/03/02 18:55:51 tom Exp $") ++ ++#if defined(__MINGW32__) ++/* ++ * MinGW has wide-character functions, but they do not work correctly. ++ */ ++ ++int ++_nc_mbtowc(wchar_t *pwc, const char *s, size_t n) ++{ ++ int result; ++ int count; ++ int try; ++ ++ if (s != 0 && n != 0) { ++ /* ++ * MultiByteToWideChar() can decide to return more than one ++ * wide-character. We want only one. Ignore any trailing null, both ++ * in the initial count and in the conversion. ++ */ ++ count = 0; ++ for (try = 1; try <= (int) n; ++try) { ++ count = MultiByteToWideChar(CP_UTF8, ++ MB_ERR_INVALID_CHARS, ++ s, ++ try, ++ pwc, ++ 0); ++ TR(TRACE_BITS, ("...try %d:%d", try, count)); ++ if (count > 0) { ++ break; ++ } ++ } ++ if (count < 1 || count > 2) { ++ result = -1; ++ } else { ++ wchar_t actual[2]; ++ memset(&actual, 0, sizeof(actual)); ++ count = MultiByteToWideChar(CP_UTF8, ++ MB_ERR_INVALID_CHARS, ++ s, ++ try, ++ actual, ++ 2); ++ TR(TRACE_BITS, ("\twin32 ->%#x, %#x", actual[0], actual[1])); ++ *pwc = actual[0]; ++ if (actual[1] != 0) ++ result = -1; ++ else ++ result = try; ++ } ++ } else { ++ result = 0; ++ } ++ ++ return result; ++} ++ ++int ++_nc_mblen(const char *s, size_t n) ++{ ++ int result = -1; ++ int count; ++ wchar_t temp; ++ ++ if (s != 0 && n != 0) { ++ count = _nc_mbtowc(&temp, s, n); ++ if (count == 1) { ++ int check = WideCharToMultiByte(CP_UTF8, ++ 0, ++ &temp, ++ 1, ++ NULL, ++ 0, /* compute length only */ ++ NULL, ++ NULL); ++ TR(TRACE_BITS, ("\tcheck ->%d\n", check)); ++ if (check > 0 && (size_t) check <= n) { ++ result = check; ++ } ++ } ++ } else { ++ result = 0; ++ } ++ ++ return result; ++} ++ ++int __MINGW_NOTHROW ++_nc_wctomb(char *s, wchar_t wc) ++{ ++ int result; ++ int check; ++ ++ check = WideCharToMultiByte(CP_UTF8, ++ 0, ++ &wc, ++ 1, ++ NULL, ++ 0, /* compute length only */ ++ NULL, ++ NULL); ++ if (check > 0) { ++ result = WideCharToMultiByte(CP_UTF8, ++ 0, ++ &wc, ++ 1, ++ s, ++ check + 1, ++ NULL, ++ NULL); ++ } else { ++ result = -1; ++ } ++ return result; ++} ++ ++#endif /* __MINGW32__ */ ++ ++#endif /* USE_WIDEC_SUPPORT */ +diff -Naur ncurses-5.9/ncurses/win32con/win_driver.c ncurses-5.9.patch/ncurses/win32con/win_driver.c +--- ncurses-5.9/ncurses/win32con/win_driver.c 2010-12-25 20:28:21.000000000 +0100 ++++ ncurses-5.9.patch/ncurses/win32con/win_driver.c 2014-09-01 16:33:22.518792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 * +- * * ++ * and: Thomas E. Dickey * + ****************************************************************************/ + + /* +@@ -39,15 +39,21 @@ + #include <curses.priv.h> + #define CUR my_term.type. + +-MODULE_ID("$Id: win_driver.c,v 1.10 2010/12/25 19:28:21 tom Exp $") ++MODULE_ID("$Id: win_driver.c,v 1.28 2014/03/08 21:44:53 tom Exp $") + + #define WINMAGIC NCDRV_MAGIC(NCDRV_WINCONSOLE) + +-#define AssertTCB() assert(TCB!=0 && TCB->magic==WINMAGIC) +-#define SetSP() assert(TCB->csp!=0); sp = TCB->csp ++#define EXP_OPTIMIZE 0 ++ ++#define okConsoleHandle(TCB) (TCB != 0 && !InvalidConsoleHandle(TCB->hdl)) ++ ++#define AssertTCB() assert(TCB != 0 && (TCB->magic == WINMAGIC)) ++#define SetSP() assert(TCB->csp != 0); sp = TCB->csp; (void) sp + + #define GenMap(vKey,key) MAKELONG(key, vKey) + ++#define AdjustY(p) ((p)->buffered ? 0 : (int) (p)->SBI.srWindow.Top) ++ + static const LONG keylist[] = + { + GenMap(VK_PRIOR, KEY_PPAGE), +@@ -69,9 +75,14 @@ + typedef struct props { + CONSOLE_SCREEN_BUFFER_INFO SBI; + bool progMode; ++ TERM_HANDLE lastOut; + DWORD map[MAPSIZE]; + DWORD rmap[MAPSIZE]; + WORD pairs[NUMPAIRS]; ++ bool buffered; /* normally allocate console-buffer */ ++ bool window_only; /* ..if not, we save buffer or window-only */ ++ COORD origin; ++ CHAR_INFO *save_screen; + } Properties; + + #define PropOf(TCB) ((Properties*)TCB->prop) +@@ -103,7 +114,7 @@ + } + + static WORD +-MapAttr(TERMINAL_CONTROL_BLOCK * TCB, WORD res, chtype ch) ++MapAttr(TERMINAL_CONTROL_BLOCK * TCB, WORD res, attr_t ch) + { + if (ch & A_COLOR) { + int p; +@@ -115,16 +126,22 @@ + if (p > 0 && p < NUMPAIRS && TCB != 0 && sp != 0) { + WORD a; + a = PropOf(TCB)->pairs[p]; +- res = (res & 0xff00) | a; ++ res = (WORD) ((res & 0xff00) | a); + } + } + +- if (ch & A_REVERSE) +- res = ((res & 0xff00) | (((res & 0x07) << 4) | ((res & 0x70) >> 4))); ++ if (ch & A_REVERSE) { ++ res = (WORD) ((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_STANDOUT) { ++ res = (WORD) ((res & 0xff00) | ++ (((res & 0x07) << 4) | ++ ((res & 0x70) >> 4)) | ++ BACKGROUND_INTENSITY); ++ } + + if (ch & A_BOLD) + res |= FOREGROUND_INTENSITY; +@@ -135,8 +152,69 @@ + return res; + } + ++#if USE_WIDEC_SUPPORT ++/* ++ * TODO: support surrogate pairs ++ * TODO: support combining characters ++ * TODO: support acsc ++ * TODO: check wcwidth of base character, fill if needed for double-width ++ * TODO: _nc_wacs should be part of sp. ++ */ + static BOOL +-con_write(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n) ++con_write16(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, cchar_t *str, int limit) ++{ ++ int actual = 0; ++ CHAR_INFO ci[limit]; ++ COORD loc, siz; ++ SMALL_RECT rec; ++ int i; ++ cchar_t ch; ++ SCREEN *sp; ++ Properties *p = PropOf(TCB); ++ ++ AssertTCB(); ++ ++ SetSP(); ++ ++ for (i = actual = 0; i < limit; i++) { ++ ch = str[i]; ++ if (isWidecExt(ch)) ++ continue; ++ ci[actual].Char.UnicodeChar = CharOf(ch); ++ ci[actual].Attributes = MapAttr(TCB, ++ PropOf(TCB)->SBI.wAttributes, ++ AttrOf(ch)); ++ if (AttrOf(ch) & A_ALTCHARSET) { ++ if (_nc_wacs) { ++ int which = CharOf(ch); ++ if (which > 0 ++ && which < ACS_LEN ++ && CharOf(_nc_wacs[which]) != 0) { ++ ci[actual].Char.UnicodeChar = CharOf(_nc_wacs[which]); ++ } else { ++ ci[actual].Char.UnicodeChar = ' '; ++ } ++ } ++ } ++ ++actual; ++ } ++ ++ loc.X = (short) 0; ++ loc.Y = (short) 0; ++ siz.X = (short) actual; ++ siz.Y = 1; ++ ++ rec.Left = (short) x; ++ rec.Top = (SHORT) (y + AdjustY(p)); ++ rec.Right = (short) (x + limit - 1); ++ rec.Bottom = rec.Top; ++ ++ return WriteConsoleOutputW(TCB->hdl, ci, siz, loc, &rec); ++} ++#define con_write(tcb, y, x, str, n) con_write16(tcb, y, x, str, n) ++#else ++static BOOL ++con_write8(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n) + { + CHAR_INFO ci[n]; + COORD loc, siz; +@@ -147,9 +225,6 @@ + + AssertTCB(); + +- if (TCB == 0 || InvalidConsoleHandle(TCB->hdl)) +- return FALSE; +- + SetSP(); + + for (i = 0; i < n; i++) { +@@ -161,7 +236,7 @@ + if (ChAttrOf(ch) & A_ALTCHARSET) { + if (sp->_acs_map) + ci[i].Char.AsciiChar = +- ChCharOf(NCURSES_SP_NAME(_nc_acs_char) (sp, ChCharOf(ch))); ++ ChCharOf(NCURSES_SP_NAME(_nc_acs_char) (sp, ChCharOf(ch))); + } + } + +@@ -177,55 +252,199 @@ + + return WriteConsoleOutput(TCB->hdl, ci, siz, loc, &rec); + } ++#define con_write(tcb, y, x, str, n) con_write8(tcb, y, x, str, n) ++#endif ++ ++#if EXP_OPTIMIZE ++/* ++ * Comparing new/current screens, determine the last column-index for a change ++ * beginning on the given row,col position. Unlike a serial terminal, there is ++ * no cost for "moving" the "cursor" on the line as we update it. ++ */ ++static int ++find_end_of_change(SCREEN *sp, int row, int col) ++{ ++ int result = col; ++ struct ldat *curdat = CurScreen(sp)->_line + row; ++ struct ldat *newdat = NewScreen(sp)->_line + row; ++ ++ while (col <= newdat->lastchar) { ++#if USE_WIDEC_SUPPORT ++ if (isWidecExt(curdat->text[col]) || isWidecExt(newdat->text[col])) { ++ result = col; ++ } else if (memcmp(&curdat->text[col], ++ &newdat->text[col], ++ sizeof(curdat->text[0]))) { ++ result = col; ++ } else { ++ break; ++ } ++#else ++ if (curdat->text[col] != newdat->text[col]) { ++ result = col; ++ } else { ++ break; ++ } ++#endif ++ ++col; ++ } ++ return result; ++} ++ ++/* ++ * Given a row,col position at the end of a change-chunk, look for the ++ * beginning of the next change-chunk. ++ */ ++static int ++find_next_change(SCREEN *sp, int row, int col) ++{ ++ struct ldat *curdat = CurScreen(sp)->_line + row; ++ struct ldat *newdat = NewScreen(sp)->_line + row; ++ int result = newdat->lastchar + 1; ++ ++ while (++col <= newdat->lastchar) { ++#if USE_WIDEC_SUPPORT ++ if (isWidecExt(curdat->text[col]) != isWidecExt(newdat->text[col])) { ++ result = col; ++ break; ++ } else if (memcmp(&curdat->text[col], ++ &newdat->text[col], ++ sizeof(curdat->text[0]))) { ++ result = col; ++ break; ++ } ++#else ++ if (curdat->text[col] != newdat->text[col]) { ++ result = col; ++ break; ++ } ++#endif ++ } ++ return result; ++} ++ ++#define EndChange(first) \ ++ find_end_of_change(sp, y, first) ++#define NextChange(last) \ ++ find_next_change(sp, y, last) ++ ++#endif /* EXP_OPTIMIZE */ + + #define MARK_NOCHANGE(win,row) \ + win->_line[row].firstchar = _NOCHANGE; \ + win->_line[row].lastchar = _NOCHANGE + ++static void ++selectActiveHandle(TERMINAL_CONTROL_BLOCK * TCB) ++{ ++ if (PropOf(TCB)->lastOut != TCB->hdl) { ++ PropOf(TCB)->lastOut = TCB->hdl; ++ SetConsoleActiveScreenBuffer(PropOf(TCB)->lastOut); ++ } ++} ++ ++static bool ++restore_original_screen(TERMINAL_CONTROL_BLOCK * TCB) ++{ ++ COORD bufferCoord; ++ SMALL_RECT writeRegion; ++ Properties *p = PropOf(TCB); ++ bool result = FALSE; ++ ++ if (p->window_only) { ++ writeRegion.Top = p->SBI.srWindow.Top; ++ writeRegion.Left = p->SBI.srWindow.Left; ++ writeRegion.Bottom = p->SBI.srWindow.Bottom; ++ writeRegion.Right = p->SBI.srWindow.Right; ++ T(("... restoring window")); ++ } else { ++ writeRegion.Top = 0; ++ writeRegion.Left = 0; ++ writeRegion.Bottom = (SHORT) (p->SBI.dwSize.Y - 1); ++ writeRegion.Right = (SHORT) (p->SBI.dwSize.X - 1); ++ T(("... restoring entire buffer")); ++ } ++ ++ bufferCoord.X = bufferCoord.Y = 0; ++ ++ if (WriteConsoleOutput(TCB->hdl, ++ p->save_screen, ++ p->SBI.dwSize, ++ bufferCoord, ++ &writeRegion)) { ++ result = TRUE; ++ mvcur(-1, -1, LINES - 2, 0); ++ } ++ T(("... restore original screen contents %s", result ? "ok" : "err")); ++ return result; ++} ++ + static int + drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB) + { ++ int result = ERR; + int y, nonempty, n, x0, x1, Width, Height; + SCREEN *sp; + + AssertTCB(); + SetSP(); + +- Width = screen_columns(sp); +- Height = screen_lines(sp); +- nonempty = min(Height, NewScreen(sp)->_maxy + 1); +- +- if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) { +- int x; +- chtype empty[Width]; ++ T((T_CALLED("win32con::drv_doupdate(%p)"), TCB)); ++ if (okConsoleHandle(TCB)) { + +- for (x = 0; x < Width; x++) +- empty[x] = ' '; ++ Width = screen_columns(sp); ++ Height = screen_lines(sp); ++ nonempty = min(Height, NewScreen(sp)->_maxy + 1); ++ ++ if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) { ++ int x; ++#if USE_WIDEC_SUPPORT ++ cchar_t empty[Width]; ++ wchar_t blank[2] = ++ { ++ L' ', L'\0' ++ }; ++ ++ for (x = 0; x < Width; x++) ++ setcchar(&empty[x], blank, 0, 0, 0); ++#else ++ chtype empty[Width]; ++ ++ for (x = 0; x < Width; x++) ++ empty[x] = ' '; ++#endif ++ ++ for (y = 0; y < nonempty; y++) { ++ con_write(TCB, y, 0, empty, Width); ++ memcpy(empty, ++ CurScreen(sp)->_line[y].text, ++ (size_t) Width * sizeof(empty[0])); ++ } ++ CurScreen(sp)->_clear = FALSE; ++ NewScreen(sp)->_clear = FALSE; ++ touchwin(NewScreen(sp)); ++ } + + for (y = 0; y < nonempty; y++) { +- con_write(TCB, y, 0, empty, Width); +- memcpy(empty, +- CurScreen(sp)->_line[y].text, +- Width * sizeof(chtype)); +- } +- CurScreen(sp)->_clear = FALSE; +- NewScreen(sp)->_clear = FALSE; +- touchwin(NewScreen(sp)); +- } +- +- for (y = 0; y < nonempty; y++) { +- x0 = NewScreen(sp)->_line[y].firstchar; +- if (x0 != _NOCHANGE) { +- x1 = NewScreen(sp)->_line[y].lastchar; +- n = x1 - x0 + 1; +- if (n > 0) { +- memcpy(CurScreen(sp)->_line[y].text + x0, +- NewScreen(sp)->_line[y].text + x0, +- n * sizeof(chtype)); +- con_write(TCB, +- y, +- x0, +- ((chtype *) CurScreen(sp)->_line[y].text) + x0, n); ++ x0 = NewScreen(sp)->_line[y].firstchar; ++ if (x0 != _NOCHANGE) { ++#if EXP_OPTIMIZE ++ int x2; ++ int limit = NewScreen(sp)->_line[y].lastchar; ++ while ((x1 = EndChange(x0)) <= limit) { ++ while ((x2 = NextChange(x1)) <= limit && x2 <= (x1 + 2)) { ++ x1 = x2; ++ } ++ n = x1 - x0 + 1; ++ memcpy(&CurScreen(sp)->_line[y].text[x0], ++ &NewScreen(sp)->_line[y].text[x0], ++ n * sizeof(CurScreen(sp)->_line[y].text[x0])); ++ con_write(TCB, ++ y, ++ x0, ++ &CurScreen(sp)->_line[y].text[x0], n); ++ x0 = NextChange(x1); ++ } + + /* mark line changed successfully */ + if (y <= NewScreen(sp)->_maxy) { +@@ -234,26 +453,50 @@ + if (y <= CurScreen(sp)->_maxy) { + MARK_NOCHANGE(CurScreen(sp), y); + } ++#else ++ x1 = NewScreen(sp)->_line[y].lastchar; ++ n = x1 - x0 + 1; ++ if (n > 0) { ++ memcpy(&CurScreen(sp)->_line[y].text[x0], ++ &NewScreen(sp)->_line[y].text[x0], ++ (size_t) n * sizeof(CurScreen(sp)->_line[y].text[x0])); ++ con_write(TCB, ++ y, ++ x0, ++ &CurScreen(sp)->_line[y].text[x0], n); ++ ++ /* mark line changed successfully */ ++ if (y <= NewScreen(sp)->_maxy) { ++ MARK_NOCHANGE(NewScreen(sp), y); ++ } ++ if (y <= CurScreen(sp)->_maxy) { ++ MARK_NOCHANGE(CurScreen(sp), y); ++ } ++ } ++#endif + } + } +- } +- +- /* put everything back in sync */ +- for (y = nonempty; y <= NewScreen(sp)->_maxy; y++) { +- MARK_NOCHANGE(NewScreen(sp), y); +- } +- for (y = nonempty; y <= CurScreen(sp)->_maxy; y++) { +- MARK_NOCHANGE(CurScreen(sp), y); +- } + +- if (!NewScreen(sp)->_leaveok) { +- CurScreen(sp)->_curx = NewScreen(sp)->_curx; +- CurScreen(sp)->_cury = NewScreen(sp)->_cury; ++ /* put everything back in sync */ ++ for (y = nonempty; y <= NewScreen(sp)->_maxy; y++) { ++ MARK_NOCHANGE(NewScreen(sp), y); ++ } ++ for (y = nonempty; y <= CurScreen(sp)->_maxy; y++) { ++ MARK_NOCHANGE(CurScreen(sp), y); ++ } + +- TCB->drv->hwcur(TCB, 0, 0, CurScreen(sp)->_cury, CurScreen(sp)->_curx); ++ if (!NewScreen(sp)->_leaveok) { ++ CurScreen(sp)->_curx = NewScreen(sp)->_curx; ++ CurScreen(sp)->_cury = NewScreen(sp)->_cury; ++ ++ TCB->drv->td_hwcur(TCB, ++ 0, 0, ++ CurScreen(sp)->_cury, CurScreen(sp)->_curx); ++ } ++ selectActiveHandle(TCB); ++ result = OK; + } +- SetConsoleActiveScreenBuffer(TCB->hdl); +- return OK; ++ returnCode(result); + } + + static bool +@@ -269,14 +512,14 @@ + assert(tname != 0); + + TCB->magic = WINMAGIC; +- if (*tname == 0 || *tname == 0) { ++ if (*tname == 0 || *tname == 0 || *tname == '#') { + code = TRUE; + } else { + TERMINAL my_term; + int status; + + code = FALSE; +-#if (USE_DATABASE || USE_TERMCAP) ++#if (NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP) + status = _nc_setup_tinfo(tname, &my_term.type); + #else + status = TGETENT_NO; +@@ -299,7 +542,7 @@ + + if (code) { + if ((TCB->term.type.Booleans) == 0) { +- _nc_init_entry(&(TCB->term.type)); ++ _nc_init_termtype(&(TCB->term.type)); + } + } + +@@ -308,7 +551,7 @@ + + static int + drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, +- bool beepFlag GCC_UNUSED) ++ int beepFlag GCC_UNUSED) + { + SCREEN *sp; + int res = ERR; +@@ -346,19 +589,55 @@ + return (code); + } + ++static bool ++get_SBI(TERMINAL_CONTROL_BLOCK * TCB) ++{ ++ bool rc = FALSE; ++ Properties *p = PropOf(TCB); ++ if (GetConsoleScreenBufferInfo(TCB->hdl, &(p->SBI))) { ++ T(("GetConsoleScreenBufferInfo")); ++ T(("... buffer(X:%d Y:%d)", ++ p->SBI.dwSize.X, ++ p->SBI.dwSize.Y)); ++ T(("... window(X:%d Y:%d)", ++ p->SBI.dwMaximumWindowSize.X, ++ p->SBI.dwMaximumWindowSize.Y)); ++ T(("... cursor(X:%d Y:%d)", ++ p->SBI.dwCursorPosition.X, ++ p->SBI.dwCursorPosition.Y)); ++ T(("... display(Top:%d Bottom:%d Left:%d Right:%d)", ++ p->SBI.srWindow.Top, ++ p->SBI.srWindow.Bottom, ++ p->SBI.srWindow.Left, ++ p->SBI.srWindow.Right)); ++ if (p->buffered) { ++ p->origin.X = 0; ++ p->origin.Y = 0; ++ } else { ++ p->origin.X = p->SBI.srWindow.Left; ++ p->origin.Y = p->SBI.srWindow.Top; ++ } ++ rc = TRUE; ++ } else { ++ T(("GetConsoleScreenBufferInfo ERR")); ++ } ++ return rc; ++} ++ + static void + drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB, +- bool fore, ++ int fore, + int color, + int (*outc) (SCREEN *, int) GCC_UNUSED) + { + AssertTCB(); + +- if (TCB && !InvalidConsoleHandle(TCB->hdl)) { ++ if (okConsoleHandle(TCB) && ++ PropOf(TCB) != 0) { + WORD a = MapColor(fore, color); +- a = ((PropOf(TCB)->SBI.wAttributes) & (fore ? 0xfff8 : 0xff8f)) | a; ++ a |= (WORD) ((PropOf(TCB)->SBI.wAttributes) & (fore ? 0xfff8 : 0xff8f)); + SetConsoleTextAttribute(TCB->hdl, a); +- GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI)); ++ get_SBI(TCB); + } + } + +@@ -368,10 +647,10 @@ + bool res = FALSE; + + AssertTCB(); +- if (TCB && !InvalidConsoleHandle(TCB->hdl)) { ++ if (okConsoleHandle(TCB)) { + WORD a = FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN; + SetConsoleTextAttribute(TCB->hdl, a); +- GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI)); ++ get_SBI(TCB); + res = TRUE; + } + return res; +@@ -392,14 +671,28 @@ + static int + drv_size(TERMINAL_CONTROL_BLOCK * TCB, int *Lines, int *Cols) + { ++ int result = ERR; ++ + AssertTCB(); + +- if (TCB == NULL || Lines == NULL || Cols == NULL || InvalidConsoleHandle(TCB->hdl)) +- return ERR; ++ T((T_CALLED("win32con::drv_size(%p)"), TCB)); + +- *Lines = (int) (PropOf(TCB)->SBI.dwSize.Y); +- *Cols = (int) (PropOf(TCB)->SBI.dwSize.X); +- return OK; ++ if (okConsoleHandle(TCB) && ++ PropOf(TCB) != 0 && ++ Lines != NULL && ++ Cols != NULL) { ++ if (PropOf(TCB)->buffered) { ++ *Lines = (int) (PropOf(TCB)->SBI.dwSize.Y); ++ *Cols = (int) (PropOf(TCB)->SBI.dwSize.X); ++ } else { ++ *Lines = (int) (PropOf(TCB)->SBI.srWindow.Bottom + 1 - ++ PropOf(TCB)->SBI.srWindow.Top); ++ *Cols = (int) (PropOf(TCB)->SBI.srWindow.Right + 1 - ++ PropOf(TCB)->SBI.srWindow.Left); ++ } ++ result = OK; ++ } ++ returnCode(result); + } + + static int +@@ -412,7 +705,7 @@ + } + + static int +-drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf) ++drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, int setFlag, TTY * buf) + { + DWORD dwFlag = 0; + tcflag_t iflag; +@@ -432,17 +725,17 @@ + if (lflag & ICANON) + dwFlag |= ENABLE_LINE_INPUT; + else +- dwFlag &= ~ENABLE_LINE_INPUT; ++ dwFlag &= (DWORD) (~ENABLE_LINE_INPUT); + + if (lflag & ECHO) + dwFlag |= ENABLE_ECHO_INPUT; + else +- dwFlag &= ~ENABLE_ECHO_INPUT; ++ dwFlag &= (DWORD) (~ENABLE_ECHO_INPUT); + + if (iflag & BRKINT) + dwFlag |= ENABLE_PROCESSED_INPUT; + else +- dwFlag &= ~ENABLE_PROCESSED_INPUT; ++ dwFlag &= (DWORD) (~ENABLE_PROCESSED_INPUT); + + dwFlag |= ENABLE_MOUSE_INPUT; + +@@ -458,17 +751,17 @@ + if (dwFlag & ENABLE_LINE_INPUT) + lflag |= ICANON; + else +- lflag &= ~ICANON; ++ lflag &= (tcflag_t) (~ICANON); + + if (dwFlag & ENABLE_ECHO_INPUT) + lflag |= ECHO; + else +- lflag &= ~ECHO; ++ lflag &= (tcflag_t) (~ECHO); + + if (dwFlag & ENABLE_PROCESSED_INPUT) + iflag |= BRKINT; + else +- iflag &= ~BRKINT; ++ iflag &= (tcflag_t) (~BRKINT); + + TCB->term.Nttyb.c_iflag = iflag; + TCB->term.Nttyb.c_lflag = lflag; +@@ -479,7 +772,7 @@ + } + + static int +-drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag) ++drv_mode(TERMINAL_CONTROL_BLOCK * TCB, int progFlag, int defFlag) + { + SCREEN *sp; + TERMINAL *_term = (TERMINAL *) TCB; +@@ -488,13 +781,15 @@ + AssertTCB(); + sp = TCB->csp; + ++ T((T_CALLED("win32con::drv_mode(%p, prog=%d, def=%d)"), TCB, progFlag, defFlag)); + PropOf(TCB)->progMode = progFlag; +- SetConsoleActiveScreenBuffer(progFlag ? TCB->hdl : TCB->out); ++ PropOf(TCB)->lastOut = progFlag ? TCB->hdl : TCB->out; ++ SetConsoleActiveScreenBuffer(PropOf(TCB)->lastOut); + + if (progFlag) /* prog mode */ { + if (defFlag) { + if ((drv_sgmode(TCB, FALSE, &(_term->Nttyb)) == OK)) { +- _term->Nttyb.c_oflag &= ~OFLAGS_TABS; ++ _term->Nttyb.c_oflag &= (tcflag_t) (~OFLAGS_TABS); + code = OK; + } + } else { +@@ -503,7 +798,6 @@ + if (sp) { + if (sp->_keypad_on) + _nc_keypad(sp, TRUE); +- NC_BUFFERED(sp, TRUE); + } + code = OK; + } +@@ -519,9 +813,12 @@ + if (sp) { + _nc_keypad(sp, FALSE); + NCURSES_SP_NAME(_nc_flush) (sp); +- NC_BUFFERED(sp, FALSE); + } + code = drv_sgmode(TCB, TRUE, &(_term->Ottyb)); ++ if (!PropOf(TCB)->buffered) { ++ if (!restore_original_screen(TCB)) ++ code = ERR; ++ } + } + } + +@@ -593,6 +890,93 @@ + returnVoid; + } + ++/* ++ * Attempt to save the screen contents. PDCurses does this if ++ * PDC_RESTORE_SCREEN is set, giving the same visual appearance on restoration ++ * as if the library had allocated a console buffer. ++ */ ++static bool ++save_original_screen(TERMINAL_CONTROL_BLOCK * TCB) ++{ ++ bool result = FALSE; ++ Properties *p = PropOf(TCB); ++ COORD bufferSize; ++ COORD bufferCoord; ++ SMALL_RECT readRegion; ++ size_t want; ++ ++ bufferSize.X = p->SBI.dwSize.X; ++ bufferSize.Y = p->SBI.dwSize.Y; ++ want = (size_t) (bufferSize.X * bufferSize.Y); ++ ++ if ((p->save_screen = malloc(want * sizeof(CHAR_INFO))) != 0) { ++ bufferCoord.X = bufferCoord.Y = 0; ++ ++ readRegion.Top = 0; ++ readRegion.Left = 0; ++ readRegion.Bottom = (SHORT) (bufferSize.Y - 1); ++ readRegion.Right = (SHORT) (bufferSize.X - 1); ++ ++ T(("... reading console buffer %dx%d into %d,%d - %d,%d at %d,%d", ++ bufferSize.Y, bufferSize.X, ++ readRegion.Top, ++ readRegion.Left, ++ readRegion.Bottom, ++ readRegion.Right, ++ bufferCoord.Y, ++ bufferCoord.X)); ++ ++ if (ReadConsoleOutput(TCB->hdl, ++ p->save_screen, ++ bufferSize, ++ bufferCoord, ++ &readRegion)) { ++ result = TRUE; ++ } else { ++ T((" error %#lx", (unsigned long) GetLastError())); ++ FreeAndNull(p->save_screen); ++ ++ bufferSize.X = (SHORT) (p->SBI.srWindow.Right ++ - p->SBI.srWindow.Left + 1); ++ bufferSize.Y = (SHORT) (p->SBI.srWindow.Bottom ++ - p->SBI.srWindow.Top + 1); ++ want = (size_t) (bufferSize.X * bufferSize.Y); ++ ++ if ((p->save_screen = malloc(want * sizeof(CHAR_INFO))) != 0) { ++ bufferCoord.X = bufferCoord.Y = 0; ++ ++ readRegion.Top = p->SBI.srWindow.Top; ++ readRegion.Left = p->SBI.srWindow.Left; ++ readRegion.Bottom = p->SBI.srWindow.Bottom; ++ readRegion.Right = p->SBI.srWindow.Right; ++ ++ T(("... reading console window %dx%d into %d,%d - %d,%d at %d,%d", ++ bufferSize.Y, bufferSize.X, ++ readRegion.Top, ++ readRegion.Left, ++ readRegion.Bottom, ++ readRegion.Right, ++ bufferCoord.Y, ++ bufferCoord.X)); ++ ++ if (ReadConsoleOutput(TCB->hdl, ++ p->save_screen, ++ bufferSize, ++ bufferCoord, ++ &readRegion)) { ++ result = TRUE; ++ p->window_only = TRUE; ++ } else { ++ T((" error %#lx", (unsigned long) GetLastError())); ++ } ++ } ++ } ++ } ++ ++ T(("... save original screen contents %s", result ? "ok" : "err")); ++ return result; ++} ++ + static void + drv_init(TERMINAL_CONTROL_BLOCK * TCB) + { +@@ -606,6 +990,7 @@ + BOOL b = AllocConsole(); + WORD a; + int i; ++ bool buffered = TRUE; + + if (!b) + b = AttachConsole(ATTACH_PARENT_PROCESS); +@@ -613,18 +998,32 @@ + TCB->inp = GetStdHandle(STD_INPUT_HANDLE); + TCB->out = GetStdHandle(STD_OUTPUT_HANDLE); + +- if (getenv("NCGDB")) ++ if (getenv("NCGDB") || getenv("NCURSES_CONSOLE2")) { + TCB->hdl = TCB->out; +- else ++ buffered = FALSE; ++ } 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)); ++ if (InvalidConsoleHandle(TCB->hdl)) { ++ returnVoid; ++ } else if ((TCB->prop = typeCalloc(Properties, 1)) != 0) { ++ PropOf(TCB)->buffered = buffered; ++ PropOf(TCB)->window_only = FALSE; ++ if (!get_SBI(TCB)) { ++ FreeAndNull(TCB->prop); /* force error in drv_size */ ++ returnVoid; ++ } ++ if (!buffered) { ++ if (!save_original_screen(TCB)) { ++ FreeAndNull(TCB->prop); /* force error in drv_size */ ++ returnVoid; ++ } ++ } + } + + TCB->info.initcolor = TRUE; +@@ -642,7 +1041,7 @@ + + if (GetNumberOfConsoleMouseButtons(&num_buttons)) { + T(("mouse has %ld buttons", num_buttons)); +- TCB->info.numbuttons = num_buttons; ++ TCB->info.numbuttons = (int) num_buttons; + } else { + TCB->info.numbuttons = 1; + } +@@ -651,10 +1050,10 @@ + + for (i = 0; i < (N_INI + FKEYS); i++) { + if (i < N_INI) +- PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] = keylist[i]; ++ PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] = (DWORD) keylist[i]; + else + PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] = +- GenMap((VK_F1 + (i - N_INI)), (KEY_F(1) + (i - N_INI))); ++ (DWORD) GenMap((VK_F1 + (i - N_INI)), (KEY_F(1) + (i - N_INI))); + } + qsort(PropOf(TCB)->map, + (size_t) (MAPSIZE), +@@ -674,9 +1073,9 @@ + + static void + drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, +- short pair, +- short f, +- short b) ++ int pair, ++ int f, ++ int b) + { + SCREEN *sp; + +@@ -691,10 +1090,10 @@ + + static void + drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB, +- short color GCC_UNUSED, +- short r GCC_UNUSED, +- short g GCC_UNUSED, +- short b GCC_UNUSED) ++ int color GCC_UNUSED, ++ int r GCC_UNUSED, ++ int g GCC_UNUSED, ++ int b GCC_UNUSED) + { + SCREEN *sp; + +@@ -704,9 +1103,9 @@ + + static void + drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, +- short old_pair GCC_UNUSED, +- short pair GCC_UNUSED, +- bool reverse GCC_UNUSED, ++ int old_pair GCC_UNUSED, ++ int pair GCC_UNUSED, ++ int reverse GCC_UNUSED, + int (*outc) (SCREEN *, int) GCC_UNUSED + ) + { +@@ -739,11 +1138,11 @@ + if (sp->_drv_mouse_head < sp->_drv_mouse_tail) { + rc = TW_MOUSE; + } else { +- rc = TCBOf(sp)->drv->twait(TCBOf(sp), +- TWAIT_MASK, +- delay, +- (int *) 0 +- EVENTLIST_2nd(evl)); ++ rc = TCBOf(sp)->drv->td_twait(TCBOf(sp), ++ TWAIT_MASK, ++ delay, ++ (int *) 0 ++ EVENTLIST_2nd(evl)); + } + + return rc; +@@ -755,10 +1154,11 @@ + int y, int x) + { + int ret = ERR; +- if (TCB && !InvalidConsoleHandle(TCB->hdl)) { ++ if (okConsoleHandle(TCB)) { ++ Properties *p = PropOf(TCB); + COORD loc; + loc.X = (short) x; +- loc.Y = (short) y; ++ loc.Y = (short) (y + AdjustY(p)); + SetConsoleCursorPosition(TCB->hdl, loc); + ret = OK; + } +@@ -778,7 +1178,7 @@ + + static void + drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, +- bool OnFlag GCC_UNUSED) ++ int OnFlag GCC_UNUSED) + { + SCREEN *sp; + +@@ -844,7 +1244,7 @@ + SetSP(); + + for (n = 0; n < SIZEOF(table); ++n) { +- real_map[table[n].acs_code] = table[n].use_code | A_ALTCHARSET; ++ real_map[table[n].acs_code] = (chtype) table[n].use_code | A_ALTCHARSET; + if (sp != 0) + sp->_screen_acs_map[table[n].acs_code] = TRUE; + } +@@ -931,7 +1331,7 @@ + SCREEN *sp; + INPUT_RECORD inp_rec; + BOOL b; +- DWORD nRead = 0, rc = -1; ++ DWORD nRead = 0, rc = (DWORD) (-1); + int code = 0; + FILETIME fstart; + FILETIME fend; +@@ -953,7 +1353,7 @@ + + while (true) { + GetSystemTimeAsFileTime(&fstart); +- rc = WaitForSingleObject(TCB->inp, milliseconds); ++ rc = WaitForSingleObject(TCB->inp, (DWORD) milliseconds); + GetSystemTimeAsFileTime(&fend); + diff = (int) tdiff(fstart, fend); + milliseconds = Adjust(milliseconds, diff); +@@ -999,8 +1399,7 @@ + } + continue; + default: +- SetConsoleActiveScreenBuffer(!PropOf(TCB)->progMode ? +- TCB->hdl : TCB->out); ++ selectActiveHandle(TCB); + continue; + } + } +@@ -1046,23 +1445,26 @@ + * FIXME: implement continuous event-tracking. + */ + if (sp->_drv_mouse_new_buttons != sp->_drv_mouse_old_buttons) { ++ Properties *p = PropOf(TCB); + + memset(&work, 0, sizeof(work)); + + if (sp->_drv_mouse_new_buttons) { + +- work.bstate |= decode_mouse(TCB, sp->_drv_mouse_new_buttons); ++ work.bstate |= (mmask_t) decode_mouse(TCB, sp->_drv_mouse_new_buttons); + + } else { + + /* cf: BUTTON_PRESSED, BUTTON_RELEASED */ +- work.bstate |= (decode_mouse(TCB, sp->_drv_mouse_old_buttons) >> 1); ++ work.bstate |= (mmask_t) (decode_mouse(TCB, ++ sp->_drv_mouse_old_buttons) ++ >> 1); + + result = TRUE; + } + + work.x = mer.dwMousePosition.X; +- work.y = mer.dwMousePosition.Y; ++ work.y = mer.dwMousePosition.Y - AdjustY(p); + + sp->_drv_mouse_fifo[sp->_drv_mouse_tail] = work; + sp->_drv_mouse_tail += 1; +@@ -1080,7 +1482,6 @@ + BOOL b; + DWORD nRead; + WORD vk; +- WORD sc; + + AssertTCB(); + assert(buf); +@@ -1096,7 +1497,6 @@ + continue; + *buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar; + vk = inp_rec.Event.KeyEvent.wVirtualKeyCode; +- sc = inp_rec.Event.KeyEvent.wVirtualScanCode; + if (*buf == 0) { + if (sp->_keypad_on) { + *buf = MapKey(TCB, vk); +@@ -1124,8 +1524,9 @@ + static int + drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms) + { +- Sleep(ms); +- return OK; ++ T((T_CALLED("win32con::drv_nap(%p, %d)"), TCB, ms)); ++ Sleep((DWORD) ms); ++ returnCode(OK); + } + + static bool +@@ -1142,6 +1543,7 @@ + + AssertTCB(); + ++ T((T_CALLED("win32con::drv_kyExist(%p, %d)"), TCB, keycode)); + res = bsearch(&key, + PropOf(TCB)->rmap, + (size_t) (N_INI + FKEYS), +@@ -1153,11 +1555,11 @@ + if (!(nKey & 0x8000)) + found = TRUE; + } +- return found; ++ returnCode(found); + } + + static int +-drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag GCC_UNUSED) ++drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, int flag GCC_UNUSED) + { + SCREEN *sp; + int code = ERR; +@@ -1165,14 +1567,15 @@ + AssertTCB(); + sp = TCB->csp; + ++ T((T_CALLED("win32con::drv_kpad(%p, %d)"), TCB, flag)); + if (sp) { + code = OK; + } +- return code; ++ returnCode(code); + } + + static int +-drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int keycode, bool flag) ++drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int keycode, int flag) + { + int code = ERR; + SCREEN *sp; +@@ -1184,6 +1587,7 @@ + AssertTCB(); + SetSP(); + ++ T((T_CALLED("win32con::drv_keyok(%p, %d, %d)"), TCB, keycode, flag)); + if (sp) { + res = bsearch(&key, + PropOf(TCB)->rmap, +@@ -1199,7 +1603,7 @@ + *(LONG *) res = GenMap(vKey, nKey); + } + } +- return code; ++ returnCode(code); + } + + NCURSES_EXPORT_VAR (TERM_DRIVER) _nc_WIN_DRIVER = { +diff -Naur ncurses-5.9/NEWS ncurses-5.9.patch/NEWS +--- ncurses-5.9/NEWS 2011-04-04 02:02:42.000000000 +0200 ++++ ncurses-5.9.patch/NEWS 2014-09-01 16:34:19.474887043 +0200 +@@ -1,5 +1,5 @@ + ------------------------------------------------------------------------------- +--- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. -- ++-- Copyright (c) 1998-2013,2014 Free 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.1682 2011/04/04 00:02:42 tom Exp $ ++-- $Id: NEWS,v 1.2185 2014/03/23 21:01:15 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -45,6 +45,1389 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20140323 ++ + fix typo in "mlterm" entry (report by Gabriele Balducci) -TD ++ ++20140322 ++ + use types from <stdint.h> in sample build-scripts for chtype, etc. ++ + modify configure script and curses.h.in to allow the types specified ++ using --with-chtype and related options to be defined in <stdint.h> ++ + add terminology entry -TD ++ + add mlterm3 entry, use that as "mlterm" -TD ++ + inherit mlterm-256color from mlterm -TD ++ ++20140315 ++ + modify _nc_New_TopRow_and_CurrentItem() to ensure that the menu's ++ top-row is adjusted as needed to ensure that the current item is ++ on the screen (patch by Johann Klammer). ++ + add wgetdelay() to retrieve _delay member of WINDOW if it happens to ++ be opaque, e.g., in the pthread configuration (prompted by patch by ++ Soren Brinkmann). ++ ++20140308 ++ + modify ifdef in read_entry.c to handle the case where ++ NCURSES_USE_DATABASE is not defined (patch by Xin Li). ++ + add cast in form_driver_w() to fix ARM build (patch by Xin Li). ++ + add logic to win_driver.c to save/restore screen contents when not ++ allocating a console-buffer (cf: 20140215). ++ ++20140301 ++ + clarify error-returns from newwin (report by Ruslan Nabioullin). ++ ++20140222 ++ + fix some compiler warnings in win_driver.c ++ + updated notes for wsvt25 based on tack and vttest -TD ++ + add teken entry to show actual properties of FreeBSD's "xterm" ++ console -TD ++ ++20140215 ++ + in-progress changes to win_driver.c to implement output without ++ allocating a console-buffer. This uses a pre-existing environment ++ variable NCGDB used by Juergen Pfeifer for debugging (prompted by ++ discussion with Erwin Waterlander regarding Console2, which hangs ++ when reading in an allocated console-buffer). ++ + add -t option to gdc.c, and modify to accept "S" to step through the ++ scrolling-stages. ++ + regenerate NCURSES-Programming-HOWTO.html to fix some of the broken ++ html emitted by docbook. ++ ++20140209 ++ + modify CF_XOPEN_SOURCE macro to omit followup check to determine if ++ _XOPEN_SOURCE can/should be defined. g++ 4.7.2 built on Solaris 10 ++ has some header breakage due to its own predefinition of this symbol ++ (report by Jean-Pierre Flori, Sage #15796). ++ ++20140201 ++ + add/use symbol NCURSES_PAIRS_T like NCURSES_COLOR_T, to illustrate ++ which "short" types are for color pairs and which are color values. ++ + fix build for s390x, by correcting field bit offsets in generated ++ representation clauses when int=32 long=64 and endian=big, or at ++ least on s390x (patch by Nicolas Boulenguez). ++ + minor cleanup change to test/form_driver_w.c (patch by Gaute Hope). ++ ++20140125 ++ + remove unnecessary ifdef's in Ada95/gen/gen.c, which reportedly do ++ not work as is with gcc 4.8 due to fixes using chtype cast made for ++ new compiler warnings by gcc 4.8 in 20130824 (Debian #735753, patch ++ by Nicolas Boulenguez). ++ ++20140118 ++ + apply includesubdir variable which was introduced in 20130805 to ++ gen-pkgconfig.in (Debian #735782). ++ ++20131221 ++ + further improved man2html, used this to fix broken links in html ++ manpages. See ++ ftp://invisible-island.net/ncurses/patches/man2html ++ ++20131214 ++ + modify configure-script/ifdef's to allow OLD_TTY feature to be ++ suppressed if the type of ospeed is configured using the option ++ --with-ospeed to not be a short. By default, it is a short for ++ termcap-compatibility (adapted from suggestion by Christian ++ Weisgerber). ++ + correct a typo in _nc_baudrate() (patch by Christian Weisgerber, ++ cf: 20061230). ++ + fix a few -Wlogical-op warnings. ++ + updated llib-l* files. ++ ++20131207 ++ + add form_driver_w() entrypoint to wide-character forms library, as ++ well as test program form_driver_w (adapted from patch by Gaute ++ Hope). ++ ++20131123 ++ + minor fix for CF_GCC_WARNINGS to special-case options which are not ++ recognized by clang. ++ ++20131116 ++ + add special case to configure script to move _XOPEN_SOURCE_EXTENDED ++ definition from CPPFLAGS to CFLAGS if it happens to be needed for ++ Solaris, because g++ errors with that definition (report by ++ Jean-Pierre Flori, Sage #15268). ++ + correct logic in infocmp's -i option which was intended to ignore ++ strings which correspond to function-keys as candidates for piecing ++ together initialization- or reset-strings. The problem dates to ++ 1.9.7a, but was overlooked until changes in -Wlogical-op warnings for ++ gcc 4.8 (report by David Binderman). ++ + updated CF_GCC_WARNINGS to documented options for gcc 4.9.0, adding ++ checks for -Wextra, -Wignored-qualifiers and -Wlogical-op ++ + updated CF_GCC_WARNINGS to documented options for gcc 4.9.0, moving ++ checks for -Wextra and -Wdeclaration-after-statement into the macro, ++ and adding checks for -Wignored-qualifiers, -Wlogical-op and ++ -Wvarargs ++ + updated CF_CURSES_UNCTRL_H and CF_SHARED_OPTS macros from ongoing ++ work on cdk. ++ + update config.sub from ++ http://git.savannah.gnu.org/cgit/config.git ++ ++20131110 ++ + minor cleanup of terminfo.tail ++ ++20131102 ++ + use TS extension to describe xterm's title-escapes -TD ++ + modify terminator and nsterm-s to use xterm+sl-twm building block -TD ++ + update hurd.ti, add xenl to reflect 2011-03-06 change in ++ http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c ++ (Debian #727119). ++ + simplify pfkey expression in ansi.sys -TD ++ ++20131027 ++ + correct/simplify ifdef's for cur_term versus broken-linker and ++ reentrant options (report by Jean-Pierre Flori, cf: 20090530). ++ + modify release/version combinations in test build-scripts to make ++ them more consistent with other packages. ++ ++20131019 ++ + add nc_mingw.h to installed headers for MinGW port; needed for ++ compiling ncurses-examples. ++ + add rpm-script for testing cross-compile of ncurses-examples. ++ ++20131014 ++ + fix new typo in CF_ADA_INCLUDE_DIRS macro (report by Roumen Petrov). ++ ++20131012 ++ + fix a few compiler warnings in progs and test. ++ + minor fix to package/debian-mingw/rules, do not strip dll's. ++ + minor fixes to configure script for empty $prefix, e.g., when doing ++ cross-compiles to MinGW. ++ + add script for building test-packages of binaries cross-compiled to ++ MinGW using NSIS. ++ ++20131005 ++ + minor fixes for ncurses-example package and makefile. ++ + add scripts for test-builds of cross-compiler packages for ncurses6 ++ to MinGW. ++ ++20130928 ++ + some build-fixes for ncurses-examples with NetBSD-6.0 curses, though ++ it lacks some common functions such as use_env() which is not yet ++ addressed. ++ + build-fix and some compiler warning fixes for ncurses-examples with ++ OpenBSD 5.3 ++ + fix a possible null-pointer reference in a trace message from newterm. ++ + quiet a few warnings from NetBSD 6.0 namespace pollution by ++ nonstandard popcount() function in standard strings.h header. ++ + ignore g++ 4.2.1 warnings for "-Weffc++" in c++/cursesmain.cc ++ + fix a few overlooked places for --enable-string-hacks option. ++ ++20130921 ++ + fix typo in curs_attr.3x (patch by Sven Joachim, cf: 20130831). ++ + build-fix for --with-shared option for DragonFly and FreeBSD (report ++ by Rong-En Fan, cf: 20130727). ++ ++20130907 ++ + build-fixes for MSYS for two test-programs (patches by Ray Donnelly, ++ Alexey Pavlov). ++ + revert change to two of the dpkg format files, to work with dpkg ++ before/after Debian #700177. ++ + fix gcc -Wconversion warning in wattr_get() macro. ++ + add msys and msysdll to known host/configuration types (patch by ++ Alexey Pavlov). ++ + modify CF_RPATH_HACK configure macro to not rely upon "-u" option ++ of sort, improving portability. ++ + minor improvements for test-programs from reviewing Solaris port. ++ + update config.guess, config.sub from ++ http://git.savannah.gnu.org/cgit/config.git ++ ++20130831 ++ + modify test/ncurses.c b/B tests to display lines only for the ++ attributes which a given terminal supports, to make room for an ++ italics test. ++ + completed ncv table in terminfo.tail; it did not list the wide ++ character codes listed in X/Open Curses issue 7. ++ + add A_ITALIC extension (prompted by discussion with Egmont Koblinger). ++ ++20130824 ++ + fix some gcc 4.8 -Wconversion warnings. ++ + change format of dpkg test-scripts to quilted to work around bug ++ introduced by Debian #700177. ++ + discard cached keyname() values if meta() is changed after a value ++ was cached using (report by Kurban Mallachiev). ++ ++20130816 ++ + add checks in tic to warn about terminals which lack cursor ++ addressing, capabilities or having those, are marked as hard_copy or ++ generic_type. ++ + use --without-progs in mingw-ncurses rpm. ++ + split out _nc_init_termtype() from alloc_entry.c to use in MinGW ++ port when tic and other programs are not needed. ++ ++20130805 ++ + minor fixes to the --disable-overwrite logic, to ensure that the ++ configured $(includedir) is not cancelled by the mingwxx-filesystem ++ rpm macros. ++ + add --disable-db-install configure option, to simplify building ++ cross-compile support packages. ++ + add mingw-ncurses.spec file, for testing cross-compiles. ++ ++20130727 ++ + improve configure macros from ongoing work on cdk, dialog, xterm: ++ + CF_ADD_LIB_AFTER - fix a problem with -Wl options ++ + CF_RPATH_HACK - add missing result-message ++ + CF_SHARED_OPTS - modify to use $rel_builddir in cygwin and mingw ++ dll symbols (which can be overridden) rather than explicit "../". ++ + CF_SHARED_OPTS - modify NetBSD and DragonFly symbols to use ${CC} ++ rather than ${LD} to improve rpath support. ++ + CF_SHARED_OPTS - add a symbol to denote the temporary files that ++ are created by the macro, to simplify clean-rules. ++ + CF_X_ATHENA - trim extra libraries to work with -Wl,--as-needed ++ + fix a regression in hashed-database support for NetBSD, which uses ++ the key-size differently from other implementations (cf: 20121229). ++ ++20130720 ++ + further improvements for setupterm manpage, clarifying the ++ initialization of cur_term. ++ ++20130713 ++ + improve manpages for initscr and setupterm. ++ + minor compiler-warning fixes ++ ++20130706 ++ + add fallback defs for <inttypes.h> and <stdint.h> (cf: 20120225). ++ + add check for size of wchar_t, use that to suppress a chunk of ++ wcwidth.h in MinGW port. ++ + quiet linker warnings for MinGW cross-compile with dll's using the ++ --enable-auto-import flag. ++ + add ncurses.map rule to ncurses/Makefile to help diagnose symbol ++ table issues. ++ ++20130622 ++ + modify the clear program to take into account the E3 extended ++ capability to clear the terminal's scrollback buffer (patch by ++ Miroslav Lichvar, Redhat #815790). ++ + clarify in resizeterm manpage that LINES and COLS are updated. ++ + updated ansi example in terminfo.tail, correct misordered example ++ of sgr. ++ + fix other doclifter warnings for manpages ++ + remove unnecessary ".ta" in terminfo.tail, add missing ".fi" ++ (patch by Eric Raymond). ++ ++20130615 ++ + minor changes to some configure macros to make them more reusable. ++ + fixes for tabs program (prompted by report by Nick Andrik): ++ + corrected logic in command-line parsing of -a and -c predefined ++ tab-lists options. ++ + allow "-0" and "-8" options to be combined with others, e.g.,"-0d". ++ + make warning messages more consistent with the other utilities by ++ not printing the full pathname of the program. ++ + add -V option for consistency with other utilities. ++ + fix off-by-one in columns for tabs program when processing an option ++ such as "-5" (patch by Nick Andrik). ++ ++20130608 ++ + add to test/demo_forms.c examples of using the menu-hooks as well ++ as showing how the menu item user-data can be used to pass a callback ++ function pointer. ++ + add test/dots_termcap.c ++ + remove setupterm call from test/demo_termcap.c ++ + build-fix if --disable-ext-funcs configure option is used. ++ + modified test/edit_field.c and test/demo_forms.c to move the lengths ++ into a user-data structure, keeping the original string for later ++ expansion to free-format input/out demo. ++ + modified test/demo_forms.c to load data from file. ++ + added note to clarify Terminal.app's non-emulation of the various ++ terminal types listed in the preferences dialog -TD ++ + fix regression in error-reporting in lib_setup.c (Debian #711134, ++ cf: 20121117). ++ + build-fix for a case where --enable-broken_linker and ++ --enable-reentrant options are combined (report by George R Goffe). ++ ++20130525 ++ + modify mvcur() to distinguish between internal use by the ncurses ++ library, and external callers, preventing it from reading the content ++ of the screen which is only nonblank when curses calls have updated ++ it. This makes test/dots_mvcur.c avoid painting colored cells in ++ the left margin of the display. ++ + minor fix to test/dots_mvcur.c ++ + move configured symbols USE_DATABASE and USE_TERMCAP to term.h as ++ NCURSES_USE_DATABASE and NCURSES_USE_TERMCAP to allow consistent ++ use of these symbols in term_entry.h ++ ++20130518 ++ + corrected ifdefs in test/testcurs.c to allow comparison of mouse ++ interface versus pdcurses (cf: 20130316). ++ + add pow() to configure-check for math library, needed since ++ 20121208 for test/hanoi (Debian #708056). ++ + regenerated html manpages. ++ + update doctype used for html documentation. ++ ++20130511 ++ + move nsterm-related entries out of "obsolete" section to more ++ plausible "ansi consoles" -TD ++ + additional cleanup of table-of-contents by reordering -TD ++ + revise fix for check for 8-bit value in _nc_insert_ch(); prior fix ++ prevented inserts when video attributes were attached to the data ++ (cf: 20121215) (Redhat #959534). ++ ++20130504 ++ + fixes for issues found by Coverity: ++ + correct FNKEY() macro in progs/dump_entry.c, allowing kf11-kf63 to ++ display when infocmp's -R option is used for HP or AIX subsets. ++ + fix dead-code issue with test/movewindow.c ++ + improve limited-checking in _nc_read_termtype(). ++ ++20130427 ++ + fix clang 3.2 warning in progs/dump_entry.c ++ + drop AC_TYPE_SIGNAL check; ncurses relies on c89 and later. ++ ++20130413 ++ + add MinGW to cases where ncurses installs by default into /usr ++ (prompted by discussion with Daniel Silva Ferreira). ++ + add -D option to infocmp's usage-message (patch by Miroslav Lichvar). ++ + add a missing 'int' type for main function in configure check for ++ type of bool variable, to work with clang 3.2 (report by Dmitri ++ Gribenko). ++ + improve configure check for static_cast, to work with clang 3.2 ++ (report by Dmitri Gribenko). ++ + re-order rule for demo.o and macros defining header dependencies in ++ c++/Makefile.in to accommodate gmake (report by Dmitri Gribenko). ++ ++20130406 ++ + improve parameter checking in copywin(). ++ + modify configure script to work around OS X's "libtool" program, to ++ choose glibtool instead. At the same time, chance the autoconf macro ++ to look for a "tool" rather than a "prog", to help with potential use ++ in cross-compiling. ++ + separate the rpath usage for c++ library from demo program ++ (Redhat #911540) ++ + update/correct header-dependencies in c++ makefile (report by Werner ++ Fink). ++ + add --with-cxx-shared to dpkg-script, as done for rpm-script. ++ ++20130324 ++ + build-fix for libtool configuration (reports by Daniel Silva Ferreira ++ and Roumen Petrov). ++ ++20130323 ++ + build-fix for OS X, to handle changes for --with-cxx-shared feature ++ (report by Christian Ebert). ++ + change initialization for vt220, similar entries for consistency ++ with cursor-key strings (NetBSD #47674) -TD ++ + further improvements to linux-16color (Benjamin Sittler) ++ ++20130316 ++ + additional fix for tic.c, to allocate missing buffer space. ++ + eliminate configure-script warnings for gen-pkgconfig.in ++ + correct typo in sgr string for sun-color, ++ add bold for consistency with sgr, ++ change smso for consistency with sgr -TD ++ + correct typo in sgr string for terminator -TD ++ + add blink to the attributes masked by ncv in linux-16color (report ++ by Benjamin Sittler) ++ + improve warning message from post-load checking for missing "%?" ++ operator by tic/infocmp by showing the entry name and capability. ++ + minor formatting improvement to tic/infocmp -f option to ensure ++ line split after "%;". ++ + amend scripting for --with-cxx-shared option to handle the debug ++ library "libncurses++_g.a" (report by Sven Joachim). ++ ++20130309 ++ + amend change to toe.c for reading from /dev/zero, to ensure that ++ there is a buffer for the temporary filename (cf: 20120324). ++ + regenerated html manpages. ++ + fix typo in terminfo.head (report by Sven Joachim, cf: 20130302). ++ + updated some autoconf macros: ++ + CF_ACVERSION_CHECK, from byacc 1.9 20130304 ++ + CF_INTEL_COMPILER, CF_XOPEN_SOURCE from luit 2.0-20130217 ++ + add configure option --with-cxx-shared to permit building ++ libncurses++ as a shared library when using g++, e.g., the same ++ limitations as libtool but better integrated with the usual build ++ configuration (Redhat #911540). ++ + modify MKkey_defs.sh to filter out build-path which was unnecessarily ++ shown in curses.h (Debian #689131). ++ ++20130302 ++ + add section to terminfo manpage discussing user-defined capabilities. ++ + update manpage description of NCURSES_NO_SETBUF, explaining why it ++ is obsolete. ++ + add a check in waddch_nosync() to ensure that tab characters are ++ treated as control characters; some broken locales claim they are ++ printable. ++ + add some traces to the Windows console driver. ++ + initialize a temporary array in _nc_mbtowc, needed for some cases ++ of raw input in MinGW port. ++ ++20130218 ++ + correct ifdef on change to lib_twait.c (report by Werner Fink). ++ + update config.guess, config.sub ++ ++20130216 ++ + modify test/testcurs.c to work with mouse for ncurses as it does for ++ pdcurses. ++ + modify test/knight.c to work with mouse for pdcurses as it does for ++ ncurses. ++ + modify internal recursion in wgetch() which handles cooked mode to ++ check if the call to wgetnstr() returned an error. This can happen ++ when both nocbreak() and nodelay() are set, for instance (report by ++ Nils Christopher Brause) (cf: 960418). ++ + fixes for issues found by Coverity: ++ + add a check for valid position in ClearToEOS() ++ + fix in lib_twait.c when --enable-wgetch-events is used, pointer ++ use after free. ++ + improve a limit-check in make_hash.c ++ + fix a memory leak in hashed_db.c ++ ++20130209 ++ + modify test/configure script to make it simpler to override names ++ of curses-related libraries, to help with linking with pdcurses in ++ MinGW environment. ++ + if the --with-terminfo-dirs configure option is not used, there is ++ no corresponding compiled-in value for that. Fill in "no default ++ value" for that part of the manpage substitution. ++ ++20130202 ++ + correct initialization in knight.c which let it occasionally make ++ an incorrect move (cf: 20001028). ++ + improve documentation of the terminfo/termcap search path. ++ ++20130126 ++ + further fixes to mvcur to pass callback function (cf: 20130112), ++ needed to make test/dots_mvcur work. ++ + reduce calls to SetConsoleActiveScreenBuffer in win_driver.c, to ++ help reduce flicker. ++ + modify configure script to omit "+b" from linker options for very ++ old HP-UX systems (report by Dennis Grevenstein) ++ + add HP-UX workaround for missing EILSEQ on old HP-UX systems (patch ++ by Dennis Grevenstein). ++ + restore memmove/strdup support for antique systems (request by ++ Dennis Grevenstein). ++ + change %l behavior in tparm to push the string length onto the stack ++ rather than saving the formatted length into the output buffer ++ (report by Roy Marples, cf: 980620). ++ ++20130119 ++ + fixes for issues found by Coverity: ++ + fix memory leak in safe_sprintf.c ++ + add check for return-value in tty_update.c ++ + correct initialization for -s option in test/view.c ++ + add check for numeric overflow in lib_instr.c ++ + improve error-checking in copywin ++ + add advice in infocmp manpage for termcap users (Debian #698469). ++ + add "-y" option to test/demo_termcap and test/demo_terminfo to ++ demonstrate behavior with/without extended capabilities. ++ + updated termcap manpage to document legacy termcap behavior for ++ matching capability names. ++ + modify name-comparison for tgetstr, etc., to accommodate legacy ++ applications as well as to improve compatbility with BSD 4.2 ++ termcap implementations (Debian #698299) (cf: 980725). ++ ++20130112 ++ + correct prototype in manpage for vid_puts. ++ + drop ncurses/tty/tty_display.h, ncurses/tty/tty_input.h, since they ++ are unused in the current driver model. ++ + modify mvcur to use stdout except when called within the ncurses ++ library. ++ + modify vidattr and vid_attr to use stdout as documented in manpage. ++ + amend changes made to buffering in 20120825 so that the low-level ++ putp() call uses stdout rather than ncurses' internal buffering. ++ The putp_sp() call does the same, for consistency (Redhat #892674). ++ ++20130105 ++ + add "-s" option to test/view.c to allow it to start in single-step ++ mode, reducing size of trace files when it is used for debugging ++ MinGW changes. ++ + revert part of 20121222 change to tinfo_driver.c ++ + add experimental logic in win_driver.c to improve optimization of ++ screen updates. This does not yet work with double-width characters, ++ so it is ifdef'd out for the moment (prompted by report by Erwin ++ Waterlander regarding screen flicker). ++ ++20121229 ++ + fix coverity warnings regarding copying into fixed-size buffers. ++ + add throw-declarations in the c++ binding per Coverity warning. ++ + minor changes to new-items for consistent reference to bug-report ++ numbers. ++ ++20121222 ++ + add *.dSYM directories to clean-rule in ncurses directory makefile, ++ for Mac OS builds. ++ + add a configure check for gcc option -no-cpp-precomp, which is not ++ available in all Mac OS X configurations (report by Andras Salamon, ++ cf: 20011208). ++ + improve 20021221 workaround for broken acs, handling a case where ++ that ACS_xxx character is not in the acsc string but there is a known ++ wide-character which can be used. ++ ++20121215 ++ + fix several warnings from clang 3.1 --analyze, includes correcting ++ a null-pointer check in _nc_mvcur_resume. ++ + correct display of double-width characters with MinGW port (report ++ by Erwin Waterlander). ++ + replace MinGW's wcrtomb(), fixing a problem with _nc_viscbuf ++ > fixes based on Coverity report: ++ + correct coloring in test/bs.c ++ + correct check for 8-bit value in _nc_insert_ch(). ++ + remove dead code in progs/tset.c, test/linedata.h ++ + add null-pointer checks in lib_tracemse.c, panel.priv.h, and some ++ test-programs. ++ ++20121208 ++ + modify test/knight.c to show the number of choices possible for ++ each position in automove option, e.g., to allow user to follow ++ Warnsdorff's rule to solve the puzzle. ++ + modify test/hanoi.c to show the minimum number of moves possible for ++ the given number of tiles (prompted by patch by Lucas Gioia). ++ > fixes based on Coverity report: ++ + remove a few redundant checks. ++ + correct logic in test/bs.c, when randomly placing a specific type of ++ ship. ++ + check return value from remove/unlink in tic. ++ + check return value from sscanf in test/ncurses.c ++ + fix a null dereference in c++/cursesw.cc ++ + fix two instances of uninitialized variables when configuring for the ++ terminal driver. ++ + correct scope of variable used in SetSafeOutcWrapper macro. ++ + set umask when calling mkstemp in tic. ++ + initialize wbkgrndset() temporary variable when extended-colors are ++ used. ++ ++20121201 ++ + also replace MinGW's wctomb(), fixing a problem with setcchar(). ++ + modify test/view.c to load UTF-8 when built with MinGW by using ++ regular win32 API because the MinGW functions mblen() and mbtowc() ++ do not work. ++ ++20121124 ++ + correct order of color initialization versus display in some of the ++ test-programs, e.g., test_addstr.c ++ > fixes based on Coverity report: ++ + delete windows on exit from some of the test-programs. ++ ++20121117 ++ > fixes based on Coverity report: ++ + add missing braces around FreeAndNull in two places. ++ + various fixes in test/ncurses.c ++ + improve limit-checks in tinfo/make_hash.c, tinfo/read_entry.c ++ + correct malloc size in progs/infocmp.c ++ + guard against negative array indices in test/knight.c ++ + fix off-by-one limit check in test/color_name.h ++ + add null-pointer check in progs/tabs.c, test/bs.c, test/demo_forms.c, ++ test/inchs.c ++ + fix memory-leak in tinfo/lib_setup.c, progs/toe.c, ++ test/clip_printw.c, test/demo_menus.c ++ + delete unused windows in test/chgat.c, test/clip_printw.c, ++ test/insdelln.c, test/newdemo.c on error-return. ++ ++20121110 ++ + modify configure macro CF_INCLUDE_DIRS to put $CPPFLAGS after the ++ local -I include options in case someone has set conflicting -I ++ options in $CPPFLAGS (prompted by patch for ncurses/Makefile.in by ++ Vassili Courzakis). ++ + modify the ncurses*-config scripts to eliminate relative paths from ++ the RPATH_LIST variable, e.g., "../lib" as used in installing shared ++ libraries or executables. ++ ++20121102 ++ + realign these related pages: ++ curs_add_wchstr.3x ++ curs_addchstr.3x ++ curs_addstr.3x ++ curs_addwstr.3x ++ and fix a long-ago error in curs_addstr.3x which said that a -1 ++ length parameter would only write as much as fit onto one line ++ (report by Reuben Thomas). ++ + remove obsolete fallback _nc_memmove() for memmove()/bcopy(). ++ + remove obsolete fallback _nc_strdup() for strdup(). ++ + cancel any debug-rpm in package/ncurses.spec ++ + reviewed vte-2012, reverted most of the change since it was incorrect ++ based on testing with tack -TD ++ + un-cancel the initc in vte-256color, since this was implemented ++ starting with version 0.20 in 2009 -TD ++ ++20121026 ++ + improve malloc/realloc checking (prompted by discussion in Redhat ++ #866989). ++ + add ncurses test-program as "ncurses6" to the rpm- and dpkg-scripts. ++ + updated configure macros CF_GCC_VERSION and CF_WITH_PATHLIST. The ++ first corrects pattern used for Mac OS X's customization of gcc. ++ ++20121017 ++ + fix change to _nc_scroll_optimize(), which incorrectly freed memory ++ (Redhat #866989). ++ ++20121013 ++ + add vte-2012, gnome-2012, making these the defaults for vte/gnome ++ (patch by Christian Persch). ++ ++20121006 ++ + improve CF_GCC_VERSION to work around Debian's customization of gcc ++ --version message. ++ + improve configure macros as done in byacc: ++ + drop 2.13 compatibility; use 2.52.xxxx version only since EMX port ++ has used that for a while. ++ + add 3rd parameter to AC_DEFINE's to allow autoheader to run, i.e., ++ for experimental use. ++ + remove unused configure macros. ++ + modify configure script and makefiles to quiet new autoconf warning ++ for LIBS_TO_MAKE variable. ++ + modify configure script to show $PATH_SEPARATOR variable. ++ + update config.guess, config.sub ++ ++20120922 ++ + modify setupterm to set its copy of TERM to "unknown" if configured ++ for the terminal driver and TERM was null or empty. ++ + modify treatment of TERM variable for MinGW port to allow explicit ++ use of the windows console driver by checking if $TERM is set to ++ "#win32con" or an abbreviation of that. ++ + undo recent change to fallback definition of vsscanf() to build with ++ older Solaris compilers (cf: 20120728). ++ ++20120908 ++ + add test-screens to test/ncurses to show 256-characters at a time, ++ to help with MinGW port. ++ ++20120903 ++ + simplify varargs logic in lib_printw.c; va_copy is no longer needed ++ there. ++ + modifications for MinGW port to make wide-character display usable. ++ ++20120902 ++ + regenerate configure script (report by Sven Joachim, cf: 20120901). ++ ++20120901 ++ + add a null-pointer check in _nc_flush (cf: 20120825). ++ + fix a case in _nc_scroll_optimize() where the _oldnums_list array ++ might not be allocated. ++ + improve comparisons in configure.in for unset shell variables. ++ ++20120826 ++ + increase size of ncurses' output-buffer, in case of very small ++ initial screen-sizes. ++ + fix evaluation of TERMINFO and TERMINFO_DIRS default values as needed ++ after changes to use --datarootdir (reports by Gabriele Balducci, ++ Roumen Petrov). ++ ++20120825 ++ + change output buffering scheme, using buffer maintained by ncurses ++ rather than stdio, to avoid problems with SIGTSTP handling (report ++ by Brian Bloniarz). ++ ++20120811 ++ + update autoconf patch to 2.52.20120811, adding --datarootdir ++ (prompted by discussion with Erwin Waterlander). ++ + improve description of --enable-reentrant option in README and the ++ INSTALL file. ++ + add nsterm-256color, make this the default nsterm -TD ++ + remove bw from nsterm-bce, per testing with tack -TD ++ ++20120804 ++ + update test/configure, adding check for tinfo library. ++ + improve limit-checks for the getch fifo (report by Werner Fink). ++ + fix a remaining mismatch between $with_echo and the symbols updated ++ for CF_DISABLE_ECHO affecting parameters for mk-2nd.awk (report by ++ Sven Joachim, cf: 20120317). ++ + modify followup check for pkg-config's library directory in the ++ --enable-pc-files option to validate syntax (report by Sven Joachim, ++ cf: 20110716). ++ ++20120728 ++ + correct path for ncurses_mingw.h in include/headers, in case build ++ is done outside source-tree (patch by Roumen Petrov). ++ + modify some older xterm entries to align with xterm source -TD ++ + separate "xterm-old" alias from "xterm-r6" -TD ++ + add E3 extended capability to xterm-basic and putty -TD ++ + parenthesize parameters of other macros in curses.h -TD ++ + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h ++ in case it happens to be a comma-expression, etc. (patch by Nick ++ Black). ++ ++20120721 ++ + improved form_request_by_name() and menu_request_by_name(). ++ + eliminate two fixed-size buffers in toe.c ++ + extend use_tioctl() to have expected behavior when use_env(FALSE) and ++ use_tioctl(TRUE) are called. ++ + modify ncurses test-program, adding -E and -T options to demonstrate ++ use_env() versus use_tioctl(). ++ ++20120714 ++ + add use_tioctl() function (adapted from patch by Werner Fink, ++ Novell #769788): ++ ++20120707 ++ + add ncurses_mingw.h to installed headers (prompted by patch by ++ Juergen Pfeifer). ++ + clarify return-codes from wgetch() in response to SIGWINCH (prompted ++ by Novell #769788). ++ + modify resizeterm() to always push a KEY_RESIZE onto the fifo, even ++ if screensize is unchanged. Modify _nc_update_screensize() to push a ++ KEY_RESIZE if there was a SIGWINCH, even if it does not call ++ resizeterm(). These changes eliminate the case where a SIGWINCH is ++ received, but ERR returned from wgetch or wgetnstr because the screen ++ dimensions did not change (Novell #769788). ++ ++20120630 ++ + add --enable-interop to sample package scripts (suggested by Juergen ++ Pfeifer). ++ + update CF_PATH_SYNTAX macro, from mawk changes. ++ + modify mk-0th.awk to allow for generating llib-ltic, etc., though ++ some work is needed on cproto to work with lib_gen.c to update ++ llib-lncurses. ++ + remove redundant getenv() cal in database-iterator leftover from ++ cleanup in 20120622 changes (report by Sven Joachim). ++ ++20120622 ++ + add -d, -e and -q options to test/demo_terminfo and test/demo_termcap ++ + fix caching of environment variables in database-iterator (patch by ++ Philippe Troin, Redhat #831366). ++ ++20120616 ++ + add configure check to distinguish clang from gcc to eliminate ++ warnings about unused command-line parameters when compiler warnings ++ are enabled. ++ + improve behavior when updating terminfo entries which are hardlinked ++ by allowing for the possibility that an alias has been repurposed to ++ a new primary name. ++ + fix some strict compiler warnings based on package scripts. ++ + further fixes for configure check for working poll (Debian #676461). ++ ++20120608 ++ + fix an uninitialized variable in -c/-n logic for infocmp changes ++ (cf: 20120526). ++ + corrected fix for building c++ binding with clang 3.0 (report/patch ++ by Richard Yao, Gentoo #417613, cf: 20110409) ++ + correct configure check for working poll, fixing the case where stdin ++ is redirected, e.g., in rpm/dpkg builds (Debian #676461). ++ + add rpm- and dpkg-scripts, to test those build-environments. ++ The resulting packages are used only for testing. ++ ++20120602 ++ + add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD ++ + add kdch1, etc., to qvt108 -TD ++ + add dl1/il1 to some entries based on dl/il values -TD ++ + add dl to simpleterm -TD ++ + add consistency-checks in tic for insert-line vs delete-line ++ controls, and insert/delete-char keys ++ + correct no-leaks logic in infocmp when doing comparisons, fixing ++ duplicate free of entries given via the command-line, and freeing ++ entries loaded from the last-but-one of files specified on the ++ command-line. ++ + add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord, ++ analysis by Martin Husemann). ++ + add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by ++ Onno van der Linden). ++ ++20120526 ++ + extend -c and -n options of infocmp to allow comparing more than two ++ entries. ++ + correct check in infocmp for number of terminal names when more than ++ two are given. ++ + correct typo in curs_threads.3x (report by Yanhui Shen on ++ freebsd-hackers mailing list). ++ ++20120512 ++ + corrected 'op' for bterm (report by Samuel Thibault) -TD ++ + modify test/background.c to demonstrate a background character ++ holding a colored ACS_HLINE. The behavior differs from SVr4 due to ++ the thick- and double-line extension (cf: 20091003). ++ + modify handling of acs characters in PutAttrChar to avoid mapping an ++ unmapped character to a space with A_ALTCHARSET set. ++ + rewrite vt520 entry based on vt420 -TD ++ ++20120505 ++ + remove p6 (bold) from opus3n1+ for consistency -TD ++ + remove acs stuff from env230 per clues in Ingres termcap -TD ++ + modify env230 sgr/sgr0 to match other capabilities -TD ++ + modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD ++ + make sgr for dku7202 agree with other caps -TD ++ + make sgr for ibmpc agree with other caps -TD ++ + make sgr for tek4107 agree with other caps -TD ++ + make sgr for ndr9500 agree with other caps -TD ++ + make sgr for sco-ansi agree with other caps -TD ++ + make sgr for d410 agree with other caps -TD ++ + make sgr for d210 agree with other caps -TD ++ + make sgr for d470c, d470c-7b agree with other caps -TD ++ + remove redundant AC_DEFINE for NDEBUG versus Makefile definition. ++ + fix a back-link in _nc_delink_entry(), which is needed if ncurses is ++ configured with --enable-termcap and --disable-getcap. ++ ++20120428 ++ + fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD ++ + add eslok flag to dec+sl -TD ++ + dec+sl applies to vt320 and up -TD ++ + drop wsl width from xterm+sl -TD ++ + reuse xterm+sl in putty and nsca-m -TD ++ + add ansi+tabs to vt520 -TD ++ + add ansi+enq to vt220-vt520 -TD ++ + fix a compiler warning in example in ncurses-intro.doc (Paul Waring). ++ + added paragraph in keyname manpage telling how extended capabilities ++ are interpreted as key definitions. ++ + modify tic's check of conflicting key definitions to include extended ++ capability strings in addition to the existing check on predefined ++ keys. ++ ++20120421 ++ + improve cleanup of temporary files in tic using atexit(). ++ + add msgr to vt420, similar DEC vtXXX entries -TD ++ + add several missing vt420 capabilities from vt220 -TD ++ + factor out ansi+pp from several entries -TD ++ + change xterm+sl and xterm+sl-twm to include only the status-line ++ capabilities and not "use=xterm", making them more generally useful ++ as building-blocks -TD ++ + add dec+sl building block, as example -TD ++ ++20120414 ++ + add XT to some terminfo entries to improve usefulness for other ++ applications than screen, which would like to pretend that xterm's ++ title is a status-line. -TD ++ + change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review ++ of ordering and overrides -TD ++ + add consistency check in tic for screen's "XT" capability. ++ + add section in terminfo.src summarizing the user-defined capabilities ++ used in that file -TD ++ ++20120407 ++ + fix an inconsistency between tic/infocmp "-x" option; tic omits all ++ non-standard capabilities, while infocmp was ignoring only the user ++ definable capabilities. ++ + improve special case in tic parsing of description to allow it to be ++ followed by terminfo capabilities. Previously the description had to ++ be the last field on an input line to allow tic to distinguish ++ between termcap and terminfo format while still allowing commas to be ++ embedded in the description. ++ + correct variable name in gen_edit.sh which broke configurability of ++ the --with-xterm-kbs option. ++ + revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD ++ + further amend 20110910 change, providing for configure-script ++ override of the "linux" terminfo entry to install and changing the ++ default for that to "linux2.2" (Debian #665959). ++ ++20120331 ++ + update Ada95/configure to use CF_DISABLE_ECHO (cf: 20120317). ++ + correct order of use-clauses in st-256color -TD ++ + modify configure script to look for gnatgcc if the Ada95 binding ++ is built, in preference to the default gcc/cc (suggested by ++ Nicolas Boulenguez). ++ + modify configure script to ensure that the same -On option used for ++ the C compiler in CFLAGS is used for ADAFLAGS rather than simply ++ using "-O3" (suggested by Nicolas Boulenguez) ++ ++20120324 ++ + amend an old fix so that next_char() exits properly for empty files, ++ e.g., from reading /dev/null (cf: 20080804). ++ + modify tic so that it can read from the standard input, or from ++ a character device. Because tic uses seek's, this requires writing ++ the data to a temporary file first (prompted by remark by Sven ++ Joachim) (cf: 20000923). ++ ++20120317 ++ + correct a check made in lib_napms.c, so that terminfo applications ++ can again use napms() (cf: 20110604). ++ + add a note in tic.h regarding required casts for ABSENT_BOOLEAN ++ (cf: 20040327). ++ + correct scripting for --disable-echo option in test/configure. ++ + amend check for missing c++ compiler to work when no error is ++ reported, and no variables set (cf: 20021206). ++ + add/use configure macro CF_DISABLE_ECHO. ++ ++20120310 ++ + fix some strict compiler warnings for abi6 and 64-bits. ++ + use begin_va_copy/end_va_copy macros in lib_printw.c (cf: 20120303). ++ + improve a limit-check in infocmp.c (Werner Fink): ++ ++20120303 ++ + minor tidying of terminfo.tail, clarify reason for limitation ++ regarding mapping of \0 to \200 ++ + minor improvement to _nc_copy_termtype(), using memcpy to replace ++ loops. ++ + fix no-leaks checking in test/demo_termcap.c to account for multiple ++ calls to setupterm(). ++ + modified the libgpm change to show previous load as a problem in the ++ debug-trace. ++ > merge some patches from OpenSUSE rpm (Werner Fink): ++ + ncurses-5.7-printw.dif, fixes for varargs handling in lib_printw.c ++ + ncurses-5.7-gpm.dif, do not dlopen libgpm if already loaded by ++ runtime linker ++ + ncurses-5.6-fallback.dif, do not free arrays and strings from static ++ fallback entries ++ ++20120228 ++ + fix breakage in tic/infocmp from 20120225 (report by Werner Fink). ++ ++20120225 ++ + modify configure script to allow creating dll's for MinGW when ++ cross-compiling. ++ + add --enable-string-hacks option to control whether strlcat and ++ strlcpy may be used. The same issue applies to OpenBSD's warnings ++ about snprintf, noting that this function is weakly standardized. ++ + add configure checks for strlcat, strlcpy and snprintf, to help ++ reduce bogus warnings with OpenBSD builds. ++ + build-fix for OpenBSD 4.9 to supply consistent intptr_t declaration ++ (cf:20111231) ++ + update config.guess, config.sub ++ ++20120218 ++ + correct CF_ETIP_DEFINES configure macro, making it exit properly on ++ the first success (patch by Pierre Labastie). ++ + improve configure macro CF_MKSTEMP by moving existence-check for ++ mkstemp out of the AC_TRY_RUN, to help with cross-compiles. ++ + improve configure macro CF_FUNC_POLL from luit changes to detect ++ broken implementations, e.g., with Mac OS X. ++ + add configure option --with-tparm-arg ++ + build-fix for MinGW cross-compiling, so that make_hash does not ++ depend on TTY definition (cf: 20111008). ++ ++20120211 ++ + make sgr for xterm-pcolor agree with other caps -TD ++ + make sgr for att5425 agree with other caps -TD ++ + make sgr for att630 agree with other caps -TD ++ + make sgr for linux entries agree with other caps -TD ++ + make sgr for tvi9065 agree with other caps -TD ++ + make sgr for ncr260vt200an agree with other caps -TD ++ + make sgr for ncr160vt100pp agree with other caps -TD ++ + make sgr for ncr260vt300an agree with other caps -TD ++ + make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD ++ + make sgr for cygwin, cygwinDBG agree with other caps -TD ++ + add configure option --with-xterm-kbs to simplify configuration for ++ Linux versus most other systems. ++ ++20120204 ++ + improved tic -D option, avoid making target directory and provide ++ better diagnostics. ++ ++20120128 ++ + add mach-gnu (Debian #614316, patch by Samuel Thibault) ++ + add mach-gnu-color, tweaks to mach-gnu terminfo -TD ++ + make sgr for sun-color agree with smso -TD ++ + make sgr for prism9 agree with other caps -TD ++ + make sgr for icl6404 agree with other caps -TD ++ + make sgr for ofcons agree with other caps -TD ++ + make sgr for att5410v1, att4415, att620 agree with other caps -TD ++ + make sgr for aaa-unk, aaa-rv agree with other caps -TD ++ + make sgr for avt-ns agree with other caps -TD ++ + amend fix intended to separate fixups for acsc to allow "tic -cv" to ++ give verbose warnings (cf: 20110730). ++ + modify misc/gen-edit.sh to make the location of the tabset directory ++ consistent with misc/Makefile.in, i.e., using ${datadir}/tabset ++ (Debian #653435, patch by Sven Joachim). ++ ++20120121 ++ + add --with-lib-prefix option to allow configuring for old/new flavors ++ of OS/2 EMX. ++ + modify check for gnat version to allow for year, as used in FreeBSD ++ port. ++ + modify check_existence() in db_iterator.c to simply check if the ++ path is a directory or file, according to the need. Checking for ++ directory size also gives no usable result with OS/2 (cf: 20120107). ++ + support OS/2 kLIBC (patch by KO Myung-Han). ++ ++20120114 ++ + several improvements to test/movewindow.c (prompted by discussion on ++ Linux Mint forum): ++ + modify movement commands to make them continuous ++ + rewrote the test for mvderwin ++ + rewrote the test for recursive mvwin ++ + split-out reusable CF_WITH_NCURSES_ETC macro in test/configure.in ++ + updated configure macro CF_XOPEN_SOURCE, build-fixes for Mac OS X ++ and OpenBSD. ++ + regenerated html manpages. ++ ++20120107 ++ + various improvments for MinGW (Juergen Pfeifer): ++ + modify stat() calls to ignore the st_size member ++ + drop mk-dlls.sh script. ++ + change recommended regular expression library. ++ + modify rain.c to allow for threaded configuraton. ++ + modify tset.c to allow for case when size-change logic is not used. ++ ++20111231 ++ + modify toe's report when -a and -s options are combined, to add ++ a column showing which entries belong to a given database. ++ + add -s option to toe, to sort its output. ++ + modify progs/toe.c, simplifying use of db-iterator results to use ++ caching improvements from 20111001 and 20111126. ++ + correct generation of pc-files when ticlib or termlib options are ++ given to rename the corresponding tic- or tinfo-libraries (report ++ by Sven Joachim). ++ ++20111224 ++ + document a portability issue with tput, i.e., that scripts which work ++ with ncurses may fail in other implementations that do no parameter ++ analysis. ++ + add putty-sco entry -TD ++ ++20111217 ++ + review/fix places in manpages where --program-prefix configure option ++ was not being used. ++ + add -D option to infocmp, to show the database locations that it ++ could use. ++ + fix build for the special case where term-driver, ticlib and termlib ++ are all enabled. The terminal driver depends on a few features in ++ the base ncurses library, so tic's dependencies include both ncurses ++ and termlib. ++ + fix build work for term-driver when --enable-wgetch-events option is ++ enabled. ++ + use <stdint.h> types to fix some questionable casts to void*. ++ ++20111210 ++ + modify configure script to check if thread library provides ++ pthread_mutexattr_settype(), e.g., not provided by Solaris 2.6 ++ + modify configure script to suppress check to define _XOPEN_SOURCE ++ for IRIX64, since its header files have a conflict versus ++ _SGI_SOURCE. ++ + modify configure script to add ".pc" files for tic- and ++ tinfo-libraries, which were omitted in recent change (cf: 20111126). ++ + fix inconsistent checks on $PKG_CONFIG variable in configure script. ++ ++20111203 ++ + modify configure-check for etip.h dependencies, supplying a temporary ++ copy of ncurses_dll.h since it is a generated file (prompted by ++ Debian #646977). ++ + modify CF_CPP_PARAM_INIT "main" function to work with current C++. ++ ++20111126 ++ + correct database iterator's check for duplicate entries ++ (cf: 20111001). ++ + modify database iterator to ignore $TERMCAP when it is not an ++ absolute pathname. ++ + add -D option to tic, to show the database locations that it could ++ use. ++ + improve description of database locations in tic manpage. ++ + modify the configure script to generate a list of the ".pc" files to ++ generate, rather than deriving the list from the libraries which have ++ been built (patch by Mike Frysinger). ++ + use AC_CHECK_TOOLS in preference to AC_PATH_PROGS when searching for ++ ncurses*-config, e.g., in Ada95/configure and test/configure (adapted ++ from patch by Mike Frysinger). ++ ++20111119 ++ + remove obsolete/conflicting fallback definition for _POSIX_SOURCE ++ from curses.priv.h, fixing a regression with IRIX64 and Tru64 ++ (cf: 20110416) ++ + modify _nc_tic_dir() to ensure that its return-value is nonnull, ++ i.e., the database iterator was not initialized. This case is needed ++ to when tic is translating to termcap, rather than loading the ++ database (cf: 20111001). ++ ++20111112 ++ + add pccon entries for OpenBSD console (Alexei Malinin). ++ + build-fix for OpenBSD 4.9 with gcc 4.2.1, setting _XOPEN_SOURCE to ++ 600 to work around inconsistent ifdef'ing of wcstof between C and ++ C++ header files. ++ + modify capconvert script to accept more than exact match on "xterm", ++ e.g., the "xterm-*" variants, to exclude from the conversion (patch ++ by Robert Millan). ++ + add -lc_r as alternative for -lpthread, allows build of threaded code ++ in older FreeBSD machines. ++ + build-fix for MirBSD, which fails when either _XOPEN_SOURCE or ++ _POSIX_SOURCE are defined. ++ + fix a typo misc/Makefile.in, used in uninstalling pc-files. ++ ++20111030 ++ + modify make_db_path() to allow creating "terminfo.db" in the same ++ directory as an existing "terminfo" directory. This fixes a case ++ where switching between hashed/filesystem databases would cause the ++ new hashed database to be installed in the next best location - ++ root's home directory. ++ + add variable cf_cv_prog_gnat_correct to those passed to ++ config.status, fixing a problem with Ada95 builds (cf: 20111022). ++ + change feature test from _XPG5 to _XOPEN_SOURCE in two places, to ++ accommodate broken implementations for _XPG6. ++ + eliminate usage of NULL symbol from etip.h, to reduce header ++ interdependencies. ++ + add configure check to decide when to add _XOPEN_SOURCE define to ++ compiler options, i.e., for Solaris 10 and later (cf: 20100403). ++ This is a workaround for gcc 4.6, which fails to build the c++ ++ binding if that symbol is defined by the application, due to ++ incorrectly combining the corresponding feature test macros ++ (report by Peter Kruse). ++ ++20111022 ++ + correct logic for discarding mouse events, retaining the partial ++ events used to build up click, double-click, etc, until needed ++ (cf: 20110917). ++ + fix configure script to avoid creating unused Ada95 makefile when ++ gnat does not work. ++ + cleanup width-related gcc 3.4.3 warnings for 64-bit platform, for the ++ internal functions of libncurses. The external interface of courses ++ uses bool, which still produces these warnings. ++ ++20111015 ++ + improve description of --disable-tic-depends option to make it ++ clear that it may be useful whether or not the --with-termlib ++ option is also given (report by Sven Joachim). ++ + amend termcap equivalent for set_pglen_inch to use the X/Open ++ "YI" rather than the obsolete Solaris 2.5 "sL" (cf: 990109). ++ + improve manpage for tgetent differences from termcap library. ++ ++20111008 ++ + moved static data from db_iterator.c to lib_data.c ++ + modify db_iterator.c for memory-leak checking, fix one leak. ++ + modify misc/gen-pkgconfig.in to use Requires.private for the parts ++ of ncurses rather than Requires, as well as Libs.private for the ++ other library dependencies (prompted by Debian #644728). ++ ++20111001 ++ + modify tic "-K" option to only set the strict-flag rather than force ++ source-output. That allows the same flag to control the parser for ++ input and output of termcap source. ++ + modify _nc_getent() to ignore backslash at the end of a comment line, ++ making it consistent with ncurses' parser. ++ + restore a special-case check for directory needed to make termcap ++ text files load as if they were databases (cf: 20110924). ++ + modify tic's resolution/collision checking to attempt to remove the ++ conflicting alias from the second entry in the pair, which is ++ normally following in the source file. Also improved the warning ++ message to make it simpler to see which alias is the problem. ++ + improve performance of the database iterator by caching search-list. ++ ++20110925 ++ + add a missing "else" in changes to _nc_read_tic_entry(). ++ ++20110924 ++ + modify _nc_read_tic_entry() so that hashed-database is checked before ++ filesystem. ++ + updated CF_CURSES_LIBS check in test/configure script. ++ + modify configure script and makefiles to split TIC_ARGS and ++ TINFO_ARGS into pieces corresponding to LDFLAGS and LIBS variables, ++ to help separate searches for tic- and tinfo-libraries (patch by Nick ++ Alcock aka "Nix"). ++ + build-fix for lib_mouse.c changes (cf: 20110917). ++ ++20110917 ++ + fix compiler warning for clang 2.9 ++ + improve merging of mouse events (integrated patch by Damien ++ Guibouret). ++ + correct mask-check used in lib_mouse for wheel mouse buttons 4/5 ++ (patch by Damien Guibouret). ++ ++20110910 ++ + modify misc/gen_edit.sh to select a "linux" entry which works with ++ the current kernel rather than assuming it is always "linux3.0" ++ (cf: 20110716). ++ + revert a change to getmouse() which had the undesirable side-effect ++ of suppressing button-release events (report by Damien Guibouret, ++ cf: 20100102). ++ + add xterm+kbs fragment from xterm #272 -TD ++ + add configure option --with-pkg-config-libdir to provide control over ++ the actual directory into which pc-files are installed, do not use ++ the pkg-config environment variables (discussion with Frederic L W ++ Meunier). ++ + add link to mailing-list archive in announce.html.in, as done in ++ FAQ (prompted by question by Andrius Bentkus). ++ + improve manpage install by adjusting the "#include" examples to ++ show the ncurses-subdirectory used when --disable-overwrite option ++ is used. ++ + install an alias for "curses" to the ncurses manpage, tied to the ++ --with-curses-h configure option (suggested by Reuben Thomas). ++ ++20110903 ++ + propagate error-returns from wresize, i.e., the internal ++ increase_size and decrease_size functions through resize_term (report ++ by Tim van der Molen, cf: 20020713). ++ + fix typo in tset manpage (patch by Sven Joachim). ++ ++20110820 ++ + add a check to ensure that termcap files which might have "^?" do ++ not use the terminfo interpretation as "\177". ++ + minor cleanup of X-terminal emulator section of terminfo.src -TD ++ + add terminator entry -TD ++ + add simpleterm entry -TD ++ + improve wattr_get macros by ensuring that if the window pointer is ++ null, then the attribute and color values returned will be zero ++ (cf: 20110528). ++ ++20110813 ++ + add substitution for $RPATH_LIST to misc/ncurses-config.in ++ + improve performance of tic with hashed-database by caching the ++ database connection, using atexit() to cleanup. ++ + modify treatment of 2-character aliases at the beginning of termcap ++ entries so they are not counted in use-resolution, since these are ++ guaranteed to be unique. Also ignore these aliases when reporting ++ the primary name of the entry (cf: 20040501) ++ + double-check gn (generic) flag in terminal descriptions to ++ accommodate old/buggy termcap databases which misused that feature. ++ + minor fixes to _nc_tgetent(), ensure buffer is initialized even on ++ error-return. ++ ++20110807 ++ + improve rpath fix from 20110730 by ensuring that the new $RPATH_LIST ++ variable is defined in the makefiles which use it. ++ + build-fix for DragonFlyBSD's pkgsrc in test/configure script. ++ + build-fixes for NetBSD 5.1 with termcap support enabled. ++ + corrected k9 in dg460-ansi, add other features based on manuals -TD ++ + improve trimming of whitespace at the end of terminfo/termcap output ++ from tic/infocmp. ++ + when writing termcap source, ensure that colons in the description ++ field are translated to a non-delimiter, i.e., "=". ++ + add "-0" option to tic/infocmp, to make the termcap/terminfo source ++ use a single line. ++ + add a null-pointer check when handling the $CC variable. ++ ++20110730 ++ + modify configure script and makefiles in c++ and progs to allow the ++ directory used for rpath option to be overridden, e.g., to work ++ around updates to the variables used by tic during an install. ++ + add -K option to tic/infocmp, to provide stricter BSD-compatibility ++ for termcap output. ++ + add _nc_strict_bsd variable in tic library which controls the ++ "strict" BSD termcap compatibility from 20110723, plus these ++ features: ++ + allow escapes such as "\8" and "\9" when reading termcap ++ + disallow "\a", "\e", "\l", "\s" and "\:" escapes when reading ++ termcap files, passing through "a", "e", etc. ++ + expand "\:" as "\072" on output. ++ + modify _nc_get_token() to reset the token's string value in case ++ there is a string-typed token lacking the "=" marker. ++ + fix a few memory leaks in _nc_tgetent. ++ + fix a few places where reading from a termcap file could refer to ++ freed memory. ++ + add an overflow check when converting terminfo/termcap numeric ++ values, since terminfo stores those in a short, and they must be ++ positive. ++ + correct internal variables used for translating to termcap "%>" ++ feature, and translating from termcap %B to terminfo, needed by ++ tctest (cf: 19991211). ++ + amend a minor fix to acsc when loading a termcap file to separate it ++ from warnings needed for tic (cf: 20040710) ++ + modify logic in _nc_read_entry() and _nc_read_tic_entry() to allow ++ a termcap file to be handled via TERMINFO_DIRS. ++ + modify _nc_infotocap() to include non-mandatory padding when ++ translating to termcap. ++ + modify _nc_read_termcap_entry(), passing a flag in the case where ++ getcap is used, to reduce interactive warning messages. ++ ++20110723 ++ + add a check in start_color() to limit color-pairs to 256 when ++ extended colors are not supported (patch by David Benjamin). ++ + modify setcchar to omit no-longer-needed OR'ing of color pair in ++ the SetAttr() macro (patch by David Benjamin). ++ + add kich1 to sun terminfo entry (Yuri Pankov) ++ + use bold rather than reverse for smso in sun-color terminfo entry ++ (Yuri Pankov). ++ + improve generation of termcap using tic/infocmp -C option, e.g., ++ to correspond with 4.2BSD (prompted by discussion with Yuri Pankov ++ regarding Schilling's test program): ++ + translate %02 and %03 to %2 and %3 respectively. ++ + suppress string capabilities which use %s, not supported by tgoto ++ + use \040 rather than \s ++ + expand null characters as \200 rather than \0 ++ + modify configure script to support shared libraries for DragonFlyBSD. ++ ++20110716 ++ + replace an assert() in _nc_Free_Argument() with a regular null ++ pointer check (report/analysis by Franjo Ivancic). ++ + modify configure --enable-pc-files option to take into account the ++ PKG_CONFIG_PATH variable (report by Frederic L W Meunier). ++ + add/use xterm+tmux chunk from xterm #271 -TD ++ + resync xterm-new entry from xterm #271 -TD ++ + add E3 extended capability to linux-basic (Miroslav Lichvar) ++ + add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD ++ + add SI/SO change to linux2.6 entry (Debian #515609) -TD ++ + fix inconsistent tabset path in pcmw (Todd C. Miller). ++ + remove a backslash which continued comment, obscuring altos3 ++ definition with OpenBSD toolset (Nicholas Marriott). ++ ++20110702 ++ + add workaround from xterm #271 changes to ensure that compiler flags ++ are not used in the $CC variable. ++ + improve support for shared libraries, tested with AIX 5.3, 6.1 and ++ 7.1 with both gcc 4.2.4 and cc. ++ + modify configure checks for AIX to include release 7.x ++ + add loader flags/libraries to libtool options so that dynamic loading ++ works properly, adapted from ncurses-5.7-ldflags-with-libtool.patch ++ at gentoo prefix repository (patch by Michael Haubenwallner). ++ ++20110626 ++ + move include of nc_termios.h out of term_entry.h, since the latter ++ is installed, e.g., for tack while the former is not (report by ++ Sven Joachim). ++ ++20110625 ++ + improve cleanup() function in lib_tstp.c, using _exit() rather than ++ exit() and checking for SIGTERM rather than SIGQUIT (prompted by ++ comments forwarded by Nicholas Marriott). ++ + reduce name pollution from term.h, moving fallback #define's for ++ tcgetattr(), etc., to new private header nc_termios.h (report by ++ Sergio NNX). ++ + two minor fixes for tracing (patch by Vassili Courzakis). ++ + improve trace initialization by starting it in use_env() and ++ ripoffline(). ++ + review old email, add details for some changelog entries. ++ ++20110611 ++ + update minix entry to minix 3.2 (Thomas Cort). ++ + fix a strict compiler warning in change to wattr_get (cf: 20110528). ++ ++20110604 ++ + fixes for MirBSD port: ++ + set default prefix to /usr. ++ + add support for shared libraries in configure script. ++ + use S_ISREG and S_ISDIR consistently, with fallback definitions. ++ + add a few more checks based on ncurses/link_test. ++ + modify MKlib_gen.sh to handle sp-funcs renaming of NCURSES_OUTC type. ++ ++20110528 ++ + add case to CF_SHARED_OPTS for Interix (patch by Markus Duft). ++ + used ncurses/link_test to check for behavior when the terminal has ++ not been initialized and when an application passes null pointers ++ to the library. Added checks to cover this (prompted by Redhat ++ #707344). ++ + modify MKlib_gen.sh to make its main() function call each function ++ with zero parameters, to help find inconsistent checking for null ++ pointers, etc. ++ ++20110521 ++ + fix warnings from clang 2.7 "--analyze" ++ ++20110514 ++ + compiler-warning fixes in panel and progs. ++ + modify CF_PKG_CONFIG macro, from changes to tin -TD ++ + modify CF_CURSES_FUNCS configure macro, used in test directory ++ configure script: ++ + work around (non-optimizer) bug in gcc 4.2.1 which caused ++ test-expression to be omitted from executable. ++ + force the linker to see a link-time expression of a symbol, to ++ help work around weak-symbol issues. ++ ++20110507 ++ + update discussion of MKfallback.sh script in INSTALL; normally the ++ script is used automatically via the configured makefiles. However ++ there are still occasions when it might be used directly by packagers ++ (report by Gunter Schaffler). ++ + modify misc/ncurses-config.in to omit the "-L" option from the ++ "--libs" output if the library directory is /usr/lib. ++ + change order of tests for curses.h versus ncurses.h headers in the ++ configure scripts for Ada95 and test-directories, to look for ++ ncurses.h, from fixes to tin -TD ++ + modify ncurses/tinfo/access.c to account for Tandem's root uid ++ (report by Joachim Schmitz). ++ ++20110430 ++ + modify rules in Ada95/src/Makefile.in to ensure that the PIC option ++ is not used when building a static library (report by Nicolas ++ Boulenguez): ++ + Ada95 build-fix for big-endian architectures such as sparc. This ++ undoes one of the fixes from 20110319, which added an "Unused" member ++ to representation clauses, replacing that with pragmas to suppress ++ warnings about unused bits (patch by Nicolas Boulenguez): ++ ++20110423 ++ + add check in test/configure for use_window, use_screen. ++ + add configure-checks for getopt's variables, which may be declared ++ as different types on some Unix systems. ++ + add check in test/configure for some legacy curses types of the ++ function pointer passed to tputs(). ++ + modify init_pair() to accept -1's for color value after ++ assume_default_colors() has been called (Debian #337095). ++ + modify test/background.c, adding commmand-line options to demonstrate ++ assume_default_colors() and use_default_colors(). ++ ++20110416 ++ + modify configure script/source-code to only define _POSIX_SOURCE if ++ the checks for sigaction and/or termios fail, and if _POSIX_C_SOURCE ++ and _XOPEN_SOURCE are undefined (report by Valentin Ochs). ++ + update config.guess, config.sub ++ ++20110409 ++ + fixes to build c++ binding with clang 3.0 (patch by Alexander ++ Kolesen). ++ + add check for unctrl.h in test/configure, to work around breakage in ++ some ncurses packages. ++ + add "--disable-widec" option to test/configure script. ++ + add "--with-curses-colr" and "--with-curses-5lib" options to the ++ test/configure script to address testing with very old machines. ++ + 20110404 5.9 release for upload to ftp.gnu.org + + 20110402 +@@ -100,7 +1483,7 @@ + + modify configure script to provide value for HTML_DIR in + Ada95/gen/Makefile.in, which depends on whether the Ada95 binding is + distributed separately (report by Nicolas Boulenguez). +- + modify configure script to add -g and/or -O3 to ADAFLAGS if the ++ + modify configure script to add "-g" and/or "-O3" to ADAFLAGS if the + CFLAGS for the build has these options. + + amend change from 20070324, to not add 1 to the result of getmaxx + and getmaxy in the Ada binding (report by Nicolas Boulenguez for +@@ -155,7 +1538,7 @@ + 20110212 + + regenerated html manpages. + + use _tracef() in show_where() function of tic, to work correctly with +- special case of trace configuration. ++ special case of trace configuration. + + 20110205 + + add xterm-utf8 entry as a demo of the U8 feature -TD +@@ -219,7 +1602,7 @@ + version which works with termcap. + + remove obsolete emacs "Local Variables" section from documentation + (request by Sven Joachim). +- + update doc/html/index.html to include NCURSES-Programming-HOWTO.html ++ + update doc/html/index.html to include NCURSES-Programming-HOWTO.html + (report by Sven Joachim). + + 20101128 +@@ -294,8 +1677,8 @@ + Sven Joachim). + + add parameterized cursor-controls to linux-basic (report by Dae) -TD + > patch by Juergen Pfeifer: +- + document how to build 32-bit libraries in README.MinGW +- + fixes to filename computation in mk-dlls.sh.in ++ + document how to build 32-bit libraries in README.MinGW ++ + fixes to filename computation in mk-dlls.sh.in + + use POSIX locale in mk-dlls.sh.in rather than en_US (report by Sven + Joachim). + + add a check in mk-dlls.sh.in to obtain the size of a pointer to +@@ -478,7 +1861,7 @@ + 20100417 + + modify _nc_capcmp() to work with cancelled strings. + + correct translation of "^" in _nc_infotocap(), used to transform +- terminfo to termcap strings ++ terminfo to termcap strings + + add configure --disable-rpath-hack, to allow disabling the feature + which adds rpath options for libraries in unusual places. + + improve CF_RPATH_HACK_2 by checking if the rpath option for a given +@@ -1533,8 +2916,8 @@ + that library. + + add/modify null-pointer checks in several functions for SP and/or + the WINDOW* parameter (report by Thorben Krueger). +- + fixes for field_buffer() in formw library (see Redhat Bugzilla +- #310071, patches by Miroslav Lichvar). ++ + fixes for field_buffer() in formw library (see Redhat #310071, ++ patches by Miroslav Lichvar). + + improve performance of NCURSES_CHAR_EQ code (patch by Miroslav + Lichvar). + + update/improve mlterm and rxvt terminfo entries, e.g., for +@@ -1645,7 +3028,7 @@ + + modify configure script to quiet c++ build with libtool when the + --disable-echo option is used. + + modify configure script to disable ada95 if libtool is selected, +- writing a warning message (addresses FreeBSD ports/114493). ++ writing a warning message (addresses FreeBSD #114493). + + update config.guess, config.sub + + 20070707 +@@ -2130,8 +3513,7 @@ + + workaround for 20050806 ifdef's change to allow visbuf.c to compile + when using --with-termlib --with-trace options. + + improve tgetstr() by making the return value point into the user's +- buffer, if provided (patch by Miroslav Lichvar (see Redhat Bugzilla +- #202480)). ++ buffer, if provided (patch by Miroslav Lichvar (see Redhat #202480)). + + correct libraries needed for foldkeys (report by Stanislav Ievlev) + + 20060826 +@@ -2144,10 +3526,10 @@ + source output (Debian #378783). + + modify configure script to ensure that if the C compiler is used + rather than the loader in making shared libraries, the $(CFLAGS) +- variable is also used (Redhat Bugzilla #199369). ++ variable is also used (Redhat #199369). + + port hashed-db code to db2 and db3. + + fix a bug in tgetent() from 20060625 and 20060715 changes +- (patch/analysis by Miroslav Lichvar (see Redhat Bugzilla #202480)). ++ (patch/analysis by Miroslav Lichvar (see Redhat #202480)). + + 20060805 + + updated xterm function-keys terminfo to match xterm #216 -TD +@@ -2939,7 +4321,7 @@ + of cur_term if the same output was selected. This now reuses it only + when setupterm() is called from tgetent(), which has no notion of + separate SCREENs. Note that tgetent() must be called after initscr() +- or newterm() to use this feature (Redhat Bugzilla #140326). ++ or newterm() to use this feature (Redhat #140326). + + add a check in CF_BUILD_CC macro to ensure that developer has given + the --with-build-cc option when cross-compiling (report by Alexandre + Campo). +@@ -3032,7 +4414,7 @@ + entries, e.g., so it can analyze the xterm-8bit entry. + + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin). + + correct translation of "%%" in terminfo format to termcap, e.g., +- using "tic -C" (Redhat Bugzilla #130921). ++ using "tic -C" (Redhat #130921). + + modified configure script CF_XOPEN_SOURCE macro to ensure that if + it defines _POSIX_C_SOURCE, that it defines it to a specific value + (comp.os.stratus newsgroup comment). +@@ -3043,9 +4425,9 @@ + However that did find a coding error in Assume_Default_Colors(). + + modify several terminfo entries to ensure xterm mouse and cursor + visibility are reset in rs2 string: hurd, putty, gnome, +- konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The +- xterm entries are left alone - old ones for compatibility, and the +- new ones do not require this change. -TD ++ konsole-base, mlterm, Eterm, screen (Debian #265784, Debian #55637). ++ The xterm entries are left alone - old ones for compatibility, and ++ the new ones do not require this change. -TD + + 20040814 + + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators +@@ -3076,8 +4458,8 @@ + + modify "tic -cv" to ignore delays when comparing strings. Also + modify it to ignore a canceled sgr string, e.g., for terminals which + cannot properly combine attributes in one control sequence. +- + corrections for gnome and konsole entries (Redhat Bugzilla #122815, +- patch by Hans de Goede) ++ + corrections for gnome and konsole entries (Redhat #122815, patch by ++ Hans de Goede) + > terminfo updates -TD + + make ncsa-m rmacs/smacs consistent with sgr + + add sgr, rc/sc and ech to syscons entries +@@ -3090,7 +4472,7 @@ + > terminfo updates -TD + + add xterm-pc-fkeys + + review/update gnome and gnome-rh90 entries (prompted by Redhat +- Bugzilla #122815). ++ #122815). + + review/update konsole entries + + add sgr, correct sgr0 for kterm and mlterm + + correct tsl string in kterm +@@ -3503,7 +4885,7 @@ + generated when cross-compiling for DJGPP. + + modify infocmp to omit check for $TERM for operations that do not + require it, e.g., "infocmp -e" used to build fallback list (report by +- Koblinger Egmont). ++ Egmont Koblinger). + + 20031004 + + add terminfo entries for DJGPP. +@@ -4204,7 +5586,7 @@ + + add a check in kgetch() for cooked characters in the fifo to avoid + calling fifo_push() when a KEY_RESIZE is available (report/analysis + by Sam Varshavchik <mrsam@courier-mta.com>). +- + fix an overlooked case for bugzilla #68199 (Philippe Blain). ++ + fix an overlooked case for Redhat #68199 (Philippe Blain). + + ensure clearerr() is called before using ferror() e.g., in + lib_screen.c (report by Philippe Blain). + +@@ -4212,7 +5594,7 @@ + + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific + pointers for curscr/stdscr/newscr when scr_save() and scr_restore() + modify the global curscr/stdscr/newscr variables. Fixes Redhat +- bugzilla #68199 dated 2002-07-07. ++ #68199. + + add checks for null pointer in calls to tparm() and tgoto() based on + FreeBSD bug report. If ncurses were built with termcap support, and + the first call to tgoto() were a zero-length string, the result would +@@ -4245,7 +5627,7 @@ + Olaf Buddenhagen <olafBuddenhagen@web.de>). + + modified wresize() to ensure that a failed realloc will not corrupt + the window structure, and to make subwindows fit within the resized +- window (completes Debian #87678, #101699) ++ window (completes Debian #87678, Debian #101699) + + 20020803 + + fix an off-by-one in lib_pad.c check for limits of pad (patch by +@@ -4940,9 +6322,9 @@ + which may be in libutf8. + + remove some unnecessary text from curs_extend.3x and + default_colors.3x which caused man-db to make incorrect symbolic +- links (Debian bug report #99550). ++ links (Debian #99550). + + add configure check if cast for _IO_va_list is needed to compile +- C++ vscan code (Debian bug report #97945). ++ C++ vscan code (Debian #97945). + > several patches from Sven Verdoolaege: + + correct code that used non-standard auto-initialization of a struct, + which gcc allows (report by Larry Virden). +@@ -5077,7 +6459,7 @@ + + add some examples of customizing screen's terminfo: + screen.xterm-xfree86, screen.xterm-r6, screen.teraterm -TD + + modify screen's terminfo entry to match the khome/kend in screen +- 3.09.08 (Debian bug report #92215). ++ 3.09.08 (Debian #92215). + + correct a memory leak in forms library (report by Stefan Vogtner + <stefan@vogtner.de>) (patch by Juergen Pfeifer). + +@@ -5091,12 +6473,12 @@ + + add .cc.ii rule to c++ makefile, to get preprocessor output for + debugging. + + correct configure script handling of @keyword@ substitutions when the +- --with-manpage-renames option is given (cf: 20000715, fixes Debian +- bug #89939). ++ --with-manpage-renames option is given (cf: 20000715, fixes Debian ++ #89939). + + report stack underflow/overflow in tparm() when tic -cv option is + given. + + remove spurious "%|" operator from xterm-xfree86 terminfo entry, +- (reported by Adam Costello <amc@cs.berkeley.edu>, Debian bug #89222). ++ (reported by Adam Costello <amc@cs.berkeley.edu>, Debian #89222). + + 20010310 + + cleanup of newdemo.c, fixing some ambiguous expressions noted by gcc +@@ -5800,7 +7182,7 @@ + + correct spelling error in terminfo entry name: bq300-rv was given as + bg300-rv in esr's version. + + modify redrawwin() macro so its parameter is fully parenthesized +- (fixes Debian bug report #61088). ++ (fixes Debian #61088). + + correct formatting error in dump_entry() which set incorrect column + value when no newline trimming was needed at the end of an entry, + before appending "use=" clauses (cf: 960406). +@@ -6530,7 +7912,7 @@ + handling in lynx (reported by Kim DeVaughn). + + 990306 pre-release +- + add -G option to tic and infocmp, to reverse the -g option. ++ + add -G option to tic and infocmp, to reverse the "-g" option. + + recode functions in name_match.c to avoid use of strncpy, which + caused a 4-fold slowdown in tic (cf: 980530). + + correct a few warnings about sign-extension in recent changes. +@@ -6901,7 +8283,7 @@ + since that is a little more efficient. + + minor correction to infocmp to avoid displaying "difference" between + two capabilities that are rendered in equivalent forms. +- + add -g option to tic/infocmp to force character constants to be ++ + add "-g" option to tic/infocmp to force character constants to be + displayed in quoted form. Otherwise their decimal values are shown. + + modify setupterm so that cancelled strings are treated the same as + absent strings, cancelled and absent booleans false (does not affect +@@ -8979,15 +10361,18 @@ + + correction to #317. + > patch 317 (ESR): + + re-add _nc_hash_map +- + modify EmitRange to maintain position as per original design. +- + add hashtest.c, program to time the hashmap optimization. ++ + modify EmitRange to maintain position as per original design ++ (patch by A. Lukyanov). ++ + modify test/ncurses.c and tputs, etc., to allow trace counting ++ output characters. ++ + add hashtest.c program to time the hashmap optimization. + > patch 316 (ESR): + + add logic to deal with magic-cookie (how was this tested?) + (lib_doupdate.c). + + add ncurses.c driver for magic-cookie, some fixes to ncurses.c + > patch 315 (ESR): +- + merged Alexander V Lukyanov's patch to use ech and rep - untested +- (lib_doupdate.c). ++ + merge changes to lib_doupdate.c to use ech and rep - untested ++ (patch by Alexander V Lukyanov). + + modified handling of interrupted system calls - untested + (lib_getch.c, lib_twait.c). + + new function _nc_mvcur_resume() +@@ -9059,12 +10444,12 @@ + + corrected typo in dtterm description. + > patch 313 (ESR): + + add dtterm description +- + clarify ncurses 'i' test (drop vscanf subtest) ++ + clarify ncurses 'i' test (drop mvwscanw subtest) + + 960810 - snapshot + + correct nl()/nonl() to work as per SVr4 & XSI. + + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code) +- + refine configure-test for -g option (Tim Mooney). ++ + refine configure-test for "-g" option (Tim Mooney). + + correct interaction between O_BLANK and NEW_LINE request in form + library (Juergen Pfeifer) + +@@ -9073,7 +10458,8 @@ + > patch 312 (ESR): + correct terminfo.src corrupted by #310 + > patch 311 (ESR): +- + fix idlok() and idcok() and the default of the idlok switch. ++ + fix idlok() and idcok() and the default of the idlok switch (report ++ by Ville Sulko). + + 960803 - snapshot + + corrected tparm to handle capability strings without explicit pop +@@ -9083,7 +10469,7 @@ + > patch 310 (ESR): + + documentation and prototyping errors for has_color, immedok and idcok + (reported by William P Setzer <wsetzer@pams.ncsu.edu>) +- + updated qnx terminfo entry (by Michael Hunter) ++ + updated qnx terminfo entry (patch by Michael Hunter) + + 960730 + + eliminate quoted includes in ncurses subdirectory, ensure config.h +@@ -9095,7 +10481,7 @@ + + call cbreak() in initscr(), as per XSI & SVr4. + + turn off hardware echo in initscr() as per XSI & SVr4 + > patch 309 (ESR): +- + terminfo changes (9.3.10), from BRL ++ + terminfo changes (9.3.9), from BRL + + add more checks to terminfo parser. + + add more symbols to infocmp. + +@@ -9114,6 +10500,7 @@ + > patch 308 (ESR): + + terminfo changes (9.3.8) + + modified logic of error-reporting in terminfo parser ++ + fix option-processing bug in toe. + + 960713 - snapshot + + always check for <sys/bsdtypes.h> since ISC needs it to declare +@@ -9122,9 +10509,19 @@ + by Juergen Pfeifer, Mike Long) + + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer) + + corrected prototype for delay_output() -- bump ABI to 3.2 +- + terminfo patches #306/307 (ESR). ++ + patch 307 (ESR): ++ + enable more translations of nonstandard caps, and document them. ++ + misc/terminfo.src update to 9.13.8 ++ + patch 306 (ESR): + + moved logic that filters out rmul and rmso from setupterm to newterm + where it is less likely to interfere with termcap applications. ++ + cosmetic fixes to test/ncurses.c ++ + modify open() call in ncurses/read_entry.c to use O_RDONLY symbol ++ rather than constant (report by mib). ++ + misc/terminfo.src sgr0 and acsc changes (report by Philippe De ++ Muyter). ++ + modify ncurses/comp_parse.c so that entries containing a "+" can ++ have missing rmcup vs smcup. + + 960707 + + rollback ESR's #305 change to terminfo.src (it breaks existing +@@ -9139,7 +10536,6 @@ + + make lib_vidattr.c more readable using macros. + + filter out rmul, rmso that conflict with sgr0 when reading terminal + descriptions. +- + added sanity-checking of various paired string attributes (ESR). + + work around autoconf bug, force $INSTALL to absolute path + (reported by Zeyd). + + modify man-page install for BSDI to install preformatted .0 files +@@ -9152,6 +10548,12 @@ + + disable scrollok during the ncurses 'p' test; if it is enabled the + stdscr will scroll when putting the box-corners in the lower-right + of the screen. ++ > patch 305 (ESR): ++ + added sanity-checking of various paired string attributes. ++ + misc/terminfo.src update to 9.13.7 (report by A. Lukyanov). ++ + modify man/Makefile.in to make terminfo.5 during normal build. ++ > patch 304 (ESR): ++ + corrected allocation-length for $HOME/.terminfo path. + + 960629 - snapshot + + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for +@@ -9234,6 +10636,7 @@ + + better fix for nvi refresh-bug (Rick Marshall) + + fix for bug in handling of interrupted keystroke waits, + (Werner Fleck). ++ + misc/ncurses-intro.html syntax fix (Kajiyama Tamito). + + 960601 - snapshot + + auto-configure man-page compression-format and renames for Debian. +@@ -9248,7 +10651,7 @@ + + enhancement to the control over the new PC-style soft key format. + allow caller now to select whether or not one wants to have + the index-line; see curs_slk.3x for documentation (Juergen Pfeifer). +- + typos, don't use inline with -g (Philippe De Muyter) ++ + typos, don't use inline with "-g" (Philippe De Muyter) + + fixes for menus & wattr-, slk-functions (Juergen Pfeifer) + + 960526 - snapshot +@@ -9263,6 +10666,9 @@ + + include sys/types.h in case stdlib.h does not declare size_t. + + fixes for makefile (Tim Mooney) + + fixes for menus & forms (Juergen Pfeifer) ++ > patch 302 (ESR): ++ + improve hash function (suggested by Alexander V Lukyanov). ++ + 9.13.4 update for terminfo.src + + 960518 - snapshot + + revised ncurses.c panner test, let pad abut all 4 sides of screen. +@@ -9275,6 +10681,8 @@ + confusion, and made this check for the /usr/lib/terminfo pre-existing + directory. + > patches 299-301 (ESR): ++ + html fixes (Phillippe de Muyter). ++ + fix typo in ncurses-intro.html (report by Fabrizio Polacco). + + added hashmap.c + + mods to tracing, especially for ACS chars. + + corrected off-by-one in IDCtransform. +@@ -9294,13 +10702,21 @@ + > patches 297, 298 (ESR): + + implement TERMINFO_DIRS, and -o option of tic + + added TRACE_IEVENT +- + removed boolean version of 'getm' +- + added lib_print.c (for Rick Marshall) +- + added has_key() ++ + fix REQ_TOGGLE_ITEM in menu/menu_driver.c; it could select but not ++ deselect. ++ + added lib_print.c (request by Rick Marshall). ++ + added has_key() (request by Juergen Pfeifer). ++ + do not issue clrtoeol or clrtobot if the relevant portion of the line ++ is already blank (analysis by Keith Bostic). ++ + add parentheses for parameters of COLOR_PAIR and PAIR_NUMBER macros ++ (analysis by Jurgen Eidt). ++ + update screen's notion of cursor position in endwin() (analysis by ++ Alexander Lukyanov). + + added 't' to ncurses.c test. + + moved delay_output() to lib_tputs.c + + removed tparam() (was added in 1.9.9, but conflicts with emacs and + is not part of X/Open Curses). ++ + removed boolean version of 'getm'. + + misc cursor & optimization fixes. + + 960504 - snapshot +@@ -9326,11 +10742,20 @@ + + make TIOCGWINSZ configure test less stringent, in case user + configures via terminal that cannot get screen size. + > patches 295, 296 (ESR): +- + new "-e" option of tic. +- + fix for "infocmp -e". +- + restore working-directory in read_termcap.c + + split lib_kernel.c, lib_setup.c and names.c in order to reduce + overhead for programs that use only termcap features. ++ + new "-e" and "-h" options of tic (request by Tony Nugent). ++ + fix bug in mandatory-delay logic in lib_tputs.c (report by Sven ++ Verdoolaege). ++ + fix for "infocmp -e" to emit correct initializers (reported by Manual ++ J Novoa III). ++ + restore working-directory in read_termcap.c (report by Kayvan ++ Sylvan). ++ + use "-h" option on Solaris when generating shared libraries on ++ Solaris 2.5 to record the library name in the file, for assisting ++ the loader (patch by Scott Kramer). ++ + undo patch #294 changes to form and menu libraries (request by ++ Juergen Pfeifer). + + 960418 - snapshot + + use autoconf 2.9 +@@ -9338,10 +10763,22 @@ + definitions via <termios.h>, modified macros in lib_raw.c to avoid + K&R-style substitution) + > patches 293, 294 (ESR): +- + mods to wgetch() in cooked mode +- + corrected askuser() logic in tset +- + correct interaction of endwin() with mouse processing ++ + rewrite wsyncup(), wsyncdown(), as well as small fixes to form and ++ menu libraries to fix echo-breakage introduced by 1.8.9, 1.9.9e ++ changes (patches by Juergen Pfeifer). ++ + fix compile under QNX 4.2 by defining ONLCR in lib_raw.c when ++ __QNX__ is defined (patch by Michael Hunter). ++ + modify setupterm() to match documentation for its return value, fix ++ newterm to work with this change (report by Emmet Lazich). ++ + add checks in getch() for error, return ERR as appropriate (report by ++ Emmet Lazich). ++ + mods to wgetch() in cooked mode (report by Pete Seebach). ++ + corrected askuser() logic in tset (patch by Remco Treffkorn). ++ + correct interaction of endwin() with mouse processing (report by ++ Michael Elkins). + + added trace support for TTY flags ++ + update terminfo.src to 9.13.1 ++ + FreeBSD console entries (patch by Andrew Chernov). + + 960406 + + fixes for NeXT, ISC and HPUX auto-configure +diff -Naur ncurses-5.9/package/debian/changelog ncurses-5.9.patch/package/debian/changelog +--- ncurses-5.9/package/debian/changelog 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/changelog 2014-09-01 16:34:19.497887066 +0200 +@@ -0,0 +1,11 @@ ++ncurses6 (5.9-20140323) unstable; urgency=low ++ ++ * latest weekly patch ++ ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 23 Mar 2014 16:59:54 -0400 ++ ++ncurses6 (5.9-20120608) unstable; urgency=low ++ ++ * initial release ++ ++ -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 08 Jun 2012 07:54:29 -0400 +diff -Naur ncurses-5.9/package/debian/compat ncurses-5.9.patch/package/debian/compat +--- ncurses-5.9/package/debian/compat 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/compat 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1 @@ ++5 +diff -Naur ncurses-5.9/package/debian/control ncurses-5.9.patch/package/debian/control +--- ncurses-5.9/package/debian/control 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/control 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1,16 @@ ++Source: ncurses6 ++Section: libdevel ++Priority: optional ++Maintainer: Thomas E. Dickey <dickey@invisible-island.net> ++Homepage: http://invisible-island.net/ncurses/ ++Build-Depends: debhelper (>= 7) ++Standards-Version: 3.8.2 ++ ++Package: ncurses6 ++Architecture: any ++Depends: ${misc:Depends} ++Description: shared libraries for terminal handling ++ The ncurses library routines are a terminal-independent method of ++ updating character screens with reasonable optimization. ++ . ++ This package is used for testing ABI 6. +diff -Naur ncurses-5.9/package/debian/copyright ncurses-5.9.patch/package/debian/copyright +--- ncurses-5.9/package/debian/copyright 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/copyright 2014-09-01 16:33:22.520792399 +0200 +@@ -0,0 +1,112 @@ ++This package is used for testing builds of ncurses. ++ ++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. ++Copyright © 2001 by Pradeep Padala ++ ++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. ++ ++ ++Copyright (C) 1994 X Consortium ++ ++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, 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 ++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++Except as contained in this notice, the name of the X Consortium shall not ++be used in advertising or otherwise to promote the sale, use or other deal- ++ings in this Software without prior written authorization from the X Consor- ++tium. ++ ++ ++Copyright (c) 1980, 1991, 1992, 1993 ++ The Regents of the University of California. All rights reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions ++are met: ++1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++3. Neither the name of the University nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGE. ++ ++ ++Copyright 1996-2013,2014 by Thomas E. Dickey ++ ++ All Rights Reserved ++ ++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, 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 LISTED COPYRIGHT HOLDER(S) 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. ++ ++-- vile: txtmode file-encoding=utf-8 +diff -Naur ncurses-5.9/package/debian/rules ncurses-5.9.patch/package/debian/rules +--- ncurses-5.9/package/debian/rules 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/rules 2014-09-01 16:34:19.473887046 +0200 +@@ -0,0 +1,125 @@ ++#!/usr/bin/make -f ++# MAde with the aid of dh_make, by Craig Small ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Some lines taken from debmake, by Cristoph Lameter. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion ++CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic ++ ++MY_DIR=/usr/local/ncurses6 ++MYDATA=/usr/local/ncurses/share/terminfo ++BUILD_DIR=$(CURDIR)/debian/ncurses6 ++ ++CFLAGS = $(CC_NORMAL) ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL_PROGRAM += -s ++endif ++ ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ ++ RPATH_LIST=../lib:$(MY_DIR)/lib \ ++ CFLAGS="$(CFLAGS)" ./configure \ ++ --host=$(DEB_HOST_GNU_TYPE) \ ++ --build=$(DEB_BUILD_GNU_TYPE) \ ++ --prefix=$(MY_DIR) \ ++ --with-default-terminfo-dir=$(MYDATA) \ ++ --with-terminfo-dirs=$(MYDATA):/usr/share/terminfo \ ++ --disable-echo \ ++ --disable-getcap \ ++ --disable-leaks \ ++ --disable-macros \ ++ --disable-termcap \ ++ --enable-const \ ++ --enable-ext-colors \ ++ --enable-ext-mouse \ ++ --enable-hard-tabs \ ++ --enable-interop \ ++ --enable-rpath \ ++ --enable-sp-funcs \ ++ --enable-warnings \ ++ --enable-widec \ ++ --verbose \ ++ --with-chtype=uint32_t \ ++ --with-mmask_t=uint32_t \ ++ --with-develop \ ++ --with-shared \ ++ --with-termlib \ ++ --with-ticlib \ ++ --with-trace \ ++ --with-cxx-shared \ ++ --with-xterm-kbs=DEL \ ++ --without-ada \ ++ --without-debug \ ++ --without-normal ++ ++ touch configure-stamp ++ ++build: build-stamp ++build-stamp: configure-stamp ++ dh_testdir ++ ++ $(MAKE) ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ ++ [ ! -f makefile ] || $(MAKE) distclean ++ ++ rm -f configure-stamp build-stamp install-stamp ++ ++ dh_clean ++ ++install: install-stamp ++install-stamp: build-stamp ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ $(MAKE) install.libs install.progs DESTDIR=$(BUILD_DIR) ++ ++ ( cd test && make ncurses LOCAL_LIBDIR=$(MY_DIR)/lib ) ++ mv test/ncurses $(BUILD_DIR)$(MY_DIR)/bin/ncurses6 ++ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# No binary-indep target. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs NEWS ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install install-stamp +diff -Naur ncurses-5.9/package/debian/source/format ncurses-5.9.patch/package/debian/source/format +--- ncurses-5.9/package/debian/source/format 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/source/format 2014-09-01 16:33:22.520792399 +0200 +@@ -0,0 +1 @@ ++3.0 (quilt) +diff -Naur ncurses-5.9/package/debian/watch ncurses-5.9.patch/package/debian/watch +--- ncurses-5.9/package/debian/watch 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian/watch 2014-09-01 16:33:22.520792399 +0200 +@@ -0,0 +1,4 @@ ++version=3 ++ ++opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \ ++ debian uupdate +diff -Naur ncurses-5.9/package/debian-mingw/changelog ncurses-5.9.patch/package/debian-mingw/changelog +--- ncurses-5.9/package/debian-mingw/changelog 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/changelog 2014-09-01 16:34:19.497887066 +0200 +@@ -0,0 +1,11 @@ ++ncurses6 (5.9-20140323) unstable; urgency=low ++ ++ * latest weekly patch ++ ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 23 Mar 2014 16:59:54 -0400 ++ ++ncurses6 (5.9-20131005) unstable; urgency=low ++ ++ * initial release ++ ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Oct 2013 13:35:29 -0400 +diff -Naur ncurses-5.9/package/debian-mingw/compat ncurses-5.9.patch/package/debian-mingw/compat +--- ncurses-5.9/package/debian-mingw/compat 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/compat 2014-09-01 16:33:22.518792397 +0200 +@@ -0,0 +1 @@ ++5 +diff -Naur ncurses-5.9/package/debian-mingw/control ncurses-5.9.patch/package/debian-mingw/control +--- ncurses-5.9/package/debian-mingw/control 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/control 2014-09-01 16:33:22.518792397 +0200 +@@ -0,0 +1,16 @@ ++Source: ncurses6 ++Section: libdevel ++Priority: optional ++Maintainer: Thomas E. Dickey <dickey@invisible-island.net> ++Homepage: http://invisible-island.net/ncurses/ ++Build-Depends: debhelper (>= 7) ++Standards-Version: 3.8.2 ++ ++Package: mingw32-ncurses6 ++Architecture: any ++Depends: ${misc:Depends} ++Description: shared libraries for terminal handling ++ The ncurses library routines are a terminal-independent method of ++ updating character screens with reasonable optimization. ++ . ++ This package is used for testing ABI 6 with the MinGW 32-bit port. +diff -Naur ncurses-5.9/package/debian-mingw/copyright ncurses-5.9.patch/package/debian-mingw/copyright +--- ncurses-5.9/package/debian-mingw/copyright 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/copyright 2014-09-01 16:33:22.518792397 +0200 +@@ -0,0 +1,112 @@ ++This package is used for testing builds of ncurses. ++ ++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. ++Copyright © 2001 by Pradeep Padala ++ ++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. ++ ++ ++Copyright (C) 1994 X Consortium ++ ++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, 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 ++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++Except as contained in this notice, the name of the X Consortium shall not ++be used in advertising or otherwise to promote the sale, use or other deal- ++ings in this Software without prior written authorization from the X Consor- ++tium. ++ ++ ++Copyright (c) 1980, 1991, 1992, 1993 ++ The Regents of the University of California. All rights reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions ++are met: ++1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++3. Neither the name of the University nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGE. ++ ++ ++Copyright 1996-2013,2014 by Thomas E. Dickey ++ ++ All Rights Reserved ++ ++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, 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 LISTED COPYRIGHT HOLDER(S) 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. ++ ++-- vile: txtmode file-encoding=utf-8 +diff -Naur ncurses-5.9/package/debian-mingw/rules ncurses-5.9.patch/package/debian-mingw/rules +--- ncurses-5.9/package/debian-mingw/rules 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/rules 2014-09-01 16:34:19.472887057 +0200 +@@ -0,0 +1,132 @@ ++#!/usr/bin/make -f ++# Made with the aid of dh_make, by Craig Small ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Some lines taken from debmake, by Cristoph Lameter. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++BUILD_CC = gcc ++ ++CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion ++CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic ++ ++TARGET = i686-w64-mingw32 ++MINGW_TOP = /usr/$(TARGET) ++MINGW_TMP = $(CURDIR)/debian/mingw32-ncurses6 ++ ++CFLAGS = $(CC_NORMAL) ++ ++CONFIG_OPTIONS = \ ++ --disable-echo \ ++ --disable-db-install \ ++ --disable-getcap \ ++ --disable-hard-tabs \ ++ --disable-leaks \ ++ --disable-macros \ ++ --disable-overwrite \ ++ --disable-termcap \ ++ --enable-const \ ++ --enable-ext-colors \ ++ --enable-ext-mouse \ ++ --enable-interop \ ++ --enable-sp-funcs \ ++ --enable-term-driver \ ++ --enable-warnings \ ++ --enable-widec \ ++ --verbose \ ++ --with-chtype=uint32_t \ ++ --with-mmask_t=uint32_t \ ++ --with-cxx-shared \ ++ --with-develop \ ++ --with-fallbacks=unknown,rxvt \ ++ --with-shared \ ++ --with-tparm-arg=intptr_t \ ++ --with-trace \ ++ --with-xterm-kbs=DEL \ ++ --without-ada \ ++ --without-debug \ ++ --without-manpages \ ++ --without-progs \ ++ --without-tests ++ ++export CFLAGS BUILD_CC ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL_PROGRAM += -s ++endif ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ ++ CC=$(TARGET)-gcc \ ++ CFLAGS="$(CFLAGS)" \ ++ ./configure \ ++ --host=$(TARGET) \ ++ --target=$(TARGET) \ ++ --prefix=$(MINGW_TOP) \ ++ --with-build-cc=$(BUILD_CC) \ ++ $(CONFIG_OPTIONS) ++ ++ touch configure-stamp ++ ++build: build-stamp ++build-stamp: configure-stamp ++ dh_testdir ++ ++ $(MAKE) ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ ++ [ ! -f makefile ] || $(MAKE) distclean ++ ++ rm -f configure-stamp build-stamp install-stamp ++ ++ dh_clean ++ ++install: install-stamp ++install-stamp: build-stamp ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ $(MAKE) install.libs DESTDIR=$(MINGW_TMP) ++ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# No binary-indep target. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs NEWS ++ # dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install install-stamp +diff -Naur ncurses-5.9/package/debian-mingw/source/format ncurses-5.9.patch/package/debian-mingw/source/format +--- ncurses-5.9/package/debian-mingw/source/format 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/source/format 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1 @@ ++3.0 (quilt) +diff -Naur ncurses-5.9/package/debian-mingw/watch ncurses-5.9.patch/package/debian-mingw/watch +--- ncurses-5.9/package/debian-mingw/watch 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw/watch 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1,4 @@ ++version=3 ++ ++opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \ ++ debian uupdate +diff -Naur ncurses-5.9/package/debian-mingw64/changelog ncurses-5.9.patch/package/debian-mingw64/changelog +--- ncurses-5.9/package/debian-mingw64/changelog 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/changelog 2014-09-01 16:34:19.497887066 +0200 +@@ -0,0 +1,11 @@ ++ncurses6 (5.9-20140323) unstable; urgency=low ++ ++ * latest weekly patch ++ ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 23 Mar 2014 16:59:54 -0400 ++ ++ncurses6 (5.9-20131005) unstable; urgency=low ++ ++ * initial release ++ ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Oct 2013 13:35:29 -0400 +diff -Naur ncurses-5.9/package/debian-mingw64/compat ncurses-5.9.patch/package/debian-mingw64/compat +--- ncurses-5.9/package/debian-mingw64/compat 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/compat 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1 @@ ++5 +diff -Naur ncurses-5.9/package/debian-mingw64/control ncurses-5.9.patch/package/debian-mingw64/control +--- ncurses-5.9/package/debian-mingw64/control 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/control 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1,16 @@ ++Source: ncurses6 ++Section: libdevel ++Priority: optional ++Maintainer: Thomas E. Dickey <dickey@invisible-island.net> ++Homepage: http://invisible-island.net/ncurses/ ++Build-Depends: debhelper (>= 7) ++Standards-Version: 3.8.2 ++ ++Package: mingw64-ncurses6 ++Architecture: any ++Depends: ${misc:Depends} ++Description: shared libraries for terminal handling ++ The ncurses library routines are a terminal-independent method of ++ updating character screens with reasonable optimization. ++ . ++ This package is used for testing ABI 6 with the MinGW 64-bit port. +diff -Naur ncurses-5.9/package/debian-mingw64/copyright ncurses-5.9.patch/package/debian-mingw64/copyright +--- ncurses-5.9/package/debian-mingw64/copyright 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/copyright 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1,112 @@ ++This package is used for testing builds of ncurses. ++ ++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. ++Copyright © 2001 by Pradeep Padala ++ ++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. ++ ++ ++Copyright (C) 1994 X Consortium ++ ++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, 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 ++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++Except as contained in this notice, the name of the X Consortium shall not ++be used in advertising or otherwise to promote the sale, use or other deal- ++ings in this Software without prior written authorization from the X Consor- ++tium. ++ ++ ++Copyright (c) 1980, 1991, 1992, 1993 ++ The Regents of the University of California. All rights reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions ++are met: ++1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++3. Neither the name of the University nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGE. ++ ++ ++Copyright 1996-2013,2014 by Thomas E. Dickey ++ ++ All Rights Reserved ++ ++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, 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 LISTED COPYRIGHT HOLDER(S) 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. ++ ++-- vile: txtmode file-encoding=utf-8 +diff -Naur ncurses-5.9/package/debian-mingw64/rules ncurses-5.9.patch/package/debian-mingw64/rules +--- ncurses-5.9/package/debian-mingw64/rules 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/rules 2014-09-01 16:34:19.472887057 +0200 +@@ -0,0 +1,132 @@ ++#!/usr/bin/make -f ++# Made with the aid of dh_make, by Craig Small ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Some lines taken from debmake, by Cristoph Lameter. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++BUILD_CC = gcc ++ ++CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion ++CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic ++ ++TARGET = x86_64-w64-mingw32 ++MINGW_TOP = /usr/$(TARGET) ++MINGW_TMP = $(CURDIR)/debian/mingw64-ncurses6 ++ ++CFLAGS = $(CC_NORMAL) ++ ++CONFIG_OPTIONS = \ ++ --disable-echo \ ++ --disable-db-install \ ++ --disable-getcap \ ++ --disable-hard-tabs \ ++ --disable-leaks \ ++ --disable-macros \ ++ --disable-overwrite \ ++ --disable-termcap \ ++ --enable-const \ ++ --enable-ext-colors \ ++ --enable-ext-mouse \ ++ --enable-interop \ ++ --enable-sp-funcs \ ++ --enable-term-driver \ ++ --enable-warnings \ ++ --enable-widec \ ++ --verbose \ ++ --with-chtype=uint32_t \ ++ --with-mmask_t=uint32_t \ ++ --with-cxx-shared \ ++ --with-develop \ ++ --with-fallbacks=unknown,rxvt \ ++ --with-shared \ ++ --with-tparm-arg=intptr_t \ ++ --with-trace \ ++ --with-xterm-kbs=DEL \ ++ --without-ada \ ++ --without-debug \ ++ --without-manpages \ ++ --without-progs \ ++ --without-tests ++ ++export CFLAGS BUILD_CC ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL_PROGRAM += -s ++endif ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ ++ CC=$(TARGET)-gcc \ ++ CFLAGS="$(CFLAGS)" \ ++ ./configure \ ++ --host=$(TARGET) \ ++ --target=$(TARGET) \ ++ --prefix=$(MINGW_TOP) \ ++ --with-build-cc=$(BUILD_CC) \ ++ $(CONFIG_OPTIONS) ++ ++ touch configure-stamp ++ ++build: build-stamp ++build-stamp: configure-stamp ++ dh_testdir ++ ++ $(MAKE) ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ ++ [ ! -f makefile ] || $(MAKE) distclean ++ ++ rm -f configure-stamp build-stamp install-stamp ++ ++ dh_clean ++ ++install: install-stamp ++install-stamp: build-stamp ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ $(MAKE) install.libs DESTDIR=$(MINGW_TMP) ++ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# No binary-indep target. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs NEWS ++ # dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install install-stamp +diff -Naur ncurses-5.9/package/debian-mingw64/source/format ncurses-5.9.patch/package/debian-mingw64/source/format +--- ncurses-5.9/package/debian-mingw64/source/format 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/source/format 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1 @@ ++3.0 (quilt) +diff -Naur ncurses-5.9/package/debian-mingw64/watch ncurses-5.9.patch/package/debian-mingw64/watch +--- ncurses-5.9/package/debian-mingw64/watch 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/debian-mingw64/watch 2014-09-01 16:33:22.519792399 +0200 +@@ -0,0 +1,4 @@ ++version=3 ++ ++opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \ ++ debian uupdate +diff -Naur ncurses-5.9/package/mingw-ncurses.nsi ncurses-5.9.patch/package/mingw-ncurses.nsi +--- ncurses-5.9/package/mingw-ncurses.nsi 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/mingw-ncurses.nsi 2014-09-01 16:34:19.497887066 +0200 +@@ -0,0 +1,190 @@ ++; $Id: mingw-ncurses.nsi,v 1.33 2014/03/23 20:59:54 tom Exp $ ++ ++; TODO add examples ++; TODO bump ABI to 6 ++ ++; Define the application name ++!define APPNAME "ncurses" ++!define EXENAME "ncurses.exe" ++ ++!define VERSION_MAJOR "5" ++!define VERSION_MINOR "9" ++!define VERSION_YYYY "2014" ++!define VERSION_MMDD "0323" ++!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} ++ ++!define MY_ABI "5" ++!define MY_MODEL "w" ++ ++!define SUBKEY "ncurses" ++ ++!define INSTALL "${APPNAME} (Console)" ++!define VERSION ${VERSION_MAJOR}.${VERSION_MINOR} ++!define VERSION_FULL ${VERSION}-${VERSION_PATCH} ++ ++; Main Install settings ++Name "${INSTALL}" ++InstallDir "c:\mingw" ++InstallDirRegKey HKLM "Software\${SUBKEY}" "$INSTDIR\bin" ++OutFile "NSIS-Output\${APPNAME}-${VERSION_FULL}-setup.exe" ++ ++CRCCheck on ++SetCompressor /SOLID lzma ++ ++VIAddVersionKey ProductName "${SUBKEY}" ++VIAddVersionKey CompanyName "http://invisible-island.net" ++VIAddVersionKey FileDescription "NCurses Installer (MinGW)" ++VIAddVersionKey FileVersion ${VERSION_FULL} ++VIAddVersionKey ProductVersion ${VERSION_FULL} ++VIAddVersionKey Comments "This installer was built with NSIS and cross-compiling to MinGW." ++VIAddVersionKey InternalName "${APPNAME}-${VERSION_FULL}-setup.exe" ++; This is a dotted set of numbers limited to 16-bits each ++VIProductVersion "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_YYYY}.${VERSION_MMDD}" ++ ++; Modern interface settings ++!include "MUI.nsh" ++ ++!define MUI_ABORTWARNING ++;!define MUI_FINISHPAGE_RUN ++;"$INSTDIR\bin\${EXENAME}" ++ ++!insertmacro MUI_PAGE_WELCOME ++!insertmacro MUI_PAGE_LICENSE "..\COPYING" ++!insertmacro MUI_PAGE_COMPONENTS ++!insertmacro MUI_PAGE_DIRECTORY ++!insertmacro MUI_PAGE_INSTFILES ++!insertmacro MUI_PAGE_FINISH ++ ++!insertmacro MUI_UNPAGE_CONFIRM ++!insertmacro MUI_UNPAGE_INSTFILES ++ ++; Set languages (first is default language) ++!insertmacro MUI_LANGUAGE "English" ++!insertmacro MUI_RESERVEFILE_LANGDLL ++ ++InstType "Full" ; SectionIn 1 ++InstType "Typical" ; SectionIn 2 ++InstType "Minimal" ; SectionIn 3 ++ ++Section "${APPNAME}" Section1 ++ ++ SectionIn 1 2 3 ++ ++ ; Set Section properties ++ SetOverwrite on ++ ++ ; Set Section Files and Shortcuts ++ SetOutPath "$INSTDIR\bin" ++ ++ File ".\bin\*.dll" ++ ++ SetOutPath "$INSTDIR\share\${APPNAME}" ++ File /oname=README.txt "..\README" ++ File /oname=README-mingw.txt "..\README.mingw" ++ ++ CreateDirectory "$SMPROGRAMS\${INSTALL}" ++ CreateShortCut "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk" "$INSTDIR\bin\${EXENAME}" ++ CreateShortCut "$SMPROGRAMS\${INSTALL}\Uninstall.lnk" "$INSTDIR\uninstall.exe" ++ ++SectionEnd ++ ++Section "development" Section2 ++ ++ SectionIn 1 2 ++ ++ ; Set Section properties ++ SetOverwrite on ++ ++ ; Set Section Files and Shortcuts ++ SetOutPath "$INSTDIR\share\${APPNAME}" ++ ++ SetOutPath "$INSTDIR\include\${APPNAME}${MY_MODEL}" ++ ++ File ".\include\${APPNAME}${MY_MODEL}\*.h" ++ ++ SetOutPath "$INSTDIR\lib" ++ ++ File ".\lib\*.a" ++ ++SectionEnd ++ ++Section "examples" Section3 ++ ++ SectionIn 1 ++ ++ ; Set Section properties ++ SetOverwrite on ++ ++ ; Set Section Files and Shortcuts ++ SetOutPath "$INSTDIR\lib\${APPNAME}" ++ ++SectionEnd ++ ++Section -FinishSection ++ ++ WriteRegStr HKLM "Software\${SUBKEY}" "" "$INSTDIR" ++ WriteRegStr HKLM "Software\${SUBKEY}" "Environment" "" ++ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "DisplayName" "${APPNAME} ${VERSION_FULL} (Console)" ++ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "UninstallString" "$INSTDIR\uninstall.exe" ++ WriteUninstaller "$INSTDIR\uninstall.exe" ++ ++SectionEnd ++ ++; Modern install component descriptions ++!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN ++ !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "${SUBKEY} runtime" ++ !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Development headers and libraries" ++ !insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Examples" ++!insertmacro MUI_FUNCTION_DESCRIPTION_END ++ ++;Uninstall section ++Section Uninstall ++ ++ ;Remove from registry... ++ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" ++ DeleteRegKey HKLM "SOFTWARE\${SUBKEY}" ++ ++ ; Delete self ++ Delete "$INSTDIR\uninstall.exe" ++ ++ ; Delete Shortcuts ++ Delete "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk" ++ Delete "$SMPROGRAMS\${INSTALL}\Uninstall.lnk" ++ ++ ; Clean up application ++ Delete "$INSTDIR\bin\libform${MY_MODEL}${MY_ABI}.dll" ++ Delete "$INSTDIR\bin\libmenu${MY_MODEL}${MY_ABI}.dll" ++ Delete "$INSTDIR\bin\libncurses++${MY_MODEL}${MY_ABI}.dll" ++ Delete "$INSTDIR\bin\libncurses${MY_MODEL}${MY_ABI}.dll" ++ Delete "$INSTDIR\bin\libpanel${MY_MODEL}${MY_ABI}.dll" ++ ++ Delete "$INSTDIR\include\${APPNAME}${MY_MODEL}\*.h" ++ ++ Delete "$INSTDIR\lib\libform${MY_MODEL}.a" ++ Delete "$INSTDIR\lib\libmenu${MY_MODEL}.a" ++ Delete "$INSTDIR\lib\libncurses++${MY_MODEL}.a" ++ Delete "$INSTDIR\lib\libncurses${MY_MODEL}.a" ++ Delete "$INSTDIR\lib\libpanel${MY_MODEL}.a" ++ ++ Delete "$INSTDIR\lib\libform${MY_MODEL}.dll.a" ++ Delete "$INSTDIR\lib\libmenu${MY_MODEL}.dll.a" ++ Delete "$INSTDIR\lib\libncurses++${MY_MODEL}.dll.a" ++ Delete "$INSTDIR\lib\libncurses${MY_MODEL}.dll.a" ++ Delete "$INSTDIR\lib\libpanel${MY_MODEL}.dll.a" ++ ++ Delete "$INSTDIR\lib\${APPNAME}\*.exe" ++ ++ Delete "$INSTDIR\share\${APPNAME}\*.*" ++ ++ ; Remove remaining directories ++ RMDir "$SMPROGRAMS\${INSTALL}" ++ RMDir "$INSTDIR\share\${APPNAME}" ++ RMDir "$INSTDIR\share" ++ RMDir "$INSTDIR\lib\${APPNAME}" ++ RMDir "$INSTDIR\lib" ++ RMDir "$INSTDIR\include\${APPNAME}${MY_MODEL}" ++ RMDir "$INSTDIR\include" ++ RMDir "$INSTDIR\bin" ++ RMDir "$INSTDIR\" ++ ++SectionEnd +\ Kein Zeilenumbruch am Dateiende. +diff -Naur ncurses-5.9/package/mingw-ncurses.spec ncurses-5.9.patch/package/mingw-ncurses.spec +--- ncurses-5.9/package/mingw-ncurses.spec 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/mingw-ncurses.spec 2014-09-01 16:34:19.497887066 +0200 +@@ -0,0 +1,126 @@ ++%?mingw_package_header ++ ++Summary: shared libraries for terminal handling ++Name: mingw32-ncurses6 ++Version: 5.9 ++Release: 20140323 ++License: X11 ++Group: Development/Libraries ++Source: ncurses-%{version}-%{release}.tgz ++# URL: http://invisible-island.net/ncurses/ ++ ++BuildRequires: mingw32-filesystem >= 95 ++BuildRequires: mingw32-gcc ++BuildRequires: mingw32-binutils ++ ++BuildRequires: mingw64-filesystem >= 95 ++BuildRequires: mingw64-gcc ++BuildRequires: mingw64-binutils ++ ++%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion ++%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic ++ ++%description -n mingw32-ncurses6 ++Cross-compiling support for ncurses to mingw32. ++ ++The ncurses library routines are a terminal-independent method of ++updating character screens with reasonable optimization. ++ ++This package is used for testing ABI 6 with cross-compiles to MinGW. ++ ++%package -n mingw64-ncurses6 ++Summary: Curses library for MinGW64 ++ ++%description -n mingw64-ncurses6 ++Cross-compiling support for ncurses to mingw64. ++ ++The ncurses library routines are a terminal-independent method of ++updating character screens with reasonable optimization. ++ ++This package is used for testing ABI 6 with cross-compiles to MinGW. ++ ++%prep ++ ++%define CFG_OPTS \\\ ++ --disable-echo \\\ ++ --disable-db-install \\\ ++ --disable-getcap \\\ ++ --disable-hard-tabs \\\ ++ --disable-leaks \\\ ++ --disable-macros \\\ ++ --disable-overwrite \\\ ++ --disable-termcap \\\ ++ --enable-const \\\ ++ --enable-ext-colors \\\ ++ --enable-ext-mouse \\\ ++ --enable-interop \\\ ++ --enable-sp-funcs \\\ ++ --enable-term-driver \\\ ++ --enable-warnings \\\ ++ --enable-widec \\\ ++ --verbose \\\ ++ --with-cxx-shared \\\ ++ --with-develop \\\ ++ --with-fallbacks=unknown,rxvt \\\ ++ --with-shared \\\ ++ --with-tparm-arg=intptr_t \\\ ++ --with-trace \\\ ++ --with-xterm-kbs=DEL \\\ ++ --without-ada \\\ ++ --without-debug \\\ ++ --with-install-prefix=$RPM_BUILD_ROOT \\\ ++ --without-manpages \\\ ++ --without-progs \\\ ++ --without-tests ++ ++%define debug_package %{nil} ++%setup -q -n ncurses-%{version}-%{release} ++ ++%build ++mkdir BUILD-W32 ++pushd BUILD-W32 ++CFLAGS="%{CC_NORMAL}" \ ++CC=%{mingw32_cc} \ ++%mingw32_configure %{CFG_OPTS} ++make ++popd ++ ++mkdir BUILD-W64 ++pushd BUILD-W64 ++CFLAGS="%{CC_NORMAL}" \ ++CC=%{mingw64_cc} \ ++%mingw64_configure %{CFG_OPTS} ++make ++popd ++ ++%install ++rm -rf $RPM_BUILD_ROOT ++ ++pushd BUILD-W32 ++%{mingw32_make} install ++popd ++ ++pushd BUILD-W64 ++%{mingw64_make} install ++popd ++ ++%clean ++rm -rf $RPM_BUILD_ROOT ++ ++%files ++%defattr(-,root,root,-) ++ ++%files -n mingw32-ncurses6 ++%{mingw32_bindir}/* ++%{mingw32_includedir}/* ++%{mingw32_libdir}/* ++ ++%files -n mingw64-ncurses6 ++%{mingw64_bindir}/* ++%{mingw64_includedir}/* ++%{mingw64_libdir}/* ++ ++%changelog ++ ++* Sat Aug 03 2013 Thomas E. Dickey ++- initial version, using mingw-pdcurses package as a guide. +diff -Naur ncurses-5.9/package/ncurses.spec ncurses-5.9.patch/package/ncurses.spec +--- ncurses-5.9/package/ncurses.spec 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/package/ncurses.spec 2014-09-01 16:34:19.498887062 +0200 +@@ -0,0 +1,94 @@ ++Summary: shared libraries for terminal handling ++Name: ncurses6 ++Version: 5.9 ++Release: 20140323 ++License: X11 ++Group: Development/Libraries ++Source: ncurses-%{version}-%{release}.tgz ++# URL: http://invisible-island.net/ncurses/ ++ ++%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion ++%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic ++ ++%define _prefix /usr/local/ncurses6 ++%define MYDATA /usr/local/ncurses/share/terminfo ++ ++%description ++The ncurses library routines are a terminal-independent method of ++updating character screens with reasonable optimization. ++ ++This package is used for testing ABI 6. ++ ++%prep ++ ++%define debug_package %{nil} ++%setup -q -n ncurses-%{version}-%{release} ++ ++%build ++CFLAGS="%{CC_NORMAL}" \ ++RPATH_LIST=../lib:%{_prefix}/lib \ ++%configure \ ++ --target %{_target_platform} \ ++ --prefix=%{_prefix} \ ++ --includedir='${prefix}/include' \ ++ --with-default-terminfo-dir=%{MYDATA} \ ++ --with-install-prefix=$RPM_BUILD_ROOT \ ++ --with-terminfo-dirs=%{MYDATA}:/usr/share/terminfo \ ++ --disable-echo \ ++ --disable-getcap \ ++ --disable-leaks \ ++ --disable-macros \ ++ --disable-overwrite \ ++ --disable-termcap \ ++ --enable-const \ ++ --enable-ext-colors \ ++ --enable-ext-mouse \ ++ --enable-hard-tabs \ ++ --enable-interop \ ++ --enable-rpath \ ++ --enable-sp-funcs \ ++ --enable-warnings \ ++ --enable-widec \ ++ --verbose \ ++ --with-chtype=uint32_t \ ++ --with-mmask_t=uint32_t \ ++ --with-develop \ ++ --with-shared \ ++ --with-termlib \ ++ --with-ticlib \ ++ --with-trace \ ++ --with-cxx-shared \ ++ --with-xterm-kbs=DEL \ ++ --without-ada \ ++ --without-debug \ ++ --without-normal ++ ++make ++ ++%install ++rm -rf $RPM_BUILD_ROOT ++ ++make install.libs install.progs ++rm -f test/ncurses ++( cd test && make ncurses LOCAL_LIBDIR=%{_libdir} && mv ncurses $RPM_BUILD_ROOT/%{_bindir}/ncurses6 ) ++ ++%clean ++rm -rf $RPM_BUILD_ROOT ++ ++%files ++%defattr(-,root,root,-) ++%{_bindir}/* ++%{_includedir}/* ++%{_libdir}/* ++#%{_datadir}/* ++ ++%changelog ++ ++* Sat Mar 09 2013 Thomas E. Dickey ++- add --with-cxx-shared option to demonstrate c++ binding as shared library ++ ++* Sat Oct 27 2012 Thomas E. Dickey ++- add ncurses program as "ncurses6" to provide demonstration. ++ ++* Fri Jun 08 2012 Thomas E. Dickey ++- initial version. +diff -Naur ncurses-5.9/panel/Makefile.in ncurses-5.9.patch/panel/Makefile.in +--- ncurses-5.9/panel/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/panel/Makefile.in 2014-09-01 16:33:22.520792399 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.58 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.62 2013/08/04 20:23:32 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -57,7 +57,11 @@ + bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++datarootdir = @datarootdir@ + datadir = @datadir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -103,6 +107,7 @@ + SHLIB_DIRS = -L../lib + SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@ + ++RPATH_LIST = @RPATH_LIST@ + MK_SHARED_LIB = @MK_SHARED_LIB@ + + NCURSES_MAJOR = @NCURSES_MAJOR@ +@@ -112,7 +117,7 @@ + + RANLIB = @LIB_PREP@ + +-LIBRARIES = @LIBS_TO_MAKE@ ++LIBRARIES = @Libs_To_Make@ + + LINT = @LINT@ + LINT_OPTS = @LINT_OPTS@ +diff -Naur ncurses-5.9/panel/p_above.c ncurses-5.9.patch/panel/p_above.c +--- ncurses-5.9/panel/p_above.c 2010-01-23 22:22:15.000000000 +0100 ++++ ncurses-5.9.patch/panel/p_above.c 2014-09-01 16:33:22.520792399 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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,13 +36,13 @@ + */ + #include "panel.priv.h" + +-MODULE_ID("$Id: p_above.c,v 1.8 2010/01/23 21:22:15 tom Exp $") ++MODULE_ID("$Id: p_above.c,v 1.9 2012/03/10 23:43:41 tom Exp $") + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(PANEL *) + ground_panel(SCREEN * sp) + { +- T((T_CALLED("ground_panel(%p)"), sp)); ++ T((T_CALLED("ground_panel(%p)"), (void *)sp)); + if (sp) + { + struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp); +diff -Naur ncurses-5.9/panel/panel.c ncurses-5.9.patch/panel/panel.c +--- ncurses-5.9/panel/panel.c 2010-01-23 22:22:16.000000000 +0100 ++++ ncurses-5.9.patch/panel/panel.c 2014-09-01 16:33:22.520792399 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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 @@ + /* panel.c -- implementation of panels library, some core routines */ + #include "panel.priv.h" + +-MODULE_ID("$Id: panel.c,v 1.25 2010/01/23 21:22:16 tom Exp $") ++MODULE_ID("$Id: panel.c,v 1.26 2012/02/23 10:02:15 tom Exp $") + + /*+------------------------------------------------------------------------- + _nc_retrace_panel (pan) +@@ -61,9 +61,9 @@ + char temp[32]; + + if (ptr != 0) +- sprintf(temp, "ptr:%p", ptr); ++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "ptr:%p", ptr); + else +- strcpy(temp, "<null>"); ++ _nc_STRCPY(temp, "<null>", sizeof(temp)); + return _nc_visbuf(temp); + } + #endif +@@ -95,7 +95,7 @@ + + GetPanelHook(pan); + +- sprintf(s80, fmt, num, pan); ++ _nc_SPRINTF(s80, _nc_SLIMIT(sizeof(s80)) fmt, num, pan); + _tracef("%s b=%s t=%s", s80, + (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--", + (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--"); +@@ -143,7 +143,7 @@ + { + char s80[80]; + +- sprintf(s80, "Touchline s=%d c=%d", start, count); ++ _nc_SPRINTF(s80, _nc_SLIMIT(sizeof(s80)) "Touchline s=%d c=%d", start, count); + dPanel(s80, pan); + touchline(pan->win, start, count); + } +diff -Naur ncurses-5.9/panel/panel.priv.h ncurses-5.9.patch/panel/panel.priv.h +--- ncurses-5.9/panel/panel.priv.h 2009-04-11 22:33:55.000000000 +0200 ++++ ncurses-5.9.patch/panel/panel.priv.h 2014-09-01 16:33:22.521792398 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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.23 2009/04/11 20:33:55 tom Exp $ */ ++/* $Id: panel.priv.h,v 1.25 2012/12/15 23:57:43 tom Exp $ */ + + #ifndef NCURSES_PANEL_PRIV_H + #define NCURSES_PANEL_PRIV_H 1 +@@ -89,7 +89,7 @@ + #define GetScreenHook(sp) \ + struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp) + #define GetPanelHook(pan) \ +- GetScreenHook(_nc_screen_of((pan)->win)) ++ GetScreenHook(pan ? _nc_screen_of((pan)->win) : 0) + #define GetWindowHook(win) \ + SCREEN* sp = _nc_screen_of(win); \ + GetScreenHook(sp) +@@ -160,7 +160,7 @@ + ---------------------------------------------------------------------------*/ + #define PANEL_UPDATE(pan,panstart)\ + { PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\ +- while(pan2) {\ ++ while(pan2 && pan2->win) {\ + if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\ + int y, ix1, ix2, iy1, iy2;\ + COMPUTE_INTERSECTION(pan, pan2, ix1, ix2, iy1, iy2);\ +diff -Naur ncurses-5.9/panel/p_below.c ncurses-5.9.patch/panel/p_below.c +--- ncurses-5.9/panel/p_below.c 2010-01-23 22:22:15.000000000 +0100 ++++ ncurses-5.9.patch/panel/p_below.c 2014-09-01 16:33:22.520792399 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2012 Free 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,13 +36,13 @@ + */ + #include "panel.priv.h" + +-MODULE_ID("$Id: p_below.c,v 1.8 2010/01/23 21:22:15 tom Exp $") ++MODULE_ID("$Id: p_below.c,v 1.9 2012/03/10 23:43:41 tom Exp $") + + #if NCURSES_SP_FUNCS + NCURSES_EXPORT(PANEL *) + ceiling_panel(SCREEN * sp) + { +- T((T_CALLED("ceiling_panel(%p)"), sp)); ++ T((T_CALLED("ceiling_panel(%p)"), (void *)sp)); + if (sp) + { + struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp); +diff -Naur ncurses-5.9/progs/capconvert ncurses-5.9.patch/progs/capconvert +--- ncurses-5.9/progs/capconvert 2006-04-22 23:46:17.000000000 +0200 ++++ ncurses-5.9.patch/progs/capconvert 2014-09-01 16:33:22.521792398 +0200 +@@ -1,6 +1,6 @@ + #!/bin/sh + ############################################################################## +-# Copyright (c) 1998,2006 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2006,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: capconvert,v 1.4 2006/04/22 21:46:17 tom Exp $ ++# $Id: capconvert,v 1.5 2011/11/12 23:28:07 Robert.Millan Exp $ + # + # capconvert -- automated conversion from termcap to terminfo + # +@@ -77,16 +77,18 @@ + # Assumes the terminfo master covers all canned terminal types + exit; + fi +- if test "$TERM" = "xterm" +- then ++ case $TERM in ++ xterm | xterm-*) + echo "You are running xterm, which usually sets TERMCAP itself." + echo "We can ignore this, because terminfo knows about xterm." + echo "So you will just use the system-wide terminfo tree." +- exit; +- else ++ exit ++ ;; ++ *) + echo "We will have to make a local one for you anyway, to capture the effect" + echo "of your TERMCAP variable." +- fi ++ ;; ++ esac + else + echo "No system-wide terminfo tree. We will make you a local one." + fi +@@ -109,7 +111,7 @@ + for x in $PATH . + do + if test $OPT $x/tic +- then ++ then + TIC=$x/tic + break + fi +@@ -141,7 +143,7 @@ + then + echo "It appears you already have a private terminfo directory" + echo "at $HOME/.terminfo; this seems odd, because TERMINFO" +- echo "is not defined. I am not going to second-guess this -- if you" ++ echo "is not defined. I am not going to second-guess this -- if you" + echo "really want me to try auto-configuring for you, remove or" + echo "rename $HOME/terminfo and run me again." + exit; +@@ -214,7 +216,7 @@ + # + echo "You now have a private tree under $HOME/.terminfo;" + echo "the ncurses library will automatically read from it," +-echo "and ncurses tic will automatically compile entries to it." ++echo "and ncurses tic will automatically compile entries to it." + + # We're done unless user has a .termcap file or equivalent named by TERMCAP + if test -z "$TERMCAP" +@@ -235,7 +237,7 @@ + echo "Done." + echo "Note that editing $HOME/.termcap will no longer change the data curses sees." + elif test -f "$TERMCAP" +-then ++then + echo "Your TERMCAP names the file $TERMCAP. I will compile that." + eval $TIC $TERMCAP + echo "Done." +diff -Naur ncurses-5.9/progs/clear.c ncurses-5.9.patch/progs/clear.c +--- ncurses-5.9/progs/clear.c 2007-10-14 00:16:02.000000000 +0200 ++++ ncurses-5.9.patch/progs/clear.c 2014-09-01 16:33:22.521792398 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2007,2013 Free 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 @@ + #define USE_LIBTINFO + #include <progs.priv.h> + +-MODULE_ID("$Id: clear.c,v 1.11 2007/10/13 22:16:02 tom Exp $") ++MODULE_ID("$Id: clear.c,v 1.13 2013/06/22 22:20:54 tom Exp $") + + static int + putch(int c) +@@ -52,7 +52,15 @@ + int argc GCC_UNUSED, + char *argv[]GCC_UNUSED) + { ++ char *E3; ++ + setupterm((char *) 0, STDOUT_FILENO, (int *) 0); ++ ++ /* Clear the scrollback buffer if possible. */ ++ E3 = tigetstr("E3"); ++ if (E3) ++ (void) tputs(E3, lines > 0 ? lines : 1, putch); ++ + ExitProgram((tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR) + ? EXIT_FAILURE + : EXIT_SUCCESS); +diff -Naur ncurses-5.9/progs/dump_entry.c ncurses-5.9.patch/progs/dump_entry.c +--- ncurses-5.9/progs/dump_entry.c 2010-05-02 00:04:08.000000000 +0200 ++++ ncurses-5.9.patch/progs/dump_entry.c 2014-09-01 16:33:22.521792398 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 "termsort.c" /* this C file is generated */ + #include <parametrized.h> /* so is this */ + +-MODULE_ID("$Id: dump_entry.c,v 1.89 2010/05/01 22:04:08 tom Exp $") ++MODULE_ID("$Id: dump_entry.c,v 1.111 2013/12/15 01:05:20 tom Exp $") + + #define INDENT 8 + #define DISCARD(string) string = ABSENT_STRING +@@ -57,6 +57,7 @@ + static int outform; /* output format to use */ + static int sortmode; /* sort mode to use */ + static int width = 60; /* max line width for listings */ ++static int height = 65535; /* max number of lines for listings */ + static int column; /* current column, limited by 'width' */ + static int oldcol; /* last value of column before wrap */ + static bool pretty; /* true if we format if-then-else strings */ +@@ -72,7 +73,7 @@ + static NCURSES_CONST char *const *num_names; + static NCURSES_CONST char *const *str_names; + +-static const char *separator, *trailer; ++static const char *separator = "", *trailer = ""; + + /* cover various ports and variants of terminfo */ + #define V_ALLCAPS 0 /* all capabilities (SVr4, XSI, ncurses) */ +@@ -99,6 +100,15 @@ + #define StrIndirect(j) ((sortmode == S_NOSORT) ? (j) : str_indirect[j]) + #endif + ++static void failed(const char *) GCC_NORETURN; ++ ++static void ++failed(const char *s) ++{ ++ perror(s); ++ ExitProgram(EXIT_FAILURE); ++} ++ + static void + strncpy_DYN(DYNBUF * dst, const char *src, size_t need) + { +@@ -106,6 +116,8 @@ + if (want > dst->size) { + dst->size += (want + 1024); /* be generous */ + dst->text = typeRealloc(char, dst->size, dst->text); ++ if (dst->text == 0) ++ failed("strncpy_DYN"); + } + (void) strncpy(dst->text + dst->used, src, need); + dst->used += need; +@@ -172,11 +184,17 @@ + } + + void +-dump_init(const char *version, int mode, int sort, int twidth, int traceval, ++dump_init(const char *version, ++ int mode, ++ int sort, ++ int twidth, ++ int theight, ++ unsigned traceval, + bool formatted) + /* set up for entry display */ + { + width = twidth; ++ height = theight; + pretty = formatted; + + /* versions */ +@@ -201,7 +219,7 @@ + bool_names = boolnames; + num_names = numnames; + str_names = strnames; +- separator = twidth ? ", " : ","; ++ separator = (twidth > 0 && theight > 1) ? ", " : ","; + trailer = "\n\t"; + break; + +@@ -209,7 +227,7 @@ + bool_names = boolfnames; + num_names = numfnames; + str_names = strfnames; +- separator = twidth ? ", " : ","; ++ separator = (twidth > 0 && theight > 1) ? ", " : ","; + trailer = "\n\t"; + break; + +@@ -291,7 +309,11 @@ + static void set_obsolete_termcaps(TERMTYPE *tp); + + /* is this the index of a function key string? */ +-#define FNKEY(i) (((i)<= 65 && (i)>= 75) || ((i)<= 216 && (i)>= 268)) ++#define FNKEY(i) \ ++ (((i) >= STR_IDX(key_f0) && \ ++ (i) <= STR_IDX(key_f9)) || \ ++ ((i) >= STR_IDX(key_f11) && \ ++ (i) <= STR_IDX(key_f63))) + + /* + * If we configure with a different Caps file, the offsets into the arrays +@@ -393,8 +415,8 @@ + static void + wrap_concat(const char *src) + { +- unsigned need = strlen(src); +- unsigned want = strlen(separator) + need; ++ size_t need = strlen(src); ++ size_t want = strlen(separator) + need; + + if (column > INDENT + && column + (int) want > width) { +@@ -445,7 +467,7 @@ + int n; + + for (n = 0; n < level; n++) +- strncpy_DYN(buffer, "\t", 1); ++ strncpy_DYN(buffer, "\t", (size_t) 1); + } + + static bool +@@ -458,9 +480,9 @@ + bool params = FALSE; + + for (n = 0; n < len - 1; ++n) { +- if (!strncmp(src + n, "%p", 2)) { ++ if (!strncmp(src + n, "%p", (size_t) 2)) { + params = TRUE; +- } else if (!strncmp(src + n, "%;", 2)) { ++ } else if (!strncmp(src + n, "%;", (size_t) 2)) { + ifthen = TRUE; + result = params; + break; +@@ -473,7 +495,7 @@ + } + + static char * +-fmt_complex(char *src, int level) ++fmt_complex(TERMTYPE *tterm, const char *capability, char *src, int level) + { + bool percent = FALSE; + bool params = has_params(src); +@@ -482,7 +504,7 @@ + switch (*src) { + case '\\': + percent = FALSE; +- strncpy_DYN(&tmpbuf, src++, 1); ++ strncpy_DYN(&tmpbuf, src++, (size_t) 1); + break; + case '%': + percent = TRUE; +@@ -496,26 +518,28 @@ + /* treat a "%e" as else-if, on the same level */ + if (*src == 'e') { + indent_DYN(&tmpbuf, level); +- strncpy_DYN(&tmpbuf, "%", 1); +- strncpy_DYN(&tmpbuf, src, 1); ++ strncpy_DYN(&tmpbuf, "%", (size_t) 1); ++ strncpy_DYN(&tmpbuf, src, (size_t) 1); + src++; + params = has_params(src); + if (!params && *src != '\0' && *src != '%') { +- strncpy_DYN(&tmpbuf, "\n", 1); ++ strncpy_DYN(&tmpbuf, "\n", (size_t) 1); + indent_DYN(&tmpbuf, level + 1); + } + } else { + indent_DYN(&tmpbuf, level + 1); +- strncpy_DYN(&tmpbuf, "%", 1); +- strncpy_DYN(&tmpbuf, src, 1); ++ strncpy_DYN(&tmpbuf, "%", (size_t) 1); ++ strncpy_DYN(&tmpbuf, src, (size_t) 1); + if (*src++ == '?') { +- src = fmt_complex(src, level + 1); ++ src = fmt_complex(tterm, capability, src, level + 1); + if (*src != '\0' && *src != '%') { +- strncpy_DYN(&tmpbuf, "\n", 1); ++ strncpy_DYN(&tmpbuf, "\n", (size_t) 1); + indent_DYN(&tmpbuf, level + 1); + } + } else if (level == 1) { +- _nc_warning("%%%c without %%?", *src); ++ _nc_warning("%s: %%%c without %%? in %s", ++ _nc_first_name(tterm->term_names), ++ *src, capability); + } + } + continue; +@@ -527,31 +551,39 @@ + if (level > 1) { + tmpbuf.text[tmpbuf.used - 1] = '\n'; + indent_DYN(&tmpbuf, level); +- strncpy_DYN(&tmpbuf, "%", 1); +- strncpy_DYN(&tmpbuf, src++, 1); ++ strncpy_DYN(&tmpbuf, "%", (size_t) 1); ++ strncpy_DYN(&tmpbuf, src++, (size_t) 1); ++ if (src[0] == '%' ++ && src[1] != '\0' ++ && (strchr("?e;", src[1])) == 0) { ++ tmpbuf.text[tmpbuf.used++] = '\n'; ++ indent_DYN(&tmpbuf, level); ++ } + return src; + } +- _nc_warning("%%; without %%?"); ++ _nc_warning("%s: %%; without %%? in %s", ++ _nc_first_name(tterm->term_names), ++ capability); + } + break; + case 'p': + if (percent && params) { + tmpbuf.text[tmpbuf.used - 1] = '\n'; + indent_DYN(&tmpbuf, level + 1); +- strncpy_DYN(&tmpbuf, "%", 1); ++ strncpy_DYN(&tmpbuf, "%", (size_t) 1); + } + params = FALSE; + percent = FALSE; + break; + case ' ': +- strncpy_DYN(&tmpbuf, "\\s", 2); ++ strncpy_DYN(&tmpbuf, "\\s", (size_t) 2); + ++src; + continue; + default: + percent = FALSE; + break; + } +- strncpy_DYN(&tmpbuf, src++, 1); ++ strncpy_DYN(&tmpbuf, src++, (size_t) 1); + } + return src; + } +@@ -562,9 +594,9 @@ + int + fmt_entry(TERMTYPE *tterm, + PredFunc pred, +- bool content_only, +- bool suppress_untranslatable, +- bool infodump, ++ int content_only, ++ int suppress_untranslatable, ++ int infodump, + int numbers) + { + PredIdx i, j; +@@ -593,14 +625,28 @@ + column = INDENT; /* FIXME: workaround to prevent empty lines */ + } else { + strcpy_DYN(&outbuf, tterm->term_names); ++ ++ /* ++ * Colon is legal in terminfo descriptions, but not in termcap. ++ */ ++ if (!infodump) { ++ char *p = outbuf.text; ++ while (*p) { ++ if (*p == ':') { ++ *p = '='; ++ } ++ ++p; ++ } ++ } + strcpy_DYN(&outbuf, separator); + column = (int) outbuf.used; +- force_wrap(); ++ if (height > 1) ++ force_wrap(); + } + + for_each_boolean(j, tterm) { + i = BoolIndirect(j); +- name = ExtBoolname(tterm, i, bool_names); ++ name = ExtBoolname(tterm, (int) i, bool_names); + assert(strlen(name) < sizeof(buffer) - EXTRA_CAP); + + if (!version_filter(BOOLEAN, i)) +@@ -610,21 +656,21 @@ + + predval = pred(BOOLEAN, i); + if (predval != FAIL) { +- (void) strcpy(buffer, name); ++ _nc_STRCPY(buffer, name, sizeof(buffer)); + if (predval <= 0) +- (void) strcat(buffer, "@"); ++ _nc_STRCAT(buffer, "@", sizeof(buffer)); + else if (i + 1 > num_bools) + num_bools = i + 1; + WRAP_CONCAT; + } + } + +- if (column != INDENT) ++ if (column != INDENT && height > 1) + force_wrap(); + + for_each_number(j, tterm) { + i = NumIndirect(j); +- name = ExtNumname(tterm, i, num_names); ++ name = ExtNumname(tterm, (int) i, num_names); + assert(strlen(name) < sizeof(buffer) - EXTRA_CAP); + + if (!version_filter(NUMBER, i)) +@@ -635,9 +681,11 @@ + predval = pred(NUMBER, i); + if (predval != FAIL) { + if (tterm->Numbers[i] < 0) { +- sprintf(buffer, "%s@", name); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%s@", name); + } else { +- sprintf(buffer, "%s#%d", name, tterm->Numbers[i]); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%s#%d", name, tterm->Numbers[i]); + if (i + 1 > num_values) + num_values = i + 1; + } +@@ -645,7 +693,7 @@ + } + } + +- if (column != INDENT) ++ if (column != INDENT && height > 1) + force_wrap(); + + len += (int) (num_bools +@@ -670,7 +718,7 @@ + + for_each_string(j, tterm) { + i = StrIndirect(j); +- name = ExtStrname(tterm, i, str_names); ++ name = ExtStrname(tterm, (int) i, str_names); + assert(strlen(name) < sizeof(buffer) - EXTRA_CAP); + + capability = tterm->Strings[i]; +@@ -698,14 +746,14 @@ + if (PRESENT(insert_character) || PRESENT(parm_ich)) { + if (SAME_CAP(i, enter_insert_mode) + && enter_insert_mode == ABSENT_STRING) { +- (void) strcpy(buffer, "im="); ++ _nc_STRCPY(buffer, "im=", sizeof(buffer)); + WRAP_CONCAT; + continue; + } + + if (SAME_CAP(i, exit_insert_mode) + && exit_insert_mode == ABSENT_STRING) { +- (void) strcpy(buffer, "ei="); ++ _nc_STRCPY(buffer, "ei=", sizeof(buffer)); + WRAP_CONCAT; + continue; + } +@@ -739,7 +787,8 @@ + num_strings = i + 1; + + if (!VALID_STRING(capability)) { +- sprintf(buffer, "%s@", name); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%s@", name); + WRAP_CONCAT; + } else if (outform == F_TERMCAP || outform == F_TCONVERR) { + int params = ((i < (int) SIZEOF(parametrized)) +@@ -750,13 +799,14 @@ + + if (cv == 0) { + if (outform == F_TCONVERR) { +- sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!", +- name, srccap); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%s=!!! %s WILL NOT CONVERT !!!", ++ name, srccap); + } else if (suppress_untranslatable) { + continue; + } else { + char *s = srccap, *d = buffer; +- sprintf(d, "..%s=", name); ++ _nc_SPRINTF(d, _nc_SLIMIT(sizeof(buffer)) "..%s=", name); + d += strlen(d); + while ((*d = *s++) != 0) { + if (*d == ':') { +@@ -769,7 +819,8 @@ + } + } + } else { +- sprintf(buffer, "%s=%s", name, cv); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%s=%s", name, cv); + } + len += (int) strlen(capability) + 1; + WRAP_CONCAT; +@@ -783,7 +834,7 @@ + if (pretty + && (outform == F_TERMINFO + || outform == F_VARIABLE)) { +- fmt_complex(src, 1); ++ fmt_complex(tterm, name, src, 1); + } else { + strcpy_DYN(&tmpbuf, src); + } +@@ -793,7 +844,9 @@ + } + } + /* e.g., trimmed_sgr0 */ +- if (capability != tterm->Strings[i]) ++ if (capability != ABSENT_STRING && ++ capability != CANCELLED_STRING && ++ capability != tterm->Strings[i]) + free(capability); + } + len += (int) (num_strings * 2); +@@ -805,11 +858,13 @@ + */ + if (tversion == V_HPUX) { + if (VALID_STRING(memory_lock)) { +- (void) sprintf(buffer, "meml=%s", memory_lock); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "meml=%s", memory_lock); + WRAP_CONCAT; + } + if (VALID_STRING(memory_unlock)) { +- (void) sprintf(buffer, "memu=%s", memory_unlock); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "memu=%s", memory_unlock); + WRAP_CONCAT; + } + } else if (tversion == V_AIX) { +@@ -821,7 +876,7 @@ + + tp = boxchars; + for (cp = acstrans; *cp; cp++) { +- sp = strchr(acs_chars, *cp); ++ sp = (strchr) (acs_chars, *cp); + if (sp) + *tp++ = sp[1]; + else { +@@ -832,9 +887,41 @@ + tp[0] = '\0'; + + if (box_ok) { +- (void) strcpy(buffer, "box1="); +- (void) strcat(buffer, _nc_tic_expand(boxchars, +- outform == F_TERMINFO, numbers)); ++ char *tmp = _nc_tic_expand(boxchars, ++ (outform == F_TERMINFO), ++ numbers); ++ _nc_STRCPY(buffer, "box1=", sizeof(buffer)); ++ while (*tmp != '\0') { ++ size_t have = strlen(buffer); ++ size_t next = strlen(tmp); ++ size_t want = have + next + 1; ++ size_t last = next; ++ char save = '\0'; ++ ++ /* ++ * If the expanded string is too long for the buffer, ++ * chop it off and save the location where we chopped it. ++ */ ++ if (want >= sizeof(buffer)) { ++ save = tmp[last]; ++ tmp[last] = '\0'; ++ } ++ _nc_STRCAT(buffer, tmp, sizeof(buffer)); ++ ++ /* ++ * If we chopped the buffer, replace the missing piece and ++ * shift everything to append the remainder. ++ */ ++ if (save != '\0') { ++ next = 0; ++ tmp[last] = save; ++ while ((tmp[next] = tmp[last + next]) != '\0') { ++ ++next; ++ } ++ } else { ++ break; ++ } ++ } + WRAP_CONCAT; + } + } +@@ -846,7 +933,7 @@ + */ + if (outcount) { + bool trimmed = FALSE; +- j = outbuf.used; ++ j = (PredIdx) outbuf.used; + if (j >= 2 + && outbuf.text[j - 1] == '\t' + && outbuf.text[j - 2] == '\n') { +@@ -926,7 +1013,7 @@ + char name[10]; + + for (n = 0; n <= 10; ++n) { +- sprintf(name, "lf%d", n); ++ _nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "lf%d", n); + if ((cap = find_string(tterm, name)) != ABSENT_STRING + && kill_string(tterm, cap)) { + target -= (int) (strlen(cap) + 5); +@@ -951,7 +1038,7 @@ + char name[10]; + + for (n = 60; n >= 0; --n) { +- sprintf(name, "kf%d", n); ++ _nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "kf%d", n); + if ((cap = find_string(tterm, name)) != ABSENT_STRING + && kill_string(tterm, cap)) { + target -= (int) (strlen(cap) + 5); +@@ -1017,8 +1104,8 @@ + */ + void + dump_entry(TERMTYPE *tterm, +- bool suppress_untranslatable, +- bool limited, ++ int suppress_untranslatable, ++ int limited, + int numbers, + PredFunc pred) + { +@@ -1064,7 +1151,7 @@ + */ + unsigned n; + for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) { +- const char *name = ExtStrname(tterm, n, strnames); ++ const char *name = ExtStrname(tterm, (int) n, strnames); + + if (VALID_STRING(tterm->Strings[n])) { + set_attributes = ABSENT_STRING; +@@ -1144,21 +1231,45 @@ + + if (outform == F_TERMCAP || outform == F_TCONVERR) + trim_trailing(); +- (void) sprintf(buffer, "%s%s", infodump ? "use=" : "tc=", name); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "%s%s", infodump ? "use=" : "tc=", name); + wrap_concat(buffer); + } + + int + show_entry(void) + { +- trim_trailing(); ++ /* ++ * Trim any remaining whitespace. ++ */ ++ if (outbuf.used != 0) { ++ bool infodump = (outform != F_TERMCAP && outform != F_TCONVERR); ++ char delim = (char) (infodump ? ',' : ':'); ++ int j; ++ ++ for (j = (int) outbuf.used - 1; j > 0; --j) { ++ char ch = outbuf.text[j]; ++ if (ch == '\n') { ++ ; ++ } else if (isspace(UChar(ch))) { ++ outbuf.used = (size_t) j; ++ } else if (!infodump && ch == '\\') { ++ outbuf.used = (size_t) j; ++ } else if (ch == delim && (j == 0 || outbuf.text[j - 1] != '\\')) { ++ outbuf.used = (size_t) (j + 1); ++ } else { ++ break; ++ } ++ } ++ outbuf.text[outbuf.used] = '\0'; ++ } + (void) fputs(outbuf.text, stdout); + putchar('\n'); + return (int) outbuf.used; + } + + void +-compare_entry(void (*hook) (PredType t, PredIdx i, const char *name), ++compare_entry(PredHook hook, + TERMTYPE *tp GCC_UNUSED, + bool quiet) + /* compare two entries */ +@@ -1170,7 +1281,7 @@ + fputs(" comparing booleans.\n", stdout); + for_each_boolean(j, tp) { + i = BoolIndirect(j); +- name = ExtBoolname(tp, i, bool_names); ++ name = ExtBoolname(tp, (int) i, bool_names); + + if (isObsolete(outform, name)) + continue; +@@ -1182,7 +1293,7 @@ + fputs(" comparing numbers.\n", stdout); + for_each_number(j, tp) { + i = NumIndirect(j); +- name = ExtNumname(tp, i, num_names); ++ name = ExtNumname(tp, (int) i, num_names); + + if (isObsolete(outform, name)) + continue; +@@ -1194,7 +1305,7 @@ + fputs(" comparing strings.\n", stdout); + for_each_string(j, tp) { + i = StrIndirect(j); +- name = ExtStrname(tp, i, str_names); ++ name = ExtStrname(tp, (int) i, str_names); + + if (isObsolete(outform, name)) + continue; +diff -Naur ncurses-5.9/progs/dump_entry.h ncurses-5.9.patch/progs/dump_entry.h +--- ncurses-5.9/progs/dump_entry.h 2008-07-12 22:23:03.000000000 +0200 ++++ ncurses-5.9.patch/progs/dump_entry.h 2014-09-01 16:33:22.522792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2013 Free 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,8 @@ + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +- + /* +- * $Id: dump_entry.h,v 1.30 2008/07/12 20:23:03 tom Exp $ ++ * $Id: dump_entry.h,v 1.33 2013/12/15 01:08:03 tom Exp $ + * + * Dump control definitions and variables + */ +@@ -64,16 +63,17 @@ + + typedef unsigned PredType; + typedef unsigned PredIdx; +-typedef int (*PredFunc)(PredType, PredIdx); ++typedef int (*PredFunc) (PredType, PredIdx); ++typedef void (*PredHook) (PredType, PredIdx, const char *); + + extern NCURSES_CONST char *nametrans(const char *); +-extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int); ++extern int fmt_entry(TERMTYPE *, PredFunc, int, int, int, int); + extern int show_entry(void); +-extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool); +-extern void dump_entry(TERMTYPE *, bool, bool, int, PredFunc); +-extern void dump_init(const char *, int, int, int, int, bool); ++extern void compare_entry(PredHook, TERMTYPE *, bool); ++extern void dump_entry(TERMTYPE *, int, int, int, PredFunc); ++extern void dump_init(const char *, int, int, int, int, unsigned, bool); + extern void dump_uses(const char *, bool); +-extern void repair_acsc(TERMTYPE * tp); ++extern void repair_acsc(TERMTYPE *tp); + + #define FAIL -1 + +diff -Naur ncurses-5.9/progs/infocmp.c ncurses-5.9.patch/progs/infocmp.c +--- ncurses-5.9/progs/infocmp.c 2010-05-02 00:04:08.000000000 +0200 ++++ ncurses-5.9.patch/progs/infocmp.c 2014-09-01 16:33:22.522792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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 <dump_entry.h> + +-MODULE_ID("$Id: infocmp.c,v 1.105 2010/05/01 22:04:08 tom Exp $") ++MODULE_ID("$Id: infocmp.c,v 1.129 2014/02/01 22:11:03 tom Exp $") + + #define L_CURL "{" + #define R_CURL "}" +@@ -70,8 +70,9 @@ + static const char *s_absent = "NULL"; + static const char *s_cancel = "NULL"; + static const char *tversion; /* terminfo version selected */ +-static int itrace; /* trace flag for debugging */ ++static unsigned itrace; /* trace flag for debugging */ + static int mwidth = 60; ++static int mheight = 65535; + static int numbers = 0; /* format "%'char'" to/from "%{number}" */ + static int outform = F_TERMINFO; /* output format */ + static int sortmode; /* sort_mode */ +@@ -86,27 +87,52 @@ + static bool ignorepads; /* ignore pad prefixes when diffing */ + + #if NO_LEAKS ++ ++typedef struct { ++ ENTRY *head; ++ ENTRY *tail; ++} ENTERED; ++ ++static ENTERED *entered; ++ + #undef ExitProgram + static void ExitProgram(int code) GCC_NORETURN; + /* prototype is to get gcc to accept the noreturn attribute */ + static void + ExitProgram(int code) + { +- while (termcount-- > 0) +- _nc_free_termtype(&entries[termcount].tterm); ++ int n; ++ ++ for (n = 0; n < termcount; ++n) { ++ ENTRY *new_head = _nc_head; ++ ENTRY *new_tail = _nc_tail; ++ _nc_head = entered[n].head; ++ _nc_tail = entered[n].tail; ++ _nc_free_entries(entered[n].head); ++ _nc_head = new_head; ++ _nc_tail = new_tail; ++ } + _nc_leaks_dump_entry(); + free(entries); ++ free(entered); + _nc_free_tic(code); + } + #endif + ++static void ++failed(const char *s) ++{ ++ perror(s); ++ ExitProgram(EXIT_FAILURE); ++} ++ + static char * + canonical_name(char *ptr, char *buf) + /* extract the terminal type's primary name */ + { + char *bp; + +- (void) strcpy(buf, ptr); ++ _nc_STRCPY(buf, ptr, NAMESIZE); + if ((bp = strchr(buf, '|')) != 0) + *bp = '\0'; + +@@ -307,13 +333,13 @@ + { + switch (val) { + case ABSENT_NUMERIC: +- strcpy(buf, s_absent); ++ _nc_STRCPY(buf, s_absent, MAX_STRING); + break; + case CANCELLED_NUMERIC: +- strcpy(buf, s_cancel); ++ _nc_STRCPY(buf, s_cancel, MAX_STRING); + break; + default: +- sprintf(buf, "%d", val); ++ _nc_SPRINTF(buf, _nc_SLIMIT(MAX_STRING) "%d", val); + break; + } + } +@@ -323,31 +349,94 @@ + /* display the value of a string capability */ + { + if (val == ABSENT_STRING) +- strcpy(buf, s_absent); ++ _nc_STRCPY(buf, s_absent, MAX_STRING); + else if (val == CANCELLED_STRING) +- strcpy(buf, s_cancel); ++ _nc_STRCPY(buf, s_cancel, MAX_STRING); + else { +- sprintf(buf, "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val)); ++ _nc_SPRINTF(buf, _nc_SLIMIT(MAX_STRING) ++ "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val)); + } + } + ++/* ++ * Show "comparing..." message for the given terminal names. ++ */ ++static void ++show_comparing(char **names) ++{ ++ if (itrace) { ++ switch (compare) { ++ case C_DIFFERENCE: ++ (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname); ++ break; ++ ++ case C_COMMON: ++ (void) fprintf(stderr, "%s: dumping common capabilities\n", _nc_progname); ++ break; ++ ++ case C_NAND: ++ (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname); ++ break; ++ } ++ } ++ if (*names) { ++ printf("comparing %s", *names++); ++ if (*names) { ++ printf(" to %s", *names++); ++ while (*names) { ++ printf(", %s", *names++); ++ } ++ } ++ printf(".\n"); ++ } ++} ++ ++/* ++ * ncurses stores two types of non-standard capabilities: ++ * a) capabilities listed past the "STOP-HERE" comment in the Caps file. ++ * These are used in the terminfo source file to provide data for termcaps, ++ * e.g., when there is no equivalent capability in terminfo, as well as for ++ * widely-used non-standard capabilities. ++ * b) user-definable capabilities, via "tic -x". ++ * ++ * However, if "-x" is omitted from the tic command, both types of ++ * non-standard capability are not loaded into the terminfo database. This ++ * macro is used for limit-checks against the symbols that tic uses to omit ++ * the two types of non-standard entry. ++ */ ++#if NCURSES_XNAMES ++#define check_user_definable(n,limit) if (!_nc_user_definable && (n) > (limit)) break ++#else ++#define check_user_definable(n,limit) if ((n) > (limit)) break ++#endif ++ ++/* ++ * Use these macros to simplify loops on C_COMMON and C_NAND: ++ */ ++#define for_each_entry() while (entries[extra].tterm.term_names) ++#define next_entry (&(entries[extra++].tterm)) ++ + static void + compare_predicate(PredType type, PredIdx idx, const char *name) + /* predicate function to use for entry difference reports */ + { +- register ENTRY *e1 = &entries[0]; +- register ENTRY *e2 = &entries[1]; +- char buf1[MAX_STRING], buf2[MAX_STRING]; ++ ENTRY *e1 = &entries[0]; ++ ENTRY *e2 = &entries[1]; ++ char buf1[MAX_STRING]; ++ char buf2[MAX_STRING]; + int b1, b2; + int n1, n2; + char *s1, *s2; ++ bool found; ++ int extra = 1; + + switch (type) { + case CMP_BOOLEAN: ++ check_user_definable(idx, BOOLWRITE); + b1 = e1->tterm.Booleans[idx]; +- b2 = e2->tterm.Booleans[idx]; + switch (compare) { + case C_DIFFERENCE: ++ b2 = next_entry->Booleans[idx]; + if (!(b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) && b1 != b2) + (void) printf("\t%s: %s%s%s.\n", + name, +@@ -357,45 +446,93 @@ + break; + + case C_COMMON: +- if (b1 == b2 && b1 != ABSENT_BOOLEAN) +- (void) printf("\t%s= %s.\n", name, dump_boolean(b1)); ++ if (b1 != ABSENT_BOOLEAN) { ++ found = TRUE; ++ for_each_entry() { ++ b2 = next_entry->Booleans[idx]; ++ if (b1 != b2) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) printf("\t%s= %s.\n", name, dump_boolean(b1)); ++ } ++ } + break; + + case C_NAND: +- if (b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) +- (void) printf("\t!%s.\n", name); ++ if (b1 == ABSENT_BOOLEAN) { ++ found = TRUE; ++ for_each_entry() { ++ b2 = next_entry->Booleans[idx]; ++ if (b1 != b2) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) printf("\t!%s.\n", name); ++ } ++ } + break; + } + break; + + case CMP_NUMBER: ++ check_user_definable(idx, NUMWRITE); + n1 = e1->tterm.Numbers[idx]; +- n2 = e2->tterm.Numbers[idx]; +- dump_numeric(n1, buf1); +- dump_numeric(n2, buf2); + switch (compare) { + case C_DIFFERENCE: +- if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2) ++ n2 = next_entry->Numbers[idx]; ++ if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2) { ++ dump_numeric(n1, buf1); ++ dump_numeric(n2, buf2); + (void) printf("\t%s: %s, %s.\n", name, buf1, buf2); ++ } + break; + + case C_COMMON: +- if (n1 != ABSENT_NUMERIC && n2 != ABSENT_NUMERIC && n1 == n2) +- (void) printf("\t%s= %s.\n", name, buf1); ++ if (n1 != ABSENT_NUMERIC) { ++ found = TRUE; ++ for_each_entry() { ++ n2 = next_entry->Numbers[idx]; ++ if (n1 != n2) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ dump_numeric(n1, buf1); ++ (void) printf("\t%s= %s.\n", name, buf1); ++ } ++ } + break; + + case C_NAND: +- if (n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC) +- (void) printf("\t!%s.\n", name); ++ if (n1 == ABSENT_NUMERIC) { ++ found = TRUE; ++ for_each_entry() { ++ n2 = next_entry->Numbers[idx]; ++ if (n1 != n2) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) printf("\t!%s.\n", name); ++ } ++ } + break; + } + break; + + case CMP_STRING: ++ check_user_definable(idx, STRWRITE); + s1 = e1->tterm.Strings[idx]; +- s2 = e2->tterm.Strings[idx]; + switch (compare) { + case C_DIFFERENCE: ++ s2 = next_entry->Strings[idx]; + if (capcmp(idx, s1, s2)) { + dump_string(s1, buf1); + dump_string(s2, buf2); +@@ -405,13 +542,35 @@ + break; + + case C_COMMON: +- if (s1 && s2 && !capcmp(idx, s1, s2)) +- (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1)); ++ if (s1 != ABSENT_STRING) { ++ found = TRUE; ++ for_each_entry() { ++ s2 = next_entry->Strings[idx]; ++ if (capcmp(idx, s1, s2) != 0) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1)); ++ } ++ } + break; + + case C_NAND: +- if (!s1 && !s2) +- (void) printf("\t!%s.\n", name); ++ if (s1 == ABSENT_STRING) { ++ found = TRUE; ++ for_each_entry() { ++ s2 = next_entry->Strings[idx]; ++ if (s2 != s1) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) printf("\t!%s.\n", name); ++ } ++ } + break; + } + break; +@@ -430,16 +589,37 @@ + break; + + case C_COMMON: +- if (e1->nuses && e2->nuses && useeq(e1, e2)) { +- (void) fputs("\tuse: ", stdout); +- print_uses(e1, stdout); +- fputs(".\n", stdout); ++ if (e1->nuses) { ++ found = TRUE; ++ for_each_entry() { ++ e2 = &entries[extra++]; ++ if (e2->nuses != e1->nuses || !useeq(e1, e2)) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) fputs("\tuse: ", stdout); ++ print_uses(e1, stdout); ++ fputs(".\n", stdout); ++ } + } + break; + + case C_NAND: +- if (!e1->nuses && !e2->nuses) +- (void) printf("\t!use.\n"); ++ if (!e1->nuses) { ++ found = TRUE; ++ for_each_entry() { ++ e2 = &entries[extra++]; ++ if (e2->nuses != e1->nuses) { ++ found = FALSE; ++ break; ++ } ++ } ++ if (found) { ++ (void) printf("\t!use.\n"); ++ } ++ } + break; + } + } +@@ -556,7 +736,7 @@ + } + + static bool +-same_param(const char *table, const char *param, unsigned length) ++same_param(const char *table, const char *param, size_t length) + { + bool result = FALSE; + if (strncmp(table, param, length) == 0) { +@@ -581,15 +761,15 @@ + size_t tlen = strlen(ap->from); + + if (same_param(ap->from, ep, tlen)) { +- (void) strcat(dst, ap->to); ++ _nc_STRCAT(dst, ap->to, MAX_TERMINFO_LENGTH); + found = TRUE; + break; + } + } + + if (!found) +- (void) strcat(dst, ep); +- (void) strcat(dst, ";"); ++ _nc_STRCAT(dst, ep, MAX_TERMINFO_LENGTH); ++ _nc_STRCAT(dst, ";", MAX_TERMINFO_LENGTH); + } while + ((ep = strtok((char *) 0, ";"))); + +@@ -608,7 +788,7 @@ + const assoc *ap; + int tp_lines = tp->Numbers[2]; + +- if (cap == ABSENT_STRING || cap == CANCELLED_STRING) ++ if (!VALID_STRING(cap)) + return; + (void) printf("%s: ", name); + +@@ -624,12 +804,13 @@ + for (i = 0; i < STRCOUNT; i++) { + char *cp = tp->Strings[i]; + +- /* don't use soft-key capabilities */ +- if (strnames[i][0] == 'k' && strnames[i][0] == 'f') ++ /* don't use function-key capabilities */ ++ if (strnames[i][0] == 'k' && strnames[i][1] == 'f') + continue; + +- if (cp != ABSENT_STRING && cp != CANCELLED_STRING && cp[0] && cp +- != cap) { ++ if (VALID_STRING(cp) && ++ cp[0] != '\0' && ++ cp != cap) { + len = strlen(cp); + (void) strncpy(buf2, sp, len); + buf2[len] = '\0'; +@@ -637,7 +818,7 @@ + if (_nc_capcmp(cp, buf2)) + continue; + +-#define ISRS(s) (!strncmp((s), "is", 2) || !strncmp((s), "rs", 2)) ++#define ISRS(s) (!strncmp((s), "is", (size_t) 2) || !strncmp((s), "rs", (size_t) 2)) + /* + * Theoretically we just passed the test for translation + * (equality once the padding is stripped). However, there +@@ -677,12 +858,16 @@ + /* now check for standard-mode sequences */ + if (!expansion + && (csi = skip_csi(sp)) != 0 +- && (len = strspn(sp + csi, "0123456789;")) ++ && (len = (strspn) (sp + csi, "0123456789;")) + && (len < sizeof(buf3)) + && (next = (size_t) csi + len) + && ((sp[next] == 'h') || (sp[next] == 'l'))) { + +- (void) strcpy(buf2, (sp[next] == 'h') ? "ECMA+" : "ECMA-"); ++ _nc_STRCPY(buf2, ++ ((sp[next] == 'h') ++ ? "ECMA+" ++ : "ECMA-"), ++ sizeof(buf2)); + (void) strncpy(buf3, sp + csi, len); + buf3[len] = '\0'; + len += (size_t) csi + 1; +@@ -694,12 +879,16 @@ + if (!expansion + && (csi = skip_csi(sp)) != 0 + && sp[csi] == '?' +- && (len = strspn(sp + csi + 1, "0123456789;")) ++ && (len = (strspn) (sp + csi + 1, "0123456789;")) + && (len < sizeof(buf3)) + && (next = (size_t) csi + 1 + len) + && ((sp[next] == 'h') || (sp[next] == 'l'))) { + +- (void) strcpy(buf2, (sp[next] == 'h') ? "DEC+" : "DEC-"); ++ _nc_STRCPY(buf2, ++ ((sp[next] == 'h') ++ ? "DEC+" ++ : "DEC-"), ++ sizeof(buf2)); + (void) strncpy(buf3, sp + csi + 1, len); + buf3[len] = '\0'; + len += (size_t) csi + 2; +@@ -710,12 +899,12 @@ + /* now check for ECMA highlight sequences */ + if (!expansion + && (csi = skip_csi(sp)) != 0 +- && (len = strspn(sp + csi, "0123456789;")) != 0 ++ && (len = (strspn) (sp + csi, "0123456789;")) != 0 + && (len < sizeof(buf3)) + && (next = (size_t) csi + len) + && sp[next] == 'm') { + +- (void) strcpy(buf2, "SGR:"); ++ _nc_STRCPY(buf2, "SGR:", sizeof(buf2)); + (void) strncpy(buf3, sp + csi, len); + buf3[len] = '\0'; + len += (size_t) csi + 1; +@@ -727,8 +916,8 @@ + && (csi = skip_csi(sp)) != 0 + && sp[csi] == 'm') { + len = (size_t) csi + 1; +- (void) strcpy(buf2, "SGR:"); +- strcat(buf2, ecma_highlights[0].to); ++ _nc_STRCPY(buf2, "SGR:", sizeof(buf2)); ++ _nc_STRCAT(buf2, ecma_highlights[0].to, sizeof(buf2)); + expansion = buf2; + } + +@@ -739,7 +928,7 @@ + expansion = "RSR"; + len = 1; + } else { +- (void) sprintf(buf2, "1;%dr", tp_lines); ++ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "1;%dr", tp_lines); + len = strlen(buf2); + if (strncmp(buf2, sp + csi, len) == 0) + expansion = "RSR"; +@@ -750,12 +939,12 @@ + /* now check for home-down */ + if (!expansion + && (csi = skip_csi(sp)) != 0) { +- (void) sprintf(buf2, "%d;1H", tp_lines); ++ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "%d;1H", tp_lines); + len = strlen(buf2); + if (strncmp(buf2, sp + csi, len) == 0) { + expansion = "LL"; + } else { +- (void) sprintf(buf2, "%dH", tp_lines); ++ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "%dH", tp_lines); + len = strlen(buf2); + if (strncmp(buf2, sp + csi, len) == 0) { + expansion = "LL"; +@@ -795,12 +984,16 @@ + int i, n; + + memset(heads, 0, sizeof(heads)); +- dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, itrace, FALSE); ++ dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, 65535, itrace, FALSE); + + for (n = 0; n < argc && n < MAXCOMPARE; n++) { + if (freopen(argv[n], "r", stdin) == 0) + _nc_err_abort("Can't open %s", argv[n]); + ++#if NO_LEAKS ++ entered[n].head = _nc_head; ++ entered[n].tail = _nc_tail; ++#endif + _nc_head = _nc_tail = 0; + + /* parse entries out of the source file */ +@@ -925,6 +1118,11 @@ + #endif + if (!(entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp))) { + char name1[NAMESIZE], name2[NAMESIZE]; ++ char *names[3]; ++ ++ names[0] = name1; ++ names[1] = name2; ++ names[2] = 0; + + entries[0] = *qp; + entries[1] = *rp; +@@ -934,29 +1132,17 @@ + + switch (compare) { + case C_DIFFERENCE: +- if (itrace) +- (void) fprintf(stderr, +- "%s: dumping differences\n", +- _nc_progname); +- (void) printf("comparing %s to %s.\n", name1, name2); ++ show_comparing(names); + compare_entry(compare_predicate, &entries->tterm, quiet); + break; + + case C_COMMON: +- if (itrace) +- (void) fprintf(stderr, +- "%s: dumping common capabilities\n", +- _nc_progname); +- (void) printf("comparing %s to %s.\n", name1, name2); ++ show_comparing(names); + compare_entry(compare_predicate, &entries->tterm, quiet); + break; + + case C_NAND: +- if (itrace) +- (void) fprintf(stderr, +- "%s: dumping differences\n", +- _nc_progname); +- (void) printf("comparing %s to %s.\n", name1, name2); ++ show_comparing(names); + compare_entry(compare_predicate, &entries->tterm, quiet); + break; + +@@ -974,7 +1160,9 @@ + "Usage: infocmp [options] [-A directory] [-B directory] [termname...]" + ,"" + ,"Options:" ++ ," -0 print single-row" + ," -1 print single-column" ++ ," -K use termcap-names and BSD syntax" + ," -C use termcap-names" + ," -F compare terminfo-files" + ," -I use terminfo-names" +@@ -982,6 +1170,7 @@ + ," -R subset (see manpage)" + ," -T eliminate size limits (test)" + ," -U eliminate post-processing of entries" ++ ," -D print database locations" + ," -V print version" + #if NCURSES_XNAMES + ," -a with -F, list commented-out caps" +@@ -1030,19 +1219,25 @@ + any_initializer(const char *fmt, const char *type) + { + static char *initializer; ++ static size_t need; + char *s; + +- if (initializer == 0) +- initializer = (char *) malloc(strlen(entries->tterm.term_names) + +- strlen(type) + strlen(fmt)); ++ if (initializer == 0) { ++ need = (strlen(entries->tterm.term_names) ++ + strlen(type) ++ + strlen(fmt)); ++ initializer = (char *) malloc(need + 1); ++ if (initializer == 0) ++ failed("any_initializer"); ++ } + +- (void) strcpy(initializer, entries->tterm.term_names); ++ _nc_STRCPY(initializer, entries->tterm.term_names, need); + for (s = initializer; *s != 0 && *s != '|'; s++) { + if (!isalnum(UChar(*s))) + *s = '_'; + } + *s = 0; +- (void) sprintf(s, fmt, type); ++ _nc_SPRINTF(s, _nc_SLIMIT(need) fmt, type); + return initializer; + } + +@@ -1073,9 +1268,10 @@ + + if (VALID_STRING(term->Strings[n])) { + tp = buf; ++#define TP_LIMIT ((MAX_STRING - 5) - (size_t)(tp - buf)) + *tp++ = '"'; + for (sp = term->Strings[n]; +- *sp != 0 && (tp - buf) < MAX_STRING - 6; ++ *sp != 0 && TP_LIMIT > 2; + sp++) { + if (isascii(UChar(*sp)) + && isprint(UChar(*sp)) +@@ -1083,14 +1279,15 @@ + && *sp != '"') + *tp++ = *sp; + else { +- (void) sprintf(tp, "\\%03o", UChar(*sp)); ++ _nc_SPRINTF(tp, _nc_SLIMIT(TP_LIMIT) "\\%03o", UChar(*sp)); + tp += 4; + } + } + *tp++ = '"'; + *tp = '\0'; + (void) printf("static char %-20s[] = %s;\n", +- string_variable(ExtStrname(term, n, strnames)), buf); ++ string_variable(ExtStrname(term, (int) n, strnames)), ++ buf); + } + } + printf("\n"); +@@ -1116,7 +1313,7 @@ + break; + } + (void) printf("\t/* %3u: %-8s */\t%s,\n", +- n, ExtBoolname(term, n, boolnames), str); ++ n, ExtBoolname(term, (int) n, boolnames), str); + } + (void) printf("%s;\n", R_CURL); + +@@ -1132,12 +1329,12 @@ + str = "CANCELLED_NUMERIC"; + break; + default: +- sprintf(buf, "%d", term->Numbers[n]); ++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "%d", term->Numbers[n]); + str = buf; + break; + } + (void) printf("\t/* %3u: %-8s */\t%s,\n", n, +- ExtNumname(term, n, numnames), str); ++ ExtNumname(term, (int) n, numnames), str); + } + (void) printf("%s;\n", R_CURL); + +@@ -1150,10 +1347,10 @@ + else if (term->Strings[n] == CANCELLED_STRING) + str = "CANCELLED_STRING"; + else { +- str = string_variable(ExtStrname(term, n, strnames)); ++ str = string_variable(ExtStrname(term, (int) n, strnames)); + } + (void) printf("\t/* %3u: %-8s */\t%s,\n", n, +- ExtStrname(term, n, strnames), str); ++ ExtStrname(term, (int) n, strnames), str); + } + (void) printf("%s;\n", R_CURL); + +@@ -1165,15 +1362,15 @@ + name_initializer("string_ext"), L_CURL); + for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) { + (void) printf("\t/* %3u: bool */\t\"%s\",\n", +- n, ExtBoolname(term, n, boolnames)); ++ n, ExtBoolname(term, (int) n, boolnames)); + } + for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) { + (void) printf("\t/* %3u: num */\t\"%s\",\n", +- n, ExtNumname(term, n, numnames)); ++ n, ExtNumname(term, (int) n, numnames)); + } + for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) { + (void) printf("\t/* %3u: str */\t\"%s\",\n", +- n, ExtStrname(term, n, strnames)); ++ n, ExtStrname(term, (int) n, strnames)); + } + (void) printf("%s;\n", R_CURL); + } +@@ -1247,6 +1444,23 @@ + return terminal; + } + ++/* ++ * Show the databases that infocmp knows about. The location to which it writes is ++ */ ++static void ++show_databases(void) ++{ ++ DBDIRS state; ++ int offset; ++ const char *path2; ++ ++ _nc_first_db(&state, &offset); ++ while ((path2 = _nc_next_db(&state, &offset)) != 0) { ++ printf("%s\n", path2); ++ } ++ _nc_last_db(); ++} ++ + /*************************************************************************** + * + * Main sequence +@@ -1269,7 +1483,7 @@ + /* Also avoid overflowing smaller stacks on systems like AmigaOS */ + path *tfile = 0; + char **tname = 0; +- int maxterms; ++ size_t maxterms; + + char **myargv; + +@@ -1287,18 +1501,27 @@ + #if NCURSES_XNAMES + use_extended_names(FALSE); + #endif ++ _nc_strict_bsd = 0; + + _nc_progname = _nc_rootname(argv[0]); + + /* make sure we have enough space to add two terminal entries */ + myargv = typeCalloc(char *, (size_t) (argc + 3)); ++ if (myargv == 0) ++ failed("myargv"); ++ + memcpy(myargv, argv, (sizeof(char *) * (size_t) argc)); + argv = myargv; + + while ((c = getopt(argc, + argv, +- "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != -1) { ++ "01A:aB:CcDdEeFfGgIiKLlnpqR:rs:TtUuVv:w:x")) != -1) { + switch (c) { ++ case '0': ++ mwidth = 65535; ++ mheight = 1; ++ break; ++ + case '1': + mwidth = 0; + break; +@@ -1317,6 +1540,9 @@ + restdir = optarg; + break; + ++ case 'K': ++ _nc_strict_bsd = 1; ++ /* FALLTHRU */ + case 'C': + outform = F_TERMCAP; + tversion = "BSD"; +@@ -1324,6 +1550,11 @@ + sortmode = S_TERMCAP; + break; + ++ case 'D': ++ show_databases(); ++ ExitProgram(EXIT_SUCCESS); ++ break; ++ + case 'c': + compare = C_COMMON; + break; +@@ -1441,7 +1672,7 @@ + ExitProgram(EXIT_SUCCESS); + + case 'v': +- itrace = optarg_to_number(); ++ itrace = (unsigned) optarg_to_number(); + set_trace_level(itrace); + break; + +@@ -1460,10 +1691,17 @@ + } + } + +- maxterms = (argc + 2 - optind); +- tfile = typeMalloc(path, maxterms); +- tname = typeCalloc(char *, maxterms); +- entries = typeCalloc(ENTRY, maxterms); ++ maxterms = (size_t) (argc + 2 - optind); ++ if ((tfile = typeMalloc(path, maxterms)) == 0) ++ failed("tfile"); ++ if ((tname = typeCalloc(char *, maxterms)) == 0) ++ failed("tname"); ++ if ((entries = typeCalloc(ENTRY, maxterms)) == 0) ++ failed("entries"); ++#if NO_LEAKS ++ if ((entered = typeCalloc(ENTERED, maxterms)) == 0) ++ failed("entered"); ++#endif + + if (tfile == 0 + || tname == 0 +@@ -1476,9 +1714,6 @@ + if (sortmode == S_DEFAULT) + sortmode = S_TERMINFO; + +- /* set up for display */ +- dump_init(tversion, outform, sortmode, mwidth, itrace, formatted); +- + /* make sure we have at least one terminal name to work with */ + if (optind >= argc) + argv[argc++] = terminal_env(); +@@ -1487,9 +1722,23 @@ + if (compare != C_DEFAULT && optind >= argc - 1) + argv[argc++] = terminal_env(); + ++ /* exactly one terminal name with no options means display it */ + /* exactly two terminal names with no options means do -d */ +- if (argc - optind == 2 && compare == C_DEFAULT) +- compare = C_DIFFERENCE; ++ if (compare == C_DEFAULT) { ++ switch (argc - optind) { ++ default: ++ fprintf(stderr, "%s: too many names to compare\n", _nc_progname); ++ ExitProgram(EXIT_FAILURE); ++ case 1: ++ break; ++ case 2: ++ compare = C_DIFFERENCE; ++ break; ++ } ++ } ++ ++ /* set up for display */ ++ dump_init(tversion, outform, sortmode, mwidth, mheight, itrace, formatted); + + if (!filecompare) { + /* grab the entries */ +@@ -1501,15 +1750,17 @@ + tname[termcount] = argv[optind]; + + if (directory) { +-#if USE_DATABASE ++#if NCURSES_USE_DATABASE + #if MIXEDCASE_FILENAMES + #define LEAF_FMT "%c" + #else + #define LEAF_FMT "%02x" + #endif +- (void) sprintf(tfile[termcount], "%s/" LEAF_FMT "/%s", +- directory, +- UChar(*argv[optind]), argv[optind]); ++ _nc_SPRINTF(tfile[termcount], ++ _nc_SLIMIT(sizeof(path)) ++ "%s/" LEAF_FMT "/%s", ++ directory, ++ UChar(*argv[optind]), argv[optind]); + if (itrace) + (void) fprintf(stderr, + "%s: reading entry %s from file %s\n", +@@ -1599,27 +1850,17 @@ + break; + + case C_DIFFERENCE: +- if (itrace) +- (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname); +- (void) printf("comparing %s to %s.\n", tname[0], tname[1]); ++ show_comparing(tname); + compare_entry(compare_predicate, &entries->tterm, quiet); + break; + + case C_COMMON: +- if (itrace) +- (void) fprintf(stderr, +- "%s: dumping common capabilities\n", +- _nc_progname); +- (void) printf("comparing %s to %s.\n", tname[0], tname[1]); ++ show_comparing(tname); + compare_entry(compare_predicate, &entries->tterm, quiet); + break; + + case C_NAND: +- if (itrace) +- (void) fprintf(stderr, +- "%s: dumping differences\n", +- _nc_progname); +- (void) printf("comparing %s to %s.\n", tname[0], tname[1]); ++ show_comparing(tname); + compare_entry(compare_predicate, &entries->tterm, quiet); + break; + +@@ -1640,15 +1881,16 @@ + break; + } + } +- } else if (compare == C_USEALL) ++ } else if (compare == C_USEALL) { + (void) fprintf(stderr, "Sorry, -u doesn't work with -F\n"); +- else if (compare == C_DEFAULT) ++ } else if (compare == C_DEFAULT) { + (void) fprintf(stderr, "Use `tic -[CI] <file>' for this.\n"); +- else if (argc - optind != 2) ++ } else if (argc - optind != 2) { + (void) fprintf(stderr, + "File comparison needs exactly two file arguments.\n"); +- else ++ } else { + file_comparison(argc - optind, argv + optind); ++ } + + MAIN_LEAKS(); + ExitProgram(EXIT_SUCCESS); +diff -Naur ncurses-5.9/progs/Makefile.in ncurses-5.9.patch/progs/Makefile.in +--- ncurses-5.9/progs/Makefile.in 2010-11-27 22:45:27.000000000 +0100 ++++ ncurses-5.9.patch/progs/Makefile.in 2014-09-01 16:33:22.521792398 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.85 2010/11/27 21:45:27 tom Exp $ ++# $Id: Makefile.in,v 1.90 2013/08/04 20:23:20 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -61,7 +61,11 @@ + bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++datarootdir = @datarootdir@ + datadir = @datadir@ ++includesubdir = @includesubdir@ ++ ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -104,20 +108,21 @@ + LD = @LD@ + LINK = @LINK_PROGS@ $(LIBTOOL_LINK) + LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@ ++RPATH_LIST = @RPATH_LIST@ + + LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL) + LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL) + LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG) +-LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE) ++LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE) + LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@ + + LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) + +-LIBS_TIC = @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ +-LDFLAGS_TIC = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC) ++LIBS_TIC = @TINFO_LDFLAGS@ @LDFLAGS_STATIC@ @TICS_LIBS@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ ++LDFLAGS_TIC = @TICS_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC) + +-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ +-LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) ++LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ ++LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) + + LINT = @LINT@ + LINT_OPTS = @LINT_OPTS@ +@@ -230,46 +235,46 @@ + $(MODEL)/transform$o + + tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h +- @ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@ ++ @ECHO_LD@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@ + + DEPS_TOE = \ + $(MODEL)/toe$o + + toe$x: $(DEPS_TOE) $(DEPS_CURSES) +- @ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@ ++ @ECHO_LD@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@ + + DEPS_CLEAR = \ + $(MODEL)/clear$o + + clear$x: $(DEPS_CLEAR) $(DEPS_CURSES) +- @ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@ ++ @ECHO_LD@ $(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 $@ ++ @ECHO_LD@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@ + + DEPS_TPUT = \ + $(MODEL)/tput$o \ + $(MODEL)/transform$o + + tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h +- @ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@ ++ @ECHO_LD@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@ + + DEPS_INFOCMP = \ + $(MODEL)/infocmp$o \ + $(MODEL)/dump_entry$o + + infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES) +- @ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@ ++ @ECHO_LD@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@ + + DEPS_TSET = \ + $(MODEL)/tset$o \ + $(MODEL)/transform$o + + tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h +- @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@ ++ @ECHO_LD@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@ + + termsort.c: $(srcdir)/MKtermsort.sh + sh $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@ +diff -Naur ncurses-5.9/progs/progs.priv.h ncurses-5.9.patch/progs/progs.priv.h +--- ncurses-5.9/progs/progs.priv.h 2008-08-03 19:43:05.000000000 +0200 ++++ ncurses-5.9.patch/progs/progs.priv.h 2014-09-01 16:33:22.522792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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: Thomas E. Dickey 1997-on * + ****************************************************************************/ + /* +- * $Id: progs.priv.h,v 1.34 2008/08/03 17:43:05 tom Exp $ ++ * $Id: progs.priv.h,v 1.39 2012/02/22 22:11:27 tom Exp $ + * + * progs.priv.h + * +@@ -42,7 +42,7 @@ + #if USE_RCS_IDS + #define MODULE_ID(id) static const char Ident[] = id; + #else +-#define MODULE_ID(id) /*nothing*/ ++#define MODULE_ID(id) /*nothing */ + #endif + + #include <stdlib.h> +@@ -90,6 +90,14 @@ + # endif + #endif + ++#if HAVE_INTTYPES_H ++# include <inttypes.h> ++#else ++# if HAVE_STDINT_H ++# include <stdint.h> ++# endif ++#endif ++ + #include <assert.h> + #include <errno.h> + +@@ -99,7 +107,7 @@ + + #if HAVE_GETOPT_H + #include <getopt.h> +-#else ++#elif !defined(HAVE_GETOPT_HEADER) + /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its + * variables doesn't hurt. + */ +@@ -109,9 +117,11 @@ + + #include <curses.h> + #include <term_entry.h> ++#include <nc_termios.h> + #include <tic.h> + #include <nc_tparm.h> + ++#include <nc_string.h> + #include <nc_alloc.h> + #if HAVE_NC_FREEALL + #undef ExitProgram +@@ -171,7 +181,7 @@ + # elif defined(MAXPATHLEN) + # define PATH_MAX MAXPATHLEN + # else +-# define PATH_MAX 255 /* the Posix minimum pathsize */ ++# define PATH_MAX 255 /* the Posix minimum pathsize */ + # endif + #endif + +@@ -183,7 +193,7 @@ + # if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127) + # define isascii(c) (UChar(c) <= 127) + # else +-# define isascii(c) 1 /* not really ascii anyway */ ++# define isascii(c) 1 /* not really ascii anyway */ + # endif + #endif + +diff -Naur ncurses-5.9/progs/tabs.c ncurses-5.9.patch/progs/tabs.c +--- ncurses-5.9/progs/tabs.c 2010-10-24 00:26:01.000000000 +0200 ++++ ncurses-5.9.patch/progs/tabs.c 2014-09-01 16:33:22.523792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2012,2013 Free 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,12 +37,20 @@ + #define USE_LIBTINFO + #include <progs.priv.h> + +-MODULE_ID("$Id: tabs.c,v 1.19 2010/10/23 22:26:01 tom Exp $") ++MODULE_ID("$Id: tabs.c,v 1.34 2013/06/11 08:18:27 tom Exp $") + + static void usage(void) GCC_NORETURN; + ++static char *prg_name; + static int max_cols; + ++static void ++failed(const char *s) ++{ ++ perror(s); ++ ExitProgram(EXIT_FAILURE); ++} ++ + static int + putch(int c) + { +@@ -83,28 +91,29 @@ + 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 && result[n] <= result[n - 1]) { +- fprintf(stderr, +- "tab-stops are not in increasing order: %d %d\n", +- value, result[n - 1]); +- free(result); +- result = 0; +- break; +- } +- ++n; +- value = 0; +- prior = 0; +- } else if (ch == '+') { +- if (n) +- prior = result[n - 1]; ++ if (result == 0) ++ failed("decode_tabs"); ++ ++ while ((ch = *tab_list++) != '\0') { ++ if (isdigit(UChar(ch))) { ++ value *= 10; ++ value += (ch - '0'); ++ } else if (ch == ',') { ++ result[n] = value + prior; ++ if (n > 0 && result[n] <= result[n - 1]) { ++ fprintf(stderr, ++ "%s: tab-stops are not in increasing order: %d %d\n", ++ prg_name, value, result[n - 1]); ++ free(result); ++ result = 0; ++ break; + } ++ ++n; ++ value = 0; ++ prior = 0; ++ } else if (ch == '+') { ++ if (n) ++ prior = result[n - 1]; + } + } + +@@ -114,6 +123,7 @@ + */ + if ((n == 0) && (value > 0)) { + int step = value; ++ value = 1; + while (n < max_cols - 1) { + result[n++] = value; + value += step; +@@ -126,6 +136,7 @@ + result[n++] = value + prior; + result[n] = 0; + } ++ + return result; + } + +@@ -140,10 +151,11 @@ + 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))); ++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) ++ "----+----%c", ++ ((ch < 10) ++ ? (ch + '0') ++ : (ch + 'A' - 10))); + printf("%.*s", ((max_cols - n) > 10) ? 10 : (max_cols - n), buffer); + } + putchar('\n'); +@@ -227,7 +239,7 @@ + bool result = FALSE; + + if (source != 0) { +- unsigned len = strlen(source); ++ size_t len = strlen(source); + if (len != 0) + result = (source[len - 1] != ','); + } else { +@@ -251,7 +263,7 @@ + + if (copied != 0 && *copied != '\0') { + const char *comma = ","; +- unsigned need = 1 + strlen(copied); ++ size_t need = 1 + strlen(copied); + + if (*copied == ',') + comma = ""; +@@ -263,15 +275,16 @@ + 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); ++ if (result == 0) ++ failed("add_to_tab_list"); ++ ++ *result = '\0'; ++ if (*append != 0) { ++ _nc_STRCPY(result, *append, need); ++ free(*append); + } ++ _nc_STRCAT(result, comma, need); ++ _nc_STRCAT(result, copied, need); + + *append = result; + } +@@ -282,7 +295,7 @@ + * Check for illegal characters in the tab-list. + */ + static bool +-legal_tab_list(const char *program, const char *tab_list) ++legal_tab_list(const char *tab_list) + { + bool result = TRUE; + +@@ -294,22 +307,34 @@ + if (!(isdigit(ch) || ch == ',' || ch == '+')) { + fprintf(stderr, + "%s: unexpected character found '%c'\n", +- program, ch); ++ prg_name, ch); + result = FALSE; + break; + } + } + } else { +- fprintf(stderr, "%s: trailing comma found '%s'\n", program, tab_list); ++ fprintf(stderr, "%s: trailing comma found '%s'\n", prg_name, tab_list); + result = FALSE; + } + } else { +- fprintf(stderr, "%s: no tab-list given\n", program); ++ fprintf(stderr, "%s: no tab-list given\n", prg_name); + result = FALSE; + } + return result; + } + ++static char * ++skip_list(char *value) ++{ ++ while (*value != '\0' && ++ (isdigit(UChar(*value)) || ++ isspace(UChar(*value)) || ++ strchr("+,", UChar(*value)) != 0)) { ++ ++value; ++ } ++ return value; ++} ++ + static void + usage(void) + { +@@ -332,6 +357,7 @@ + ," -s SNOBOL" + ," -u UNIVAC 1100 Assembler" + ," -T name use terminal type 'name'" ++ ," -V print version" + ,"" + ,"A tabstop-list is an ordered list of column numbers, e.g., 1,11,21" + ,"or 1,+10,+10 which is the same." +@@ -353,10 +379,11 @@ + 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; + ++ prg_name = _nc_rootname(argv[0]); ++ + if ((term_name = getenv("TERM")) == 0) + term_name = "ansi+tabs"; + +@@ -368,23 +395,25 @@ + while ((ch = *++option) != '\0') { + switch (ch) { + case 'a': +- switch (*option) { ++ switch (*++option) { ++ default: + case '\0': + tab_list = "1,10,16,36,72"; ++ option--; + /* 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) { ++ switch (*++option) { ++ default: + case '\0': + tab_list = "1,8,12,16,20,55"; ++ option--; + /* COBOL, normal format */ + break; + case '2': +@@ -395,8 +424,6 @@ + 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 */ +@@ -427,17 +454,22 @@ + term_name = option; + } else { + term_name = argv[n++]; ++ option--; + } + option += ((int) strlen(option)) - 1; + continue; ++ case 'V': ++ puts(curses_version()); ++ ExitProgram(EXIT_SUCCESS); + default: + if (isdigit(UChar(*option))) { +- tab_list = option; +- ++n; ++ char *copy = strdup(option); ++ *skip_list(copy) = '\0'; ++ tab_list = copy; ++ option = skip_list(option) - 1; + } else { + usage(); + } +- option += ((int) strlen(option)) - 1; + break; + } + } +@@ -446,7 +478,11 @@ + while ((ch = *++option) != '\0') { + switch (ch) { + case 'm': +- mar_list = option; ++ /* ++ * The "+mXXX" option is unimplemented because only the long-obsolete ++ * att510d implements smgl, which is needed to support ++ * this option. ++ */ + break; + default: + /* special case of relative stops separated by spaces? */ +@@ -477,12 +513,12 @@ + if (!VALID_STRING(clear_all_tabs)) { + fprintf(stderr, + "%s: terminal type '%s' cannot reset tabs\n", +- argv[0], term_name); ++ prg_name, 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)) { ++ prg_name, term_name); ++ } else if (legal_tab_list(tab_list)) { + int *list = decode_tabs(tab_list); + + if (!no_op) +diff -Naur ncurses-5.9/progs/tic.c ncurses-5.9.patch/progs/tic.c +--- ncurses-5.9/progs/tic.c 2011-02-12 19:39:08.000000000 +0100 ++++ ncurses-5.9.patch/progs/tic.c 2014-09-01 16:33:22.523792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,6 +35,7 @@ + /* + * tic.c --- Main program for terminfo compiler + * by Eric S. Raymond ++ * and Thomas E Dickey + * + */ + +@@ -42,9 +43,12 @@ + #include <sys/stat.h> + + #include <dump_entry.h> ++#include <hashed_db.h> + #include <transform.h> + +-MODULE_ID("$Id: tic.c,v 1.147 2011/02/12 18:39:08 tom Exp $") ++MODULE_ID("$Id: tic.c,v 1.189 2013/11/16 19:58:09 tom Exp $") ++ ++#define STDIN_NAME "<stdin>" + + const char *_nc_progname = "tic"; + +@@ -53,6 +57,7 @@ + static bool capdump = FALSE; /* running as infotocap? */ + static bool infodump = FALSE; /* running as captoinfo? */ + static bool showsummary = FALSE; ++static char **namelst = 0; + static const char *to_remove; + + static void (*save_check_termtype) (TERMTYPE *, bool); +@@ -69,11 +74,13 @@ + 1\ + a\ + C\ ++D\ + c\ + f\ + G\ + g\ + I\ ++K\ + L\ + N\ + r\ +@@ -99,8 +106,10 @@ + #endif + + static void +-cleanup(char **namelst GCC_UNUSED) ++cleanup(void) + { ++ int rc; ++ + #if NO_LEAKS + free_namelist(namelst); + #endif +@@ -108,10 +117,12 @@ + fclose(tmp_fp); + if (to_remove != 0) { + #if HAVE_REMOVE +- remove(to_remove); ++ rc = remove(to_remove); + #else +- unlink(to_remove); ++ rc = unlink(to_remove); + #endif ++ if (rc != 0) ++ perror(to_remove); + } + } + +@@ -119,7 +130,6 @@ + failed(const char *msg) + { + perror(msg); +- cleanup((char **) 0); + ExitProgram(EXIT_FAILURE); + } + +@@ -133,7 +143,9 @@ + #if NCURSES_XNAMES + " -a retain commented-out capabilities (sets -x also)", + #endif ++ " -K translate entries to termcap source form with BSD syntax", + " -C translate entries to termcap source form", ++ " -D print list of tic's database locations (first must be writable)", + " -c check only, validate input without compiling or translating", + " -e<names> translate/compile only entries named by comma-separated list", + " -f format complex strings for readability", +@@ -173,7 +185,7 @@ + + #define L_BRACE '{' + #define R_BRACE '}' +-#define S_QUOTE '\''; ++#define S_QUOTE '\'' + + static void + write_it(ENTRY * ep) +@@ -216,12 +228,12 @@ + } + *d = 0; + if (strlen(result) < strlen(s)) +- strcpy(s, result); ++ _nc_STRCPY(s, result, strlen(s) + 1); + } + } + + _nc_set_type(_nc_first_name(ep->tterm.term_names)); +- _nc_curr_line = ep->startline; ++ _nc_curr_line = (int) ep->startline; + _nc_write_entry(&ep->tterm); + } + +@@ -286,8 +298,10 @@ + if (in_name) { + if (used + 1 >= have) { + have += 132; +- namebuf = typeRealloc(char, have, namebuf); +- suffix = typeRealloc(char, have, suffix); ++ if ((namebuf = typeRealloc(char, have, namebuf)) == 0) ++ failed("put_translate namebuf"); ++ if ((suffix = typeRealloc(char, have, suffix)) == 0) ++ failed("put_translate suffix"); + } + if (c == '\n' || c == '@') { + namebuf[used++] = '\0'; +@@ -308,7 +322,7 @@ + if ((up = strchr(namebuf, '#')) != 0 + || (up = strchr(namebuf, '=')) != 0 + || ((up = strchr(namebuf, '@')) != 0 && up[1] == '>')) { +- (void) strcpy(suffix, up); ++ _nc_STRCPY(suffix, up, have); + *up = '\0'; + } + +@@ -339,39 +353,122 @@ + static char * + stripped(char *src) + { ++ char *dst = 0; ++ + while (isspace(UChar(*src))) + src++; ++ + if (*src != '\0') { +- char *dst; + size_t len; + +- if ((dst = strdup(src)) == NULL) ++ if ((dst = strdup(src)) == NULL) { + failed("strdup"); ++ } else { ++ len = strlen(dst); ++ while (--len != 0 && isspace(UChar(dst[len]))) ++ dst[len] = '\0'; ++ } ++ } ++ return dst; ++} ++ ++static FILE * ++open_tempfile(char *filename) ++{ ++ FILE *result = 0; ++ ++ _nc_STRCPY(filename, "/tmp/XXXXXX", PATH_MAX); ++#if HAVE_MKSTEMP ++ { ++ int oldmask = (int) umask(077); ++ int fd = mkstemp(filename); ++ if (fd >= 0) ++ result = fdopen(fd, "w"); ++ umask((mode_t) oldmask); ++ } ++#else ++ if (tmpnam(filename) != 0) ++ result = fopen(filename, "w"); ++#endif ++ return result; ++} ++ ++static FILE * ++copy_input(FILE *source, const char *filename, char *alt_file) ++{ ++ char my_altfile[PATH_MAX]; ++ FILE *result = 0; ++ FILE *target = 0; ++ int ch; + +- assert(dst != 0); ++ if (alt_file == 0) ++ alt_file = my_altfile; + +- len = strlen(dst); +- while (--len != 0 && isspace(UChar(dst[len]))) +- dst[len] = '\0'; +- return dst; ++ if (source == 0) { ++ failed("copy_input (source)"); ++ } else if ((target = open_tempfile(alt_file)) == 0) { ++ failed("copy_input (target)"); ++ } else { ++ clearerr(source); ++ for (;;) { ++ ch = fgetc(source); ++ if (feof(source)) { ++ break; ++ } else if (ferror(source)) { ++ failed(filename); ++ } else if (ch == 0) { ++ /* don't loop in case someone wants to convert /dev/zero */ ++ fprintf(stderr, "%s: %s is not a text-file\n", _nc_progname, filename); ++ ExitProgram(EXIT_FAILURE); ++ } ++ fputc(ch, target); ++ } ++ fclose(source); ++ /* ++ * rewind() does not force the target file's data to disk (not does ++ * fflush()...). So open a second stream on the data and then close ++ * the one that we were writing on before starting to read from the ++ * second stream. ++ */ ++ result = fopen(alt_file, "r+"); ++ fclose(target); ++ to_remove = strdup(alt_file); + } +- return 0; ++ return result; + } + + static FILE * +-open_input(const char *filename) ++open_input(const char *filename, char *alt_file) + { +- FILE *fp = fopen(filename, "r"); ++ FILE *fp; + struct stat sb; ++ int mode; + +- if (fp == 0) { +- fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename); ++ if (!strcmp(filename, "-")) { ++ fp = copy_input(stdin, STDIN_NAME, alt_file); ++ } else if (stat(filename, &sb) < 0) { ++ fprintf(stderr, "%s: %s %s\n", _nc_progname, filename, strerror(errno)); + ExitProgram(EXIT_FAILURE); +- } +- if (fstat(fileno(fp), &sb) < 0 +- || (sb.st_mode & S_IFMT) != S_IFREG) { ++ } else if ((mode = (sb.st_mode & S_IFMT)) == S_IFDIR ++ || (mode != S_IFREG && mode != S_IFCHR)) { + fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename); + ExitProgram(EXIT_FAILURE); ++ } else { ++ fp = fopen(filename, "r"); ++ ++ if (fp == 0) { ++ fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename); ++ ExitProgram(EXIT_FAILURE); ++ } ++ if (mode != S_IFREG) { ++ if (alt_file != 0) { ++ FILE *fp2 = copy_input(fp, filename, alt_file); ++ fp = fp2; ++ } else { ++ fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename); ++ ExitProgram(EXIT_FAILURE); ++ } ++ } + } + return fp; + } +@@ -389,7 +486,7 @@ + if (src == 0) { + /* EMPTY */ ; + } else if (strchr(src, '/') != 0) { /* a filename */ +- FILE *fp = open_input(src); ++ FILE *fp = open_input(src, (char *) 0); + + for (pass = 1; pass <= 2; pass++) { + nn = 0; +@@ -403,7 +500,8 @@ + } + } + if (pass == 1) { +- dst = typeCalloc(char *, nn + 1); ++ if ((dst = typeCalloc(char *, nn + 1)) == 0) ++ failed("make_namelist"); + rewind(fp); + } + } +@@ -425,8 +523,10 @@ + if (mark == '\0') + break; + } +- if (pass == 1) +- dst = typeCalloc(char *, nn + 1); ++ if (pass == 1) { ++ if ((dst = typeCalloc(char *, nn + 1)) == 0) ++ failed("make_namelist"); ++ } + } + } + if (showsummary && (dst != 0)) { +@@ -456,26 +556,118 @@ + return (code); + } + +-static FILE * +-open_tempfile(char *name) ++static char * ++valid_db_path(const char *nominal) + { +- FILE *result = 0; +-#if HAVE_MKSTEMP +- int fd = mkstemp(name); +- if (fd >= 0) +- result = fdopen(fd, "w"); ++ struct stat sb; ++#if USE_HASHED_DB ++ char suffix[] = DBM_SUFFIX; ++ size_t need = strlen(nominal) + sizeof(suffix); ++ char *result = malloc(need); ++ ++ if (result == 0) ++ failed("valid_db_path"); ++ _nc_STRCPY(result, nominal, need); ++ if (strcmp(result + need - sizeof(suffix), suffix)) { ++ _nc_STRCAT(result, suffix, need); ++ } ++#else ++ char *result = strdup(nominal); ++#endif ++ ++ DEBUG(1, ("** stat(%s)", result)); ++ if (stat(result, &sb) >= 0) { ++#if USE_HASHED_DB ++ if (!S_ISREG(sb.st_mode) ++ || access(result, R_OK | W_OK) != 0) { ++ DEBUG(1, ("...not a writable file")); ++ free(result); ++ result = 0; ++ } + #else +- if (tmpnam(name) != 0) +- result = fopen(name, "w"); ++ if (!S_ISDIR(sb.st_mode) ++ || access(result, R_OK | W_OK | X_OK) != 0) { ++ DEBUG(1, ("...not a writable directory")); ++ free(result); ++ result = 0; ++ } + #endif ++ } else { ++ /* check if parent is directory and is writable */ ++ unsigned leaf = _nc_pathlast(result); ++ ++ DEBUG(1, ("...not found")); ++ if (leaf) { ++ char save = result[leaf]; ++ result[leaf] = 0; ++ if (stat(result, &sb) >= 0 ++ && S_ISDIR(sb.st_mode) ++ && access(result, R_OK | W_OK | X_OK) == 0) { ++ result[leaf] = save; ++ } else { ++ DEBUG(1, ("...parent directory %s is not writable", result)); ++ free(result); ++ result = 0; ++ } ++ } else { ++ DEBUG(1, ("... no parent directory")); ++ free(result); ++ result = 0; ++ } ++ } + return result; + } + ++/* ++ * Show the databases to which tic could write. The location to which it ++ * writes is always the first one. If none are writable, print an error ++ * message. ++ */ ++static void ++show_databases(const char *outdir) ++{ ++ bool specific = (outdir != 0) || getenv("TERMINFO") != 0; ++ char *result; ++ const char *tried = 0; ++ ++ if (outdir == 0) { ++ outdir = _nc_tic_dir(0); ++ } ++ if ((result = valid_db_path(outdir)) != 0) { ++ printf("%s\n", result); ++ free(result); ++ } else { ++ tried = outdir; ++ } ++ ++ if ((outdir = _nc_home_terminfo())) { ++ if ((result = valid_db_path(outdir)) != 0) { ++ printf("%s\n", result); ++ free(result); ++ } else if (!specific) { ++ tried = outdir; ++ } ++ } ++ ++ /* ++ * If we can write in neither location, give an error message. ++ */ ++ if (tried) { ++ fflush(stdout); ++ fprintf(stderr, "%s: %s (no permission)\n", _nc_progname, tried); ++ ExitProgram(EXIT_FAILURE); ++ } ++} ++ ++#define VtoTrace(opt) (unsigned) ((opt > 0) ? opt : (opt == 0)) ++ + int + main(int argc, char *argv[]) + { + char my_tmpname[PATH_MAX]; +- int v_opt = -1, debug_level; ++ char my_altfile[PATH_MAX]; ++ int v_opt = -1; ++ unsigned debug_level; + int smart_defaults = TRUE; + char *termcap; + ENTRY *qp; +@@ -486,6 +678,7 @@ + int sortmode = S_TERMINFO; /* sort_mode */ + + int width = 60; ++ int height = 65535; + bool formatted = FALSE; /* reformat complex strings? */ + bool literal = FALSE; /* suppress post-processing? */ + int numbers = 0; /* format "%'char'" to/from "%{number}" */ +@@ -493,7 +686,6 @@ + bool limited = TRUE; + char *tversion = (char *) NULL; + const char *source_file = "terminfo"; +- char **namelst = 0; + char *outdir = (char *) NULL; + bool check_only = FALSE; + bool suppress_untranslatable = FALSE; +@@ -501,6 +693,7 @@ + log_fp = stderr; + + _nc_progname = _nc_rootname(argv[0]); ++ atexit(cleanup); + + if ((infodump = same_program(_nc_progname, PROG_CAPTOINFO)) != FALSE) { + outform = F_TERMINFO; +@@ -513,6 +706,7 @@ + #if NCURSES_XNAMES + use_extended_names(FALSE); + #endif ++ _nc_strict_bsd = 0; + + /* + * Processing arguments is a little complicated, since someone made a +@@ -520,7 +714,7 @@ + * be optional. + */ + while ((this_opt = getopt(argc, argv, +- "0123456789CILNR:TUVace:fGgo:rstvwx")) != -1) { ++ "0123456789CDIKLNR:TUVace:fGgo:rstvwx")) != -1) { + if (isdigit(this_opt)) { + switch (last_opt) { + case 'v': +@@ -530,19 +724,40 @@ + width = (width * 10) + (this_opt - '0'); + break; + default: +- if (this_opt != '1') ++ switch (this_opt) { ++ case '0': ++ last_opt = this_opt; ++ width = 65535; ++ height = 1; ++ break; ++ case '1': ++ last_opt = this_opt; ++ width = 0; ++ break; ++ default: + usage(); +- last_opt = this_opt; +- width = 0; ++ } + } + continue; + } + switch (this_opt) { ++ case 'K': ++ _nc_strict_bsd = 1; ++ /* the initial version of -K in 20110730 fell-thru here, but the ++ * same flag is useful when reading sources -TD ++ */ ++ break; + case 'C': + capdump = TRUE; + outform = F_TERMCAP; + sortmode = S_TERMCAP; + break; ++ case 'D': ++ debug_level = VtoTrace(v_opt); ++ set_trace_level(debug_level); ++ show_databases(outdir); ++ ExitProgram(EXIT_SUCCESS); ++ break; + case 'I': + infodump = TRUE; + outform = F_TERMINFO; +@@ -568,7 +783,6 @@ + break; + case 'V': + puts(curses_version()); +- cleanup(namelst); + ExitProgram(EXIT_SUCCESS); + case 'c': + check_only = TRUE; +@@ -618,7 +832,7 @@ + last_opt = this_opt; + } + +- debug_level = (v_opt > 0) ? v_opt : (v_opt == 0); ++ debug_level = VtoTrace(v_opt); + set_trace_level(debug_level); + + if (_nc_tracing) { +@@ -638,8 +852,8 @@ + */ + if (namelst && (!infodump && !capdump)) { + (void) fprintf(stderr, +- "Sorry, -e can't be used without -I or -C\n"); +- cleanup(namelst); ++ "%s: Sorry, -e can't be used without -I or -C\n", ++ _nc_progname); + ExitProgram(EXIT_FAILURE); + } + #endif /* HAVE_BIG_CORE */ +@@ -663,16 +877,16 @@ + if (access(termcap, F_OK) == 0) { + /* file exists */ + source_file = termcap; +- } else if ((tmp_fp = open_tempfile(strcpy(my_tmpname, +- "/tmp/XXXXXX"))) +- != 0) { +- source_file = my_tmpname; +- fprintf(tmp_fp, "%s\n", termcap); +- fclose(tmp_fp); +- tmp_fp = open_input(source_file); +- to_remove = source_file; + } else { +- failed("tmpnam"); ++ if ((tmp_fp = open_tempfile(my_tmpname)) != 0) { ++ source_file = my_tmpname; ++ fprintf(tmp_fp, "%s\n", termcap); ++ fclose(tmp_fp); ++ tmp_fp = open_input(source_file, (char *) 0); ++ to_remove = source_file; ++ } else { ++ failed("tmpnam"); ++ } + } + } + } else { +@@ -682,24 +896,28 @@ + _nc_progname, + _nc_progname, + usage_string); +- cleanup(namelst); + ExitProgram(EXIT_FAILURE); + } + } + +- if (tmp_fp == 0) +- tmp_fp = open_input(source_file); ++ if (tmp_fp == 0) { ++ tmp_fp = open_input(source_file, my_altfile); ++ if (!strcmp(source_file, "-")) { ++ source_file = STDIN_NAME; ++ } ++ } + +- if (infodump) ++ if (infodump) { + dump_init(tversion, + smart_defaults + ? outform + : F_LITERAL, +- sortmode, width, debug_level, formatted); +- else if (capdump) ++ sortmode, width, height, debug_level, formatted); ++ } else if (capdump) { + dump_init(tversion, + outform, +- sortmode, width, debug_level, FALSE); ++ sortmode, width, height, debug_level, FALSE); ++ } + + /* parse entries out of the source file */ + _nc_set_source(source_file); +@@ -716,7 +934,6 @@ + /* do use resolution */ + if (check_only || (!infodump && !capdump) || forceresolve) { + if (!_nc_resolve_uses2(TRUE, literal) && !check_only) { +- cleanup(namelst); + ExitProgram(EXIT_FAILURE); + } + } +@@ -750,7 +967,7 @@ + + for_entry_list(qp) { + if (matches(namelst, qp->tterm.term_names)) { +- int j = qp->cend - qp->cstart; ++ long j = qp->cend - qp->cstart; + int len = 0; + + /* this is in case infotocap() generates warnings */ +@@ -767,7 +984,7 @@ + repair_acsc(&qp->tterm); + dump_entry(&qp->tterm, suppress_untranslatable, + limited, numbers, NULL); +- for (j = 0; j < (int) qp->nuses; j++) ++ for (j = 0; j < (long) qp->nuses; j++) + dump_uses(qp->uses[j].name, !capdump); + len = show_entry(); + if (debug_level != 0 && !limited) +@@ -811,7 +1028,6 @@ + else + fprintf(log_fp, "No entries written\n"); + } +- cleanup(namelst); + ExitProgram(EXIT_SUCCESS); + } + +@@ -915,18 +1131,18 @@ + return result; + } + +-static int ++static long + keypad_index(const char *string) + { + char *test; + const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */ + int ch; +- int result = -1; ++ long result = -1; + + if ((ch = keypad_final(string)) != '\0') { +- test = strchr(list, ch); ++ test = (strchr) (list, ch); + if (test != 0) +- result = (test - list); ++ result = (long) (test - list); + } + return result; + } +@@ -1008,6 +1224,19 @@ + } + + #define EXPECTED(name) if (!PRESENT(name)) _nc_warning("expected " #name) ++#define UNEXPECTED(name) if (PRESENT(name)) _nc_warning("unexpected " #name ", for %s", why) ++ ++static void ++check_noaddress(TERMTYPE *tp, const char *why) ++{ ++ UNEXPECTED(column_address); ++ UNEXPECTED(cursor_address); ++ UNEXPECTED(cursor_home); ++ UNEXPECTED(cursor_mem_address); ++ UNEXPECTED(cursor_to_ll); ++ UNEXPECTED(row_address); ++ UNEXPECTED(row_address); ++} + + static void + check_cursor(TERMTYPE *tp) +@@ -1015,13 +1244,55 @@ + int count; + char *list[4]; + ++ if (hard_copy) { ++ check_noaddress(tp, "hard_copy"); ++ } else if (generic_type) { ++ check_noaddress(tp, "generic_type"); ++ } else if (strchr(tp->term_names, '+') == 0) { ++ int y = 0; ++ int x = 0; ++ if (PRESENT(column_address)) ++ ++y; ++ if (PRESENT(cursor_address)) ++ y = x = 10; ++ if (PRESENT(cursor_home)) ++ ++y, ++x; ++ if (PRESENT(cursor_mem_address)) ++ y = x = 10; ++ if (PRESENT(cursor_to_ll)) ++ ++y, ++x; ++ if (PRESENT(row_address)) ++ ++x; ++ if (PRESENT(cursor_down)) ++ ++y; ++ if (PRESENT(cursor_up)) ++ ++y; ++ if (PRESENT(cursor_left)) ++ ++x; ++ if (PRESENT(cursor_right)) ++ ++x; ++ if (x < 2 && y < 2) { ++ _nc_warning("terminal lacks cursor addressing"); ++ } else { ++ if (x < 2) ++ _nc_warning("terminal lacks cursor column-addressing"); ++ if (y < 2) ++ _nc_warning("terminal lacks cursor row-addressing"); ++ } ++ } ++ ++ /* it is rare to have an insert-line feature without a matching delete */ ++ ANDMISSING(parm_insert_line, insert_line); ++ ANDMISSING(parm_delete_line, delete_line); ++ ANDMISSING(parm_insert_line, parm_delete_line); ++ + /* if we have a parameterized form, then the non-parameterized is easy */ + ANDMISSING(parm_down_cursor, cursor_down); + ANDMISSING(parm_up_cursor, cursor_up); + ANDMISSING(parm_left_cursor, cursor_left); + ANDMISSING(parm_right_cursor, cursor_right); + +- /* Given any of a set of cursor movement, the whole set should be present. ++ /* Given any of a set of cursor movement, the whole set should be present. + * Technically this is not true (we could use cursor_address to fill in + * unsupported controls), but it is likely. + */ +@@ -1097,11 +1368,11 @@ + VALID_STRING(key_c1) && + VALID_STRING(key_c3)) { + char final[MAX_KP + 1]; +- int list[MAX_KP]; ++ long list[MAX_KP]; + int increase = 0; + int j, k, kk; +- int last; +- int test; ++ long last; ++ long test; + + final[0] = keypad_final(key_a1); + final[1] = keypad_final(key_a3); +@@ -1149,19 +1420,19 @@ + assert(strlen(show) < (MAX_KP * 4)); + switch (kk) { + case 0: +- strcat(show, " ka1"); ++ _nc_STRCAT(show, " ka1", sizeof(show)); + break; + case 1: +- strcat(show, " ka3"); ++ _nc_STRCAT(show, " ka3", sizeof(show)); + break; + case 2: +- strcat(show, " kb2"); ++ _nc_STRCAT(show, " kb2", sizeof(show)); + break; + case 3: +- strcat(show, " kc1"); ++ _nc_STRCAT(show, " kc1", sizeof(show)); + break; + case 4: +- strcat(show, " kc3"); ++ _nc_STRCAT(show, " kc3", sizeof(show)); + break; + } + } +@@ -1176,18 +1447,24 @@ + VALID_STRING(key_c3)) { + show[0] = '\0'; + if (keypad_index(key_a1) >= 0) +- strcat(show, " ka1"); ++ _nc_STRCAT(show, " ka1", sizeof(show)); + if (keypad_index(key_a3) >= 0) +- strcat(show, " ka3"); ++ _nc_STRCAT(show, " ka3", sizeof(show)); + if (keypad_index(key_b2) >= 0) +- strcat(show, " kb2"); ++ _nc_STRCAT(show, " kb2", sizeof(show)); + if (keypad_index(key_c1) >= 0) +- strcat(show, " kc1"); ++ _nc_STRCAT(show, " kc1", sizeof(show)); + if (keypad_index(key_c3) >= 0) +- strcat(show, " kc3"); ++ _nc_STRCAT(show, " kc3", sizeof(show)); + if (*show != '\0') + _nc_warning("vt100 keypad map incomplete:%s", show); + } ++ ++ /* ++ * These warnings are useful for consistency checks - it is possible that ++ * there are real terminals with mismatches in these ++ */ ++ ANDMISSING(key_ic, key_dc); + } + + static void +@@ -1216,6 +1493,74 @@ + ANDMISSING(parm_up_micro, micro_up); + } + ++static bool ++uses_SGR_39_49(const char *value) ++{ ++ return (strstr(value, "39;49") != 0 ++ || strstr(value, "49;39") != 0); ++} ++ ++/* ++ * Check consistency of termcap extensions related to "screen". ++ */ ++static void ++check_screen(TERMTYPE *tp) ++{ ++#if NCURSES_XNAMES ++ if (_nc_user_definable) { ++ int have_XT = tigetflag("XT"); ++ int have_XM = tigetflag("XM"); ++ int have_bce = back_color_erase; ++ bool have_kmouse = FALSE; ++ bool use_sgr_39_49 = FALSE; ++ char *name = _nc_first_name(tp->term_names); ++ ++ if (!VALID_BOOLEAN(have_bce)) { ++ have_bce = FALSE; ++ } ++ if (!VALID_BOOLEAN(have_XM)) { ++ have_XM = FALSE; ++ } ++ if (!VALID_BOOLEAN(have_XT)) { ++ have_XT = FALSE; ++ } ++ if (VALID_STRING(key_mouse)) { ++ have_kmouse = !strcmp("\033[M", key_mouse); ++ } ++ if (VALID_STRING(orig_colors)) { ++ use_sgr_39_49 = uses_SGR_39_49(orig_colors); ++ } else if (VALID_STRING(orig_pair)) { ++ use_sgr_39_49 = uses_SGR_39_49(orig_pair); ++ } ++ ++ if (have_XM && have_XT) { ++ _nc_warning("Screen's XT capability conflicts with XM"); ++ } else if (have_XT ++ && strstr(name, "screen") != 0 ++ && strchr(name, '.') != 0) { ++ _nc_warning("Screen's \"screen\" entries should not have XT set"); ++ } else if (have_XT) { ++ if (!have_kmouse && have_bce) { ++ if (VALID_STRING(key_mouse)) { ++ _nc_warning("Value of kmous inconsistent with screen's usage"); ++ } else { ++ _nc_warning("Expected kmous capability with XT"); ++ } ++ } ++ if (!have_bce && max_colors > 0) ++ _nc_warning("Expected bce capability with XT"); ++ if (!use_sgr_39_49 && have_bce && max_colors > 0) ++ _nc_warning("Expected orig_colors capability with XT to have 39/49 parameters"); ++ if (VALID_STRING(to_status_line)) ++ _nc_warning("\"tsl\" capability is redundant, given XT"); ++ } else { ++ if (have_kmouse && !have_XM) ++ _nc_warning("Expected XT to be set, given kmous"); ++ } ++ } ++#endif ++} ++ + /* + * Returns the expected number of parameters for the given capability. + */ +@@ -1527,7 +1872,7 @@ + show_where(unsigned level) + { + if (_nc_tracing >= DEBUG_LEVEL(level)) { +- char my_name[256]; ++ char my_name[MAX_NAME_SIZE]; + _nc_get_type(my_name); + _tracef("\"%s\", line %d, '%s'", + _nc_get_source(), +@@ -1539,6 +1884,58 @@ + #define show_where(level) /* nothing */ + #endif + ++typedef struct { ++ int keycode; ++ const char *name; ++ const char *value; ++} NAME_VALUE; ++ ++static NAME_VALUE * ++get_fkey_list(TERMTYPE *tp) ++{ ++ NAME_VALUE *result = typeMalloc(NAME_VALUE, NUM_STRINGS(tp) + 1); ++ const struct tinfo_fkeys *all_fkeys = _nc_tinfo_fkeys; ++ int used = 0; ++ int j; ++ ++ if (result == 0) ++ failed("get_fkey_list"); ++ ++ for (j = 0; all_fkeys[j].code; j++) { ++ char *a = tp->Strings[all_fkeys[j].offset]; ++ if (VALID_STRING(a)) { ++ result[used].keycode = (int) all_fkeys[j].code; ++ result[used].name = strnames[all_fkeys[j].offset]; ++ result[used].value = a; ++ ++used; ++ } ++ } ++#if NCURSES_XNAMES ++ for (j = STRCOUNT; j < NUM_STRINGS(tp); ++j) { ++ const char *name = ExtStrname(tp, j, strnames); ++ if (*name == 'k') { ++ result[used].keycode = -1; ++ result[used].name = name; ++ result[used].value = tp->Strings[j]; ++ ++used; ++ } ++ } ++#endif ++ result[used].keycode = 0; ++ return result; ++} ++ ++static void ++show_fkey_name(NAME_VALUE * data) ++{ ++ if (data->keycode > 0) { ++ fprintf(stderr, " %s", keyname(data->keycode)); ++ fprintf(stderr, " (capability \"%s\")", data->name); ++ } else { ++ fprintf(stderr, " capability \"%s\"", data->name); ++ } ++} ++ + /* other sanity-checks (things that we don't want in the normal + * logic that reads a terminfo entry) + */ +@@ -1547,7 +1944,6 @@ + { + bool conflict = FALSE; + unsigned j, k; +- char fkeys[STRCOUNT]; + + /* + * A terminal entry may contain more than one keycode assigned to +@@ -1555,44 +1951,50 @@ + * return one (the last one assigned). + */ + if (!(_nc_syntax == SYN_TERMCAP && capdump)) { +- memset(fkeys, 0, sizeof(fkeys)); +- for (j = 0; _nc_tinfo_fkeys[j].code; j++) { +- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset]; ++ char *check = calloc((size_t) (NUM_STRINGS(tp) + 1), sizeof(char)); ++ NAME_VALUE *given = get_fkey_list(tp); ++ ++ if (check == 0) ++ failed("check_termtype"); ++ ++ for (j = 0; given[j].keycode; ++j) { ++ const char *a = given[j].value; + bool first = TRUE; +- if (!VALID_STRING(a)) +- continue; +- for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) { +- char *b = tp->Strings[_nc_tinfo_fkeys[k].offset]; +- if (!VALID_STRING(b) +- || fkeys[k]) ++ ++ for (k = j + 1; given[k].keycode; k++) { ++ const char *b = given[k].value; ++ if (check[k]) + continue; + if (!_nc_capcmp(a, b)) { +- fkeys[j] = 1; +- fkeys[k] = 1; ++ check[j] = 1; ++ check[k] = 1; + if (first) { + if (!conflict) { + _nc_warning("Conflicting key definitions (using the last)"); + conflict = TRUE; + } +- fprintf(stderr, "... %s is the same as %s", +- keyname((int) _nc_tinfo_fkeys[j].code), +- keyname((int) _nc_tinfo_fkeys[k].code)); ++ fprintf(stderr, "..."); ++ show_fkey_name(given + j); ++ fprintf(stderr, " is the same as"); ++ show_fkey_name(given + k); + first = FALSE; + } else { +- fprintf(stderr, ", %s", +- keyname((int) _nc_tinfo_fkeys[k].code)); ++ fprintf(stderr, ", "); ++ show_fkey_name(given + k); + } + } + } + if (!first) + fprintf(stderr, "\n"); + } ++ free(given); ++ free(check); + } + +- for (j = 0; j < NUM_STRINGS(tp); j++) { ++ for_each_string(j, tp) { + char *a = tp->Strings[j]; + if (VALID_STRING(a)) +- check_params(tp, ExtStrname(tp, j, strnames), a); ++ check_params(tp, ExtStrname(tp, (int) j, strnames), a); + } + + check_acs(tp); +@@ -1600,6 +2002,7 @@ + check_cursor(tp); + check_keypad(tp); + check_printer(tp); ++ check_screen(tp); + + /* + * These may be mismatched because the terminal description relies on +diff -Naur ncurses-5.9/progs/toe.c ncurses-5.9.patch/progs/toe.c +--- ncurses-5.9/progs/toe.c 2010-05-02 00:04:08.000000000 +0200 ++++ ncurses-5.9.patch/progs/toe.c 2014-09-01 16:33:22.523792397 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,12 +44,23 @@ + #include <hashed_db.h> + #endif + +-MODULE_ID("$Id: toe.c,v 1.52 2010/05/01 22:04:08 tom Exp $") ++MODULE_ID("$Id: toe.c,v 1.74 2013/12/15 01:08:28 tom Exp $") + + #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, "..")) + ++typedef struct { ++ int db_index; ++ unsigned long checksum; ++ char *term_name; ++ char *description; ++} TERMDATA; ++ + const char *_nc_progname; + ++static TERMDATA *ptr_termdata; /* array of terminal data */ ++static size_t use_termdata; /* actual usage in ptr_termdata[] */ ++static size_t len_termdata; /* allocated size of ptr_termdata[] */ ++ + #if NO_LEAKS + #undef ExitProgram + static void ExitProgram(int code) GCC_NORETURN; +@@ -61,6 +72,8 @@ + } + #endif + ++static void failed(const char *) GCC_NORETURN; ++ + static void + failed(const char *msg) + { +@@ -68,6 +81,150 @@ + ExitProgram(EXIT_FAILURE); + } + ++static char * ++strmalloc(const char *value) ++{ ++ char *result = strdup(value); ++ if (result == 0) { ++ failed("strmalloc"); ++ } ++ return result; ++} ++ ++static TERMDATA * ++new_termdata(void) ++{ ++ size_t want = use_termdata + 1; ++ ++ if (want >= len_termdata) { ++ len_termdata = (2 * want) + 10; ++ ptr_termdata = typeRealloc(TERMDATA, len_termdata, ptr_termdata); ++ if (ptr_termdata == 0) ++ failed("ptr_termdata"); ++ } ++ ++ return ptr_termdata + use_termdata++; ++} ++ ++static int ++compare_termdata(const void *a, const void *b) ++{ ++ const TERMDATA *p = (const TERMDATA *) a; ++ const TERMDATA *q = (const TERMDATA *) b; ++ int result = strcmp(p->term_name, q->term_name); ++ ++ if (result == 0) { ++ result = (p->db_index - q->db_index); ++ } ++ return result; ++} ++ ++/* ++ * Sort the array of TERMDATA and print it. If more than one database is being ++ * reported, add a column to show which database has a given entry. ++ */ ++static void ++show_termdata(int eargc, char **eargv) ++{ ++ int j, k; ++ size_t n; ++ ++ if (use_termdata) { ++ if (eargc > 1) { ++ for (j = 0; j < eargc; ++j) { ++ for (k = 0; k <= j; ++k) { ++ printf("--"); ++ } ++ printf("> "); ++ printf("%s\n", eargv[j]); ++ } ++ } ++ if (use_termdata > 1) ++ qsort(ptr_termdata, use_termdata, sizeof(TERMDATA), compare_termdata); ++ for (n = 0; n < use_termdata; ++n) { ++ ++ /* ++ * If there is more than one database, show how they differ. ++ */ ++ if (eargc > 1) { ++ unsigned long check = 0; ++ k = 0; ++ for (;;) { ++ for (; k < ptr_termdata[n].db_index; ++k) { ++ printf("--"); ++ } ++ ++ /* ++ * If this is the first entry, or its checksum differs ++ * from the first entry's checksum, print "*". Otherwise ++ * it looks enough like a duplicate to print "+". ++ */ ++ printf("%c-", ((check == 0 ++ || (check != ptr_termdata[n].checksum)) ++ ? '*' ++ : '+')); ++ check = ptr_termdata[n].checksum; ++ ++ ++k; ++ if ((n + 1) >= use_termdata ++ || strcmp(ptr_termdata[n].term_name, ++ ptr_termdata[n + 1].term_name)) { ++ break; ++ } ++ ++n; ++ } ++ for (; k < eargc; ++k) { ++ printf("--"); ++ } ++ printf(":\t"); ++ } ++ ++ (void) printf("%-10s\t%s\n", ++ ptr_termdata[n].term_name, ++ ptr_termdata[n].description); ++ } ++ } ++} ++ ++static void ++free_termdata(void) ++{ ++ if (ptr_termdata != 0) { ++ while (use_termdata != 0) { ++ --use_termdata; ++ free(ptr_termdata[use_termdata].term_name); ++ free(ptr_termdata[use_termdata].description); ++ } ++ free(ptr_termdata); ++ ptr_termdata = 0; ++ } ++ use_termdata = 0; ++ len_termdata = 0; ++} ++ ++static char ** ++allocArgv(size_t count) ++{ ++ char **result = typeCalloc(char *, count + 1); ++ if (result == 0) ++ failed("realloc eargv"); ++ ++ assert(result != 0); ++ return result; ++} ++ ++static void ++freeArgv(char **argv) ++{ ++ if (argv) { ++ int count = 0; ++ while (argv[count]) { ++ free(argv[count++]); ++ } ++ free(argv); ++ } ++} ++ + #if USE_HASHED_DB + static bool + make_db_name(char *dst, const char *src, unsigned limit) +@@ -75,67 +232,100 @@ + static const char suffix[] = DBM_SUFFIX; + + bool result = FALSE; +- unsigned lens = sizeof(suffix) - 1; +- unsigned size = strlen(src); +- unsigned need = lens + size; ++ size_t lens = sizeof(suffix) - 1; ++ size_t size = strlen(src); ++ size_t need = lens + size; + + if (need <= limit) { + if (size >= lens +- && !strcmp(src + size - lens, suffix)) +- (void) strcpy(dst, src); +- else +- (void) sprintf(dst, "%s%s", src, suffix); ++ && !strcmp(src + size - lens, suffix)) { ++ _nc_STRCPY(dst, src, PATH_MAX); ++ } else { ++ _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%s%s", src, suffix); ++ } + result = TRUE; + } + return result; + } + #endif + +-static bool +-is_database(const char *path) ++typedef void (DescHook) (int /* db_index */ , ++ int /* db_limit */ , ++ const char * /* term_name */ , ++ TERMTYPE * /* term */ ); ++ ++static const char * ++term_description(TERMTYPE *tp) + { +- bool result = FALSE; +-#if USE_DATABASE +- if (_nc_is_dir_path(path) && access(path, R_OK | X_OK) == 0) { +- result = TRUE; +- } +-#endif +-#if USE_TERMCAP +- if (_nc_is_file_path(path) && access(path, R_OK) == 0) { +- result = TRUE; ++ const char *desc; ++ ++ if (tp->term_names == 0 ++ || (desc = strrchr(tp->term_names, '|')) == 0 ++ || (*++desc == '\0')) { ++ desc = "(No description)"; + } +-#endif +-#if USE_HASHED_DB +- if (!result) { +- char filename[PATH_MAX]; +- if (_nc_is_file_path(path) && access(path, R_OK) == 0) { +- result = TRUE; +- } else if (make_db_name(filename, path, sizeof(filename))) { +- if (_nc_is_file_path(filename) && access(filename, R_OK) == 0) { +- result = TRUE; +- } ++ ++ return desc; ++} ++ ++/* display a description for the type */ ++static void ++deschook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp) ++{ ++ (void) db_index; ++ (void) db_limit; ++ (void) printf("%-10s\t%s\n", term_name, term_description(tp)); ++} ++ ++static unsigned long ++string_sum(const char *value) ++{ ++ unsigned long result = 0; ++ ++ if ((intptr_t) value == (intptr_t) (-1)) { ++ result = ~result; ++ } else if (value) { ++ while (*value) { ++ result += UChar(*value); ++ ++value; + } + } +-#endif + return result; + } + +-static void +-deschook(const char *cn, TERMTYPE *tp) +-/* display a description for the type */ ++static unsigned long ++checksum_of(TERMTYPE *tp) + { +- const char *desc; ++ unsigned long result = string_sum(tp->term_names); ++ unsigned i; + +- if ((desc = strrchr(tp->term_names, '|')) == 0 || *++desc == '\0') +- desc = "(No description)"; ++ for (i = 0; i < NUM_BOOLEANS(tp); i++) { ++ result += (unsigned long) (tp->Booleans[i]); ++ } ++ for (i = 0; i < NUM_NUMBERS(tp); i++) { ++ result += (unsigned long) (tp->Numbers[i]); ++ } ++ for (i = 0; i < NUM_STRINGS(tp); i++) { ++ result += string_sum(tp->Strings[i]); ++ } ++ return result; ++} ++ ++/* collect data, to sort before display */ ++static void ++sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp) ++{ ++ TERMDATA *data = new_termdata(); + +- (void) printf("%-10s\t%s\n", cn, desc); ++ data->db_index = db_index; ++ data->checksum = ((db_limit > 1) ? checksum_of(tp) : 0); ++ data->term_name = strmalloc(term_name); ++ data->description = strmalloc(term_description(tp)); + } + +-#if USE_TERMCAP ++#if NCURSES_USE_TERMCAP + static void +-show_termcap(char *buffer, +- void (*hook) (const char *, TERMTYPE *tp)) ++show_termcap(int db_index, int db_limit, char *buffer, DescHook hook) + { + TERMTYPE data; + char *next = strchr(buffer, ':'); +@@ -149,26 +339,42 @@ + if (last) + ++last; + +- data.term_names = strdup(buffer); ++ memset(&data, 0, sizeof(data)); ++ data.term_names = strmalloc(buffer); + while ((next = strtok(list, "|")) != 0) { + if (next != last) +- hook(next, &data); ++ hook(db_index, db_limit, next, &data); + list = 0; + } + free(data.term_names); + } + #endif + ++#if NCURSES_USE_DATABASE ++static char * ++copy_entryname(DIRENT * src) ++{ ++ size_t len = NAMLEN(src); ++ char *result = malloc(len + 1); ++ if (result == 0) ++ failed("copy entryname"); ++ memcpy(result, src->d_name, len); ++ result[len] = '\0'; ++ ++ return result; ++} ++#endif ++ + static int + typelist(int eargc, char *eargv[], +- bool verbosity, +- void (*hook) (const char *, TERMTYPE *tp)) ++ int verbosity, ++ DescHook hook) + /* apply a function to each entry in given terminfo directories */ + { + int i; + + for (i = 0; i < eargc; i++) { +-#if USE_DATABASE ++#if NCURSES_USE_DATABASE + if (_nc_is_dir_path(eargv[i])) { + char *cwd_buf = 0; + DIR *termdir; +@@ -179,28 +385,35 @@ + (void) fprintf(stderr, + "%s: can't open terminfo directory %s\n", + _nc_progname, eargv[i]); +- return (EXIT_FAILURE); +- } else if (verbosity) ++ continue; ++ } ++ ++ if (verbosity) + (void) printf("#\n#%s:\n#\n", eargv[i]); + + while ((subdir = readdir(termdir)) != 0) { +- size_t len = NAMLEN(subdir); +- size_t cwd_len = len + strlen(eargv[i]) + 3; +- char name_1[PATH_MAX]; ++ size_t cwd_len; ++ char *name_1; + DIR *entrydir; + DIRENT *entry; + ++ name_1 = copy_entryname(subdir); ++ if (isDotname(name_1)) { ++ free(name_1); ++ continue; ++ } ++ ++ cwd_len = NAMLEN(subdir) + strlen(eargv[i]) + 3; + cwd_buf = typeRealloc(char, cwd_len, cwd_buf); + if (cwd_buf == 0) + failed("realloc cwd_buf"); + + assert(cwd_buf != 0); + +- strncpy(name_1, subdir->d_name, len)[len] = '\0'; +- if (isDotname(name_1)) +- continue; ++ _nc_SPRINTF(cwd_buf, _nc_SLIMIT(cwd_len) ++ "%s/%s/", eargv[i], name_1); ++ free(name_1); + +- (void) sprintf(cwd_buf, "%s/%.*s/", eargv[i], (int) len, name_1); + if (chdir(cwd_buf) != 0) + continue; + +@@ -210,15 +423,16 @@ + continue; + } + while ((entry = readdir(entrydir)) != 0) { +- char name_2[PATH_MAX]; ++ char *name_2; + TERMTYPE lterm; + char *cn; + int status; + +- len = NAMLEN(entry); +- strncpy(name_2, entry->d_name, len)[len] = '\0'; +- if (isDotname(name_2) || !_nc_is_file_path(name_2)) ++ name_2 = copy_entryname(entry); ++ if (isDotname(name_2) || !_nc_is_file_path(name_2)) { ++ free(name_2); + continue; ++ } + + status = _nc_read_file_entry(name_2, &lterm); + if (status <= 0) { +@@ -226,6 +440,10 @@ + (void) fprintf(stderr, + "%s: couldn't open terminfo file %s.\n", + _nc_progname, name_2); ++ free(cwd_buf); ++ free(name_2); ++ closedir(entrydir); ++ closedir(termdir); + return (EXIT_FAILURE); + } + +@@ -233,21 +451,26 @@ + cn = _nc_first_name(lterm.term_names); + if (!strcmp(cn, name_2)) { + /* apply the selected hook function */ +- (*hook) (cn, &lterm); ++ hook(i, eargc, cn, &lterm); + } + _nc_free_termtype(&lterm); ++ free(name_2); + } + closedir(entrydir); + } + closedir(termdir); + if (cwd_buf != 0) + free(cwd_buf); ++ continue; + } + #if USE_HASHED_DB + else { + DB *capdbp; + char filename[PATH_MAX]; + ++ if (verbosity) ++ (void) printf("#\n#%s:\n#\n", eargv[i]); ++ + if (make_db_name(filename, eargv[i], sizeof(filename))) { + if ((capdbp = _nc_db_open(filename, FALSE)) != 0) { + DBT key, data; +@@ -265,7 +488,7 @@ + /* only visit things once, by primary name */ + cn = _nc_first_name(lterm.term_names); + /* apply the selected hook function */ +- (*hook) (cn, &lterm); ++ hook(i, eargc, cn, &lterm); + _nc_free_termtype(&lterm); + } + } +@@ -273,44 +496,51 @@ + } + + _nc_db_close(capdbp); ++ continue; + } + } + } + #endif + #endif +-#if USE_TERMCAP ++#if NCURSES_USE_TERMCAP + #if HAVE_BSD_CGETENT +- char *db_array[2]; +- char *buffer = 0; ++ { ++ CGETENT_CONST char *db_array[2]; ++ char *buffer = 0; + +- if (verbosity) +- (void) printf("#\n#%s:\n#\n", eargv[i]); ++ if (verbosity) ++ (void) printf("#\n#%s:\n#\n", eargv[i]); + +- db_array[0] = eargv[i]; +- db_array[1] = 0; ++ db_array[0] = eargv[i]; ++ db_array[1] = 0; + +- if (cgetfirst(&buffer, db_array)) { +- show_termcap(buffer, hook); +- free(buffer); +- while (cgetnext(&buffer, db_array)) { +- show_termcap(buffer, hook); ++ if (cgetfirst(&buffer, db_array) > 0) { ++ show_termcap(i, eargc, buffer, hook); + free(buffer); ++ while (cgetnext(&buffer, db_array) > 0) { ++ show_termcap(i, eargc, buffer, hook); ++ free(buffer); ++ } ++ cgetclose(); ++ continue; + } + } +- cgetclose(); + #else + /* scan termcap text-file only */ + if (_nc_is_file_path(eargv[i])) { + char buffer[2048]; + FILE *fp; + ++ if (verbosity) ++ (void) printf("#\n#%s:\n#\n", eargv[i]); ++ + if ((fp = fopen(eargv[i], "r")) != 0) { + while (fgets(buffer, sizeof(buffer), fp) != 0) { + if (*buffer == '#') + continue; + if (isspace(*buffer)) + continue; +- show_termcap(buffer, hook); ++ show_termcap(i, eargc, buffer, hook); + } + fclose(fp); + } +@@ -319,13 +549,18 @@ + #endif + } + ++ if (hook == sorthook) { ++ show_termdata(eargc, eargv); ++ free_termdata(); ++ } ++ + return (EXIT_SUCCESS); + } + + static void + usage(void) + { +- (void) fprintf(stderr, "usage: %s [-ahuUV] [-v n] [file...]\n", _nc_progname); ++ (void) fprintf(stderr, "usage: %s [-ahsuUV] [-v n] [file...]\n", _nc_progname); + ExitProgram(EXIT_FAILURE); + } + +@@ -340,23 +575,24 @@ + unsigned i; + int code; + int this_opt, last_opt = '?'; +- int v_opt = 0; ++ unsigned v_opt = 0; ++ DescHook *hook = deschook; + + _nc_progname = _nc_rootname(argv[0]); + +- while ((this_opt = getopt(argc, argv, "0123456789ahu:vU:V")) != -1) { ++ while ((this_opt = getopt(argc, argv, "0123456789ahsu:vU:V")) != -1) { + /* handle optional parameter */ + if (isdigit(this_opt)) { + switch (last_opt) { + case 'v': +- v_opt = (this_opt - '0'); ++ v_opt = (unsigned) (this_opt - '0'); + break; + default: + if (isdigit(last_opt)) + v_opt *= 10; + else + v_opt = 0; +- v_opt += (this_opt - '0'); ++ v_opt += (unsigned) (this_opt - '0'); + last_opt = this_opt; + } + continue; +@@ -368,6 +604,9 @@ + case 'h': + header = TRUE; + break; ++ case 's': ++ hook = sorthook; ++ break; + case 'u': + direct_dependencies = TRUE; + report_file = optarg; +@@ -450,7 +689,7 @@ + * If we get this far, user wants a simple terminal type listing. + */ + if (optind < argc) { +- code = typelist(argc - optind, argv + optind, header, deschook); ++ code = typelist(argc - optind, argv + optind, header, hook); + } else if (all_dirs) { + DBDIRS state; + int offset; +@@ -460,64 +699,41 @@ + + code = EXIT_FAILURE; + for (pass = 0; pass < 2; ++pass) { +- unsigned count = 0; ++ size_t count = 0; + + _nc_first_db(&state, &offset); + while ((path = _nc_next_db(&state, &offset)) != 0) { +- if (!is_database(path)) { +- ; +- } else if (eargv != 0) { +- unsigned n; +- int found = FALSE; +- +- /* eliminate duplicates */ +- for (n = 0; n < count; ++n) { +- if (!strcmp(path, eargv[n])) { +- found = TRUE; +- break; +- } +- } +- if (!found) { +- eargv[count] = strdup(path); +- ++count; +- } +- } else { +- ++count; ++ if (pass) { ++ eargv[count] = strmalloc(path); + } ++ ++count; + } + if (!pass) { +- eargv = typeCalloc(char *, count + 1); ++ eargv = allocArgv(count); + if (eargv == 0) +- failed("realloc eargv"); +- +- assert(eargv != 0); ++ failed("eargv"); + } else { +- code = typelist((int) count, eargv, header, deschook); +- while (count-- > 0) +- free(eargv[count]); +- free(eargv); ++ code = typelist((int) count, eargv, header, hook); ++ freeArgv(eargv); + } + } + } else { + DBDIRS state; + int offset; + const char *path; +- char *eargv[3]; +- int count = 0; ++ char **eargv = allocArgv((size_t) 2); ++ size_t count = 0; + ++ if (eargv == 0) ++ failed("eargv"); + _nc_first_db(&state, &offset); +- while ((path = _nc_next_db(&state, &offset)) != 0) { +- if (is_database(path)) { +- eargv[count++] = strdup(path); +- break; +- } ++ if ((path = _nc_next_db(&state, &offset)) != 0) { ++ eargv[count++] = strmalloc(path); + } +- eargv[count] = 0; + +- code = typelist(count, eargv, header, deschook); ++ code = typelist((int) count, eargv, header, hook); + +- while (count-- > 0) +- free(eargv[count]); ++ freeArgv(eargv); + } + _nc_last_db(); + +diff -Naur ncurses-5.9/progs/tput.c ncurses-5.9.patch/progs/tput.c +--- ncurses-5.9/progs/tput.c 2010-01-09 17:53:24.000000000 +0100 ++++ ncurses-5.9.patch/progs/tput.c 2014-09-01 16:33:22.524792400 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -47,7 +47,7 @@ + #endif + #include <transform.h> + +-MODULE_ID("$Id: tput.c,v 1.46 2010/01/09 16:53:24 tom Exp $") ++MODULE_ID("$Id: tput.c,v 1.49 2013/09/28 20:57:25 tom Exp $") + + #define PUTS(s) fputs(s, stdout) + #define PUTCHAR(c) putchar(c) +@@ -94,9 +94,6 @@ + * Lookup the type of call we should make to tparm(). This ignores the actual + * terminfo capability (bad, because it is not extensible), but makes this + * code portable to platforms where sizeof(int) != sizeof(char *). +- * +- * FIXME: If we want extensibility, analyze the capability string as we do +- * in tparm() to decide how to parse the varargs list. + */ + static TParams + tparm_type(const char *name) +@@ -306,7 +303,7 @@ + } else if (s != ABSENT_STRING) { + if (argc > 1) { + int k; +- int popcount; ++ int ignored; + long numbers[1 + NUM_PARM]; + char *strings[1 + NUM_PARM]; + char *p_is_s[NUM_PARM]; +@@ -337,8 +334,8 @@ + break; + case Numbers: + default: +- (void) _nc_tparm_analyze(s, p_is_s, &popcount); +-#define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n]) ++ (void) _nc_tparm_analyze(s, p_is_s, &ignored); ++#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n]) + s = TPARM_9(s, + myParam(1), + myParam(2), +diff -Naur ncurses-5.9/progs/transform.c ncurses-5.9.patch/progs/transform.c +--- ncurses-5.9/progs/transform.c 2010-09-04 23:16:17.000000000 +0200 ++++ ncurses-5.9.patch/progs/transform.c 2014-09-01 16:33:22.524792400 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -34,21 +34,21 @@ + + #include <transform.h> + +-MODULE_ID("$Id: transform.c,v 1.2 2010/09/04 21:16:17 tom Exp $") ++MODULE_ID("$Id: transform.c,v 1.3 2011/05/14 22:41:17 tom Exp $") + + #ifdef SUFFIX_IGNORED + static void +-trim_suffix(const char *a, unsigned *len) ++trim_suffix(const char *a, size_t *len) + { + const char ignore[] = SUFFIX_IGNORED; + + if (sizeof(ignore) != 0) { + bool trim = FALSE; +- unsigned need = (sizeof(ignore) - 1); ++ size_t need = (sizeof(ignore) - 1); + + if (*len > need) { +- unsigned first = *len - need; +- unsigned n; ++ size_t first = *len - need; ++ size_t n; + trim = TRUE; + for (n = first; n < *len; ++n) { + if (tolower(UChar(a[n])) != tolower(UChar(ignore[n - first]))) { +@@ -69,8 +69,8 @@ + bool + same_program(const char *a, const char *b) + { +- unsigned len_a = strlen(a); +- unsigned len_b = strlen(b); ++ size_t len_a = strlen(a); ++ size_t len_b = strlen(b); + + trim_suffix(a, &len_a); + trim_suffix(b, &len_b); +diff -Naur ncurses-5.9/progs/tset.c ncurses-5.9.patch/progs/tset.c +--- ncurses-5.9/progs/tset.c 2010-05-01 23:42:46.000000000 +0200 ++++ ncurses-5.9.patch/progs/tset.c 2014-09-01 16:33:22.524792400 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -119,7 +119,7 @@ + #include <dump_entry.h> + #include <transform.h> + +-MODULE_ID("$Id: tset.c,v 1.82 2010/05/01 21:42:46 tom Exp $") ++MODULE_ID("$Id: tset.c,v 1.93 2013/12/15 01:05:56 tom Exp $") + + /* + * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, +@@ -148,6 +148,10 @@ + #undef CTRL + #define CTRL(x) ((x) & 0x1f) + ++static void failed(const char *) GCC_NORETURN; ++static void exit_error(void) GCC_NORETURN; ++static void err(const char *,...) GCC_NORETURN; ++ + const char *_nc_progname = "tset"; + + static TTY mode, oldmode, original; +@@ -160,7 +164,10 @@ + static int terasechar = -1; /* new erase character */ + static int intrchar = -1; /* new interrupt character */ + static int tkillchar = -1; /* new kill character */ ++ ++#if HAVE_SIZECHANGE + static int tlines, tcolumns; /* window size */ ++#endif + + #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c)) + +@@ -203,13 +210,13 @@ + failed(const char *msg) + { + char temp[BUFSIZ]; +- unsigned len = strlen(_nc_progname) + 2; ++ size_t len = strlen(_nc_progname) + 2; + + if ((int) len < (int) sizeof(temp) - 12) { +- strcpy(temp, _nc_progname); +- strcat(temp, ": "); ++ _nc_STRCPY(temp, _nc_progname, sizeof(temp)); ++ _nc_STRCAT(temp, ": ", sizeof(temp)); + } else { +- strcpy(temp, "tset: "); ++ _nc_STRCPY(temp, "tset: ", sizeof(temp)); + } + perror(strncat(temp, msg, sizeof(temp) - strlen(temp) - 2)); + exit_error(); +@@ -467,9 +474,6 @@ + mapp->speed = tbaudrate(p); + } + +- if (arg == (char *) 0) /* Non-optional type. */ +- goto badmopt; +- + mapp->type = arg; + + /* Terminate porttype, if specified. */ +@@ -527,19 +531,19 @@ + match = TRUE; + break; + case EQ: +- match = (ospeed == mapp->speed); ++ match = ((int) ospeed == mapp->speed); + break; + case GE: +- match = (ospeed >= mapp->speed); ++ match = ((int) ospeed >= mapp->speed); + break; + case GT: +- match = (ospeed > mapp->speed); ++ match = ((int) ospeed > mapp->speed); + break; + case LE: +- match = (ospeed <= mapp->speed); ++ match = ((int) ospeed <= mapp->speed); + break; + case LT: +- match = (ospeed < mapp->speed); ++ match = ((int) ospeed < mapp->speed); + break; + default: + match = FALSE; +@@ -631,13 +635,14 @@ + * real entry from /etc/termcap. This prevents us from being fooled + * by out of date stuff in the environment. + */ +- found:if ((p = getenv("TERMCAP")) != 0 && !_nc_is_abs_path(p)) { ++ found: ++ if ((p = getenv("TERMCAP")) != 0 && !_nc_is_abs_path(p)) { + /* 'unsetenv("TERMCAP")' is not portable. + * The 'environ' array is better. + */ + int n; + for (n = 0; environ[n] != 0; n++) { +- if (!strncmp("TERMCAP=", environ[n], 8)) { ++ if (!strncmp("TERMCAP=", environ[n], (size_t) 8)) { + while ((environ[n] = environ[n + 1]) != 0) { + n++; + } +@@ -788,14 +793,14 @@ + mode.c_cc[VWERASE] = CHK(mode.c_cc[VWERASE], CWERASE); + #endif + +- mode.c_iflag &= ~(IGNBRK | PARMRK | INPCK | ISTRIP | INLCR | IGNCR ++ mode.c_iflag &= ~((unsigned) (IGNBRK | PARMRK | INPCK | ISTRIP | INLCR | IGNCR + #ifdef IUCLC +- | IUCLC ++ | IUCLC + #endif + #ifdef IXANY +- | IXANY ++ | IXANY + #endif +- | IXOFF); ++ | IXOFF)); + + mode.c_iflag |= (BRKINT | IGNPAR | ICRNL | IXON + #ifdef IMAXBEL +@@ -803,44 +808,44 @@ + #endif + ); + +- mode.c_oflag &= ~(0 ++ mode.c_oflag &= ~((unsigned) (0 + #ifdef OLCUC +- | OLCUC ++ | OLCUC + #endif + #ifdef OCRNL +- | OCRNL ++ | OCRNL + #endif + #ifdef ONOCR +- | ONOCR ++ | ONOCR + #endif + #ifdef ONLRET +- | ONLRET ++ | ONLRET + #endif + #ifdef OFILL +- | OFILL ++ | OFILL + #endif + #ifdef OFDEL +- | OFDEL ++ | OFDEL + #endif + #ifdef NLDLY +- | NLDLY ++ | NLDLY + #endif + #ifdef CRDLY +- | CRDLY ++ | CRDLY + #endif + #ifdef TABDLY +- | TABDLY ++ | TABDLY + #endif + #ifdef BSDLY +- | BSDLY ++ | BSDLY + #endif + #ifdef VTDLY +- | VTDLY ++ | VTDLY + #endif + #ifdef FFDLY +- | FFDLY ++ | FFDLY + #endif +- ); ++ )); + + mode.c_oflag |= (OPOST + #ifdef ONLCR +@@ -848,19 +853,19 @@ + #endif + ); + +- mode.c_cflag &= ~(CSIZE | CSTOPB | PARENB | PARODD | CLOCAL); ++ mode.c_cflag &= ~((unsigned) (CSIZE | CSTOPB | PARENB | PARODD | CLOCAL)); + mode.c_cflag |= (CS8 | CREAD); +- mode.c_lflag &= ~(ECHONL | NOFLSH ++ mode.c_lflag &= ~((unsigned) (ECHONL | NOFLSH + #ifdef TOSTOP +- | TOSTOP ++ | TOSTOP + #endif + #ifdef ECHOPTR +- | ECHOPRT ++ | ECHOPRT + #endif + #ifdef XCASE +- | XCASE ++ | XCASE + #endif +- ); ++ )); + + mode.c_lflag |= (ISIG | ICANON | ECHO | ECHOE | ECHOK + #ifdef ECHOCTL +@@ -907,14 +912,23 @@ + set_control_chars(void) + { + #ifdef TERMIOS +- if (DISABLED(mode.c_cc[VERASE]) || terasechar >= 0) +- mode.c_cc[VERASE] = (terasechar >= 0) ? terasechar : default_erase(); +- +- if (DISABLED(mode.c_cc[VINTR]) || intrchar >= 0) +- mode.c_cc[VINTR] = (intrchar >= 0) ? intrchar : CINTR; +- +- if (DISABLED(mode.c_cc[VKILL]) || tkillchar >= 0) +- mode.c_cc[VKILL] = (tkillchar >= 0) ? tkillchar : CKILL; ++ if (DISABLED(mode.c_cc[VERASE]) || terasechar >= 0) { ++ mode.c_cc[VERASE] = UChar((terasechar >= 0) ++ ? terasechar ++ : default_erase()); ++ } ++ ++ if (DISABLED(mode.c_cc[VINTR]) || intrchar >= 0) { ++ mode.c_cc[VINTR] = UChar((intrchar >= 0) ++ ? intrchar ++ : CINTR); ++ } ++ ++ if (DISABLED(mode.c_cc[VKILL]) || tkillchar >= 0) { ++ mode.c_cc[VKILL] = UChar((tkillchar >= 0) ++ ? tkillchar ++ : CKILL); ++ } + #endif + } + +@@ -970,9 +984,9 @@ + if (newline != (char *) 0 && newline[0] == '\n' && !newline[1]) { + /* Newline, not linefeed. */ + #ifdef ONLCR +- mode.c_oflag &= ~ONLCR; ++ mode.c_oflag &= ~((unsigned) ONLCR); + #endif +- mode.c_iflag &= ~ICRNL; ++ mode.c_iflag &= ~((unsigned) ICRNL); + } + #ifdef __OBSOLETE__ + if (tgetflag("HD")) /* Half duplex. */ +@@ -1043,11 +1057,18 @@ + { + if (set_tab && clear_all_tabs) { + int c; ++ int lim = ++#if HAVE_SIZECHANGE ++ tcolumns ++#else ++ columns ++#endif ++ ; + + (void) putc('\r', stderr); /* Force to left margin. */ + tputs(clear_all_tabs, 0, outc); + +- for (c = 8; c < tcolumns; c += 8) { ++ for (c = 8; c < lim; c += 8) { + /* Get to the right column. In BSD tset, this + * used to try a bunch of half-clever things + * with cup and hpa, for an average saving of +@@ -1273,10 +1294,10 @@ + (void) get_termcap_entry(*argv); + + if (!noset) { ++#if HAVE_SIZECHANGE + tcolumns = columns; + tlines = lines; + +-#if HAVE_SIZECHANGE + if (opt_w) { + STRUCT_WINSIZE win; + /* Set window size if not set already */ +diff -Naur ncurses-5.9/README ncurses-5.9.patch/README +--- ncurses-5.9/README 2006-04-23 00:19:37.000000000 +0200 ++++ ncurses-5.9.patch/README 2014-09-01 16:33:22.232791916 +0200 +@@ -1,5 +1,5 @@ + ------------------------------------------------------------------------------- +--- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. -- ++-- Copyright (c) 1998-2011,2012 Free 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: README,v 1.23 2006/04/22 22:19:37 tom Exp $ ++-- $Id: README,v 1.25 2012/08/11 20:11:26 tom Exp $ + ------------------------------------------------------------------------------- + README file for the ncurses package + +@@ -78,6 +78,10 @@ + library interfaces are not binary-compatible with the non-wide-character + version. + ++If you configure using the --enable-reentrant option, a "t" is appended to the ++library names (e.g., libncursest.a) and the resulting libraries have a ++different binary interface which makes the ncurses interface more "opaque". ++ + The ncurses libraries implement the curses API. The panel, menu and forms + libraries implement clones of the SVr4 panel, menu and forms APIs. The source + code for these lives in the `ncurses', `panel', `menu', and `form' directories +@@ -122,8 +126,9 @@ + tic -- terminfo source to binary compiler + infocmp -- terminfo binary to source decompiler/comparator + clear -- emits clear-screen for current terminal ++ tabs -- set tabs on a terminal + tput -- shell-script access to terminal capabilities. +- toe -- table of entries utility ++ toe -- table of entries utility + tset -- terminal-initialization utility + + The first two (tic and infocmp) are used for manipulating terminfo +@@ -153,8 +158,10 @@ + configuration scripts, porting, mods to adhere to XSI Curses in the + areas of background color, terminal modes. Also memory leak testing, + the wresize, default colors and key definition extensions and numerous +- bug fixes (more than half of those enumerated in NEWS beginning with +- the internal release 1.8.9). ++ bug fixes -- more than half of those enumerated in NEWS beginning with ++ the internal release 1.8.9, see ++ ++ http://invisible-island.net/personal/changelogs.html + + Florian La Roche (official maintainer for FSF's ncurses 4.2) + Beginning with release 4.2, ncurses is distributed under an MIT-style +diff -Naur ncurses-5.9/README.MinGW ncurses-5.9.patch/README.MinGW +--- ncurses-5.9/README.MinGW 2011-02-26 17:57:17.000000000 +0100 ++++ ncurses-5.9.patch/README.MinGW 2014-09-01 16:33:22.233791918 +0200 +@@ -1,5 +1,5 @@ + ------------------------------------------------------------------------------- +--- Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. -- ++-- Copyright (c) 2008-2011,2012 Free 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: README.MinGW,v 1.5 2011/02/26 16:57:17 tom Exp $ ++-- $Id: README.MinGW,v 1.9 2012/09/22 17:46:04 tom Exp $ + -- Author: Juergen Pfeifer + ------------------------------------------------------------------------------- + +@@ -39,7 +39,7 @@ + To build ncurses for native Windows, you need the MinGW toolchain. The + original MinGW toolchain from the above site is only for 32-Bit Windows. As + Windows Server - and also regular workstations - are moving to 64-Bit, it +-seems to be reasonable to have a toolchain that supports both architectures. ++seems to be reasonable to have a toolchain that supports both architectures. + I recommend to use the TDM gcc toolchain which you can find at + http://tdm-gcc.tdragon.net/download. Go to the download section and select + the bundle installer for tdm64 (MinGW-w64). This installs a multilib version +@@ -47,7 +47,7 @@ + versions. It also comes with a working pthread implementation. + + The latest config and build scripts we use for MinGW have only been tested +-for the gcc-4.4 compiler toolchain (or better). ++for the gcc-4.6.1 compiler toolchain (or better). + + 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 +@@ -55,22 +55,13 @@ + 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++ 2010 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. +- +-It is necessary to unset the TERM environment variable, to activate the +-Windows console-driver. ++The TERM environment variable must be set specially to active the Windows ++console-driver. The driver checks if TERM is set to "#win32con" (explicit ++use) or if TERM is unset or empty (implicit). + + Please also make sure that MSYS links to the correct directory containing + your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows +-CMD.EXE command shell go to the MSYS root directory (most probably ++CMD.EXE command shell go to the MSYS root directory (most probably + C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw + that points to the MinGW toolchain directory. If not, delete the mingw + directory and use the mklink command (or the linkd.exe utility on older +@@ -79,62 +70,60 @@ + 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 ncurses for the planned interop layer with .NET, we +-recommend to use these options with configure ++I recommend using libtool to build ncurses on MinGW, because libtool ++knows exactly how to build dll's on Windows for use with MinGW. ++ ++To build a modern but still small footprint ncurses that provides ++hooks for interop, I recommend using these options: + ++ --with-libtool + --disable-home-terminfo +- --enable-reentrant ++ --enable-database ++ --disable-termcap + --enable-sp-funcs + --enable-term-driver + --enable-interop +- --with-pthread (if using TDM toolchain as recommended) + +-This is the configuration commandline as I'm using it at the moment: ++This is the configuration commandline as I'm using it at the moment (assuming ++environment variable MINGW_ROOT to hold the root directory name of your MinGW ++build): + + ./configure \ +- --prefix=/mingw \ +- --without-cxx-binding \ ++ --prefix=$MINGW_ROOT \ ++ --with-cxx \ + --without-ada \ + --enable-warnings \ + --enable-assertions \ +- --enable-reentrant \ +- --with-debug \ +- --with-normal \ + --disable-home-terminfo \ ++ --enable-database \ + --enable-sp-funcs \ + --enable-term-driver \ + --enable-interop \ +- --with-pthread ++ --disable-termcap \ ++ --with-progs \ ++ --with-libtool \ ++ --enable-pc-files \ ++ --mandir=$MINGW_ROOT/share/man + +-If you are on a 64-Bit Windows system and want to build a 32-Bit version +-of ncurses, you may use this commandline for configuration (when using +-the TDM toolchain): +- +-CC="gcc -m32" LD="ld -m32" ./configure \ +- --prefix=/mingw \ +- --without-cxx-binding \ +- --without-ada \ +- --enable-warnings \ +- --enable-assertions \ +- --enable-reentrant \ +- --with-debug \ +- --with-normal \ +- --disable-home-terminfo \ +- --enable-sp-funcs \ +- --enable-term-driver \ +- --enable-interop \ +- --with-pthread ++Please note that it is also necessary to set this environment variable: + +-All the options above are - like the whole Windows support - +-experimental. ++export PATH_SEPARATOR=";" ++ ++in order to parse the terminfo paths correctly. Terminfo paths should ++always be separated by a seeeemicolon,even when running under MSYS. + +-In order to build the DLLs, after your regular make you must call ++To support regular expressions properly, ncurses under MinGW should be ++linked against the gnurx regex library, which must be built separately ++under MinGW. See + +- make dlls ++ ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libgnurx-src-2.5.zip ++ ++All the options above are - like the whole Windows support - ++experimental. + + A lot is still TODO, e.g.: + +- - Wide Character support ++ - Wide Character support (display is workable, but input untested) + The Win32Con driver should actually only use Unicode in the + future. + - Thread support (locking). If using TDM toolchain this is done by +@@ -145,5 +134,5 @@ + - Workarounds for MinGW's filesystem access are necessary to make infocmp + work (though tic works). + +-To support terminfo, we need to have an ioctl() simulation for the +-serial and networked Terminals. ++To support terminfo, we would need to have an ioctl() simulation for the ++serial and networked terminals. +diff -Naur ncurses-5.9/test/aclocal.m4 ncurses-5.9.patch/test/aclocal.m4 +--- ncurses-5.9/test/aclocal.m4 2011-03-24 09:28:07.000000000 +0100 ++++ ncurses-5.9.patch/test/aclocal.m4 2014-09-01 16:33:22.525792404 +0200 +@@ -1,5 +1,5 @@ + dnl*************************************************************************** +-dnl Copyright (c) 2003-2010,2011 Free Software Foundation, Inc. * ++dnl Copyright (c) 2003-2013,2014 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.50 2011/03/24 08:28:07 tom Exp $ ++dnl $Id: aclocal.m4,v 1.94 2014/02/10 00:43:27 tom Exp $ + dnl + dnl Author: Thomas E. Dickey + dnl +@@ -40,6 +40,32 @@ + dnl + dnl --------------------------------------------------------------------------- + dnl --------------------------------------------------------------------------- ++dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56 ++dnl ------------------ ++dnl Conditionally generate script according to whether we're using a given autoconf. ++dnl ++dnl $1 = version to compare against ++dnl $2 = code to use if AC_ACVERSION is at least as high as $1. ++dnl $3 = code to use if AC_ACVERSION is older than $1. ++define([CF_ACVERSION_CHECK], ++[ ++ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl ++ifdef([m4_version_compare], ++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], ++[CF_ACVERSION_COMPARE( ++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), ++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 ++dnl -------------------- ++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, ++dnl MAJOR2, MINOR2, TERNARY2, ++dnl PRINTABLE2, not FOUND, FOUND) ++define([CF_ACVERSION_COMPARE], ++[ifelse(builtin([eval], [$2 < $5]), 1, ++[ifelse([$8], , ,[$8])], ++[ifelse([$9], , ,[$9])])])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42 + dnl ------------- + dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS +@@ -237,7 +263,7 @@ + dnl $2 = variable to update (default $LIBS) + AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ADD_LIB_AFTER version: 2 updated: 2010/11/08 20:33:46 ++dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22 + dnl ---------------- + dnl Add a given library after another, e.g., following the one it satisfies a + dnl dependency for. +@@ -246,11 +272,11 @@ + dnl $2 = its dependency + AC_DEFUN([CF_ADD_LIB_AFTER],[ + CF_VERBOSE(...before $LIBS) +-LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s,$1 ,$1 $2 ," -e 's/ / /g'` ++LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'` + CF_VERBOSE(...after $LIBS) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12 ++dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05 + dnl ------------------ + dnl Append to a search-list for a nonstandard header/lib-file + dnl $1 = the variable to return as result +@@ -260,9 +286,9 @@ + dnl $5 = a directory that we do not want $4 to match + AC_DEFUN([CF_ADD_SUBDIR_PATH], + [ +-test "$4" != "$5" && \ ++test "x$4" != "x$5" && \ + test -d "$4" && \ +-ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) { ++ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) { + test -n "$verbose" && echo " ... testing for $3-directories under $4" + test -d $4/$3 && $1="[$]$1 $4/$3" + test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2" +@@ -272,76 +298,6 @@ + } + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32 +-dnl ---------------- +-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES' +-dnl in the sharutils 4.2 distribution. +-AC_DEFUN([CF_ANSI_CC_CHECK], +-[ +-AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[ +-cf_cv_ansi_cc=no +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc +-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) +-for cf_arg in "-DCC_HAS_PROTOS" \ +- "" \ +- -qlanglvl=ansi \ +- -std1 \ +- -Ae \ +- "-Aa -D_HPUX_SOURCE" \ +- -Xc +-do +- CF_ADD_CFLAGS($cf_arg) +- AC_TRY_COMPILE( +-[ +-#ifndef CC_HAS_PROTOS +-#if !defined(__STDC__) || (__STDC__ != 1) +-choke me +-#endif +-#endif +-],[ +- int test (int i, double x); +- struct s1 {int (*f) (int a);}; +- struct s2 {int (*f) (double a);};], +- [cf_cv_ansi_cc="$cf_arg"; break]) +-done +-CFLAGS="$cf_save_CFLAGS" +-CPPFLAGS="$cf_save_CPPFLAGS" +-]) +- +-if test "$cf_cv_ansi_cc" != "no"; then +-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then +- CF_ADD_CFLAGS($cf_cv_ansi_cc) +-else +- AC_DEFINE(CC_HAS_PROTOS) +-fi +-fi +-])dnl +-dnl --------------------------------------------------------------------------- +-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 +-dnl macros, since tools such as unproto can fake prototypes, but only part of +-dnl the preprocessor. +-AC_DEFUN([CF_ANSI_CC_REQD], +-[AC_REQUIRE([CF_ANSI_CC_CHECK]) +-if test "$cf_cv_ansi_cc" = "no"; then +- AC_MSG_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 +- c. use a wrapper such as unproto]) +-fi +-])dnl +-dnl --------------------------------------------------------------------------- + dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 + dnl -------------- + dnl Allow user to disable a normally-on option. +@@ -377,7 +333,33 @@ + ])dnl + ])])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59 ++dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49 ++dnl --------------- ++dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content ++dnl into CC. This will not help with broken scripts that wrap the compiler with ++dnl options, but eliminates a more common category of user confusion. ++AC_DEFUN([CF_CC_ENV_FLAGS], ++[ ++# This should have been defined by AC_PROG_CC ++: ${CC:=cc} ++ ++AC_MSG_CHECKING(\$CC variable) ++case "$CC" in #(vi ++*[[\ \ ]]-[[IUD]]*) ++ AC_MSG_RESULT(broken) ++ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) ++ # humor him... ++ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` ++ CC=`echo "$CC" | sed -e 's/[[ ]].*//'` ++ CF_ADD_CFLAGS($cf_flags) ++ ;; ++*) ++ AC_MSG_RESULT(ok) ++ ;; ++esac ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03 + 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. +@@ -400,7 +382,7 @@ + system_name="`(hostname) 2>/dev/null`" + fi + fi +-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name") ++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.]) + AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) + + test -z "$system_name" && system_name="$cf_cv_system_name" +@@ -434,7 +416,40 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_ACS_MAP version: 6 updated: 2010/10/23 15:54:49 ++dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35 ++dnl ----------------- ++dnl Check if the given compiler is really clang. clang's C driver defines ++dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does ++dnl not ignore some gcc options. ++dnl ++dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to ++dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from ++dnl the wrappers for gcc and g++ warnings. ++dnl ++dnl $1 = GCC (default) or GXX ++dnl $2 = CLANG_COMPILER (default) ++dnl $3 = CFLAGS (default) or CXXFLAGS ++AC_DEFUN([CF_CLANG_COMPILER],[ ++ifelse([$2],,CLANG_COMPILER,[$2])=no ++ ++if test "$ifelse([$1],,[$1],GCC)" = yes ; then ++ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) ++ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" ++ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments" ++ AC_TRY_COMPILE([],[ ++#ifdef __clang__ ++#else ++make an error ++#endif ++],[ifelse([$2],,CLANG_COMPILER,[$2])=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++],[]) ++ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" ++ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) ++fi ++]) ++dnl --------------------------------------------------------------------------- ++dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58 + dnl ----------------- + dnl Check for likely values of acs_map[]: + AC_DEFUN([CF_CURSES_ACS_MAP], +@@ -452,7 +467,7 @@ + done + ]) + +-test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map) ++test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_]) + ]) + dnl --------------------------------------------------------------------------- + dnl CF_CURSES_CHECK_DATA version: 4 updated: 2011/01/15 16:39:24 +@@ -499,7 +514,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_CHECK_TYPE version: 3 updated: 2010/10/23 15:54:49 ++dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58 + dnl -------------------- + dnl Check if curses.h defines the given type + AC_DEFUN([CF_CURSES_CHECK_TYPE], +@@ -515,9 +530,9 @@ + AC_MSG_RESULT($cf_result) + if test $cf_result = yes ; then + CF_UPPER(cf_result,have_type_$1) +- AC_DEFINE_UNQUOTED($cf_result) ++ AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1]) + else +- AC_DEFINE_UNQUOTED($1,$2) ++ AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared]) + fi + ])dnl + dnl --------------------------------------------------------------------------- +@@ -533,7 +548,7 @@ + CF_CURSES_LIBS + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11 ++dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08 + dnl ------------------ + dnl Look for the curses headers. + AC_DEFUN([CF_CURSES_CPPFLAGS],[ +@@ -542,13 +557,19 @@ + cf_cv_curses_incdir=no + case $host_os in #(vi + hpux10.*) #(vi +- test -d /usr/include/curses_colr && \ +- cf_cv_curses_incdir="-I/usr/include/curses_colr" ++ if test "x$cf_cv_screen" = "xcurses_colr" ++ then ++ test -d /usr/include/curses_colr && \ ++ cf_cv_curses_incdir="-I/usr/include/curses_colr" ++ fi + ;; + sunos3*|sunos4*) +- test -d /usr/5lib && \ +- test -d /usr/5include && \ +- cf_cv_curses_incdir="-I/usr/5include" ++ if test "x$cf_cv_screen" = "xcurses_5lib" ++ then ++ test -d /usr/5lib && \ ++ test -d /usr/5include && \ ++ cf_cv_curses_incdir="-I/usr/5include" ++ fi + ;; + esac + ]) +@@ -558,7 +579,7 @@ + CF_TERM_HEADER + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_FUNCS version: 15 updated: 2010/10/23 15:52:32 ++dnl CF_CURSES_FUNCS version: 17 updated: 2011/05/14 16:07:29 + dnl --------------- + dnl Curses-functions are a little complicated, since a lot of them are macros. + AC_DEFUN([CF_CURSES_FUNCS], +@@ -566,6 +587,7 @@ + AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl + AC_REQUIRE([CF_XOPEN_CURSES]) + AC_REQUIRE([CF_CURSES_TERM_H]) ++AC_REQUIRE([CF_CURSES_UNCTRL_H]) + for cf_func in $1 + do + CF_UPPER(cf_tr_func,$cf_func) +@@ -578,7 +600,8 @@ + [ + #ifndef ${cf_func} + long foo = (long)(&${cf_func}); +-${cf_cv_main_return:-return}(foo == 0); ++if (foo + 1234 > 5678) ++ ${cf_cv_main_return:-return}(foo); + #endif + ], + [cf_result=yes], +@@ -595,7 +618,7 @@ + done + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16 ++dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45 + dnl ---------------- + dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common + dnl variations of ncurses' installs. +@@ -605,10 +628,10 @@ + AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[ + cf_cv_ncurses_header=none + for cf_header in ifelse($1,,,[ \ +- $1/curses.h \ +- $1/ncurses.h]) \ +- curses.h \ +- ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h]) ++ $1/ncurses.h \ ++ $1/curses.h]) \ ++ ncurses.h \ ++ curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h]) + do + AC_TRY_COMPILE([#include <${cf_header}>], + [initscr(); tgoto("?", 0,0)], +@@ -624,7 +647,7 @@ + AC_CHECK_HEADERS($cf_cv_ncurses_header) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_LIBS version: 33 updated: 2011/03/06 12:37:18 ++dnl CF_CURSES_LIBS version: 37 updated: 2013/02/09 17:33:50 + dnl -------------- + dnl Look for the curses libraries. Older curses implementations may require + dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first. +@@ -644,17 +667,24 @@ + AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)]) + ;; + hpux10.*) #(vi +- AC_CHECK_LIB(cur_colr,initscr,[ +- CF_ADD_LIBS(-lcur_colr) +- ac_cv_func_initscr=yes +- ],[ +- AC_CHECK_LIB(Hcurses,initscr,[ +- # HP's header uses __HP_CURSES, but user claims _HP_CURSES. +- CF_ADD_LIBS(-lHcurses) +- CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES" +- ac_cv_func_initscr=yes +- ])]) +- ;; ++ # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr ++ # next (1998), and xcurses "newer" (2000). There is no header file for ++ # Hcurses; the subdirectory curses_colr has the headers (curses.h and ++ # term.h) for cur_colr ++ if test "x$cf_cv_screen" = "xcurses_colr" ++ then ++ AC_CHECK_LIB(cur_colr,initscr,[ ++ CF_ADD_LIBS(-lcur_colr) ++ ac_cv_func_initscr=yes ++ ],[ ++ AC_CHECK_LIB(Hcurses,initscr,[ ++ # HP's header uses __HP_CURSES, but user claims _HP_CURSES. ++ CF_ADD_LIBS(-lHcurses) ++ CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES" ++ ac_cv_func_initscr=yes ++ ])]) ++ fi ++ ;; + linux*) + case `arch 2>/dev/null` in + x86_64) +@@ -669,76 +699,83 @@ + CF_ADD_LIBDIR(/lib) + ;; + esac +- ;; ++ ;; + sunos3*|sunos4*) +- if test -d /usr/5lib ; then +- CF_ADD_LIBDIR(/usr/5lib) +- CF_ADD_LIBS(-lcurses -ltermcap) ++ if test "x$cf_cv_screen" = "xcurses_5lib" ++ then ++ if test -d /usr/5lib ; then ++ CF_ADD_LIBDIR(/usr/5lib) ++ CF_ADD_LIBS(-lcurses -ltermcap) ++ fi + fi + ac_cv_func_initscr=yes + ;; + esac + + if test ".$ac_cv_func_initscr" != .yes ; then +- cf_save_LIBS="$LIBS" +- cf_term_lib="" +- cf_curs_lib="" ++ cf_save_LIBS="$LIBS" + +- if test ".${cf_cv_ncurses_version:-no}" != .no +- then +- cf_check_list="ncurses curses cursesX" +- else +- cf_check_list="cursesX curses ncurses" +- fi ++ if test ".${cf_cv_ncurses_version:-no}" != .no ++ then ++ cf_check_list="ncurses curses cursesX" ++ else ++ cf_check_list="cursesX curses ncurses" ++ fi + +- # Check for library containing tgoto. Do this before curses library +- # because it may be needed to link the test-case for initscr. +- AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[ +- for cf_term_lib in $cf_check_list termcap termlib unknown +- do +- AC_CHECK_LIB($cf_term_lib,tgoto,[break]) +- done +- ]) ++ # Check for library containing tgoto. Do this before curses library ++ # because it may be needed to link the test-case for initscr. ++ if test "x$cf_term_lib" = x ++ then ++ AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[ ++ for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown ++ do ++ AC_CHECK_LIB($cf_term_lib,tgoto,[break]) ++ done ++ ]) ++ fi + +- # 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 pdcurses unknown +- do +- AC_CHECK_LIB($cf_curs_lib,initscr,[break]) +- done +- test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found) ++ # Check for library containing initscr ++ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" ++ if test "x$cf_curs_lib" = x ++ then ++ for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown ++ do ++ AC_CHECK_LIB($cf_curs_lib,initscr,[break]) ++ done ++ fi ++ 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 +- AC_MSG_CHECKING(if we can link with $cf_curs_lib library) +- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], +- [initscr()], +- [cf_result=yes], +- [cf_result=no]) +- AC_MSG_RESULT($cf_result) +- 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 +- AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries) +- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], +- [initscr(); tgoto((char *)0, 0, 0);], +- [cf_result=no], +- [ +- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" +- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], +- [initscr()], +- [cf_result=yes], +- [cf_result=error]) +- ]) +- AC_MSG_RESULT($cf_result) +- fi ++ LIBS="-l$cf_curs_lib $cf_save_LIBS" ++ if test "$cf_term_lib" = unknown ; then ++ AC_MSG_CHECKING(if we can link with $cf_curs_lib library) ++ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], ++ [initscr()], ++ [cf_result=yes], ++ [cf_result=no]) ++ AC_MSG_RESULT($cf_result) ++ 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 ++ AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries) ++ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], ++ [initscr(); tgoto((char *)0, 0, 0);], ++ [cf_result=no], ++ [ ++ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" ++ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], ++ [initscr()], ++ [cf_result=yes], ++ [cf_result=error]) ++ ]) ++ AC_MSG_RESULT($cf_result) ++ fi + fi + fi + + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_TERM_H version: 8 updated: 2010/10/23 15:54:49 ++dnl CF_CURSES_TERM_H version: 10 updated: 2012/10/06 08:57:51 + dnl ---------------- + dnl SVr4 curses should have term.h as well (where it puts the definitions of + dnl the low-level interface). This may not be true in old/broken implementations, +@@ -752,9 +789,17 @@ + + # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look + # for <term.h> if we do not find the variant. +-for cf_header in \ +- `echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \ +- term.h ++ ++cf_header_list="term.h ncurses/term.h ncursesw/term.h" ++ ++case ${cf_cv_ncurses_header:-curses.h} in #(vi ++*/*) ++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h ++ cf_header_list="$cf_header_item $cf_header_list" ++ ;; ++esac ++ ++for cf_header in $cf_header_list + do + AC_TRY_COMPILE([ + #include <${cf_cv_ncurses_header:-curses.h}> +@@ -789,18 +834,73 @@ + + case $cf_cv_term_header in #(vi + term.h) #(vi +- AC_DEFINE(HAVE_TERM_H) ++ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h]) + ;; + ncurses/term.h) #(vi +- AC_DEFINE(HAVE_NCURSES_TERM_H) ++ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h]) + ;; + ncursesw/term.h) +- AC_DEFINE(HAVE_NCURSESW_TERM_H) ++ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h]) ++ ;; ++esac ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_CURSES_UNCTRL_H version: 3 updated: 2013/11/03 06:26:10 ++dnl ------------------ ++dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages ++dnl may put it in a subdirectory (along with ncurses' other headers, of ++dnl course). Packages which put the headers in inconsistent locations are ++dnl broken). ++AC_DEFUN([CF_CURSES_UNCTRL_H], ++[ ++AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl ++ ++AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[ ++ ++# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look ++# for <unctrl.h> if we do not find the variant. ++ ++cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h" ++ ++case ${cf_cv_ncurses_header:-curses.h} in #(vi ++*/*) ++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h ++ cf_header_list="$cf_header_item $cf_header_list" ++ ;; ++esac ++ ++for cf_header in $cf_header_list ++do ++ AC_TRY_COMPILE([ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <${cf_header}>], ++ [WINDOW *x], ++ [cf_cv_unctrl_header=$cf_header ++ break], ++ [cf_cv_unctrl_header=no]) ++done ++]) ++ ++case $cf_cv_unctrl_header in #(vi ++no) ++ AC_MSG_WARN(unctrl.h header not found) ++ ;; ++esac ++ ++case $cf_cv_unctrl_header in #(vi ++unctrl.h) #(vi ++ AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h]) ++ ;; ++ncurses/unctrl.h) #(vi ++ AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h]) ++ ;; ++ncursesw/unctrl.h) ++ AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h]) + ;; + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59 ++dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51 + dnl ------------------ + dnl Check for likely values of wacs_map[]. + AC_DEFUN([CF_CURSES_WACS_MAP], +@@ -819,10 +919,10 @@ + break]) + done]) + +-test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map) ++test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_CURSES_WACS_SYMBOLS version: 1 updated: 2011/01/15 11:28:59 ++dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51 + dnl ---------------------- + dnl Do a check to see if the WACS_xxx constants are defined compatibly with + dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx +@@ -854,7 +954,7 @@ + fi + ]) + +-test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS) ++test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols]) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52 +@@ -862,7 +962,7 @@ + dnl "dirname" is not portable, so we fake it with a shell script. + AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57 ++dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28 + dnl --------------- + dnl You can always use "make -n" to see the actual options, but it's hard to + dnl pick out/analyze warning messages when the compile-line is long. +@@ -877,7 +977,7 @@ + AC_DEFUN([CF_DISABLE_ECHO],[ + AC_MSG_CHECKING(if you want to see long compiling messages) + CF_ARG_DISABLE(echo, +- [ --disable-echo display "compiling" commands], ++ [ --disable-echo do not display "compiling" commands], + [ + ECHO_LT='--silent' + ECHO_LD='@echo linking [$]@;' +@@ -899,7 +999,7 @@ + AC_SUBST(ECHO_CC) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32 ++dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03 + dnl ---------------- + dnl Combine no-leak checks with the libraries or tools that are used for the + dnl checks. +@@ -917,11 +1017,30 @@ + AC_MSG_RESULT($with_no_leaks) + + if test "$with_no_leaks" = yes ; then +- AC_DEFINE(NO_LEAKS) +- AC_DEFINE(YY_NO_LEAKS) ++ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) ++ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.]) + fi + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33 ++dnl --------------------- ++dnl The rpath-hack makes it simpler to build programs, particularly with the ++dnl *BSD ports which may have essential libraries in unusual places. But it ++dnl can interfere with building an executable for the base system. Use this ++dnl option in that case. ++AC_DEFUN([CF_DISABLE_RPATH_HACK], ++[ ++AC_MSG_CHECKING(if rpath-hack should be disabled) ++CF_ARG_DISABLE(rpath-hack, ++ [ --disable-rpath-hack don't add rpath options for additional libraries], ++ [cf_disable_rpath_hack=yes], ++ [cf_disable_rpath_hack=no]) ++AC_MSG_RESULT($cf_disable_rpath_hack) ++if test "$cf_disable_rpath_hack" = no ; then ++ CF_RPATH_HACK ++fi ++]) ++dnl --------------------------------------------------------------------------- + dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03 + dnl ------------------ + dnl Configure-option to enable gcc warnings +@@ -1122,7 +1241,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_FUNC_CURSES_VERSION version: 5 updated: 2010/10/23 15:54:49 ++dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58 + dnl ---------------------- + dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS. + dnl It's a character string "SVR4", not documented. +@@ -1141,10 +1260,10 @@ + ,[cf_cv_func_curses_version=no] + ,[cf_cv_func_curses_version=unknown]) + rm -f core]) +-test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION) ++test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function]) + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32 ++dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03 + dnl ----------------- + dnl Test for availability of useful gcc __attribute__ directives to quiet + dnl compiler warnings. Though useful, not all are supported -- and contrary +@@ -1222,27 +1341,27 @@ + test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) + cat conftest.h >>confdefs.h + case $cf_attribute in #(vi ++ noreturn) #(vi ++ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) ++ ;; + printf) #(vi +- if test "$cf_printf_attribute" = no ; then +- cat >>confdefs.h <<EOF +-#define GCC_PRINTFLIKE(fmt,var) /* nothing */ +-EOF +- else +- cat >>confdefs.h <<EOF +-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +-EOF ++ cf_value='/* nothing */' ++ if test "$cf_printf_attribute" != no ; then ++ cf_value='__attribute__((format(printf,fmt,var)))' ++ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.]) + fi ++ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc]) + ;; + scanf) #(vi +- if test "$cf_scanf_attribute" = no ; then +- cat >>confdefs.h <<EOF +-#define GCC_SCANFLIKE(fmt,var) /* nothing */ +-EOF +- else +- cat >>confdefs.h <<EOF +-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +-EOF ++ cf_value='/* nothing */' ++ if test "$cf_scanf_attribute" != no ; then ++ cf_value='__attribute__((format(scanf,fmt,var)))' ++ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.]) + fi ++ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc]) ++ ;; ++ unused) #(vi ++ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc]) + ;; + esac + fi +@@ -1254,7 +1373,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31 ++dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33 + dnl -------------- + dnl Find version of gcc + AC_DEFUN([CF_GCC_VERSION],[ +@@ -1262,13 +1381,13 @@ + GCC_VERSION=none + if test "$GCC" = yes ; then + AC_MSG_CHECKING(version of $CC) +- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" ++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" + test -z "$GCC_VERSION" && GCC_VERSION=unknown + AC_MSG_RESULT($GCC_VERSION) + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32 ++dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35 + 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: +@@ -1291,6 +1410,7 @@ + [ + AC_REQUIRE([CF_GCC_VERSION]) + CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS) ++CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS) + + cat > conftest.$ac_ext <<EOF + #line __oline__ "${as_me:-configure}" +@@ -1339,10 +1459,14 @@ + EXTRA_CFLAGS= + cf_warn_CONST="" + test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" ++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" ++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= + for cf_opt in W Wall \ + Wbad-function-cast \ + Wcast-align \ + Wcast-qual \ ++ Wdeclaration-after-statement \ ++ Wextra \ + Winline \ + Wmissing-declarations \ + Wmissing-prototypes \ +@@ -1350,7 +1474,7 @@ + Wpointer-arith \ + Wshadow \ + Wstrict-prototypes \ +- Wundef $cf_warn_CONST $1 ++ Wundef $cf_gcc_warnings $cf_warn_CONST $1 + do + CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" + if AC_TRY_EVAL(ac_compile); then +@@ -1366,6 +1490,13 @@ + continue;; + esac + ;; ++ Wpointer-arith) #(vi ++ case $GCC_VERSION in ++ [[12]].*) ++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION) ++ continue;; ++ esac ++ ;; + esac + EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" + fi +@@ -1377,6 +1508,29 @@ + AC_SUBST(EXTRA_CFLAGS) + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_GETOPT_HEADER version: 5 updated: 2012/10/06 16:39:58 ++dnl ---------------- ++dnl Check for getopt's variables which are commonly defined in stdlib.h, ++dnl unistd.h or (nonstandard) in getopt.h ++AC_DEFUN([CF_GETOPT_HEADER], ++[ ++AC_HAVE_HEADERS(unistd.h getopt.h) ++AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[ ++cf_cv_getopt_header=none ++for cf_header in stdio.h stdlib.h unistd.h getopt.h ++do ++AC_TRY_COMPILE([ ++#include <$cf_header>], ++[int x = optind; char *y = optarg], ++[cf_cv_getopt_header=$cf_header ++ break]) ++done ++]) ++if test $cf_cv_getopt_header != none ; then ++ AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h]) ++fi ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07 + dnl ------------- + dnl Check if we must define _GNU_SOURCE to get a reasonable value for +@@ -1453,6 +1607,13 @@ + $1="[$]$1 $cf_header_path_list" + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23 ++dnl --------------- ++dnl Insert text into the help-message, for readability, from AC_ARG_WITH. ++AC_DEFUN([CF_HELP_MESSAGE], ++[AC_DIVERT_HELP([$1])dnl ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42 + dnl ----------------- + dnl If we do not have a given script, look for it in the parent directory. +@@ -1461,7 +1622,7 @@ + test -f $1 || ( test -f ../$1 && cp ../$1 ./ ) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42 ++dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05 + dnl ----------------- + dnl Check if the given compiler is really the Intel compiler for Linux. It + dnl tries to imitate gcc, but does not return an error when it finds a mismatch +@@ -1475,6 +1636,7 @@ + dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS + dnl $3 = CFLAGS (default) or CXXFLAGS + AC_DEFUN([CF_INTEL_COMPILER],[ ++AC_REQUIRE([AC_CANONICAL_HOST]) + ifelse([$2],,INTEL_COMPILER,[$2])=no + + if test "$ifelse([$1],,[$1],GCC)" = yes ; then +@@ -1498,6 +1660,60 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41 ++dnl --------------- ++dnl For the given system and compiler, find the compiler flags to pass to the ++dnl loader to use the "rpath" feature. ++AC_DEFUN([CF_LD_RPATH_OPT], ++[ ++AC_REQUIRE([CF_CHECK_CACHE]) ++ ++LD_RPATH_OPT= ++AC_MSG_CHECKING(for an rpath option) ++case $cf_cv_system_name in #(vi ++irix*) #(vi ++ if test "$GCC" = yes; then ++ LD_RPATH_OPT="-Wl,-rpath," ++ else ++ LD_RPATH_OPT="-rpath " ++ fi ++ ;; ++linux*|gnu*|k*bsd*-gnu) #(vi ++ LD_RPATH_OPT="-Wl,-rpath," ++ ;; ++openbsd[[2-9]].*|mirbsd*) #(vi ++ LD_RPATH_OPT="-Wl,-rpath," ++ ;; ++dragonfly*|freebsd*) #(vi ++ LD_RPATH_OPT="-rpath " ++ ;; ++netbsd*) #(vi ++ LD_RPATH_OPT="-Wl,-rpath," ++ ;; ++osf*|mls+*) #(vi ++ LD_RPATH_OPT="-rpath " ++ ;; ++solaris2*) #(vi ++ LD_RPATH_OPT="-R" ++ ;; ++*) ++ ;; ++esac ++AC_MSG_RESULT($LD_RPATH_OPT) ++ ++case "x$LD_RPATH_OPT" in #(vi ++x-R*) ++ AC_MSG_CHECKING(if we need a space after rpath option) ++ cf_save_LIBS="$LIBS" ++ CF_ADD_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 && LD_RPATH_OPT="$LD_RPATH_OPT " ++ ;; ++esac ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50 + dnl --------------- + dnl Construct a search-list of directories for a nonstandard library-file +@@ -1588,38 +1804,7 @@ + fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_MIN_GETCCHAR version: 3 updated: 2010/10/23 15:54:49 +-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 <stdlib.h> +-#include <stdarg.h> +-#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_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55 ++dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05 + dnl ---------------------- + dnl Check if the file-system supports mixed-case filenames. If we're able to + dnl create a lowercase name and see it as uppercase, it doesn't support that. +@@ -1628,7 +1813,7 @@ + AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ + if test "$cross_compiling" = yes ; then + case $target_alias in #(vi +- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi ++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) +@@ -1646,7 +1831,7 @@ + rm -f conftest CONFTEST + fi + ]) +-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) ++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32 +@@ -1690,7 +1875,7 @@ + ,[$1=no]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30 ++dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51 + dnl ----------------- + dnl Tie together the configure-script macros for ncurses. + dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis. +@@ -1702,7 +1887,10 @@ + 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) ++ ++CF_ACVERSION_CHECK(2.52, ++ [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)], ++ [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)]) + + if test "$NCURSES_CONFIG" != none ; then + +@@ -1713,7 +1901,7 @@ + CF_CURSES_HEADER(ifelse($1,,ncurses,$1)) + + dnl like CF_NCURSES_CPPFLAGS +-AC_DEFINE(NCURSES) ++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) + + dnl like CF_NCURSES_LIBS + CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root) +@@ -1730,7 +1918,7 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38 ++dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51 + dnl ------------------- + dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting + dnl the CPPFLAGS variable so we can include its header. +@@ -1776,12 +1964,12 @@ + CF_TERM_HEADER + + # some applications need this, but should check for NCURSES_VERSION +-AC_DEFINE(NCURSES) ++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) + + CF_NCURSES_VERSION + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_EXT_FUNCS version: 3 updated: 2010/11/13 19:43:23 ++dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58 + dnl -------------------- + dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions + dnl may provide these functions. Define the symbol if it is not defined, and +@@ -1813,10 +2001,10 @@ + [cf_cv_ncurses_ext_funcs=no]) + ]) + ]) +-test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS) ++test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54 ++dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51 + dnl ----------------- + dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common + dnl variations of ncurses' installs. +@@ -1867,16 +2055,16 @@ + + case $cf_cv_ncurses_header in # (vi + *ncurses.h) +- AC_DEFINE(HAVE_NCURSES_H) ++ AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h]) + ;; + esac + + case $cf_cv_ncurses_header in # (vi + ncurses/curses.h|ncurses/ncurses.h) +- AC_DEFINE(HAVE_NCURSES_NCURSES_H) ++ AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h]) + ;; + ncursesw/curses.h|ncursesw/ncurses.h) +- AC_DEFINE(HAVE_NCURSESW_NCURSES_H) ++ AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h]) + ;; + esac + +@@ -1950,7 +2138,7 @@ + AC_DEFINE_UNQUOTED($cf_nculib_ROOT) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49 ++dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51 + dnl ------------------ + dnl Check for the version of ncurses, to aid in reporting bugs, etc. + dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use +@@ -2009,7 +2197,7 @@ + ]) + rm -f $cf_tempfile + ]) +-test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES) ++test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10 +@@ -2028,7 +2216,7 @@ + AC_SUBST(NCURSES_WRAP_PREFIX) + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_NETBSD_FORM_H version: 1 updated: 2011/01/15 14:59:18 ++dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58 + dnl ---------------- + dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses. + dnl Some workarounds are needed in client programs to allow them to compile. +@@ -2045,10 +2233,10 @@ + ],[cf_cv_netbsd_form_h=no]) + ]) + +-test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H) ++test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H,1,[Define to 1 if we appear to be using NetBSD form.h]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NETBSD_MENU_H version: 1 updated: 2011/01/15 14:59:18 ++dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58 + dnl ---------------- + dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses. + dnl Some workarounds are needed in client programs to allow them to compile. +@@ -2064,17 +2252,17 @@ + ],[cf_cv_netbsd_menu_h=no]) + ]) + +-test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H) ++test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05 ++dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03 + dnl ------------------ + dnl see CF_WITH_NO_LEAKS + AC_DEFUN([CF_NO_LEAKS_OPTION],[ + AC_MSG_CHECKING(if you want to use $1 for testing) + AC_ARG_WITH($1, + [$2], +- [AC_DEFINE($3)ifelse([$4],,[ ++ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[ + $4 + ]) + : ${with_cflags:=-g} +@@ -2096,7 +2284,7 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42 ++dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54 + 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 +@@ -2116,7 +2304,7 @@ + ;; + .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX + ;; +-.\[$]{*prefix}*) #(vi ++.\[$]{*prefix}*|.\[$]{*dir}*) #(vi + eval $1="[$]$1" + case ".[$]$1" in #(vi + .NONE/*) +@@ -2133,13 +2321,15 @@ + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PDCURSES_X11 version: 11 updated: 2011/01/15 18:45:38 ++dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58 + dnl --------------- + dnl Configure for PDCurses' X11 library + AC_DEFUN([CF_PDCURSES_X11],[ + AC_REQUIRE([CF_X_ATHENA]) + +-AC_PATH_PROGS(XCURSES_CONFIG,xcurses-config,none) ++CF_ACVERSION_CHECK(2.52, ++ [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)], ++ [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)]) + + if test "$XCURSES_CONFIG" != none ; then + +@@ -2168,15 +2358,15 @@ + fi + + if test $cf_cv_lib_XCurses = yes ; then +- AC_DEFINE(UNIX) +- AC_DEFINE(XCURSES) +- AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES)) ++ AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix]) ++ AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix]) ++ AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix])) + else + AC_MSG_ERROR(Cannot link with XCurses) + fi + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24 ++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22 + dnl ------------- + dnl Check for the package-config program, unless disabled by command-line. + AC_DEFUN([CF_PKG_CONFIG], +@@ -2193,7 +2383,9 @@ + PKG_CONFIG=none + ;; + yes) #(vi +- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none) ++ CF_ACVERSION_CHECK(2.52, ++ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)], ++ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)]) + ;; + *) + PKG_CONFIG=$withval +@@ -2305,29 +2497,17 @@ + + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30 +-dnl -------------- +-dnl Check if C (preprocessor) -U and -D options are processed in the order +-dnl given rather than by type of option. Some compilers insist on apply all +-dnl of the -U options after all of the -D options. Others allow mixing them, +-dnl and may predefine symbols that conflict with those we define. +-AC_DEFUN([CF_PROG_CC_U_D], +-[ +-AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[ +- cf_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS" +- AC_TRY_COMPILE([],[ +-#ifndef U_D_OPTIONS +-make an undefined-error +-#endif +-#ifdef D_U_OPTIONS +-make a defined-error +-#endif +- ],[ +- cf_cv_cc_u_d_options=yes],[ +- cf_cv_cc_u_d_options=no]) +- CPPFLAGS="$cf_save_CPPFLAGS" +-]) ++dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55 ++dnl ---------- ++dnl standard check for CC, plus followup sanity checks ++dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name ++AC_DEFUN([CF_PROG_CC],[ ++ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)]) ++CF_GCC_VERSION ++CF_ACVERSION_CHECK(2.52, ++ [AC_PROG_CC_STDC], ++ [CF_ANSI_CC_REQD]) ++CF_CC_ENV_FLAGS + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07 +@@ -2373,7 +2553,124 @@ + -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'` + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12 ++dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00 ++dnl ------------- ++AC_DEFUN([CF_RPATH_HACK], ++[ ++AC_REQUIRE([CF_LD_RPATH_OPT]) ++AC_MSG_CHECKING(for updated LDFLAGS) ++if test -n "$LD_RPATH_OPT" ; then ++ AC_MSG_RESULT(maybe) ++ ++ AC_CHECK_PROGS(cf_ldd_prog,ldd,no) ++ cf_rpath_list="/usr/lib /lib" ++ if test "$cf_ldd_prog" != no ++ then ++ cf_rpath_oops= ++ ++AC_TRY_LINK([#include <stdio.h>], ++ [printf("Hello");], ++ [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq` ++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`]) ++ ++ # If we passed the link-test, but get a "not found" on a given library, ++ # this could be due to inept reconfiguration of gcc to make it only ++ # partly honor /usr/local/lib (or whatever). Sometimes this behavior ++ # is intentional, e.g., installing gcc in /usr/bin and suppressing the ++ # /usr/local libraries. ++ if test -n "$cf_rpath_oops" ++ then ++ for cf_rpath_src in $cf_rpath_oops ++ do ++ for cf_rpath_dir in \ ++ /usr/local \ ++ /usr/pkg \ ++ /opt/sfw ++ do ++ if test -f $cf_rpath_dir/lib/$cf_rpath_src ++ then ++ CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src) ++ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib" ++ break ++ fi ++ done ++ done ++ fi ++ fi ++ ++ CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS) ++ ++ CF_RPATH_HACK_2(LDFLAGS) ++ CF_RPATH_HACK_2(LIBS) ++ ++ CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS) ++else ++ AC_MSG_RESULT(no) ++fi ++AC_SUBST(EXTRA_LDFLAGS) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24 ++dnl --------------- ++dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to ++dnl EXTRA_LDFLAGS for each -L option found. ++dnl ++dnl $cf_rpath_list contains a list of directories to ignore. ++dnl ++dnl $1 = variable name to update. The LDFLAGS variable should be the only one, ++dnl but LIBS often has misplaced -L options. ++AC_DEFUN([CF_RPATH_HACK_2], ++[ ++CF_VERBOSE(...checking $1 [$]$1) ++ ++cf_rpath_dst= ++for cf_rpath_src in [$]$1 ++do ++ case $cf_rpath_src in #(vi ++ -L*) #(vi ++ ++ # check if this refers to a directory which we will ignore ++ cf_rpath_skip=no ++ if test -n "$cf_rpath_list" ++ then ++ for cf_rpath_item in $cf_rpath_list ++ do ++ if test "x$cf_rpath_src" = "x-L$cf_rpath_item" ++ then ++ cf_rpath_skip=yes ++ break ++ fi ++ done ++ fi ++ ++ if test "$cf_rpath_skip" = no ++ then ++ # transform the option ++ if test "$LD_RPATH_OPT" = "-R " ; then ++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"` ++ else ++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"` ++ fi ++ ++ # if we have not already added this, add it now ++ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"` ++ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS" ++ then ++ CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp) ++ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" ++ fi ++ fi ++ ;; ++ esac ++ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src" ++done ++$1=$cf_rpath_dst ++ ++CF_VERBOSE(...checked $1 [$]$1) ++AC_SUBST(EXTRA_LDFLAGS) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20 + dnl --------------- + dnl signal handler, but there are some gcc depedencies in that recommendation. + dnl Try anyway. +@@ -2405,7 +2702,7 @@ + done + ]) + AC_MSG_RESULT($cf_cv_sig_atomic_t) +-test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t) ++test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype]) + ])dnl + dnl --------------------------------------------------------------------------- + dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50 +@@ -2425,7 +2722,7 @@ + CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40 ++dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07 + dnl ------------------ + dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on + dnl older SCO configurations. +@@ -2445,10 +2742,10 @@ + [cf_cv_sys_time_select=no]) + ]) + AC_MSG_RESULT($cf_cv_sys_time_select) +-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT) ++test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49 ++dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51 + dnl -------------- + dnl Look for term.h, which is part of X/Open curses. It defines the interface + dnl to terminfo database. Usually it is in the same include-path as curses.h, +@@ -2481,21 +2778,90 @@ + + case $cf_cv_term_header in # (vi + *term.h) +- AC_DEFINE(HAVE_TERM_H) ++ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h]) + ;; + esac + + case $cf_cv_term_header in # (vi + ncurses/term.h) #(vi +- AC_DEFINE(HAVE_NCURSES_TERM_H) ++ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h]) + ;; + ncursesw/term.h) +- AC_DEFINE(HAVE_NCURSESW_TERM_H) ++ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h]) + ;; + esac + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30 ++dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32 ++dnl --------------- ++dnl Define a top_builddir symbol, for applications that need an absolute path. ++AC_DEFUN([CF_TOP_BUILDDIR], ++[ ++top_builddir=ifelse($1,,`pwd`,$1) ++AC_SUBST(top_builddir) ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_TPUTS_PROTO version: 2 updated: 2011/04/23 19:25:50 ++dnl -------------- ++dnl Check for type of function-pointer passed to tputs. Some old ++dnl implementations used functions that had different prototypes, making it ++dnl hard to compile portable programs using tputs. ++AC_DEFUN([CF_TPUTS_PROTO],[ ++CF_CURSES_FUNCS(tputs) ++if test x$cf_cv_func_tputs = xyes ++then ++ cf_done=no ++ for cf_arg in int char ++ do ++ for cf_ret in int void ++ do ++ if test $cf_ret = void ++ then ++ cf_return="/* nothing */" ++ else ++ cf_return="return value" ++ fi ++ AC_TRY_COMPILE([ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <$cf_cv_term_header> ++ ++static $cf_ret outc($cf_arg value) { $cf_return; } ++],[ ++ tputs("hello", 0, outc); ++ ${cf_cv_main_return:-return}(0); ++],[ ++ CF_VERBOSE([prototype $cf_ret func($cf_arg value)]) ++ cat >>confdefs.h <<EOF ++#define TPUTS_ARG $cf_arg ++#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value) ++#define TPUTS_RETURN(value) $cf_return ++EOF ++ cf_done=yes ++ break ++]) ++ done ++ test $cf_done = yes && break ++ done ++fi ++])dnl ++dnl --------------------------------------------------------------------------- ++dnl CF_TRIM_X_LIBS version: 2 updated: 2013/07/09 21:27:22 ++dnl -------------- ++dnl Trim extra base X libraries added as a workaround for inconsistent library ++dnl dependencies returned by "new" pkg-config files. ++AC_DEFUN([CF_TRIM_X_LIBS],[ ++ for cf_trim_lib in Xmu Xt X11 ++ do ++ case "$LIBS" in ++ *-l$cf_trim_lib\ *-l$cf_trim_lib*) ++ LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'` ++ CF_VERBOSE(..trimmed $LIBS) ++ ;; ++ esac ++ done ++]) ++dnl --------------------------------------------------------------------------- ++dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06 + dnl ----------------- + dnl This is a simple wrapper to use for pkg-config, for libraries which may be + dnl available in that form. +@@ -2516,10 +2882,51 @@ + CF_ADD_LIBS($cf_pkgconfig_libs) + ifelse([$2],,:,[$2]) + else ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= + ifelse([$3],,:,[$3]) + fi + ]) + dnl --------------------------------------------------------------------------- ++dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50 ++dnl ------------------- ++dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we ++dnl can define it successfully. ++AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ ++AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ ++ AC_TRY_COMPILE([ ++#include <stdlib.h> ++#include <string.h> ++#include <sys/types.h> ++],[ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_cv_xopen_source=no], ++ [cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ AC_TRY_COMPILE([ ++#include <stdlib.h> ++#include <string.h> ++#include <sys/types.h> ++],[ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_cv_xopen_source=no], ++ [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) ++ CPPFLAGS="$cf_save" ++ ]) ++]) ++ ++if test "$cf_cv_xopen_source" != no ; then ++ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) ++ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++ CF_ADD_CFLAGS($cf_temp_xopen_source) ++fi ++]) ++dnl --------------------------------------------------------------------------- + dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59 + dnl -------- + dnl Make an uppercase version of a variable +@@ -2529,7 +2936,7 @@ + $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28 ++dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51 + dnl ----------- + dnl Check for multibyte support, and if not found, utf8 compatibility library + AC_DEFUN([CF_UTF8_LIB], +@@ -2548,7 +2955,7 @@ + # 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) ++ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h]) + CF_ADD_INCDIR($cf_cv_header_path_utf8) + CF_ADD_LIBDIR($cf_cv_library_path_utf8) + CF_ADD_LIBS($cf_cv_library_file_utf8) +@@ -2563,7 +2970,7 @@ + CF_MSG_LOG([$1]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57 ++dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58 + 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 +@@ -2595,7 +3002,7 @@ + [cf_cv_$1=unknown])])]) + + if test "$cf_cv_$1" = yes ; then +- AC_DEFINE(NEED_WCHAR_H) ++ AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h]) + NEED_WCHAR_H=1 + fi + +@@ -2667,6 +3074,60 @@ + fi + ])dnl + dnl --------------------------------------------------------------------------- ++dnl CF_WITH_NCURSES_ETC version: 2 updated: 2012/01/13 10:49:00 ++dnl ------------------- ++dnl Use this macro for programs which use any variant of "curses", e.g., ++dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated ++dnl library (such as slang) should use a "--with-screen=XXX" option. ++dnl ++dnl This does not use AC_DEFUN, because that would tell autoconf to run each ++dnl of the macros inside this one - before this macro. ++define([CF_WITH_NCURSES_ETC],[ ++CF_WITH_CURSES_DIR ++ ++cf_cv_screen=curses ++ ++AC_MSG_CHECKING(for specified curses library type) ++AC_ARG_WITH(ncursesw, ++ [ --with-ncursesw use wide ncurses-libraries], ++ [cf_cv_screen=ncursesw],[ ++ ++AC_ARG_WITH(ncurses, ++ [ --with-ncurses use ncurses-libraries], ++ [cf_cv_screen=ncurses],[ ++ ++AC_ARG_WITH(pdcurses, ++ [ --with-pdcurses compile/link with pdcurses X11 library], ++ [cf_cv_screen=pdcurses],[ ++ ++AC_ARG_WITH(curses-colr, ++ [ --with-curses-colr compile/link with HPUX 10.x color-curses], ++ [cf_cv_screen=curses_colr],[ ++ ++AC_ARG_WITH(curses-5lib, ++ [ --with-curses-5lib compile/link with SunOS 5lib curses], ++ [cf_cv_screen=curses_5lib])])])])]) ++ ++AC_MSG_RESULT($cf_cv_screen) ++ ++case $cf_cv_screen in #(vi ++curses|curses_*) #(vi ++ CF_CURSES_CONFIG ++ ;; ++ncurses) #(vi ++ CF_NCURSES_CONFIG ++ ;; ++ncursesw) #(vi ++ CF_UTF8_LIB ++ CF_NCURSES_CONFIG(ncursesw) ++ ;; ++pdcurses) ++ CF_PDCURSES_X11 ++ ;; ++esac ++ ++])dnl ++dnl --------------------------------------------------------------------------- + dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21 + dnl ---------------- + AC_DEFUN([CF_WITH_VALGRIND],[ +@@ -2714,7 +3175,7 @@ + test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37 ++dnl CF_XOPEN_SOURCE version: 46 updated: 2014/02/09 19:30:15 + 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, +@@ -2724,16 +3185,17 @@ + dnl $1 is the nominal value for _XOPEN_SOURCE + dnl $2 is the nominal value for _POSIX_C_SOURCE + AC_DEFUN([CF_XOPEN_SOURCE],[ ++AC_REQUIRE([AC_CANONICAL_HOST]) + + cf_XOPEN_SOURCE=ifelse([$1],,500,[$1]) + cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2]) + cf_xopen_source= + + case $host_os in #(vi +-aix[[456]]*) #(vi ++aix[[4-7]]*) #(vi + cf_xopen_source="-D_ALL_SOURCE" + ;; +-cygwin) #(vi ++cygwin|msys) #(vi + cf_XOPEN_SOURCE=600 + ;; + darwin[[0-8]].*) #(vi +@@ -2741,6 +3203,7 @@ + ;; + darwin*) #(vi + cf_xopen_source="-D_DARWIN_C_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + freebsd*|dragonfly*) #(vi + # 5.x headers associate +@@ -2758,15 +3221,23 @@ + ;; + irix[[56]].*) #(vi + cf_xopen_source="-D_SGI_SOURCE" ++ cf_XOPEN_SOURCE= + ;; + linux*|gnu*|mint*|k*bsd*-gnu) #(vi + CF_GNU_SOURCE + ;; + mirbsd*) #(vi +- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h> ++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types ++ cf_XOPEN_SOURCE= ++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; + netbsd*) #(vi +- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ ;; ++openbsd[[4-9]]*) #(vi ++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw ++ cf_xopen_source="-D_BSD_SOURCE" ++ cf_XOPEN_SOURCE=600 + ;; + openbsd*) #(vi + # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw +@@ -2780,36 +3251,12 @@ + sco*) #(vi + # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer + ;; +-solaris2.1[[0-9]]) #(vi +- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-solaris2.[[1-9]]) #(vi ++solaris2.*) #(vi + cf_xopen_source="-D__EXTENSIONS__" ++ cf_cv_xopen_source=broken + ;; + *) +- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ +- AC_TRY_COMPILE([#include <sys/types.h>],[ +-#ifndef _XOPEN_SOURCE +-make an error +-#endif], +- [cf_cv_xopen_source=no], +- [cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- AC_TRY_COMPILE([#include <sys/types.h>],[ +-#ifdef _XOPEN_SOURCE +-make an error +-#endif], +- [cf_cv_xopen_source=no], +- [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) +- CPPFLAGS="$cf_save" +- ]) +-]) +- if test "$cf_cv_xopen_source" != no ; then +- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) +- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) +- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" +- CF_ADD_CFLAGS($cf_temp_xopen_source) +- fi ++ CF_TRY_XOPEN_SOURCE + CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; + esac +@@ -2817,9 +3264,38 @@ + if test -n "$cf_xopen_source" ; then + CF_ADD_CFLAGS($cf_xopen_source) + fi ++ ++dnl In anything but the default case, we may have system-specific setting ++dnl which is still not guaranteed to provide all of the entrypoints that ++dnl _XOPEN_SOURCE would yield. ++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then ++ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) ++ AC_TRY_COMPILE([#include <stdlib.h>],[ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif], ++ [cf_XOPEN_SOURCE_set=yes], ++ [cf_XOPEN_SOURCE_set=no]) ++ AC_MSG_RESULT($cf_XOPEN_SOURCE_set) ++ if test $cf_XOPEN_SOURCE_set = yes ++ then ++ AC_TRY_COMPILE([#include <stdlib.h>],[ ++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE ++make an error ++#endif], ++ [cf_XOPEN_SOURCE_set_ok=yes], ++ [cf_XOPEN_SOURCE_set_ok=no]) ++ if test $cf_XOPEN_SOURCE_set_ok = no ++ then ++ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) ++ fi ++ else ++ CF_TRY_XOPEN_SOURCE ++ fi ++fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_X_ATHENA version: 20 updated: 2010/11/09 05:18:02 ++dnl CF_X_ATHENA version: 21 updated: 2013/07/06 21:27:06 + dnl ----------- + dnl Check for Xaw (Athena) libraries + dnl +@@ -2878,6 +3354,8 @@ + CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena) + AC_DEFINE_UNQUOTED($cf_x_athena_LIBS) + ++ CF_TRIM_X_LIBS ++ + AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[ + AC_TRY_LINK([ + #include <X11/Xmu/CharSet.h> +@@ -2893,7 +3371,15 @@ + ;; + *) + CF_VERBOSE(work around broken package) +- CF_TRY_PKG_CONFIG(xmu,,[CF_ADD_LIB_AFTER(-lXt,-lXmu)]) ++ cf_save_xmu="$LIBS" ++ cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'` ++ CF_TRY_PKG_CONFIG(xmu,[ ++ LIBS="$cf_save_xmu" ++ CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs) ++ ],[ ++ CF_ADD_LIB_AFTER($cf_first_lib,-lXmu) ++ ]) ++ CF_TRIM_X_LIBS + ;; + esac + fi +@@ -2957,7 +3443,7 @@ + fi + ]) + dnl --------------------------------------------------------------------------- +-dnl CF_X_ATHENA_LIBS version: 10 updated: 2011/02/13 13:31:33 ++dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02 + 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. +@@ -2973,19 +3459,24 @@ + /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" ++ ${cf_x_athena_root} \ ++ ${cf_x_athena_root}7 \ ++ ${cf_x_athena_root}6 ++ do ++ for cf_libs in \ ++ "-l$cf_lib -lXmu" \ ++ "-l$cf_lib -lXpm -lXmu" \ ++ "-l${cf_lib}_s -lXmu_s" + do + if test -z "$cf_x_athena_lib" ; then + cf_save="$LIBS" + cf_test=XawSimpleMenuAddGlobalActions + if test $cf_path != default ; then +- CF_ADD_LIBS(-L$cf_path/lib $cf_lib) +- AC_MSG_CHECKING(for $cf_lib in $cf_path) ++ CF_ADD_LIBS(-L$cf_path/lib $cf_libs) ++ AC_MSG_CHECKING(for $cf_libs in $cf_path) + else +- CF_ADD_LIBS($cf_lib) +- AC_MSG_CHECKING(for $cf_test in $cf_lib) ++ CF_ADD_LIBS($cf_libs) ++ AC_MSG_CHECKING(for $cf_test in $cf_libs) + fi + AC_TRY_LINK([ + #include <X11/Intrinsic.h> +@@ -2996,12 +3487,14 @@ + [cf_result=no]) + AC_MSG_RESULT($cf_result) + if test "$cf_result" = yes ; then +- cf_x_athena_lib="$cf_lib" ++ cf_x_athena_lib="$cf_libs" + break + fi + LIBS="$cf_save" + fi +- done ++ done # cf_libs ++ test -n "$cf_x_athena_lib" && break ++ done # cf_lib + done + + if test -z "$cf_x_athena_lib" ; then +@@ -3021,7 +3514,7 @@ + [CF_ADD_LIB(Xext)])]) + ])dnl + dnl --------------------------------------------------------------------------- +-dnl CF_X_TOOLKIT version: 20 updated: 2010/11/19 05:43:04 ++dnl CF_X_TOOLKIT version: 21 updated: 2012/10/04 06:57:36 + dnl ------------ + dnl Check for X Toolkit libraries + dnl +@@ -3095,7 +3588,7 @@ + + AC_CHECK_FUNC(XtAppInitialize,,[ + AC_CHECK_LIB(Xt, XtAppInitialize, +- [AC_DEFINE(HAVE_LIBXT) ++ [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library]) + cf_have_X_LIBS=Xt + LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],, + [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])]) +diff -Naur ncurses-5.9/test/background.c ncurses-5.9.patch/test/background.c +--- ncurses-5.9/test/background.c 2006-06-03 18:43:08.000000000 +0200 ++++ ncurses-5.9.patch/test/background.c 2014-09-01 16:33:22.526792407 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2003,2006 Free Software Foundation, Inc. * ++ * Copyright (c) 2003-2012,2014 Free 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,15 +26,172 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: background.c,v 1.3 2006/06/03 16:43:08 tom Exp $ ++ * $Id: background.c,v 1.14 2014/02/01 22:10:42 tom Exp $ + */ + +-#include <test.priv.h> ++#define NEED_COLOR_CODE 1 ++#define NEED_COLOR_NAME 1 ++#include <color_name.h> ++ ++static int default_bg = COLOR_BLACK; ++static int default_fg = COLOR_WHITE; ++ ++static void ++test_background(void) ++{ ++ NCURSES_COLOR_T f, b; ++ int row; ++ int chr; ++ ++ if (pair_content(0, &f, &b) == ERR) { ++ printw("pair 0 contains no data\n"); ++ } else { ++ printw("pair 0 contains (%d,%d)\n", (int) f, (int) b); ++ } ++ getch(); ++ ++ printw("Initializing pair 1 to red/%s\n", color_name(default_bg)); ++ init_pair(1, COLOR_RED, (NCURSES_COLOR_T) default_bg); ++ bkgdset((chtype) (' ' | COLOR_PAIR(1))); ++ printw("RED/BLACK\n"); ++ getch(); ++ ++ printw("Initializing pair 2 to %s/blue\n", color_name(default_fg)); ++ init_pair(2, (NCURSES_COLOR_T) default_fg, COLOR_BLUE); ++ bkgdset((chtype) (' ' | COLOR_PAIR(2))); ++ printw("This line should be %s/blue\n", color_name(default_fg)); ++ getch(); ++ ++ printw("Initializing pair 3 to %s/cyan (ACS_HLINE)\n", color_name(default_fg)); ++ init_pair(3, (NCURSES_COLOR_T) default_fg, COLOR_CYAN); ++ printw("...and drawing a box which should be followed by lines\n"); ++ bkgdset(ACS_HLINE | COLOR_PAIR(3)); ++ /* ++ * Characters from vt100 line-drawing should be mapped to line-drawing, ++ * since A_ALTCHARSET is set in the background, and the character part ++ * of the background is replaced by the nonblank characters written. ++ * ++ * Characters not in the line-drawing range are usually sent as-is. ++ * ++ * With SVr4 curses it is possible to rely on this to mix uppercase text ++ * with the (lowercase) line-drawing characters. ncurses uses some of ++ * the uppercase characters for encoding thick- and double-lines. ++ */ ++ row = 7; ++ mvprintw(row++, 10, "l"); ++ for (chr = 0; chr < 32; ++chr) ++ addch(' '); ++ printw("x\n"); ++ chr = 32; ++ while (chr < 128) { ++ if ((chr % 32) == 0) ++ mvprintw(row++, 10, "x"); ++ addch((chtype) ((chr == 127) ? ' ' : chr)); ++ if ((++chr % 32) == 0) ++ printw("x\n"); ++ } ++ mvprintw(row++, 10, "m"); ++ for (chr = 0; chr < 32; ++chr) ++ addch(' '); ++ printw("j\n"); ++ getch(); ++ ++ bkgdset((chtype) (' ' | COLOR_PAIR(0))); ++ printw("Default Colors\n"); ++ getch(); ++ ++ printw("Resetting colors to pair 1\n"); ++ bkgdset((chtype) (' ' | COLOR_PAIR(1))); ++ printw("This line should be red/%s\n", color_name(default_bg)); ++ getch(); ++ ++ printw("Setting screen to pair 0\n"); ++ bkgd((chtype) (' ' | COLOR_PAIR(0))); ++ getch(); ++ ++ printw("Setting screen to pair 1\n"); ++ bkgd((chtype) (' ' | COLOR_PAIR(1))); ++ getch(); ++ ++ printw("Setting screen to pair 2\n"); ++ bkgd((chtype) (' ' | COLOR_PAIR(2))); ++ getch(); ++ ++ printw("Setting screen to pair 3\n"); ++ bkgd((chtype) (' ' | COLOR_PAIR(3))); ++ getch(); ++ ++ printw("Setting screen to pair 0\n"); ++ bkgd((chtype) (' ' | COLOR_PAIR(0))); ++ getch(); ++} ++ ++static void ++usage(void) ++{ ++ static const char *msg[] = ++ { ++ "Usage: background [options]" ++ ,"" ++ ,"Options:" ++#if HAVE_ASSUME_DEFAULT_COLORS ++ ," -a invoke assume_default_colors, repeat to use in init_pair" ++#endif ++ ," -b XXX specify background color" ++#if HAVE_USE_DEFAULT_COLORS ++ ," -d invoke use_default_colors, repeat to use in init_pair" ++#endif ++ ," -f XXX specify foreground color" ++ }; ++ size_t 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) + { +- short f, b; ++#if HAVE_ASSUME_DEFAULT_COLORS ++ int a_option = 0; ++#endif ++#if HAVE_USE_DEFAULT_COLORS ++ int d_option = 0; ++#endif ++ int n; ++ ++ setlocale(LC_ALL, ""); ++ ++ while ((n = getopt(argc, argv, "ab:df:")) != -1) { ++ switch (n) { ++#if HAVE_ASSUME_DEFAULT_COLORS ++ case 'a': ++ ++a_option; ++ break; ++#endif ++ case 'b': ++ default_bg = color_code(optarg); ++ break; ++#if HAVE_USE_DEFAULT_COLORS ++ case 'd': ++ ++d_option; ++ break; ++#endif ++ case 'f': ++ default_fg = color_code(optarg); ++ break; ++ default: ++ usage(); ++ } ++ } ++#if HAVE_USE_DEFAULT_COLORS && HAVE_ASSUME_DEFAULT_COLORS ++ if (a_option && d_option) { ++ fprintf(stderr, "Use either -a or -d option, but not both\n"); ++ ExitProgram(EXIT_FAILURE); ++ } ++#endif + + initscr(); + cbreak(); +@@ -43,47 +200,30 @@ + if (has_colors()) { + start_color(); + +- pair_content(0, &f, &b); +- printw("pair 0 contains (%d,%d)\n", f, b); +- getch(); +- +- printw("Initializing pair 1 to red/black\n"); +- init_pair(1, COLOR_RED, COLOR_BLACK); +- bkgdset(' ' | COLOR_PAIR(1)); +- printw("RED/BLACK\n"); +- getch(); +- +- printw("Initializing pair 2 to white/blue\n"); +- init_pair(2, COLOR_WHITE, COLOR_BLUE); +- bkgdset(' ' | COLOR_PAIR(2)); +- printw("WHITE/BLUE\n"); +- getch(); +- +- printw("Resetting colors to pair 0\n"); +- bkgdset(' ' | COLOR_PAIR(0)); +- printw("Default Colors\n"); +- getch(); +- +- printw("Resetting colors to pair 1\n"); +- bkgdset(' ' | COLOR_PAIR(1)); +- printw("RED/BLACK\n"); +- getch(); +- +- printw("Setting screen to pair 0\n"); +- bkgd(' ' | COLOR_PAIR(0)); +- getch(); +- +- printw("Setting screen to pair 1\n"); +- bkgd(' ' | COLOR_PAIR(1)); +- getch(); +- +- printw("Setting screen to pair 2\n"); +- bkgd(' ' | COLOR_PAIR(2)); +- getch(); +- +- printw("Setting screen to pair 0\n"); +- bkgd(' ' | COLOR_PAIR(0)); +- getch(); ++#if HAVE_USE_DEFAULT_COLORS ++ if (d_option) { ++ printw("Using default colors...\n"); ++ use_default_colors(); ++ if (d_option > 1) { ++ default_fg = -1; ++ default_bg = -1; ++ } ++ } ++#endif ++#if HAVE_ASSUME_DEFAULT_COLORS ++ if (a_option) { ++ printw("Using assumed colors %s/%s...\n", ++ color_name(default_fg), ++ color_name(default_bg)); ++ assume_default_colors(default_fg, default_bg); ++ if (a_option > 1) { ++ default_fg = -1; ++ default_bg = -1; ++ } ++ } ++#endif ++ ++ test_background(); + + } else { + printw("This demo requires a color terminal"); +diff -Naur ncurses-5.9/test/blue.c ncurses-5.9.patch/test/blue.c +--- ncurses-5.9/test/blue.c 2009-10-24 23:03:35.000000000 +0200 ++++ ncurses-5.9.patch/test/blue.c 2014-09-01 16:33:22.526792407 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2009,2013 Free 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.33 2009/10/24 21:03:35 tom Exp $ ++ * $Id: blue.c,v 1.35 2013/04/27 19:46:53 tom Exp $ + */ + + #include <test.priv.h> +@@ -70,7 +70,7 @@ + #define BLACK_ON_WHITE 2 + #define BLUE_ON_WHITE 3 + +-static RETSIGTYPE die(int onsig) GCC_NORETURN; ++static void die(int onsig) GCC_NORETURN; + + static int deck_size = PACK_SIZE; /* initial deck */ + static int deck[PACK_SIZE]; +@@ -132,7 +132,7 @@ + + static chtype *suits = letters; /* this may change to glyphs below */ + +-static RETSIGTYPE ++static void + die(int onsig) + { + (void) signal(onsig, SIG_IGN); +@@ -202,8 +202,8 @@ + if (value == NOCARD) + (void) addstr(" "); + else { +- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE)); +- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE)); ++ addch(ranks[value % SUIT_LENGTH][0] | (chtype) COLOR_PAIR(BLUE_ON_WHITE)); ++ addch(ranks[value % SUIT_LENGTH][1] | (chtype) COLOR_PAIR(BLUE_ON_WHITE)); + addch(suits[value / SUIT_LENGTH]); + } + (void) addch(' '); +diff -Naur ncurses-5.9/test/bs.c ncurses-5.9.patch/test/bs.c +--- ncurses-5.9/test/bs.c 2010-11-13 21:07:52.000000000 +0100 ++++ ncurses-5.9.patch/test/bs.c 2014-09-01 16:33:22.526792407 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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.52 2010/11/13 20:07:52 tom Exp $ ++ * $Id: bs.c,v 1.62 2013/11/16 19:57:56 tom Exp $ + */ + + #include <test.priv.h> +@@ -110,7 +110,7 @@ + static char destroy[] = "Destroyer"; + static char ptboat[] = "PT Boat"; + +-static char name[40]; ++static char *your_name; + static char dftname[] = "stranger"; + + /* direction constants */ +@@ -174,9 +174,9 @@ + + #define PR (void)addstr + +-static RETSIGTYPE uninitgame(int sig) GCC_NORETURN; ++static void uninitgame(int sig) GCC_NORETURN; + +-static RETSIGTYPE ++static void + uninitgame(int sig GCC_UNUSED) + /* end the game, either normally or due to signal */ + { +@@ -220,11 +220,12 @@ + + CATCHALL(uninitgame); + +- if ((tmpname = getlogin()) != 0) { +- (void) strcpy(name, tmpname); +- name[0] = (char) toupper(UChar(name[0])); +- } else +- (void) strcpy(name, dftname); ++ if ((tmpname = getlogin()) != 0 && ++ (your_name = strdup(tmpname)) != 0) { ++ your_name[0] = (char) toupper(UChar(your_name[0])); ++ } else { ++ your_name = dftname; ++ } + + (void) initscr(); + keypad(stdscr, TRUE); +@@ -368,7 +369,7 @@ + MvAddCh(PYBASE + i, PXBASE - 3, (chtype) (i + 'A')); + #ifdef A_COLOR + if (has_colors()) +- attron(COLOR_PAIR(COLOR_BLUE)); ++ attron((attr_t) COLOR_PAIR(COLOR_BLUE)); + #endif /* A_COLOR */ + (void) addch(' '); + for (j = 0; j < BWIDTH; j++) +@@ -386,7 +387,7 @@ + MvAddCh(CYBASE + i, CXBASE - 3, (chtype) (i + 'A')); + #ifdef A_COLOR + if (has_colors()) +- attron(COLOR_PAIR(COLOR_BLUE)); ++ attron((attr_t) COLOR_PAIR(COLOR_BLUE)); + #endif /* A_COLOR */ + (void) addch(' '); + for (j = 0; j < BWIDTH; j++) +@@ -426,10 +427,11 @@ + placeship(COMPUTER, ss, FALSE); + } + +- ss = (ship_t *) NULL; + do { + char c, docked[SHIPTYPES + 2], *cp = docked; + ++ ss = (ship_t *) NULL; ++ + /* figure which ships still wait to be placed */ + *cp++ = 'R'; + for (i = 0; i < SHIPTYPES; i++) +@@ -442,7 +444,7 @@ + do { + c = (char) getcoord(PLAYER); + } while +- (!strchr(docked, c)); ++ (!(strchr) (docked, c)); + + if (c == 'R') + (void) ungetch('R'); +@@ -459,13 +461,14 @@ + do { + c = (char) getch(); + } while +- (!(strchr("hjklrR", c) || c == FF)); ++ (!(strchr("hjkl8462rR", c) || c == FF)); + + if (c == FF) { + (void) clearok(stdscr, TRUE); + (void) refresh(); ++ } else if (ss == 0) { ++ beep(); /* simple to verify, unlikely to happen */ + } else if (c == 'r') { +- assert(ss != 0); + prompt(1, "Random-placing your %s", ss->name); + randomplace(PLAYER, ss); + placeship(PLAYER, ss, TRUE); +@@ -481,7 +484,6 @@ + } + error((char *) NULL); + } else if (strchr("hjkl8462", c)) { +- assert(ss != 0); + ss->x = curx; + ss->y = cury; + +@@ -769,7 +771,7 @@ + cgoto(y1, x1); + #ifdef A_COLOR + if (has_colors()) +- attron(COLOR_PAIR(COLOR_GREEN)); ++ attron((attr_t) COLOR_PAIR(COLOR_GREEN)); + #endif /* A_COLOR */ + (void) addch(MARK_MISS); + #ifdef A_COLOR +@@ -795,7 +797,7 @@ + pgoto(y1, x1); + #ifdef A_COLOR + if (has_colors()) +- attron(COLOR_PAIR(COLOR_RED)); ++ attron((attr_t) COLOR_PAIR(COLOR_RED)); + #endif /* A_COLOR */ + (void) addch(SHOWHIT); + #ifdef A_COLOR +@@ -834,9 +836,9 @@ + #ifdef A_COLOR + if (has_colors()) { + if (hit) +- attron(COLOR_PAIR(COLOR_RED)); ++ attron((attr_t) COLOR_PAIR(COLOR_RED)); + else +- attron(COLOR_PAIR(COLOR_GREEN)); ++ attron((attr_t) COLOR_PAIR(COLOR_GREEN)); + } + #endif /* A_COLOR */ + (void) addch((chtype) hits[PLAYER][curx][cury]); +@@ -863,7 +865,9 @@ + m = " You'll pick up survivors from my %s, I hope...!"; + break; + } +- (void) printw(m, ss->name); ++ if (m != 0) { ++ (void) printw(m, ss->name); ++ } + (void) beep(); + } + return (hit); +@@ -952,8 +956,8 @@ + bool hit, sunk; + ship_t *ss = NULL; + +- hit = board[PLAYER][x][y] ? MARK_HIT : MARK_MISS; +- hits[COMPUTER][x][y] = (char) hit; ++ hit = (bool) board[PLAYER][x][y]; ++ hits[COMPUTER][x][y] = (hit ? MARK_HIT : MARK_MISS); + MvPrintw(PROMPTLINE, 0, + "I shoot at %c%d. I %s!", y + 'A', x, hit ? "hit" : + "miss"); +@@ -965,9 +969,9 @@ + #ifdef A_COLOR + if (has_colors()) { + if (hit) +- attron(COLOR_PAIR(COLOR_RED)); ++ attron((attr_t) COLOR_PAIR(COLOR_RED)); + else +- attron(COLOR_PAIR(COLOR_GREEN)); ++ attron((attr_t) COLOR_PAIR(COLOR_GREEN)); + } + #endif /* A_COLOR */ + (void) addch((chtype) (hit ? SHOWHIT : SHOWSPLASH)); +@@ -1130,16 +1134,16 @@ + ++cpuwon; + else + ++plywon; +- j = 18 + (int) strlen(name); ++ j = 18 + (int) strlen(your_name); + if (plywon >= 10) + ++j; + if (cpuwon >= 10) + ++j; + MvPrintw(1, (COLWIDTH - j) / 2, +- "%s: %d Computer: %d", name, plywon, cpuwon); ++ "%s: %d Computer: %d", your_name, plywon, cpuwon); + + prompt(2, (awinna())? "Want to be humiliated again, %s [yn]? " +- : "Going to give me a chance for revenge, %s [yn]? ", name); ++ : "Going to give me a chance for revenge, %s [yn]? ", your_name); + return (sgetc("YN") == 'Y'); + } + +diff -Naur ncurses-5.9/test/cardfile.c ncurses-5.9.patch/test/cardfile.c +--- ncurses-5.9/test/cardfile.c 2010-11-14 01:58:45.000000000 +0100 ++++ ncurses-5.9.patch/test/cardfile.c 2014-09-01 16:33:22.526792407 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2012,2013 Free 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: cardfile.c,v 1.38 2010/11/14 00:58:45 tom Exp $ ++ * $Id: cardfile.c,v 1.42 2013/09/28 22:02:17 tom Exp $ + * + * File format: text beginning in column 1 is a title; other text is content. + */ +@@ -68,17 +68,13 @@ + static bool try_color = FALSE; + static char default_name[] = "cardfile.dat"; + +-#if !HAVE_STRDUP +-#define strdup my_strdup +-static char * +-strdup(const char *s) +-{ +- char *p = typeMalloc(char, strlen(s) + 1); +- if (p) +- strcpy(p, s); +- return (p); ++static void ++failed(const char *s) ++{ ++ perror(s); ++ endwin(); ++ ExitProgram(EXIT_FAILURE); + } +-#endif /* not HAVE_STRDUP */ + + static const char * + skip(const char *buffer) +@@ -111,7 +107,7 @@ + break; + } + +- card = typeCalloc(CARD, 1); ++ card = typeCalloc(CARD, (size_t) 1); + card->title = strdup(title); + card->content = strdup(""); + +@@ -146,6 +142,8 @@ + } + if (card->content) + strcpy(card->content + offset, content); ++ else ++ failed("add_content"); + } + } + +@@ -337,7 +335,7 @@ + static FIELD ** + make_fields(CARD * p, int form_high, int form_wide) + { +- FIELD **f = typeCalloc(FIELD *, 3); ++ FIELD **f = typeCalloc(FIELD *, (size_t) 3); + + f[0] = new_field(1, form_wide, 0, 0, 0, 0); + set_field_back(f[0], A_REVERSE); +@@ -414,7 +412,7 @@ + if ((win = newwin(panel_high, panel_wide, y, x)) == 0) + break; + +- wbkgd(win, COLOR_PAIR(pair_2)); ++ wbkgd(win, (chtype) COLOR_PAIR(pair_2)); + keypad(win, TRUE); + p->panel = new_panel(win); + box(win, 0, 0); +@@ -588,7 +586,7 @@ + start_color(); + init_pair(pair_1, COLOR_WHITE, COLOR_BLUE); + init_pair(pair_2, COLOR_WHITE, COLOR_CYAN); +- bkgd(COLOR_PAIR(pair_1)); ++ bkgd((chtype) COLOR_PAIR(pair_1)); + } else { + try_color = FALSE; + } +diff -Naur ncurses-5.9/test/chgat.c ncurses-5.9.patch/test/chgat.c +--- ncurses-5.9/test/chgat.c 2010-05-01 21:12:26.000000000 +0200 ++++ ncurses-5.9.patch/test/chgat.c 2014-09-01 16:33:22.526792407 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2010,2012 Free 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.11 2010/05/01 19:12:26 tom Exp $ ++ * $Id: chgat.c,v 1.12 2012/11/18 01:55:35 tom Exp $ + * + * test-driver for chgat/wchgat/mvchgat/mvwchgat + */ +@@ -176,6 +176,8 @@ + delwin(win1); + touchwin(win); + } else { ++ if (win1 != 0) ++ delwin(win1); + beep(); + } + } +diff -Naur ncurses-5.9/test/clip_printw.c ncurses-5.9.patch/test/clip_printw.c +--- ncurses-5.9/test/clip_printw.c 2010-11-13 21:48:48.000000000 +0100 ++++ ncurses-5.9.patch/test/clip_printw.c 2014-09-01 16:33:22.527792409 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2010,2012 Free 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: clip_printw.c,v 1.7 2010/11/13 20:48:48 tom Exp $ ++ * $Id: clip_printw.c,v 1.9 2012/11/18 00:39:48 tom Exp $ + * + * demonstrate how to use printw without wrapping. + */ +@@ -207,6 +207,8 @@ + delwin(win1); + touchwin(win); + } else { ++ if (win1) ++ delwin(win1); + beep(); + } + } +@@ -329,7 +331,7 @@ + do { + switch (st.ch) { + case '.': /* change from current position */ +- (void) wattrset(win, st.attr | (chtype) COLOR_PAIR(st.pair)); ++ (void) wattrset(win, (int) (st.attr | (chtype) COLOR_PAIR(st.pair))); + if (st.count > 0) { + need = (unsigned) st.count + 1; + sprintf(fmt, "%%c%%%ds%%c", st.count); +@@ -337,12 +339,13 @@ + need = (unsigned) getmaxx(win) - 1; + strcpy(fmt, "%c%s%c"); + } +- if ((buffer = typeMalloc(char, need)) != 0) { ++ if ((buffer = typeMalloc(char, need + 1)) != 0) { + for (j = 0; j < need; ++j) { + buffer[j] = (char) ('A' + (j % 26)); + } + buffer[need - 1] = '\0'; + st.status = clip_wprintw(win, fmt, '[', buffer, ']'); ++ free(buffer); + } + break; + case 'w': +diff -Naur ncurses-5.9/test/color_name.h ncurses-5.9.patch/test/color_name.h +--- ncurses-5.9/test/color_name.h 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/color_name.h 2014-09-01 16:33:22.527792409 +0200 +@@ -0,0 +1,103 @@ ++/**************************************************************************** ++ * Copyright (c) 2011,2012 Free 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: color_name.h,v 1.4 2012/11/18 01:59:32 tom Exp $ ++ */ ++ ++#ifndef __COLORNAME_H ++#define __COLORNAME_H 1 ++ ++#ifndef __TEST_PRIV_H ++#include <test.priv.h> ++#endif ++ ++static NCURSES_CONST char *the_color_names[] = ++{ ++ "black", ++ "red", ++ "green", ++ "yellow", ++ "blue", ++ "magenta", ++ "cyan", ++ "white", ++ "BLACK", ++ "RED", ++ "GREEN", ++ "YELLOW", ++ "BLUE", ++ "MAGENTA", ++ "CYAN", ++ "WHITE" ++}; ++ ++#ifdef NEED_COLOR_CODE ++static int ++color_code(const char *color) ++{ ++ int result = 0; ++ char *endp = 0; ++ size_t n; ++ ++ if ((result = (int) strtol(color, &endp, 0)) >= 0 ++ && (endp == 0 || *endp == 0)) { ++ ; ++ } else if (!strcmp(color, "default")) { ++ result = -1; ++ } else { ++ for (n = 0; n < SIZEOF(the_color_names); ++n) { ++ if (!strcmp(the_color_names[n], color)) { ++ result = (int) n; ++ break; ++ } ++ } ++ } ++ return result; ++} ++#endif /* NEED_COLOR_NAME */ ++ ++#ifdef NEED_COLOR_NAME ++static const char * ++color_name(int color) ++{ ++ static char temp[20]; ++ const char *result = 0; ++ ++ if (color >= (int) SIZEOF(the_color_names)) { ++ sprintf(temp, "%d", color); ++ result = temp; ++ } else if (color < 0) { ++ result = "default"; ++ } else { ++ result = the_color_names[color]; ++ } ++ return result; ++} ++#endif /* NEED_COLOR_NAME */ ++ ++#endif /* __COLORNAME_H */ +diff -Naur ncurses-5.9/test/color_set.c ncurses-5.9.patch/test/color_set.c +--- ncurses-5.9/test/color_set.c 2008-02-10 01:18:01.000000000 +0100 ++++ ncurses-5.9.patch/test/color_set.c 2014-09-01 16:33:22.527792409 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 2003-2012,2014 Free 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: color_set.c,v 1.6 2008/02/10 00:18:01 tom Exp $ ++ * $Id: color_set.c,v 1.8 2014/02/01 22:10:42 tom Exp $ + */ + + #include <test.priv.h> +@@ -38,7 +38,7 @@ + int + main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) + { +- short f, b; ++ NCURSES_COLOR_T f, b; + int i; + + initscr(); +@@ -48,8 +48,8 @@ + if (has_colors()) { + start_color(); + +- pair_content(0, &f, &b); +- printw("pair 0 contains (%d,%d)\n", f, b); ++ (void) pair_content(0, &f, &b); ++ printw("pair 0 contains (%d,%d)\n", (int) f, (int) b); + getch(); + + printw("Initializing pair 1 to red/black\n"); +diff -Naur ncurses-5.9/test/configure ncurses-5.9.patch/test/configure +--- ncurses-5.9/test/configure 2011-03-24 09:29:40.000000000 +0100 ++++ ncurses-5.9.patch/test/configure 2014-09-01 16:33:22.534792419 +0200 +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by Autoconf 2.52.20101002. ++# Generated by Autoconf 2.52.20121002. + # + # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + # Free Software Foundation, Inc. +@@ -105,42 +105,6 @@ + : ${ac_max_here_lines=38} + + ac_unique_file="ncurses.c" +-# Factoring default headers for most tests. +-ac_includes_default="\ +-#include <stdio.h> +-#if HAVE_SYS_TYPES_H +-# include <sys/types.h> +-#endif +-#if HAVE_SYS_STAT_H +-# include <sys/stat.h> +-#endif +-#if STDC_HEADERS +-# include <stdlib.h> +-# include <stddef.h> +-#else +-# if HAVE_STDLIB_H +-# include <stdlib.h> +-# endif +-#endif +-#if HAVE_STRING_H +-# if !STDC_HEADERS && HAVE_MEMORY_H +-# include <memory.h> +-# endif +-# include <string.h> +-#endif +-#if HAVE_STRINGS_H +-# include <strings.h> +-#endif +-#if HAVE_INTTYPES_H +-# include <inttypes.h> +-#else +-# if HAVE_STDINT_H +-# include <stdint.h> +-# endif +-#endif +-#if HAVE_UNISTD_H +-# include <unistd.h> +-#endif" + + # Initialize some variables set by options. + ac_init_help= +@@ -170,15 +134,16 @@ + bindir='${exec_prefix}/bin' + sbindir='${exec_prefix}/sbin' + libexecdir='${exec_prefix}/libexec' +-datadir='${prefix}/share' ++datarootdir='${prefix}/share' ++datadir='${datarootdir}' + sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' + libdir='${exec_prefix}/lib' + includedir='${prefix}/include' + oldincludedir='/usr/include' +-infodir='${prefix}/info' +-mandir='${prefix}/man' ++infodir='${datarootdir}/info' ++mandir='${datarootdir}/man' + + # Identity of this package. + PACKAGE_NAME= +@@ -229,6 +194,13 @@ + | --da=*) + datadir=$ac_optarg ;; + ++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ ++ | --dataroo | --dataro | --datar) ++ ac_prev=datarootdir ;; ++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ ++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) ++ datarootdir=$ac_optarg ;; ++ + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. +@@ -504,7 +476,7 @@ + done + + # Be sure to have absolute paths. +-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ++for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` +@@ -641,15 +613,16 @@ + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] +- --datadir=DIR read-only architecture-independent data [PREFIX/share] ++ --datarootdir=DIR read-only architecture-independent data [PREFIX/share] ++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] +- --infodir=DIR info documentation [PREFIX/info] +- --mandir=DIR man documentation [PREFIX/man] ++ --infodir=DIR info documentation [DATAROOTDIR/info] ++ --mandir=DIR man documentation [DATAROOTDIR/man] + EOF + + cat <<\EOF +@@ -673,31 +646,37 @@ + + cat <<\EOF + +-Optional Features: +- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) +- --enable-FEATURE[=ARG] include FEATURE [ARG=yes] +- + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + +- --disable-echo display "compiling" commands +- --enable-warnings test: turn on gcc compiler warnings +- --with-dmalloc test: use Gray Watson's dmalloc library +- --with-dbmalloc test: use Conor Cahill's dbmalloc library +- --with-valgrind test: use valgrind +- --disable-leaks test: free permanent memory, analyze leaks ++Optional Features: ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ ++General Options: ++ --with-pkg-config{=path} enable/disable use of pkg-config ++ --disable-echo do not display "compiling" commands ++Curses Version-dependent Options: ++ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables ++ --disable-widec disable checks for wide-character functions + --with-curses-dir=DIR directory in which (n)curses is installed +- --with-5lib use SunOS sysv-libraries +- --with-ncursesw use wide ncurses-libraries (installed) +- --with-ncurses use ncurses-libraries (installed) ++ --with-ncursesw use wide ncurses-libraries ++ --with-ncurses use ncurses-libraries + --with-pdcurses compile/link with pdcurses X11 library ++ --with-curses-colr compile/link with HPUX 10.x color-curses ++ --with-curses-5lib compile/link with SunOS 5lib curses + --with-Xaw3d link with Xaw 3d library + --with-neXtaw link with neXT Athena library + --with-XawPlus link with Athena-Plus library +- --with-pkg-config{=path} enable/disable use of pkg-config + --with-x use the X Window System +- --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables ++Testing/development Options: ++ --enable-warnings test: turn on gcc compiler warnings ++ --with-dmalloc test: use Gray Watson's dmalloc library ++ --with-dbmalloc test: use Conor Cahill's dbmalloc library ++ --with-valgrind test: use valgrind ++ --disable-leaks test: free permanent memory, analyze leaks ++ --disable-rpath-hack don't add rpath options for additional libraries + + Some influential environment variables: + CC C compiler command +@@ -767,7 +746,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.20101002. Invocation command line was ++generated by GNU Autoconf 2.52.20121002. Invocation command line was + + $ $0 $@ + +@@ -891,7 +870,7 @@ + fi + for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then +- { echo "$as_me:894: loading site script $ac_site_file" >&5 ++ { echo "$as_me:873: 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" +@@ -902,7 +881,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:905: loading cache $cache_file" >&5 ++ { echo "$as_me:884: loading cache $cache_file" >&5 + echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; +@@ -910,7 +889,7 @@ + esac + fi + else +- { echo "$as_me:913: creating cache $cache_file" >&5 ++ { echo "$as_me:892: creating cache $cache_file" >&5 + echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file + fi +@@ -926,21 +905,21 @@ + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) +- { echo "$as_me:929: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++ { echo "$as_me:908: 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:933: error: \`$ac_var' was not set in the previous run" >&5 ++ { echo "$as_me:912: 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:939: error: \`$ac_var' has changed since the previous run:" >&5 ++ { echo "$as_me:918: 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:941: former value: $ac_old_val" >&5 ++ { echo "$as_me:920: former value: $ac_old_val" >&5 + echo "$as_me: former value: $ac_old_val" >&2;} +- { echo "$as_me:943: current value: $ac_new_val" >&5 ++ { echo "$as_me:922: current value: $ac_new_val" >&5 + echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; +@@ -959,9 +938,9 @@ + fi + done + if $ac_cache_corrupted; then +- { echo "$as_me:962: error: changes in the environment can compromise the build" >&5 ++ { echo "$as_me:941: 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:964: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 ++ { { echo "$as_me:943: 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 +@@ -982,10 +961,10 @@ + echo "#! $SHELL" >conftest.sh + echo "exit 0" >>conftest.sh + chmod +x conftest.sh +-if { (echo "$as_me:985: PATH=\".;.\"; conftest.sh") >&5 ++if { (echo "$as_me:964: PATH=\".;.\"; conftest.sh") >&5 + (PATH=".;."; conftest.sh) 2>&5 + ac_status=$? +- echo "$as_me:988: \$? = $ac_status" >&5 ++ echo "$as_me:967: \$? = $ac_status" >&5 + (exit $ac_status); }; then + ac_path_separator=';' + else +@@ -1017,7 +996,7 @@ + fi + done + if test -z "$ac_aux_dir"; then +- { { echo "$as_me:1020: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 ++ { { echo "$as_me:999: 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 +@@ -1027,11 +1006,11 @@ + + # Make sure we can run config.sub. + $ac_config_sub sun4 >/dev/null 2>&1 || +- { { echo "$as_me:1030: error: cannot run $ac_config_sub" >&5 ++ { { echo "$as_me:1009: error: cannot run $ac_config_sub" >&5 + echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +-echo "$as_me:1034: checking build system type" >&5 ++echo "$as_me:1013: 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 +@@ -1040,16 +1019,16 @@ + test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` + test -z "$ac_cv_build_alias" && +- { { echo "$as_me:1043: error: cannot guess build type; you must specify one" >&5 ++ { { echo "$as_me:1022: 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:1047: error: $ac_config_sub $ac_cv_build_alias failed." >&5 ++ { { echo "$as_me:1026: 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:1052: result: $ac_cv_build" >&5 ++echo "$as_me:1031: 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/'` +@@ -1057,7 +1036,7 @@ + build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then +- echo "$as_me:1060: checking host system type" >&5 ++ echo "$as_me:1039: 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 +@@ -1066,12 +1045,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:1069: error: $ac_config_sub $ac_cv_host_alias failed" >&5 ++ { { echo "$as_me:1048: 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:1074: result: $ac_cv_host" >&5 ++echo "$as_me:1053: 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/'` +@@ -1085,7 +1064,8 @@ + system_name="`(hostname) 2>/dev/null`" + fi + fi +-test -n "$system_name" && cat >>confdefs.h <<EOF ++test -n "$system_name" && ++cat >>confdefs.h <<EOF + #define SYSTEM_NAME "$system_name" + EOF + +@@ -1096,13 +1076,13 @@ + fi + + test -z "$system_name" && system_name="$cf_cv_system_name" +-test -n "$cf_cv_system_name" && echo "$as_me:1099: result: Configuring for $cf_cv_system_name" >&5 ++test -n "$cf_cv_system_name" && echo "$as_me:1079: 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:1103: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 ++ echo "$as_me:1083: 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:1105: error: \"Please remove config.cache and try again.\"" >&5 ++ { { echo "$as_me:1085: 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 +@@ -1120,7 +1100,7 @@ + program_transform_name=`echo $program_transform_name | sed -f conftest.sed` + rm conftest.sed + +-echo "$as_me:1123: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "$as_me:1103: 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 +@@ -1140,11 +1120,11 @@ + rm -f conftest.make + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then +- echo "$as_me:1143: result: yes" >&5 ++ echo "$as_me:1123: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + SET_MAKE= + else +- echo "$as_me:1147: result: no" >&5 ++ echo "$as_me:1127: result: no" >&5 + echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" + fi +@@ -1158,7 +1138,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:1161: checking for $ac_word" >&5 ++echo "$as_me:1141: 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 +@@ -1173,7 +1153,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:1176: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1156: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1181,10 +1161,10 @@ + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$as_me:1184: result: $CC" >&5 ++ echo "$as_me:1164: result: $CC" >&5 + echo "${ECHO_T}$CC" >&6 + else +- echo "$as_me:1187: result: no" >&5 ++ echo "$as_me:1167: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1193,7 +1173,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:1196: checking for $ac_word" >&5 ++echo "$as_me:1176: 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 +@@ -1208,7 +1188,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:1211: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1191: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1216,10 +1196,10 @@ + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- echo "$as_me:1219: result: $ac_ct_CC" >&5 ++ echo "$as_me:1199: result: $ac_ct_CC" >&5 + echo "${ECHO_T}$ac_ct_CC" >&6 + else +- echo "$as_me:1222: result: no" >&5 ++ echo "$as_me:1202: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1232,7 +1212,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:1235: checking for $ac_word" >&5 ++echo "$as_me:1215: 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 +@@ -1247,7 +1227,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:1250: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1230: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1255,10 +1235,10 @@ + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$as_me:1258: result: $CC" >&5 ++ echo "$as_me:1238: result: $CC" >&5 + echo "${ECHO_T}$CC" >&6 + else +- echo "$as_me:1261: result: no" >&5 ++ echo "$as_me:1241: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1267,7 +1247,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:1270: checking for $ac_word" >&5 ++echo "$as_me:1250: 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 +@@ -1282,7 +1262,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:1285: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1265: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1290,10 +1270,10 @@ + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- echo "$as_me:1293: result: $ac_ct_CC" >&5 ++ echo "$as_me:1273: result: $ac_ct_CC" >&5 + echo "${ECHO_T}$ac_ct_CC" >&6 + else +- echo "$as_me:1296: result: no" >&5 ++ echo "$as_me:1276: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1306,7 +1286,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:1309: checking for $ac_word" >&5 ++echo "$as_me:1289: 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 +@@ -1326,7 +1306,7 @@ + continue + fi + ac_cv_prog_CC="cc" +-echo "$as_me:1329: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1309: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1348,10 +1328,10 @@ + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$as_me:1351: result: $CC" >&5 ++ echo "$as_me:1331: result: $CC" >&5 + echo "${ECHO_T}$CC" >&6 + else +- echo "$as_me:1354: result: no" >&5 ++ echo "$as_me:1334: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1362,7 +1342,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:1365: checking for $ac_word" >&5 ++echo "$as_me:1345: 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 +@@ -1377,7 +1357,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:1380: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1360: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1385,10 +1365,10 @@ + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$as_me:1388: result: $CC" >&5 ++ echo "$as_me:1368: result: $CC" >&5 + echo "${ECHO_T}$CC" >&6 + else +- echo "$as_me:1391: result: no" >&5 ++ echo "$as_me:1371: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1401,7 +1381,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:1404: checking for $ac_word" >&5 ++echo "$as_me:1384: 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 +@@ -1416,7 +1396,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:1419: found $ac_dir/$ac_word" >&5 ++echo "$as_me:1399: found $ac_dir/$ac_word" >&5 + break + done + +@@ -1424,10 +1404,10 @@ + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- echo "$as_me:1427: result: $ac_ct_CC" >&5 ++ echo "$as_me:1407: result: $ac_ct_CC" >&5 + echo "${ECHO_T}$ac_ct_CC" >&6 + else +- echo "$as_me:1430: result: no" >&5 ++ echo "$as_me:1410: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -1439,32 +1419,32 @@ + + fi + +-test -z "$CC" && { { echo "$as_me:1442: error: no acceptable cc found in \$PATH" >&5 ++test -z "$CC" && { { echo "$as_me:1422: 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:1447:" \ ++echo "$as_me:1427:" \ + "checking for C compiler version" >&5 + ac_compiler=`set X $ac_compile; echo $2` +-{ (eval echo "$as_me:1450: \"$ac_compiler --version </dev/null >&5\"") >&5 ++{ (eval echo "$as_me:1430: \"$ac_compiler --version </dev/null >&5\"") >&5 + (eval $ac_compiler --version </dev/null >&5) 2>&5 + ac_status=$? +- echo "$as_me:1453: \$? = $ac_status" >&5 ++ echo "$as_me:1433: \$? = $ac_status" >&5 + (exit $ac_status); } +-{ (eval echo "$as_me:1455: \"$ac_compiler -v </dev/null >&5\"") >&5 ++{ (eval echo "$as_me:1435: \"$ac_compiler -v </dev/null >&5\"") >&5 + (eval $ac_compiler -v </dev/null >&5) 2>&5 + ac_status=$? +- echo "$as_me:1458: \$? = $ac_status" >&5 ++ echo "$as_me:1438: \$? = $ac_status" >&5 + (exit $ac_status); } +-{ (eval echo "$as_me:1460: \"$ac_compiler -V </dev/null >&5\"") >&5 ++{ (eval echo "$as_me:1440: \"$ac_compiler -V </dev/null >&5\"") >&5 + (eval $ac_compiler -V </dev/null >&5) 2>&5 + ac_status=$? +- echo "$as_me:1463: \$? = $ac_status" >&5 ++ echo "$as_me:1443: \$? = $ac_status" >&5 + (exit $ac_status); } + + cat >conftest.$ac_ext <<_ACEOF +-#line 1467 "configure" ++#line 1447 "configure" + #include "confdefs.h" + + int +@@ -1480,13 +1460,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:1483: checking for C compiler default output" >&5 ++echo "$as_me:1463: 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:1486: \"$ac_link_default\"") >&5 ++if { (eval echo "$as_me:1466: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? +- echo "$as_me:1489: \$? = $ac_status" >&5 ++ echo "$as_me:1469: \$? = $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 +@@ -1509,34 +1489,34 @@ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-{ { echo "$as_me:1512: error: C compiler cannot create executables" >&5 ++{ { echo "$as_me:1492: 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:1518: result: $ac_file" >&5 ++echo "$as_me:1498: 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:1523: checking whether the C compiler works" >&5 ++echo "$as_me:1503: 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:1529: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1509: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1532: \$? = $ac_status" >&5 ++ echo "$as_me:1512: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else +- { { echo "$as_me:1539: error: cannot run C compiled programs. ++ { { echo "$as_me:1519: 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;} +@@ -1544,24 +1524,24 @@ + fi + fi + fi +-echo "$as_me:1547: result: yes" >&5 ++echo "$as_me:1527: 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:1554: checking whether we are cross compiling" >&5 ++echo "$as_me:1534: checking whether we are cross compiling" >&5 + echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +-echo "$as_me:1556: result: $cross_compiling" >&5 ++echo "$as_me:1536: result: $cross_compiling" >&5 + echo "${ECHO_T}$cross_compiling" >&6 + +-echo "$as_me:1559: checking for executable suffix" >&5 ++echo "$as_me:1539: checking for executable suffix" >&5 + echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 +-if { (eval echo "$as_me:1561: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:1541: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:1564: \$? = $ac_status" >&5 ++ echo "$as_me:1544: \$? = $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 +@@ -1577,25 +1557,25 @@ + esac + done + else +- { { echo "$as_me:1580: error: cannot compute EXEEXT: cannot compile and link" >&5 ++ { { echo "$as_me:1560: 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:1586: result: $ac_cv_exeext" >&5 ++echo "$as_me:1566: 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:1592: checking for object suffix" >&5 ++echo "$as_me:1572: 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 1598 "configure" ++#line 1578 "configure" + #include "confdefs.h" + + int +@@ -1607,10 +1587,10 @@ + } + _ACEOF + rm -f conftest.o conftest.obj +-if { (eval echo "$as_me:1610: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1590: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1613: \$? = $ac_status" >&5 ++ echo "$as_me:1593: \$? = $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 +@@ -1622,24 +1602,24 @@ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-{ { echo "$as_me:1625: error: cannot compute OBJEXT: cannot compile" >&5 ++{ { echo "$as_me:1605: 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:1632: result: $ac_cv_objext" >&5 ++echo "$as_me:1612: result: $ac_cv_objext" >&5 + echo "${ECHO_T}$ac_cv_objext" >&6 + OBJEXT=$ac_cv_objext + ac_objext=$OBJEXT +-echo "$as_me:1636: checking whether we are using the GNU C compiler" >&5 ++echo "$as_me:1616: 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 1642 "configure" ++#line 1622 "configure" + #include "confdefs.h" + + int +@@ -1654,16 +1634,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1657: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1637: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1660: \$? = $ac_status" >&5 ++ echo "$as_me:1640: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1663: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1643: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1666: \$? = $ac_status" >&5 ++ echo "$as_me:1646: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes + else +@@ -1675,19 +1655,19 @@ + ac_cv_c_compiler_gnu=$ac_compiler_gnu + + fi +-echo "$as_me:1678: result: $ac_cv_c_compiler_gnu" >&5 ++echo "$as_me:1658: 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:1684: checking whether $CC accepts -g" >&5 ++echo "$as_me:1664: 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 1690 "configure" ++#line 1670 "configure" + #include "confdefs.h" + + int +@@ -1699,16 +1679,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1702: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1682: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1705: \$? = $ac_status" >&5 ++ echo "$as_me:1685: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1708: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1688: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1711: \$? = $ac_status" >&5 ++ echo "$as_me:1691: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes + else +@@ -1718,7 +1698,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:1721: result: $ac_cv_prog_cc_g" >&5 ++echo "$as_me:1701: 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 +@@ -1745,16 +1725,16 @@ + #endif + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1728: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1751: \$? = $ac_status" >&5 ++ echo "$as_me:1731: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1754: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1734: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1757: \$? = $ac_status" >&5 ++ echo "$as_me:1737: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ +@@ -1766,7 +1746,7 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line 1769 "configure" ++#line 1749 "configure" + #include "confdefs.h" + #include <stdlib.h> + $ac_declaration +@@ -1779,16 +1759,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1782: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1762: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1785: \$? = $ac_status" >&5 ++ echo "$as_me:1765: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1788: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1768: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1791: \$? = $ac_status" >&5 ++ echo "$as_me:1771: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -1798,7 +1778,7 @@ + fi + rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line 1801 "configure" ++#line 1781 "configure" + #include "confdefs.h" + $ac_declaration + int +@@ -1810,16 +1790,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:1813: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:1793: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:1816: \$? = $ac_status" >&5 ++ echo "$as_me:1796: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:1819: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:1799: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:1822: \$? = $ac_status" >&5 ++ echo "$as_me:1802: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break + else +@@ -1847,13 +1827,214 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_main_return=return + ++GCC_VERSION=none ++if test "$GCC" = yes ; then ++ echo "$as_me:1832: checking version of $CC" >&5 ++echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 ++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" ++ test -z "$GCC_VERSION" && GCC_VERSION=unknown ++ echo "$as_me:1836: result: $GCC_VERSION" >&5 ++echo "${ECHO_T}$GCC_VERSION" >&6 ++fi ++ ++echo "$as_me:1840: 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 ++else ++ ac_cv_prog_cc_stdc=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++#line 1848 "configure" ++#include "confdefs.h" ++#include <stdarg.h> ++#include <stdio.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} ++_ACEOF ++# Don't try gcc -ansi; that turns off useful extensions and ++# breaks some systems' header files. ++# AIX -qlanglvl=ansi ++# Ultrix and OSF/1 -std1 ++# HP-UX 10.20 and later -Ae ++# HP-UX older versions -Aa -D_HPUX_SOURCE ++# SVR4 -Xc -D__EXTENSIONS__ ++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (eval echo "$as_me:1897: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:1900: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:1903: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:1906: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_stdc=$ac_arg ++break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext ++done ++rm -f conftest.$ac_ext conftest.$ac_objext ++CC=$ac_save_CC ++ ++fi ++ ++case "x$ac_cv_prog_cc_stdc" in ++ x|xno) ++ echo "$as_me:1923: result: none needed" >&5 ++echo "${ECHO_T}none needed" >&6 ;; ++ *) ++ echo "$as_me:1926: result: $ac_cv_prog_cc_stdc" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 ++ CC="$CC $ac_cv_prog_cc_stdc" ;; ++esac ++ ++# This should have been defined by AC_PROG_CC ++: ${CC:=cc} ++ ++echo "$as_me:1934: checking \$CC variable" >&5 ++echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 ++case "$CC" in #(vi ++*[\ \ ]-[IUD]*) ++ echo "$as_me:1938: result: broken" >&5 ++echo "${ECHO_T}broken" >&6 ++ { echo "$as_me:1940: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 ++echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} ++ # humor him... ++ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'` ++ CC=`echo "$CC" | sed -e 's/[ ].*//'` ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_flags ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ ;; ++*) ++ echo "$as_me:2026: result: ok" >&5 ++echo "${ECHO_T}ok" >&6 ++ ;; ++esac ++ + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + 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:1856: checking how to run the C preprocessor" >&5 ++echo "$as_me:2037: 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 +@@ -1874,18 +2055,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 1877 "configure" ++#line 2058 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax error + _ACEOF +-if { (eval echo "$as_me:1882: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2063: \"$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:1888: \$? = $ac_status" >&5 ++ echo "$as_me:2069: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -1908,17 +2089,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 1911 "configure" ++#line 2092 "configure" + #include "confdefs.h" + #include <ac_nonexistent.h> + _ACEOF +-if { (eval echo "$as_me:1915: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2096: \"$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:1921: \$? = $ac_status" >&5 ++ echo "$as_me:2102: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -1955,7 +2136,7 @@ + else + ac_cv_prog_CPP=$CPP + fi +-echo "$as_me:1958: result: $CPP" >&5 ++echo "$as_me:2139: result: $CPP" >&5 + echo "${ECHO_T}$CPP" >&6 + ac_preproc_ok=false + for ac_c_preproc_warn_flag in '' yes +@@ -1965,18 +2146,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 1968 "configure" ++#line 2149 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax error + _ACEOF +-if { (eval echo "$as_me:1973: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2154: \"$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:1979: \$? = $ac_status" >&5 ++ echo "$as_me:2160: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -1999,17 +2180,17 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line 2002 "configure" ++#line 2183 "configure" + #include "confdefs.h" + #include <ac_nonexistent.h> + _ACEOF +-if { (eval echo "$as_me:2006: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:2187: \"$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:2012: \$? = $ac_status" >&5 ++ echo "$as_me:2193: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -2037,7 +2218,7 @@ + if $ac_preproc_ok; then + : + else +- { { echo "$as_me:2040: error: C preprocessor \"$CPP\" fails sanity check" >&5 ++ { { echo "$as_me:2221: error: C preprocessor \"$CPP\" fails sanity check" >&5 + echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} + { (exit 1); exit 1; }; } + fi +@@ -2053,7 +2234,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:2056: checking for $ac_word" >&5 ++echo "$as_me:2237: 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 +@@ -2068,7 +2249,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_AWK="$ac_prog" +-echo "$as_me:2071: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2252: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2076,10 +2257,10 @@ + fi + AWK=$ac_cv_prog_AWK + if test -n "$AWK"; then +- echo "$as_me:2079: result: $AWK" >&5 ++ echo "$as_me:2260: result: $AWK" >&5 + echo "${ECHO_T}$AWK" >&6 + else +- echo "$as_me:2082: result: no" >&5 ++ echo "$as_me:2263: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -2098,7 +2279,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:2101: checking for a BSD compatible install" >&5 ++echo "$as_me:2282: 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 +@@ -2147,7 +2328,7 @@ + INSTALL=$ac_install_sh + fi + fi +-echo "$as_me:2150: result: $INSTALL" >&5 ++echo "$as_me:2331: result: $INSTALL" >&5 + echo "${ECHO_T}$INSTALL" >&6 + + # Use test -z because SunOS4 sh mishandles braces in ${var-val}. +@@ -2172,7 +2353,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:2175: checking for $ac_word" >&5 ++echo "$as_me:2356: 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 +@@ -2187,7 +2368,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_LINT="$ac_prog" +-echo "$as_me:2190: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2371: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2195,17 +2376,17 @@ + fi + LINT=$ac_cv_prog_LINT + if test -n "$LINT"; then +- echo "$as_me:2198: result: $LINT" >&5 ++ echo "$as_me:2379: result: $LINT" >&5 + echo "${ECHO_T}$LINT" >&6 + else +- echo "$as_me:2201: result: no" >&5 ++ echo "$as_me:2382: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + test -n "$LINT" && break + done + +-echo "$as_me:2208: checking if filesystem supports mixed-case filenames" >&5 ++echo "$as_me:2389: 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 +@@ -2213,7 +2394,7 @@ + + if test "$cross_compiling" = yes ; then + case $target_alias in #(vi +- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi ++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) +@@ -2232,9 +2413,10 @@ + fi + + fi +-echo "$as_me:2235: result: $cf_cv_mixedcase" >&5 ++echo "$as_me:2416: result: $cf_cv_mixedcase" >&5 + echo "${ECHO_T}$cf_cv_mixedcase" >&6 +-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF ++test "$cf_cv_mixedcase" = yes && ++cat >>confdefs.h <<\EOF + #define MIXEDCASE_FILENAMES 1 + EOF + +@@ -2242,7 +2424,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:2245: checking for $ac_word" >&5 ++echo "$as_me:2427: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_CTAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -2257,7 +2439,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_CTAGS="$ac_prog" +-echo "$as_me:2260: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2442: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2265,10 +2447,10 @@ + fi + CTAGS=$ac_cv_prog_CTAGS + if test -n "$CTAGS"; then +- echo "$as_me:2268: result: $CTAGS" >&5 ++ echo "$as_me:2450: result: $CTAGS" >&5 + echo "${ECHO_T}$CTAGS" >&6 + else +- echo "$as_me:2271: result: no" >&5 ++ echo "$as_me:2453: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -2279,7 +2461,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:2282: checking for $ac_word" >&5 ++echo "$as_me:2464: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ETAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -2294,7 +2476,7 @@ + test -z "$ac_dir" && ac_dir=. + $as_executable_p "$ac_dir/$ac_word" || continue + ac_cv_prog_ETAGS="$ac_prog" +-echo "$as_me:2297: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2479: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2302,10 +2484,10 @@ + fi + ETAGS=$ac_cv_prog_ETAGS + if test -n "$ETAGS"; then +- echo "$as_me:2305: result: $ETAGS" >&5 ++ echo "$as_me:2487: result: $ETAGS" >&5 + echo "${ECHO_T}$ETAGS" >&6 + else +- echo "$as_me:2308: result: no" >&5 ++ echo "$as_me:2490: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -2314,7 +2496,7 @@ + + # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args. + set dummy ${CTAGS:-ctags}; ac_word=$2 +-echo "$as_me:2317: checking for $ac_word" >&5 ++echo "$as_me:2499: 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 +@@ -2329,7 +2511,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:2332: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2514: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2338,17 +2520,17 @@ + fi + MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS + if test -n "$MAKE_LOWER_TAGS"; then +- echo "$as_me:2341: result: $MAKE_LOWER_TAGS" >&5 ++ echo "$as_me:2523: result: $MAKE_LOWER_TAGS" >&5 + echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 + else +- echo "$as_me:2344: result: no" >&5 ++ echo "$as_me:2526: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + if test "$cf_cv_mixedcase" = yes ; then + # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args. + set dummy ${ETAGS:-etags}; ac_word=$2 +-echo "$as_me:2351: checking for $ac_word" >&5 ++echo "$as_me:2533: 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 +@@ -2363,7 +2545,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:2366: found $ac_dir/$ac_word" >&5 ++echo "$as_me:2548: found $ac_dir/$ac_word" >&5 + break + done + +@@ -2372,10 +2554,10 @@ + fi + MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS + if test -n "$MAKE_UPPER_TAGS"; then +- echo "$as_me:2375: result: $MAKE_UPPER_TAGS" >&5 ++ echo "$as_me:2557: result: $MAKE_UPPER_TAGS" >&5 + echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 + else +- echo "$as_me:2378: result: no" >&5 ++ echo "$as_me:2560: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + +@@ -2395,14 +2577,14 @@ + MAKE_LOWER_TAGS="#" + fi + +-echo "$as_me:2398: checking if -lm needed for math functions" >&5 ++echo "$as_me:2580: 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 2405 "configure" ++#line 2587 "configure" + #include "confdefs.h" + + #include <stdio.h> +@@ -2411,22 +2593,22 @@ + int + main () + { +-double x = rand(); printf("result = %g\n", sin(x)) ++double x = rand(); printf("result = %g\n", pow(sin(x),x)) + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:2420: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:2602: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:2423: \$? = $ac_status" >&5 ++ echo "$as_me:2605: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:2426: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:2608: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2429: \$? = $ac_status" >&5 ++ echo "$as_me:2611: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_need_libm=no + else +@@ -2436,13 +2618,15 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:2439: result: $cf_cv_need_libm" >&5 ++echo "$as_me:2621: result: $cf_cv_need_libm" >&5 + echo "${ECHO_T}$cf_cv_need_libm" >&6 + if test "$cf_cv_need_libm" = yes + then + MATH_LIB=-lm + fi + ++top_builddir=`pwd` ++ + CC_G_OPT="-g" + CC_SHARED_OPTS=unknown + CPPFLAGS="$CPPFLAGS" +@@ -2464,427 +2648,305 @@ + TEST_ARGS="" + TEST_DEPS="" + TEST_LIBS="" +-TINFO_ARGS='$(LIBS_CURSES)' ++TINFO_LDFLAGS='' ++TINFO_LIBS='$(LIBS_CURSES)' + cf_cv_abi_version="" + cf_cv_rel_version="" ++includesubdir="" + + cf_cv_screen=curses + cf_cv_libtype= + +-echo "$as_me:2474: 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 +-else ++if test "$GCC" = yes ++then ++cat > conftest.i <<EOF ++#ifndef GCC_PRINTF ++#define GCC_PRINTF 0 ++#endif ++#ifndef GCC_SCANF ++#define GCC_SCANF 0 ++#endif ++#ifndef GCC_NORETURN ++#define GCC_NORETURN /* nothing */ ++#endif ++#ifndef GCC_UNUSED ++#define GCC_UNUSED /* nothing */ ++#endif ++EOF ++if test "$GCC" = yes ++then ++ { echo "$as_me:2678: checking for $CC __attribute__ directives..." >&5 ++echo "$as_me: checking for $CC __attribute__ directives..." >&6;} ++cat > conftest.$ac_ext <<EOF ++#line 2681 "${as_me:-configure}" ++#include "confdefs.h" ++#include "conftest.h" ++#include "conftest.i" ++#if GCC_PRINTF ++#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) ++#else ++#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ ++#endif ++#if GCC_SCANF ++#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) ++#else ++#define GCC_SCANFLIKE(fmt,var) /*nothing*/ ++#endif ++extern void wow(char *,...) GCC_SCANFLIKE(1,2); ++extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; ++extern void foo(void) GCC_NORETURN; ++int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; } ++EOF ++ cf_printf_attribute=no ++ cf_scanf_attribute=no ++ for cf_attribute in scanf printf unused noreturn ++ do + +-cf_cv_ansi_cc=no +-cf_save_CFLAGS="$CFLAGS" +-cf_save_CPPFLAGS="$CPPFLAGS" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc +-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) +-for cf_arg in "-DCC_HAS_PROTOS" \ +- "" \ +- -qlanglvl=ansi \ +- -std1 \ +- -Ae \ +- "-Aa -D_HPUX_SOURCE" \ +- -Xc +-do +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_arg +-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[^=]*='\''\"[^"]*//'` ++cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes ++ cf_directive="__attribute__(($cf_attribute))" ++ echo "checking for $CC $cf_directive" 1>&5 + +- 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 ++ case $cf_attribute in #(vi ++ printf) #(vi ++ cf_printf_attribute=yes ++ cat >conftest.h <<EOF ++#define GCC_$cf_ATTRIBUTE 1 ++EOF + ;; +- esac +- case "$CPPFLAGS" in +- *$cf_add_cflags) #(vi ++ scanf) #(vi ++ cf_scanf_attribute=yes ++ cat >conftest.h <<EOF ++#define GCC_$cf_ATTRIBUTE 1 ++EOF + ;; + *) #(vi +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ cat >conftest.h <<EOF ++#define GCC_$cf_ATTRIBUTE $cf_directive ++EOF ++ ;; ++ esac + +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ if { (eval echo "$as_me:2730: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:2733: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ test -n "$verbose" && echo "$as_me:2735: result: ... $cf_attribute" >&5 ++echo "${ECHO_T}... $cf_attribute" >&6 ++ cat conftest.h >>confdefs.h ++ case $cf_attribute in #(vi ++ noreturn) #(vi ++ ++cat >>confdefs.h <<EOF ++#define GCC_NORETURN $cf_directive ++EOF + + ;; +- esac +- 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" ++ printf) #(vi ++ cf_value='/* nothing */' ++ if test "$cf_printf_attribute" != no ; then ++ cf_value='__attribute__((format(printf,fmt,var)))' + +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` ++cat >>confdefs.h <<\EOF ++#define GCC_PRINTF 1 ++EOF + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac +-done ++ fi + +-if test -n "$cf_new_cflags" ; then ++cat >>confdefs.h <<EOF ++#define GCC_PRINTFLIKE(fmt,var) $cf_value ++EOF + +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi ++ ;; ++ scanf) #(vi ++ cf_value='/* nothing */' ++ if test "$cf_scanf_attribute" != no ; then ++ cf_value='__attribute__((format(scanf,fmt,var)))' + +-if test -n "$cf_new_cppflags" ; then ++cat >>confdefs.h <<\EOF ++#define GCC_SCANF 1 ++EOF + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi ++ fi + +-if test -n "$cf_new_extra_cppflags" ; then ++cat >>confdefs.h <<EOF ++#define GCC_SCANFLIKE(fmt,var) $cf_value ++EOF + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++ ;; ++ unused) #(vi ++ ++cat >>confdefs.h <<EOF ++#define GCC_UNUSED $cf_directive ++EOF ++ ++ ;; ++ esac ++ fi ++ done ++else ++ fgrep define conftest.i >>confdefs.h ++fi ++rm -rf conftest* + fi + +- cat >conftest.$ac_ext <<_ACEOF +-#line 2578 "configure" ++cf_XOPEN_SOURCE=500 ++cf_POSIX_C_SOURCE=199506L ++cf_xopen_source= ++ ++case $host_os in #(vi ++aix[4-7]*) #(vi ++ cf_xopen_source="-D_ALL_SOURCE" ++ ;; ++cygwin|msys) #(vi ++ cf_XOPEN_SOURCE=600 ++ ;; ++darwin[0-8].*) #(vi ++ cf_xopen_source="-D_APPLE_C_SOURCE" ++ ;; ++darwin*) #(vi ++ cf_xopen_source="-D_DARWIN_C_SOURCE" ++ cf_XOPEN_SOURCE= ++ ;; ++freebsd*|dragonfly*) #(vi ++ # 5.x headers associate ++ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L ++ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L ++ cf_POSIX_C_SOURCE=200112L ++ cf_XOPEN_SOURCE=600 ++ cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ ;; ++hpux11*) #(vi ++ cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" ++ ;; ++hpux*) #(vi ++ cf_xopen_source="-D_HPUX_SOURCE" ++ ;; ++irix[56].*) #(vi ++ cf_xopen_source="-D_SGI_SOURCE" ++ cf_XOPEN_SOURCE= ++ ;; ++linux*|gnu*|mint*|k*bsd*-gnu) #(vi ++ ++echo "$as_me:2832: 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 2839 "configure" + #include "confdefs.h" ++#include <sys/types.h> ++int ++main () ++{ + +-#ifndef CC_HAS_PROTOS +-#if !defined(__STDC__) || (__STDC__ != 1) +-choke me +-#endif ++#ifndef _XOPEN_SOURCE ++make an error + #endif +- ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:2854: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:2857: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:2860: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:2863: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_gnu_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 2872 "configure" ++#include "confdefs.h" ++#include <sys/types.h> + int + main () + { + +- int test (int i, double x); +- struct s1 {int (*f) (int a);}; +- struct s2 {int (*f) (double a);}; ++#ifdef _XOPEN_SOURCE ++make an error ++#endif + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2599: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:2887: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2602: \$? = $ac_status" >&5 ++ echo "$as_me:2890: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2605: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:2893: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2608: \$? = $ac_status" >&5 ++ echo "$as_me:2896: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ansi_cc="$cf_arg"; break ++ cf_cv_gnu_source=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_cv_gnu_source=yes + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-done +-CFLAGS="$cf_save_CFLAGS" +-CPPFLAGS="$cf_save_CPPFLAGS" ++ CPPFLAGS="$cf_save" + + fi +-echo "$as_me:2621: result: $cf_cv_ansi_cc" >&5 +-echo "${ECHO_T}$cf_cv_ansi_cc" >&6 ++rm -f conftest.$ac_objext conftest.$ac_ext + +-if test "$cf_cv_ansi_cc" != "no"; then +-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then ++fi ++echo "$as_me:2911: 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" + +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= ++ ;; ++mirbsd*) #(vi ++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types ++ cf_XOPEN_SOURCE= + +-for cf_add_cflags in $cf_cv_ansi_cc +-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[^=]*='\''\"[^"]*//'` ++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes ++cf_save_CFLAGS="$CFLAGS" ++cf_save_CPPFLAGS="$CPPFLAGS" + +- 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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +- ;; +- esac +- 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 +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi +- +-else +- cat >>confdefs.h <<\EOF +-#define CC_HAS_PROTOS 1 +-EOF +- +-fi +-fi +- +-if test "$cf_cv_ansi_cc" = "no"; then +- { { echo "$as_me:2714: 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 +- c. use a wrapper such as unproto" >&5 +-echo "$as_me: 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 +- c. use a wrapper such as unproto" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +-if test "$GCC" = yes +-then +-cat > conftest.i <<EOF +-#ifndef GCC_PRINTF +-#define GCC_PRINTF 0 +-#endif +-#ifndef GCC_SCANF +-#define GCC_SCANF 0 +-#endif +-#ifndef GCC_NORETURN +-#define GCC_NORETURN /* nothing */ +-#endif +-#ifndef GCC_UNUSED +-#define GCC_UNUSED /* nothing */ +-#endif +-EOF +-if test "$GCC" = yes +-then +- { echo "$as_me:2745: checking for $CC __attribute__ directives..." >&5 +-echo "$as_me: checking for $CC __attribute__ directives..." >&6;} +-cat > conftest.$ac_ext <<EOF +-#line 2748 "${as_me:-configure}" +-#include "confdefs.h" +-#include "conftest.h" +-#include "conftest.i" +-#if GCC_PRINTF +-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +-#else +-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ +-#endif +-#if GCC_SCANF +-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +-#else +-#define GCC_SCANFLIKE(fmt,var) /*nothing*/ +-#endif +-extern void wow(char *,...) GCC_SCANFLIKE(1,2); +-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; +-extern void foo(void) GCC_NORETURN; +-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; } +-EOF +- cf_printf_attribute=no +- cf_scanf_attribute=no +- for cf_attribute in scanf printf unused noreturn +- do +- +-cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +- cf_directive="__attribute__(($cf_attribute))" +- echo "checking for $CC $cf_directive" 1>&5 +- +- case $cf_attribute in #(vi +- printf) #(vi +- cf_printf_attribute=yes +- cat >conftest.h <<EOF +-#define GCC_$cf_ATTRIBUTE 1 +-EOF +- ;; +- scanf) #(vi +- cf_scanf_attribute=yes +- cat >conftest.h <<EOF +-#define GCC_$cf_ATTRIBUTE 1 +-EOF +- ;; +- *) #(vi +- cat >conftest.h <<EOF +-#define GCC_$cf_ATTRIBUTE $cf_directive +-EOF +- ;; +- esac +- +- if { (eval echo "$as_me:2797: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:2800: \$? = $ac_status" >&5 +- (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:2802: result: ... $cf_attribute" >&5 +-echo "${ECHO_T}... $cf_attribute" >&6 +- cat conftest.h >>confdefs.h +- case $cf_attribute in #(vi +- printf) #(vi +- if test "$cf_printf_attribute" = no ; then +- cat >>confdefs.h <<EOF +-#define GCC_PRINTFLIKE(fmt,var) /* nothing */ +-EOF +- else +- cat >>confdefs.h <<EOF +-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +-EOF +- fi +- ;; +- scanf) #(vi +- if test "$cf_scanf_attribute" = no ; then +- cat >>confdefs.h <<EOF +-#define GCC_SCANFLIKE(fmt,var) /* nothing */ +-EOF +- else +- cat >>confdefs.h <<EOF +-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +-EOF +- fi +- ;; +- esac +- fi +- done +-else +- fgrep define conftest.i >>confdefs.h +-fi +-rm -rf conftest* +-fi +- +-cf_XOPEN_SOURCE=500 +-cf_POSIX_C_SOURCE=199506L +-cf_xopen_source= +- +-case $host_os in #(vi +-aix[456]*) #(vi +- cf_xopen_source="-D_ALL_SOURCE" +- ;; +-cygwin) #(vi +- cf_XOPEN_SOURCE=600 +- ;; +-darwin[0-8].*) #(vi +- cf_xopen_source="-D_APPLE_C_SOURCE" +- ;; +-darwin*) #(vi +- cf_xopen_source="-D_DARWIN_C_SOURCE" +- ;; +-freebsd*|dragonfly*) #(vi +- # 5.x headers associate +- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L +- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L +- cf_POSIX_C_SOURCE=200112L +- cf_XOPEN_SOURCE=600 +- cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-hpux11*) #(vi +- cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" +- ;; +-hpux*) #(vi +- cf_xopen_source="-D_HPUX_SOURCE" +- ;; +-irix[56].*) #(vi +- cf_xopen_source="-D_SGI_SOURCE" +- ;; +-linux*|gnu*|mint*|k*bsd*-gnu) #(vi +- +-echo "$as_me:2873: 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 "$as_me:2933: 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 + +-cat >conftest.$ac_ext <<_ACEOF +-#line 2880 "configure" ++echo "${as_me:-configure}:2939: testing if the symbol is already defined go no further ..." 1>&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 2942 "configure" + #include "confdefs.h" + #include <sys/types.h> + int + main () + { + +-#ifndef _XOPEN_SOURCE ++#ifndef _POSIX_C_SOURCE + make an error + #endif + ; +@@ -2892,32 +2954,44 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2895: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:2957: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2898: \$? = $ac_status" >&5 ++ echo "$as_me:2960: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2901: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:2963: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2904: \$? = $ac_status" >&5 ++ echo "$as_me:2966: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_gnu_source=no ++ cf_cv_posix_c_source=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" +- cat >conftest.$ac_ext <<_ACEOF +-#line 2913 "configure" ++cf_want_posix_source=no ++ case .$cf_POSIX_C_SOURCE in #(vi ++ .[12]??*) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ ;; ++ .2) #(vi ++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ++ cf_want_posix_source=yes ++ ;; ++ .*) ++ cf_want_posix_source=yes ++ ;; ++ esac ++ if test "$cf_want_posix_source" = yes ; then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 2987 "configure" + #include "confdefs.h" + #include <sys/types.h> + int + main () + { + +-#ifdef _XOPEN_SOURCE ++#ifdef _POSIX_SOURCE + make an error + #endif + ; +@@ -2925,75 +2999,42 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:2928: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3002: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:2931: \$? = $ac_status" >&5 ++ echo "$as_me:3005: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:2934: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3008: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:2937: \$? = $ac_status" >&5 ++ echo "$as_me:3011: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_gnu_source=no ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_gnu_source=yes ++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS="$cf_save" ++ fi + +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++echo "${as_me:-configure}:3022: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 + +-fi +-echo "$as_me:2952: 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" ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" + +- ;; +-mirbsd*) #(vi +- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h> +- ;; +-netbsd*) #(vi +- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw +- ;; +-openbsd*) #(vi +- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw +- ;; +-osf[45]*) #(vi +- cf_xopen_source="-D_OSF_SOURCE" +- ;; +-nto-qnx*) #(vi +- cf_xopen_source="-D_QNX_SOURCE" +- ;; +-sco*) #(vi +- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer +- ;; +-solaris2.1[0-9]) #(vi +- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- ;; +-solaris2.[1-9]) #(vi +- cf_xopen_source="-D__EXTENSIONS__" +- ;; +-*) +- echo "$as_me:2982: 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 ++echo "${as_me:-configure}:3027: testing if the second compile does not leave our definition intact error ..." 1>&5 + +- cat >conftest.$ac_ext <<_ACEOF +-#line 2989 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 3030 "configure" + #include "confdefs.h" + #include <sys/types.h> + int + main () + { + +-#ifndef _XOPEN_SOURCE ++#ifndef _POSIX_C_SOURCE + make an error + #endif + ; +@@ -3001,49 +3042,218 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3004: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3045: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3007: \$? = $ac_status" >&5 ++ echo "$as_me:3048: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3010: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3051: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3013: \$? = $ac_status" >&5 ++ echo "$as_me:3054: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_xopen_source=no ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_save="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" +- cat >conftest.$ac_ext <<_ACEOF +-#line 3022 "configure" +-#include "confdefs.h" +-#include <sys/types.h> +-int +-main () +-{ +- +-#ifdef _XOPEN_SOURCE +-make an error +-#endif ++cf_cv_posix_c_source=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$cf_save_CFLAGS" ++ CPPFLAGS="$cf_save_CPPFLAGS" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:3070: 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 ++ CFLAGS="$cf_trim_CFLAGS" ++ CPPFLAGS="$cf_trim_CPPFLAGS" ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_cv_posix_c_source ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++fi ++ ++ ;; ++netbsd*) #(vi ++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ++ ;; ++openbsd[4-9]*) #(vi ++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw ++ cf_xopen_source="-D_BSD_SOURCE" ++ cf_XOPEN_SOURCE=600 ++ ;; ++openbsd*) #(vi ++ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw ++ ;; ++osf[45]*) #(vi ++ cf_xopen_source="-D_OSF_SOURCE" ++ ;; ++nto-qnx*) #(vi ++ cf_xopen_source="-D_QNX_SOURCE" ++ ;; ++sco*) #(vi ++ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ++ ;; ++solaris2.*) #(vi ++ cf_xopen_source="-D__EXTENSIONS__" ++ cf_cv_xopen_source=broken ++ ;; ++*) ++ ++echo "$as_me:3184: 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 3191 "configure" ++#include "confdefs.h" ++ ++#include <stdlib.h> ++#include <string.h> ++#include <sys/types.h> ++ ++int ++main () ++{ ++ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:3210: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:3213: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:3216: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:3219: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xopen_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 3228 "configure" ++#include "confdefs.h" ++ ++#include <stdlib.h> ++#include <string.h> ++#include <sys/types.h> ++ ++int ++main () ++{ ++ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3037: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3247: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3040: \$? = $ac_status" >&5 ++ echo "$as_me:3250: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3043: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3253: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3046: \$? = $ac_status" >&5 ++ echo "$as_me:3256: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_xopen_source=no + else +@@ -3058,9 +3268,10 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:3061: result: $cf_cv_xopen_source" >&5 ++echo "$as_me:3271: result: $cf_cv_xopen_source" >&5 + echo "${ECHO_T}$cf_cv_xopen_source" >&6 +- if test "$cf_cv_xopen_source" != no ; then ++ ++if test "$cf_cv_xopen_source" != no ; then + + CFLAGS=`echo "$CFLAGS" | \ + sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ +@@ -3070,7 +3281,7 @@ + sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` + +- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" + + cf_fix_cppflags=no + cf_new_cflags= +@@ -3150,7 +3361,7 @@ + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +- fi ++fi + + cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE + +@@ -3165,16 +3376,16 @@ + sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ + -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` + +-echo "$as_me:3168: checking if we should define _POSIX_C_SOURCE" >&5 ++echo "$as_me:3379: 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}:3174: testing if the symbol is already defined go no further ..." 1>&5 ++echo "${as_me:-configure}:3385: testing if the symbol is already defined go no further ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 3177 "configure" ++#line 3388 "configure" + #include "confdefs.h" + #include <sys/types.h> + int +@@ -3189,16 +3400,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3192: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3403: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3195: \$? = $ac_status" >&5 ++ echo "$as_me:3406: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3198: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3409: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3201: \$? = $ac_status" >&5 ++ echo "$as_me:3412: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_posix_c_source=no + else +@@ -3219,7 +3430,7 @@ + esac + if test "$cf_want_posix_source" = yes ; then + cat >conftest.$ac_ext <<_ACEOF +-#line 3222 "configure" ++#line 3433 "configure" + #include "confdefs.h" + #include <sys/types.h> + int +@@ -3234,16 +3445,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3237: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3448: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3240: \$? = $ac_status" >&5 ++ echo "$as_me:3451: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3243: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3454: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3246: \$? = $ac_status" >&5 ++ echo "$as_me:3457: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -3254,15 +3465,15 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + fi + +-echo "${as_me:-configure}:3257: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 ++echo "${as_me:-configure}:3468: 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}:3262: testing if the second compile does not leave our definition intact error ..." 1>&5 ++echo "${as_me:-configure}:3473: testing if the second compile does not leave our definition intact error ..." 1>&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line 3265 "configure" ++#line 3476 "configure" + #include "confdefs.h" + #include <sys/types.h> + int +@@ -3277,16 +3488,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3280: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3491: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3283: \$? = $ac_status" >&5 ++ echo "$as_me:3494: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3286: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3497: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3289: \$? = $ac_status" >&5 ++ echo "$as_me:3500: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -3302,7 +3513,7 @@ + rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:3305: result: $cf_cv_posix_c_source" >&5 ++echo "$as_me:3516: 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 +@@ -3474,191 +3685,274 @@ + + fi + +-echo "$as_me:3477: 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 +-else +- ac_cv_prog_cc_stdc=no +-ac_save_CC=$CC +-cat >conftest.$ac_ext <<_ACEOF +-#line 3485 "configure" ++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then ++ echo "$as_me:3689: checking if _XOPEN_SOURCE really is set" >&5 ++echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 3692 "configure" + #include "confdefs.h" +-#include <stdarg.h> +-#include <stdio.h> +-#include <sys/types.h> +-#include <sys/stat.h> +-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +-struct buf { int x; }; +-FILE * (*rcsopen) (struct buf *, struct stat *, int); +-static char *e (p, i) +- char **p; +- int i; +-{ +- return p[i]; +-} +-static char *f (char * (*g) (char **, int), char **p, ...) +-{ +- char *s; +- va_list v; +- va_start (v,p); +- s = g (p, va_arg (v,int)); +- va_end (v); +- return s; +-} +-int test (int i, double x); +-struct s1 {int (*f) (int a);}; +-struct s2 {int (*f) (double a);}; +-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +-int argc; +-char **argv; ++#include <stdlib.h> + int + main () + { +-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif + ; + return 0; + } + _ACEOF +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX 10.20 and later -Ae +-# HP-UX older versions -Aa -D_HPUX_SOURCE +-# SVR4 -Xc -D__EXTENSIONS__ +-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +-do +- CC="$ac_save_CC $ac_arg" +- rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3534: \"$ac_compile\"") >&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:3707: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3537: \$? = $ac_status" >&5 ++ echo "$as_me:3710: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3540: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3713: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3543: \$? = $ac_status" >&5 ++ echo "$as_me:3716: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_prog_cc_stdc=$ac_arg +-break ++ cf_XOPEN_SOURCE_set=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_XOPEN_SOURCE_set=no + fi +-rm -f conftest.$ac_objext +-done +-rm -f conftest.$ac_ext conftest.$ac_objext +-CC=$ac_save_CC +- +-fi +- +-case "x$ac_cv_prog_cc_stdc" in +- x|xno) +- echo "$as_me:3560: result: none needed" >&5 +-echo "${ECHO_T}none needed" >&6 ;; +- *) +- echo "$as_me:3563: 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:3568: 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 3574 "configure" ++rm -f conftest.$ac_objext conftest.$ac_ext ++ echo "$as_me:3725: result: $cf_XOPEN_SOURCE_set" >&5 ++echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6 ++ if test $cf_XOPEN_SOURCE_set = yes ++ then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 3730 "configure" + #include "confdefs.h" +- ++#include <stdlib.h> + int + main () + { +-/* FIXME: Include the comments suggested by Paul. */ +-#ifndef __cplusplus +- /* Ultrix mips cc rejects this. */ +- typedef int charset[2]; +- const charset x; +- /* SunOS 4.1.1 cc rejects this. */ +- char const *const *ccp; +- char **p; +- /* NEC SVR4.0.2 mips cc rejects this. */ +- struct point {int x, y;}; +- static struct point const zero = {0,0}; +- /* AIX XL C 1.02.0.0 rejects this. +- It does not let you subtract one const X* pointer from another in +- an arm of an if-expression whose if-part is not a constant +- expression */ +- const char *g = "string"; +- ccp = &g + (g ? g-g : 0); +- /* HPUX 7.0 cc rejects these. */ +- ++ccp; +- p = (char**) ccp; +- ccp = (char const *const *) p; +- { /* SCO 3.2v4 cc rejects this. */ +- char *t; +- char const *s = 0 ? (char *) 0 : (char const *) 0; + +- *t++ = 0; +- } +- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ +- int x[] = {25, 17}; +- const int *foo = &x[0]; +- ++foo; +- } +- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ +- typedef const int *iptr; +- iptr p = 0; +- ++p; +- } +- { /* AIX XL C 1.02.0.0 rejects this saying +- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ +- struct s { int j; const int *ap[3]; }; +- struct s *b; b->j = 5; +- } +- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ +- const int foo = 10; +- } ++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE ++make an error + #endif +- + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3632: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3745: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3635: \$? = $ac_status" >&5 ++ echo "$as_me:3748: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3638: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3751: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3641: \$? = $ac_status" >&5 ++ echo "$as_me:3754: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_c_const=yes ++ cf_XOPEN_SOURCE_set_ok=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_c_const=no ++cf_XOPEN_SOURCE_set_ok=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-fi +-echo "$as_me:3651: result: $ac_cv_c_const" >&5 +-echo "${ECHO_T}$ac_cv_c_const" >&6 +-if test $ac_cv_c_const = no; then +- +-cat >>confdefs.h <<\EOF +-#define const +-EOF ++ if test $cf_XOPEN_SOURCE_set_ok = no ++ then ++ { echo "$as_me:3765: WARNING: _XOPEN_SOURCE is lower than requested" >&5 ++echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;} ++ fi ++ else ++ ++echo "$as_me:3770: 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 3777 "configure" ++#include "confdefs.h" ++ ++#include <stdlib.h> ++#include <string.h> ++#include <sys/types.h> ++ ++int ++main () ++{ ++ ++#ifndef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:3796: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:3799: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:3802: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:3805: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xopen_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_save="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 3814 "configure" ++#include "confdefs.h" ++ ++#include <stdlib.h> ++#include <string.h> ++#include <sys/types.h> ++ ++int ++main () ++{ ++ ++#ifdef _XOPEN_SOURCE ++make an error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:3833: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:3836: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:3839: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:3842: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xopen_source=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_xopen_source=$cf_XOPEN_SOURCE ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS="$cf_save" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++fi ++echo "$as_me:3857: result: $cf_cv_xopen_source" >&5 ++echo "${ECHO_T}$cf_cv_xopen_source" >&6 ++ ++if test "$cf_cv_xopen_source" != no ; then ++ ++CFLAGS=`echo "$CFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` ++ ++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_temp_xopen_source ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +-echo "$as_me:3661: checking for signal global datatype" >&5 ++fi ++ ++ fi ++fi ++ ++echo "$as_me:3955: 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 +@@ -3670,7 +3964,7 @@ + "int" + do + cat >conftest.$ac_ext <<_ACEOF +-#line 3673 "configure" ++#line 3967 "configure" + #include "confdefs.h" + + #include <sys/types.h> +@@ -3693,16 +3987,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3696: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:3990: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:3699: \$? = $ac_status" >&5 ++ echo "$as_me:3993: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3702: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:3996: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:3705: \$? = $ac_status" >&5 ++ echo "$as_me:3999: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_cv_sig_atomic_t=$cf_type + else +@@ -3716,473 +4010,535 @@ + + fi + +-echo "$as_me:3719: result: $cf_cv_sig_atomic_t" >&5 ++echo "$as_me:4013: result: $cf_cv_sig_atomic_t" >&5 + echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6 +-test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF ++test "$cf_cv_sig_atomic_t" != no && ++cat >>confdefs.h <<EOF + #define SIG_ATOMIC_T $cf_cv_sig_atomic_t + EOF + +-echo "$as_me:3725: checking if you want to see long compiling messages" >&5 +-echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 +- +-# Check whether --enable-echo or --disable-echo was given. +-if test "${enable_echo+set}" = set; then +- enableval="$enable_echo" +- test "$enableval" != no && enableval=yes +- if test "$enableval" != "yes" ; then +- +- ECHO_LT='--silent' +- ECHO_LD='@echo linking $@;' +- RULE_CC='@echo compiling $<' +- SHOW_CC='@echo compiling $@' +- ECHO_CC='@' +- +- else +- +- ECHO_LT='' +- ECHO_LD='' +- RULE_CC='' +- SHOW_CC='' +- ECHO_CC='' ++echo "$as_me:4020: checking if you want to use pkg-config" >&5 ++echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6 + +- fi ++# 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 +- enableval=yes ++ cf_pkg_config=yes ++fi; ++echo "$as_me:4030: result: $cf_pkg_config" >&5 ++echo "${ECHO_T}$cf_pkg_config" >&6 + +- ECHO_LT='' +- ECHO_LD='' +- RULE_CC='' +- SHOW_CC='' +- ECHO_CC='' ++case $cf_pkg_config in #(vi ++no) #(vi ++ PKG_CONFIG=none ++ ;; ++yes) #(vi + +-fi; +-echo "$as_me:3759: result: $enableval" >&5 +-echo "${ECHO_T}$enableval" >&6 ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. ++set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 ++echo "$as_me:4042: 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:4059: found $ac_dir/$ac_word" >&5 ++ break ++fi ++done + +-GCC_VERSION=none +-if test "$GCC" = yes ; then +- echo "$as_me:3764: checking version of $CC" >&5 +-echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 +- GCC_VERSION="`${CC} --version 2>/dev/null | 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:3768: result: $GCC_VERSION" >&5 +-echo "${ECHO_T}$GCC_VERSION" >&6 ++ ;; ++esac + fi ++PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +-if ( test "$GCC" = yes || test "$GXX" = yes ) +-then +-echo "$as_me:3774: checking if you want to turn on gcc warnings" >&5 +-echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6 ++if test -n "$PKG_CONFIG"; then ++ echo "$as_me:4070: result: $PKG_CONFIG" >&5 ++echo "${ECHO_T}$PKG_CONFIG" >&6 ++else ++ echo "$as_me:4073: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +-# Check whether --enable-warnings or --disable-warnings was given. +-if test "${enable_warnings+set}" = set; then +- enableval="$enable_warnings" +- test "$enableval" != yes && enableval=no +- if test "$enableval" != "no" ; then +- with_warnings=yes +- else +- with_warnings=no +- fi ++fi ++if test -z "$ac_cv_path_PKG_CONFIG"; then ++ ac_pt_PKG_CONFIG=$PKG_CONFIG ++ # 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:4082: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- enableval=no +- with_warnings=no ++ case $ac_pt_PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_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_ac_pt_PKG_CONFIG="$ac_dir/$ac_word" ++ echo "$as_me:4099: found $ac_dir/$ac_word" >&5 ++ break ++fi ++done + +-fi; +-echo "$as_me:3791: result: $with_warnings" >&5 +-echo "${ECHO_T}$with_warnings" >&6 +-if test "$with_warnings" = "yes" +-then ++ test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none" ++ ;; ++esac ++fi ++ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG + +-if test "$GCC" = yes +-then +-cat > conftest.i <<EOF +-#ifndef GCC_PRINTF +-#define GCC_PRINTF 0 +-#endif +-#ifndef GCC_SCANF +-#define GCC_SCANF 0 +-#endif +-#ifndef GCC_NORETURN +-#define GCC_NORETURN /* nothing */ +-#endif +-#ifndef GCC_UNUSED +-#define GCC_UNUSED /* nothing */ +-#endif +-EOF +-if test "$GCC" = yes +-then +- { echo "$as_me:3814: checking for $CC __attribute__ directives..." >&5 +-echo "$as_me: checking for $CC __attribute__ directives..." >&6;} +-cat > conftest.$ac_ext <<EOF +-#line 3817 "${as_me:-configure}" +-#include "confdefs.h" +-#include "conftest.h" +-#include "conftest.i" +-#if GCC_PRINTF +-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +-#else +-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ +-#endif +-#if GCC_SCANF +-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +-#else +-#define GCC_SCANFLIKE(fmt,var) /*nothing*/ +-#endif +-extern void wow(char *,...) GCC_SCANFLIKE(1,2); +-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; +-extern void foo(void) GCC_NORETURN; +-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; } +-EOF +- cf_printf_attribute=no +- cf_scanf_attribute=no +- for cf_attribute in scanf printf unused noreturn +- do ++if test -n "$ac_pt_PKG_CONFIG"; then ++ echo "$as_me:4111: result: $ac_pt_PKG_CONFIG" >&5 ++echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 ++else ++ echo "$as_me:4114: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +-cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ PKG_CONFIG=$ac_pt_PKG_CONFIG ++else ++ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" ++fi + +- cf_directive="__attribute__(($cf_attribute))" +- echo "checking for $CC $cf_directive" 1>&5 ++ ;; ++*) ++ PKG_CONFIG=$withval ++ ;; ++esac + +- case $cf_attribute in #(vi +- printf) #(vi +- cf_printf_attribute=yes +- cat >conftest.h <<EOF +-#define GCC_$cf_ATTRIBUTE 1 +-EOF +- ;; +- scanf) #(vi +- cf_scanf_attribute=yes +- cat >conftest.h <<EOF +-#define GCC_$cf_ATTRIBUTE 1 +-EOF +- ;; +- *) #(vi +- cat >conftest.h <<EOF +-#define GCC_$cf_ATTRIBUTE $cf_directive +-EOF +- ;; +- esac ++test -z "$PKG_CONFIG" && PKG_CONFIG=none ++if test "$PKG_CONFIG" != none ; then + +- if { (eval echo "$as_me:3866: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:3869: \$? = $ac_status" >&5 +- (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:3871: result: ... $cf_attribute" >&5 +-echo "${ECHO_T}... $cf_attribute" >&6 +- cat conftest.h >>confdefs.h +- case $cf_attribute in #(vi +- printf) #(vi +- if test "$cf_printf_attribute" = no ; then +- cat >>confdefs.h <<EOF +-#define GCC_PRINTFLIKE(fmt,var) /* nothing */ +-EOF +- else +- cat >>confdefs.h <<EOF +-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +-EOF +- fi +- ;; +- scanf) #(vi +- if test "$cf_scanf_attribute" = no ; then +- cat >>confdefs.h <<EOF +-#define GCC_SCANFLIKE(fmt,var) /* nothing */ +-EOF +- else +- cat >>confdefs.h <<EOF +-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +-EOF +- fi +- ;; +- esac +- fi +- done ++if test "x$prefix" != xNONE; then ++ cf_path_syntax="$prefix" + else +- fgrep define conftest.i >>confdefs.h ++ cf_path_syntax="$ac_default_prefix" + fi +-rm -rf conftest* ++ ++case ".$PKG_CONFIG" in #(vi ++.\$\(*\)*|.\'*\'*) #(vi ++ ;; ++..|./*|.\\*) #(vi ++ ;; ++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ++ ;; ++.\${*prefix}*|.\${*dir}*) #(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:4157: 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 + +-INTEL_COMPILER=no ++echo "$as_me:4165: checking if you want to see long compiling messages" >&5 ++echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 + +-if test "$GCC" = yes ; then +- case $host_os in +- linux*|gnu*) +- echo "$as_me:3911: 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 3916 "configure" +-#include "confdefs.h" ++# Check whether --enable-echo or --disable-echo was given. ++if test "${enable_echo+set}" = set; then ++ enableval="$enable_echo" ++ test "$enableval" != no && enableval=yes ++ if test "$enableval" != "yes" ; then + +-int +-main () +-{ ++ ECHO_LT='--silent' ++ ECHO_LD='@echo linking $@;' ++ RULE_CC='@echo compiling $<' ++ SHOW_CC='@echo compiling $@' ++ ECHO_CC='@' + +-#ifdef __INTEL_COMPILER +-#else +-make an error +-#endif ++ else + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:3933: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:3936: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:3939: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:3942: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- INTEL_COMPILER=yes +-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' + ++ fi + else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CFLAGS="$cf_save_CFLAGS" +- echo "$as_me:3953: result: $INTEL_COMPILER" >&5 +-echo "${ECHO_T}$INTEL_COMPILER" >&6 +- ;; +- esac +-fi ++ enableval=yes + +-cat > conftest.$ac_ext <<EOF +-#line 3960 "${as_me:-configure}" +-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; } +-EOF ++ ECHO_LT='' ++ ECHO_LD='' ++ RULE_CC='' ++ SHOW_CC='' ++ ECHO_CC='' + +-if test "$INTEL_COMPILER" = yes +-then +-# The "-wdXXX" options suppress warnings: +-# remark #1419: external declaration in primary source file +-# 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 +-# remark #593: variable "curs_sb_left_arrow" was set but never used +-# 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 #279: controlling expression is constant ++fi; ++echo "$as_me:4199: result: $enableval" >&5 ++echo "${ECHO_T}$enableval" >&6 + +- { echo "$as_me:3977: 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 \ +- wd1683 \ +- wd1684 \ +- wd193 \ +- wd593 \ +- wd279 \ +- wd810 \ +- wd869 \ +- wd981 +- do +- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" +- if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:3996: \$? = $ac_status" >&5 +- (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5 +-echo "${ECHO_T}... -$cf_opt" >&6 +- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" +- fi +- done +- CFLAGS="$cf_save_CFLAGS" +- +-elif test "$GCC" = yes +-then +- { echo "$as_me:4007: checking for $CC warning options..." >&5 +-echo "$as_me: checking for $CC warning options..." >&6;} +- cf_save_CFLAGS="$CFLAGS" +- EXTRA_CFLAGS= +- cf_warn_CONST="" +- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" +- for cf_opt in W Wall \ +- Wbad-function-cast \ +- Wcast-align \ +- Wcast-qual \ +- Winline \ +- Wmissing-declarations \ +- Wmissing-prototypes \ +- Wnested-externs \ +- Wpointer-arith \ +- Wshadow \ +- Wstrict-prototypes \ +- Wundef $cf_warn_CONST +- do +- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" +- if { (eval echo "$as_me:4027: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:4030: \$? = $ac_status" >&5 +- (exit $ac_status); }; then +- test -n "$verbose" && echo "$as_me:4032: result: ... -$cf_opt" >&5 +-echo "${ECHO_T}... -$cf_opt" >&6 +- case $cf_opt in #(vi +- Wcast-qual) #(vi +- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES" +- ;; +- Winline) #(vi +- case $GCC_VERSION in +- [34].*) +- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 ++echo "$as_me:4202: checking for ncurses wrap-prefix" >&5 ++echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6 + +-echo "${as_me:-configure}:4043: testing feature is broken in gcc $GCC_VERSION ..." 1>&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 "$as_me:4212: result: $NCURSES_WRAP_PREFIX" >&5 ++echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6 + +- continue;; +- esac +- ;; +- esac +- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" +- fi +- done +- CFLAGS="$cf_save_CFLAGS" +-fi +-rm -rf conftest* ++echo "$as_me:4215: checking if you want to check for wide-character functions" >&5 ++echo $ECHO_N "checking if you want to check for wide-character functions... $ECHO_C" >&6 + +-fi +-fi ++# Check whether --enable-widec or --disable-widec was given. ++if test "${enable_widec+set}" = set; then ++ enableval="$enable_widec" ++ test "$enableval" != no && enableval=yes ++ if test "$enableval" != "yes" ; then ++ cf_enable_widec=no ++ else ++ cf_enable_widec=yes ++ fi ++else ++ enableval=yes ++ cf_enable_widec=yes + +-echo "$as_me:4059: 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 ++fi; ++echo "$as_me:4232: result: $cf_enable_widec" >&5 ++echo "${ECHO_T}$cf_enable_widec" >&6 + +-# Check whether --with-dmalloc or --without-dmalloc was given. +-if test "${with_dmalloc+set}" = set; then +- withval="$with_dmalloc" +- cat >>confdefs.h <<\EOF +-#define USE_DMALLOC 1 +-EOF ++echo "$as_me:4235: checking for specific curses-directory" >&5 ++echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6 + +- : ${with_cflags:=-g} +- : ${with_no_leaks:=yes} +- with_dmalloc=yes ++# Check whether --with-curses-dir or --without-curses-dir was given. ++if test "${with_curses_dir+set}" = set; then ++ withval="$with_curses_dir" ++ cf_cv_curses_dir=$withval + else +- with_dmalloc= ++ cf_cv_curses_dir=no + fi; +-echo "$as_me:4075: result: ${with_dmalloc:-no}" >&5 +-echo "${ECHO_T}${with_dmalloc:-no}" >&6 ++echo "$as_me:4245: result: $cf_cv_curses_dir" >&5 ++echo "${ECHO_T}$cf_cv_curses_dir" >&6 + +-case .$with_cflags in #(vi +-.*-g*) +- case .$CFLAGS in #(vi +- .*-g*) #(vi +- ;; +- *) ++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) ++then + +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= ++if test "x$prefix" != xNONE; then ++ cf_path_syntax="$prefix" ++else ++ cf_path_syntax="$ac_default_prefix" ++fi + +-for cf_add_cflags in -g +-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[^=]*='\''\"[^"]*//'` ++case ".$withval" in #(vi ++.\$\(*\)*|.\'*\'*) #(vi ++ ;; ++..|./*|.\\*) #(vi ++ ;; ++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX ++ ;; ++.\${*prefix}*|.\${*dir}*) #(vi ++ eval withval="$withval" ++ case ".$withval" in #(vi ++ .NONE/*) ++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++ esac ++ ;; #(vi ++.no|.NONE/*) ++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ++ ;; ++*) ++ { { echo "$as_me:4276: error: expected a pathname, not \"$withval\"" >&5 ++echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++esac + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes ++ if test -d "$cf_cv_curses_dir" ++ then + +- 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 ++if test -n "$cf_cv_curses_dir/include" ; then ++ for cf_add_incdir in $cf_cv_curses_dir/include ++ 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 +- ;; +- esac +- case "$CPPFLAGS" in +- *$cf_add_cflags) #(vi +- ;; +- *) #(vi +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ done ++ fi + +- ;; +- esac +- 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" ++ 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 <<_ACEOF ++#line 4309 "configure" ++#include "confdefs.h" ++#include <stdio.h> ++int ++main () ++{ ++printf("Hello") ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:4321: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:4324: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:4327: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:4330: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_have_incdir=yes ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS=$cf_save_CPPFLAGS ++ fi ++ fi ++ fi + +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` ++ if test "$cf_have_incdir" = no ; then ++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac +-done ++echo "${as_me:-configure}:4347: testing adding $cf_add_incdir to include-path ..." 1>&5 + +-if test -n "$cf_new_cflags" ; then ++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +- CFLAGS="$CFLAGS $cf_new_cflags" ++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'` ++ test "$cf_top_incdir" = "$cf_add_incdir" && break ++ cf_add_incdir="$cf_top_incdir" ++ else ++ break ++ fi ++ fi ++ done ++ done + fi + +-if test -n "$cf_new_cppflags" ; 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 + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi ++echo "${as_me:-configure}:4381: testing adding $cf_add_libdir to library-path ..." 1>&5 + +-if test -n "$cf_new_extra_cppflags" ; then ++ LDFLAGS="-L$cf_add_libdir $LDFLAGS" ++ fi ++ fi ++ done ++fi + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++ fi + fi + +- ;; +- esac ++cf_cv_screen=curses ++ ++echo "$as_me:4394: checking for specified curses library type" >&5 ++echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6 ++ ++# Check whether --with-ncursesw or --without-ncursesw was given. ++if test "${with_ncursesw+set}" = set; then ++ withval="$with_ncursesw" ++ cf_cv_screen=ncursesw ++else ++ ++# Check whether --with-ncurses or --without-ncurses was given. ++if test "${with_ncurses+set}" = set; then ++ withval="$with_ncurses" ++ cf_cv_screen=ncurses ++else ++ ++# Check whether --with-pdcurses or --without-pdcurses was given. ++if test "${with_pdcurses+set}" = set; then ++ withval="$with_pdcurses" ++ cf_cv_screen=pdcurses ++else ++ ++# Check whether --with-curses-colr or --without-curses-colr was given. ++if test "${with_curses_colr+set}" = set; then ++ withval="$with_curses_colr" ++ cf_cv_screen=curses_colr ++else ++ ++# Check whether --with-curses-5lib or --without-curses-5lib was given. ++if test "${with_curses_5lib+set}" = set; then ++ withval="$with_curses_5lib" ++ cf_cv_screen=curses_5lib ++fi; ++fi; ++fi; ++fi; ++fi; ++ ++echo "$as_me:4431: result: $cf_cv_screen" >&5 ++echo "${ECHO_T}$cf_cv_screen" >&6 ++ ++case $cf_cv_screen in #(vi ++curses|curses_*) #(vi ++ ++echo "$as_me:4437: checking for extra include directories" >&5 ++echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6 ++if test "${cf_cv_curses_incdir+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++cf_cv_curses_incdir=no ++case $host_os in #(vi ++hpux10.*) #(vi ++ if test "x$cf_cv_screen" = "xcurses_colr" ++ then ++ test -d /usr/include/curses_colr && \ ++ cf_cv_curses_incdir="-I/usr/include/curses_colr" ++ fi ++ ;; ++sunos3*|sunos4*) ++ if test "x$cf_cv_screen" = "xcurses_5lib" ++ then ++ test -d /usr/5lib && \ ++ test -d /usr/5include && \ ++ cf_cv_curses_incdir="-I/usr/5include" ++ fi + ;; + esac + +-if test "$with_dmalloc" = yes ; then +- echo "$as_me:4169: 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 ++fi ++echo "$as_me:4463: result: $cf_cv_curses_incdir" >&5 ++echo "${ECHO_T}$cf_cv_curses_incdir" >&6 ++test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir" ++ ++echo "$as_me:4467: checking if we have identified curses headers" >&5 ++echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_header+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++cf_cv_ncurses_header=none ++for cf_header in \ ++ ncurses.h \ ++ curses.h ncurses/ncurses.h ncurses/curses.h ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 4479 "configure" ++#include "confdefs.h" ++#include <${cf_header}> ++int ++main () ++{ ++initscr(); tgoto("?", 0,0) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:4491: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:4494: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:4497: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:4500: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_ncurses_header=$cf_header; break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++done ++ ++fi ++echo "$as_me:4511: result: $cf_cv_ncurses_header" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_header" >&6 ++ ++if test "$cf_cv_ncurses_header" = none ; then ++ { { echo "$as_me:4515: error: No curses header-files found" >&5 ++echo "$as_me: error: No curses header-files found" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++# cheat, to get the right #define's for HAVE_NCURSES_H, etc. ++ ++for ac_header in $cf_cv_ncurses_header ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:4525: 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 4175 "configure" ++#line 4531 "configure" + #include "confdefs.h" +-#include <dmalloc.h> ++#include <$ac_header> + _ACEOF +-if { (eval echo "$as_me:4179: \"$ac_cpp conftest.$ac_ext\"") >&5 ++if { (eval echo "$as_me:4535: \"$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:4185: \$? = $ac_status" >&5 ++ echo "$as_me:4541: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag +@@ -4193,238 +4549,316 @@ + ac_cpp_err=yes + fi + if test -z "$ac_cpp_err"; then +- ac_cv_header_dmalloc_h=yes ++ eval "$as_ac_Header=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +- ac_cv_header_dmalloc_h=no ++ eval "$as_ac_Header=no" + fi + rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:4204: 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:4560: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++EOF + +-echo "$as_me:4208: 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 ++fi ++done ++ ++echo "$as_me:4570: checking for terminfo header" >&5 ++echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 ++if test "${cf_cv_term_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldmalloc $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 <<_ACEOF +-#line 4216 "configure" ++#line 4588 "configure" + #include "confdefs.h" ++#include <stdio.h> ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <$cf_test> + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char dmalloc_debug (); + int + main () + { +-dmalloc_debug (); ++int x = auto_left_margin + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:4235: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:4603: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:4238: \$? = $ac_status" >&5 ++ echo "$as_me:4606: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:4241: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:4609: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4244: \$? = $ac_status" >&5 ++ echo "$as_me:4612: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_dmalloc_dmalloc_debug=yes ++ ++ cf_cv_term_header="$cf_test" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_dmalloc_dmalloc_debug=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:4255: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 +-echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 +-if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then +- cat >>confdefs.h <<EOF +-#define HAVE_LIBDMALLOC 1 +-EOF + +- LIBS="-ldmalloc $LIBS" ++ cf_cv_term_header=unknown + + fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ test "$cf_cv_term_header" != unknown && break ++done + + fi ++echo "$as_me:4628: result: $cf_cv_term_header" >&5 ++echo "${ECHO_T}$cf_cv_term_header" >&6 + +-fi ++# Set definitions to allow ifdef'ing to accommodate subdirectories + +-echo "$as_me:4270: 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 ++case $cf_cv_term_header in # (vi ++*term.h) + +-# Check whether --with-dbmalloc or --without-dbmalloc was given. +-if test "${with_dbmalloc+set}" = set; then +- withval="$with_dbmalloc" +- cat >>confdefs.h <<\EOF +-#define USE_DBMALLOC 1 ++cat >>confdefs.h <<\EOF ++#define HAVE_TERM_H 1 + EOF + +- : ${with_cflags:=-g} +- : ${with_no_leaks:=yes} +- with_dbmalloc=yes +-else +- with_dbmalloc= +-fi; +-echo "$as_me:4286: result: ${with_dbmalloc:-no}" >&5 +-echo "${ECHO_T}${with_dbmalloc:-no}" >&6 ++ ;; ++esac + +-case .$with_cflags in #(vi +-.*-g*) +- case .$CFLAGS in #(vi +- .*-g*) #(vi +- ;; +- *) ++case $cf_cv_term_header in # (vi ++ncurses/term.h) #(vi + +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSES_TERM_H 1 ++EOF + +-for cf_add_cflags in -g +-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[^=]*='\''\"[^"]*//'` ++ ;; ++ncursesw/term.h) + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSESW_TERM_H 1 ++EOF + +- 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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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" ++esac + +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` ++echo "$as_me:4660: checking for ncurses version" >&5 ++echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_version+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac +-done ++ cf_cv_ncurses_version=no ++ cf_tempfile=out$$ ++ rm -f $cf_tempfile ++ if test "$cross_compiling" = yes; then + +-if test -n "$cf_new_cflags" ; then ++ # This will not work if the preprocessor splits the line after the ++ # Autoconf token. The 'unproto' program does that. ++ cat > conftest.$ac_ext <<EOF ++#include <${cf_cv_ncurses_header:-curses.h}> ++#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 "$as_me:4686: \"$cf_try\"") >&5 ++ (eval $cf_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:4689: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ 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 + +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 4699 "configure" ++#include "confdefs.h" + +-if test -n "$cf_new_cppflags" ; then ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <stdio.h> ++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); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:4724: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:4727: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:4729: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:4732: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++ cf_cv_ncurses_version=`cat $cf_tempfile` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 + fi ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ rm -f $cf_tempfile + +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi ++echo "$as_me:4746: result: $cf_cv_ncurses_version" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_version" >&6 ++test "$cf_cv_ncurses_version" = no || ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF + +- ;; +- esac +- ;; +-esac ++echo "$as_me:4753: checking if we have identified curses libraries" >&5 ++echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++#line 4756 "configure" ++#include "confdefs.h" ++#include <${cf_cv_ncurses_header:-curses.h}> ++int ++main () ++{ ++initscr(); tgoto("?", 0,0) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:4768: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:4771: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:4774: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:4777: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_result=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_result=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++echo "$as_me:4786: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 + +-if test "$with_dbmalloc" = yes ; then +- echo "$as_me:4380: 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 ++if test "$cf_result" = no ; then ++case $host_os in #(vi ++freebsd*) #(vi ++ echo "$as_me:4792: checking for tgoto in -lmytinfo" >&5 ++echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 ++if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 4386 "configure" ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lmytinfo $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 4800 "configure" + #include "confdefs.h" +-#include <dbmalloc.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char tgoto (); ++int ++main () ++{ ++tgoto (); ++ ; ++ return 0; ++} + _ACEOF +-if { (eval echo "$as_me:4390: \"$ac_cpp conftest.$ac_ext\"") >&5 +- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:4819: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- egrep -v '^ *\+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:4396: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- ac_cv_header_dbmalloc_h=yes ++ echo "$as_me:4822: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:4825: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:4828: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_mytinfo_tgoto=yes + else + echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- ac_cv_header_dbmalloc_h=no ++cat conftest.$ac_ext >&5 ++ac_cv_lib_mytinfo_tgoto=no + fi +-rm -f conftest.err conftest.$ac_ext ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:4839: result: $ac_cv_lib_mytinfo_tgoto" >&5 ++echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 ++if test $ac_cv_lib_mytinfo_tgoto = yes; then ++ LIBS="-lmytinfo $LIBS" + fi +-echo "$as_me:4415: 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:4419: 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 ++ ;; ++hpux10.*) #(vi ++ # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr ++ # next (1998), and xcurses "newer" (2000). There is no header file for ++ # Hcurses; the subdirectory curses_colr has the headers (curses.h and ++ # term.h) for cur_colr ++ if test "x$cf_cv_screen" = "xcurses_colr" ++ then ++ echo "$as_me:4853: checking for initscr in -lcur_colr" >&5 ++echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6 ++if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldbmalloc $LIBS" ++LIBS="-lcur_colr $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 4427 "configure" ++#line 4861 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -4433,313 +4867,115 @@ + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char debug_malloc (); ++char initscr (); + int + main () + { +-debug_malloc (); ++initscr (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:4446: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:4880: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:4449: \$? = $ac_status" >&5 ++ echo "$as_me:4883: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:4452: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:4886: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4455: \$? = $ac_status" >&5 ++ echo "$as_me:4889: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_dbmalloc_debug_malloc=yes ++ ac_cv_lib_cur_colr_initscr=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_dbmalloc_debug_malloc=no ++ac_cv_lib_cur_colr_initscr=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:4466: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 +-echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 +-if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then +- cat >>confdefs.h <<EOF +-#define HAVE_LIBDBMALLOC 1 +-EOF ++echo "$as_me:4900: result: $ac_cv_lib_cur_colr_initscr" >&5 ++echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6 ++if test $ac_cv_lib_cur_colr_initscr = yes; then + +- LIBS="-ldbmalloc $LIBS" ++ LIBS="-lcur_colr $LIBS" ++ ac_cv_func_initscr=yes + +-fi ++else + +-fi ++ echo "$as_me:4909: checking for initscr in -lHcurses" >&5 ++echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6 ++if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lHcurses $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 4917 "configure" ++#include "confdefs.h" + +-fi +- +-echo "$as_me:4481: 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. +-if test "${with_valgrind+set}" = set; then +- withval="$with_valgrind" +- cat >>confdefs.h <<\EOF +-#define USE_VALGRIND 1 +-EOF +- +- : ${with_cflags:=-g} +- : ${with_no_leaks:=yes} +- with_valgrind=yes +-else +- with_valgrind= +-fi; +-echo "$as_me:4497: result: ${with_valgrind:-no}" >&5 +-echo "${ECHO_T}${with_valgrind:-no}" >&6 +- +-case .$with_cflags in #(vi +-.*-g*) +- case .$CFLAGS in #(vi +- .*-g*) #(vi +- ;; +- *) +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in -g +-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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi +- +- ;; +- esac +- ;; +-esac +- +-echo "$as_me:4590: 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. +-if test "${enable_leaks+set}" = set; then +- enableval="$enable_leaks" +- if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi +-else +- : ${with_no_leaks:=no} +-fi; +-echo "$as_me:4600: result: $with_no_leaks" >&5 +-echo "${ECHO_T}$with_no_leaks" >&6 +- +-if test "$with_no_leaks" = yes ; then +- cat >>confdefs.h <<\EOF +-#define NO_LEAKS 1 +-EOF +- +- cat >>confdefs.h <<\EOF +-#define YY_NO_LEAKS 1 +-EOF +- +-fi +- +-echo "$as_me:4614: checking for specific curses-directory" >&5 +-echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6 +- +-# Check whether --with-curses-dir or --without-curses-dir was given. +-if test "${with_curses_dir+set}" = set; then +- withval="$with_curses_dir" +- cf_cv_curses_dir=$withval +-else +- cf_cv_curses_dir=no +-fi; +-echo "$as_me:4624: result: $cf_cv_curses_dir" >&5 +-echo "${ECHO_T}$cf_cv_curses_dir" >&6 +- +-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) +-then +- +-if test "x$prefix" != xNONE; then +- cf_path_syntax="$prefix" +-else +- cf_path_syntax="$ac_default_prefix" +-fi +- +-case ".$withval" in #(vi +-.\$\(*\)*|.\'*\'*) #(vi +- ;; +-..|./*|.\\*) #(vi +- ;; +-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX +- ;; +-.\${*prefix}*) #(vi +- eval withval="$withval" +- case ".$withval" in #(vi +- .NONE/*) +- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` +- ;; +- esac +- ;; #(vi +-.no|.NONE/*) +- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` +- ;; +-*) +- { { echo "$as_me:4655: error: expected a pathname, not \"$withval\"" >&5 +-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} +- { (exit 1); exit 1; }; } +- ;; +-esac +- +- if test -d "$cf_cv_curses_dir" +- then +- +-if test -n "$cf_cv_curses_dir/include" ; then +- for cf_add_incdir in $cf_cv_curses_dir/include +- 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 <<_ACEOF +-#line 4688 "configure" +-#include "confdefs.h" +-#include <stdio.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () + { +-printf("Hello") ++initscr (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4700: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:4936: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:4703: \$? = $ac_status" >&5 ++ echo "$as_me:4939: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4706: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:4942: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4709: \$? = $ac_status" >&5 ++ echo "$as_me:4945: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ ac_cv_lib_Hcurses_initscr=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_have_incdir=yes ++ac_cv_lib_Hcurses_initscr=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS=$cf_save_CPPFLAGS +- fi +- fi +- fi +- +- if test "$cf_have_incdir" = no ; then +- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:4956: result: $ac_cv_lib_Hcurses_initscr" >&5 ++echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6 ++if test $ac_cv_lib_Hcurses_initscr = yes; then + +-echo "${as_me:-configure}:4726: testing adding $cf_add_incdir to include-path ..." 1>&5 ++ # HP's header uses __HP_CURSES, but user claims _HP_CURSES. ++ LIBS="-lHcurses $LIBS" ++ CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES" ++ ac_cv_func_initscr=yes + +- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" ++fi + +- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'` +- test "$cf_top_incdir" = "$cf_add_incdir" && break +- cf_add_incdir="$cf_top_incdir" +- else +- break +- fi +- fi +- done +- done + fi + +-if test -n "$cf_cv_curses_dir/lib" ; then +- for cf_add_libdir in $cf_cv_curses_dir/lib ++ fi ++ ;; ++linux*) ++ case `arch 2>/dev/null` in ++ x86_64) ++ if test -d /lib64 ++ then ++ ++if test -n "/lib64" ; then ++ for cf_add_libdir in /lib64 + do + if test $cf_add_libdir = /usr/lib ; then + : +@@ -4757,7 +4993,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}:4760: testing adding $cf_add_libdir to library-path ..." 1>&5 ++echo "${as_me:-configure}:4996: testing adding $cf_add_libdir to library-path ..." 1>&5 + + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi +@@ -4765,370 +5001,339 @@ + done + fi + +- fi +-fi ++ else + +-# Check whether --with-5lib or --without-5lib was given. +-if test "${with_5lib+set}" = set; then +- withval="$with_5lib" +- LIBS="-L/usr/5lib $LIBS" +- CPPFLAGS="$CPPFLAGS -I/usr/5include" +-fi; ++if test -n "/lib" ; then ++ for cf_add_libdir in /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 + +-# Check whether --with-ncursesw or --without-ncursesw was given. +-if test "${with_ncursesw+set}" = set; then +- withval="$with_ncursesw" +- cf_cv_screen=ncursesw +-else ++echo "${as_me:-configure}:5025: testing adding $cf_add_libdir to library-path ..." 1>&5 + +-# Check whether --with-ncurses or --without-ncurses was given. +-if test "${with_ncurses+set}" = set; then +- withval="$with_ncurses" +- cf_cv_screen=ncurses +-else ++ LDFLAGS="-L$cf_add_libdir $LDFLAGS" ++ fi ++ fi ++ done ++fi + +-# Check whether --with-pdcurses or --without-pdcurses was given. +-if test "${with_pdcurses+set}" = set; then +- withval="$with_pdcurses" +- cf_cv_screen=pdcurses +-fi; +-fi; +-fi; ++ fi ++ ;; ++ *) + +-case $cf_cv_screen in +-curses) ++if test -n "/lib" ; then ++ for cf_add_libdir in /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:4801: checking for extra include directories" >&5 +-echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6 +-if test "${cf_cv_curses_incdir+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++echo "${as_me:-configure}:5056: testing adding $cf_add_libdir to library-path ..." 1>&5 + +-cf_cv_curses_incdir=no +-case $host_os in #(vi +-hpux10.*) #(vi +- test -d /usr/include/curses_colr && \ +- cf_cv_curses_incdir="-I/usr/include/curses_colr" ++ LDFLAGS="-L$cf_add_libdir $LDFLAGS" ++ fi ++ fi ++ done ++fi ++ ++ ;; ++ esac + ;; + sunos3*|sunos4*) +- test -d /usr/5lib && \ +- test -d /usr/5include && \ +- cf_cv_curses_incdir="-I/usr/5include" +- ;; +-esac ++ if test "x$cf_cv_screen" = "xcurses_5lib" ++ then ++ if test -d /usr/5lib ; then ++ ++if test -n "/usr/5lib" ; then ++ for cf_add_libdir in /usr/5lib ++ 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}:5091: testing adding $cf_add_libdir to library-path ..." 1>&5 + ++ LDFLAGS="-L$cf_add_libdir $LDFLAGS" ++ fi ++ fi ++ done + fi +-echo "$as_me:4821: result: $cf_cv_curses_incdir" >&5 +-echo "${ECHO_T}$cf_cv_curses_incdir" >&6 +-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir" + +-echo "$as_me:4825: checking if we have identified curses headers" >&5 +-echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_header+set}" = set; then ++ LIBS="-lcurses -ltermcap $LIBS" ++ fi ++ fi ++ ac_cv_func_initscr=yes ++ ;; ++esac ++ ++if test ".$ac_cv_func_initscr" != .yes ; then ++ cf_save_LIBS="$LIBS" ++ ++ if test ".${cf_cv_ncurses_version:-no}" != .no ++ then ++ cf_check_list="ncurses curses cursesX" ++ else ++ cf_check_list="cursesX curses ncurses" ++ fi ++ ++ # Check for library containing tgoto. Do this before curses library ++ # because it may be needed to link the test-case for initscr. ++ if test "x$cf_term_lib" = x ++ then ++ echo "$as_me:5120: checking for tgoto" >&5 ++echo $ECHO_N "checking for tgoto... $ECHO_C" >&6 ++if test "${ac_cv_func_tgoto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- +-cf_cv_ncurses_header=none +-for cf_header in \ +- curses.h \ +- ncurses.h ncurses/curses.h ncurses/ncurses.h +-do +-cat >conftest.$ac_ext <<_ACEOF +-#line 4837 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5126 "configure" + #include "confdefs.h" +-#include <${cf_header}> ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char tgoto (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char tgoto (); ++char (*f) (); ++ + int + main () + { +-initscr(); tgoto("?", 0,0) ++/* 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_tgoto) || defined (__stub___tgoto) ++choke me ++#else ++f = tgoto; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4849: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:5157: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:4852: \$? = $ac_status" >&5 ++ echo "$as_me:5160: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4855: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:5163: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4858: \$? = $ac_status" >&5 ++ echo "$as_me:5166: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_header=$cf_header; break ++ ac_cv_func_tgoto=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++ac_cv_func_tgoto=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-done +- +-fi +-echo "$as_me:4869: result: $cf_cv_ncurses_header" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_header" >&6 +- +-if test "$cf_cv_ncurses_header" = none ; then +- { { echo "$as_me:4873: error: No curses header-files found" >&5 +-echo "$as_me: error: No curses header-files found" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +-# cheat, to get the right #define's for HAVE_NCURSES_H, etc. +- +-for ac_header in $cf_cv_ncurses_header +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:4883: 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 4889 "configure" +-#include "confdefs.h" +-#include <$ac_header> +-_ACEOF +-if { (eval echo "$as_me:4893: \"$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:4899: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-if test -z "$ac_cpp_err"; then +- eval "$as_ac_Header=yes" ++echo "$as_me:5176: result: $ac_cv_func_tgoto" >&5 ++echo "${ECHO_T}$ac_cv_func_tgoto" >&6 ++if test $ac_cv_func_tgoto = yes; then ++ cf_term_lib=predefined + else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- eval "$as_ac_Header=no" +-fi +-rm -f conftest.err conftest.$ac_ext +-fi +-echo "$as_me:4918: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-EOF +- +-fi +-done + +-echo "$as_me:4928: checking for terminfo header" >&5 +-echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 +-if test "${cf_cv_term_header+set}" = set; then ++ for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown ++ do ++ as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh` ++echo "$as_me:5185: checking for tgoto in -l$cf_term_lib" >&5 ++echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Lib+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&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" +-do ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-l$cf_term_lib $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 4946 "configure" ++#line 5193 "configure" + #include "confdefs.h" +-#include <stdio.h> +-#include <${cf_cv_ncurses_header:-curses.h}> +-#include <$cf_test> + ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char tgoto (); + int + main () + { +-int x = auto_left_margin ++tgoto (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:4961: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:4964: \$? = $ac_status" >&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:5212: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:5215: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:4967: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:5218: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:4970: \$? = $ac_status" >&5 ++ echo "$as_me:5221: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_term_header="$cf_test" ++ eval "$as_ac_Lib=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +- +- cf_cv_term_header=unknown +- ++eval "$as_ac_Lib=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- test "$cf_cv_term_header" != unknown && break +-done +- ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:5232: result: `eval echo '${'$as_ac_Lib'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 ++if test `eval echo '${'$as_ac_Lib'}'` = yes; then ++ break + fi +-echo "$as_me:4986: result: $cf_cv_term_header" >&5 +-echo "${ECHO_T}$cf_cv_term_header" >&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 + +-echo "$as_me:5015: checking for ncurses version" >&5 +-echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_version+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++ done + +- cf_cv_ncurses_version=no +- cf_tempfile=out$$ +- rm -f $cf_tempfile +- if test "$cross_compiling" = yes; then ++fi + +- # This will not work if the preprocessor splits the line after the +- # Autoconf token. The 'unproto' program does that. +- cat > conftest.$ac_ext <<EOF +-#include <${cf_cv_ncurses_header:-curses.h}> +-#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 "$as_me:5041: \"$cf_try\"") >&5 +- (eval $cf_try) 2>&5 +- ac_status=$? +- echo "$as_me:5044: \$? = $ac_status" >&5 +- (exit $ac_status); } +- 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 + ++ # Check for library containing initscr ++ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" ++ if test "x$cf_curs_lib" = x ++ then ++ for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown ++ do ++ as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh` ++echo "$as_me:5251: checking for initscr in -l$cf_curs_lib" >&5 ++echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Lib+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 5054 "configure" ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-l$cf_curs_lib $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 5259 "configure" + #include "confdefs.h" + +-#include <${cf_cv_ncurses_header:-curses.h}> +-#include <stdio.h> +-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 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" + #endif +- ${cf_cv_main_return:-return}(0); ++/* 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 () ++{ ++initscr (); ++ ; ++ return 0; + } + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:5079: \"$ac_link\"") >&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:5278: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5082: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:5084: \"$ac_try\"") >&5 ++ echo "$as_me:5281: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:5284: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5087: \$? = $ac_status" >&5 ++ echo "$as_me:5287: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_ncurses_version=`cat $cf_tempfile` ++ eval "$as_ac_Lib=yes" + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++eval "$as_ac_Lib=no" + fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +- rm -f $cf_tempfile +- ++echo "$as_me:5298: result: `eval echo '${'$as_ac_Lib'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 ++if test `eval echo '${'$as_ac_Lib'}'` = yes; then ++ break + fi +-echo "$as_me:5101: result: $cf_cv_ncurses_version" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_version" >&6 +-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF +-#define NCURSES 1 +-EOF + +-echo "$as_me:5107: checking if we have identified curses libraries" >&5 +-echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6 +-cat >conftest.$ac_ext <<_ACEOF +-#line 5110 "configure" ++ done ++ fi ++ test $cf_curs_lib = unknown && { { echo "$as_me:5306: error: no curses library found" >&5 ++echo "$as_me: error: no curses library found" >&2;} ++ { (exit 1); exit 1; }; } ++ ++ LIBS="-l$cf_curs_lib $cf_save_LIBS" ++ if test "$cf_term_lib" = unknown ; then ++ echo "$as_me:5312: checking if we can link with $cf_curs_lib library" >&5 ++echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5315 "configure" + #include "confdefs.h" + #include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-initscr(); tgoto("?", 0,0) ++initscr() + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5122: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5327: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5125: \$? = $ac_status" >&5 ++ echo "$as_me:5330: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5128: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5333: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5131: \$? = $ac_status" >&5 ++ echo "$as_me:5336: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_result=yes + else +@@ -5137,919 +5342,720 @@ + cf_result=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-echo "$as_me:5140: result: $cf_result" >&5 ++ echo "$as_me:5345: result: $cf_result" >&5 + echo "${ECHO_T}$cf_result" >&6 +- +-if test "$cf_result" = no ; then +-case $host_os in #(vi +-freebsd*) #(vi +- echo "$as_me:5146: checking for tgoto in -lmytinfo" >&5 +-echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 +-if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lmytinfo $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 5154 "configure" ++ test $cf_result = no && { { echo "$as_me:5347: error: Cannot link curses library" >&5 ++echo "$as_me: error: Cannot link curses library" >&2;} ++ { (exit 1); exit 1; }; } ++ elif test "$cf_curs_lib" = "$cf_term_lib" ; then ++ : ++ elif test "$cf_term_lib" != predefined ; then ++ echo "$as_me:5353: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 ++echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5356 "configure" + #include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char tgoto (); ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-tgoto (); ++initscr(); tgoto((char *)0, 0, 0); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5173: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5368: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5176: \$? = $ac_status" >&5 ++ echo "$as_me:5371: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5179: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5374: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5182: \$? = $ac_status" >&5 ++ echo "$as_me:5377: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_mytinfo_tgoto=yes ++ cf_result=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_mytinfo_tgoto=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:5193: result: $ac_cv_lib_mytinfo_tgoto" >&5 +-echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 +-if test $ac_cv_lib_mytinfo_tgoto = yes; then +- LIBS="-lmytinfo $LIBS" +-fi + +- ;; +-hpux10.*) #(vi +- echo "$as_me:5201: checking for initscr in -lcur_colr" >&5 +-echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6 +-if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lcur_colr $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 5209 "configure" ++ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5386 "configure" + #include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char initscr (); ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-initscr (); ++initscr() + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5228: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:5398: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:5231: \$? = $ac_status" >&5 ++ echo "$as_me:5401: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5234: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5404: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5237: \$? = $ac_status" >&5 ++ echo "$as_me:5407: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_cur_colr_initscr=yes ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_cur_colr_initscr=no ++cf_result=error + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++ ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ echo "$as_me:5419: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ fi ++fi + fi +-echo "$as_me:5248: result: $ac_cv_lib_cur_colr_initscr" >&5 +-echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6 +-if test $ac_cv_lib_cur_colr_initscr = yes; then + +- LIBS="-lcur_colr $LIBS" +- ac_cv_func_initscr=yes ++ ;; ++ncurses) #(vi + +-else ++cf_ncuconfig_root=ncurses + +- echo "$as_me:5257: checking for initscr in -lHcurses" >&5 +-echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6 +-if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then ++echo "Looking for ${cf_ncuconfig_root}-config" ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config ++ 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:5437: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lHcurses $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 5265 "configure" +-#include "confdefs.h" ++ if test -n "$NCURSES_CONFIG"; then ++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # 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_NCURSES_CONFIG="$ac_tool_prefix$ac_prog" ++echo "$as_me:5452: found $ac_dir/$ac_word" >&5 ++break ++done + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 () +-{ +-initscr (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5284: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:5287: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5290: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:5293: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_Hcurses_initscr=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_lib_Hcurses_initscr=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:5304: result: $ac_cv_lib_Hcurses_initscr" >&5 +-echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6 +-if test $ac_cv_lib_Hcurses_initscr = yes; then +- +- # HP's header uses __HP_CURSES, but user claims _HP_CURSES. +- LIBS="-lHcurses $LIBS" +- CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES" +- ac_cv_func_initscr=yes +- + fi +- ++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG ++if test -n "$NCURSES_CONFIG"; then ++ echo "$as_me:5460: result: $NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$NCURSES_CONFIG" >&6 ++else ++ echo "$as_me:5463: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +- ;; +-linux*) +- case `arch 2>/dev/null` in +- x86_64) +- if test -d /lib64 +- then +- +-if test -n "/lib64" ; then +- for cf_add_libdir in /lib64 +- 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}:5343: testing adding $cf_add_libdir to library-path ..." 1>&5 +- +- LDFLAGS="-L$cf_add_libdir $LDFLAGS" +- fi +- fi ++ test -n "$NCURSES_CONFIG" && break + done + fi ++if test -z "$NCURSES_CONFIG"; then ++ ac_ct_NCURSES_CONFIG=$NCURSES_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 "$as_me:5476: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_NCURSES_CONFIG"; then ++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # 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_NCURSES_CONFIG="$ac_prog" ++echo "$as_me:5491: found $ac_dir/$ac_word" >&5 ++break ++done + +- else +- +-if test -n "/lib" ; then +- for cf_add_libdir in /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}:5372: testing adding $cf_add_libdir to library-path ..." 1>&5 +- +- LDFLAGS="-L$cf_add_libdir $LDFLAGS" +- fi +- fi +- done + fi +- +- fi +- ;; +- *) +- +-if test -n "/lib" ; then +- for cf_add_libdir in /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}:5403: testing adding $cf_add_libdir to library-path ..." 1>&5 +- +- LDFLAGS="-L$cf_add_libdir $LDFLAGS" +- fi +- fi +- done ++fi ++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG ++if test -n "$ac_ct_NCURSES_CONFIG"; then ++ echo "$as_me:5499: result: $ac_ct_NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6 ++else ++ echo "$as_me:5502: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +- ;; +- esac +- ;; +-sunos3*|sunos4*) +- if test -d /usr/5lib ; then +- +-if test -n "/usr/5lib" ; then +- for cf_add_libdir in /usr/5lib +- 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}:5436: testing adding $cf_add_libdir to library-path ..." 1>&5 ++ test -n "$ac_ct_NCURSES_CONFIG" && break ++done ++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none" + +- LDFLAGS="-L$cf_add_libdir $LDFLAGS" +- fi +- fi +- done ++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG + fi + +- LIBS="-lcurses -ltermcap $LIBS" +- fi +- ac_cv_func_initscr=yes +- ;; +-esac ++if test "$NCURSES_CONFIG" != none ; then + +-if test ".$ac_cv_func_initscr" != .yes ; then +- cf_save_LIBS="$LIBS" +- cf_term_lib="" +- cf_curs_lib="" ++CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`" ++LIBS="`$NCURSES_CONFIG --libs` $LIBS" + +- if test ".${cf_cv_ncurses_version:-no}" != .no +- then +- cf_check_list="ncurses curses cursesX" +- else +- cf_check_list="cursesX curses ncurses" +- fi ++# even with config script, some packages use no-override for curses.h + +- # Check for library containing tgoto. Do this before curses library +- # because it may be needed to link the test-case for initscr. +- echo "$as_me:5464: checking for tgoto" >&5 +-echo $ECHO_N "checking for tgoto... $ECHO_C" >&6 +-if test "${ac_cv_func_tgoto+set}" = set; then ++echo "$as_me:5520: checking if we have identified curses headers" >&5 ++echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 5470 "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char tgoto (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char tgoto (); +-char (*f) (); + ++cf_cv_ncurses_header=none ++for cf_header in \ ++ ncurses/ncurses.h \ ++ ncurses/curses.h \ ++ ncurses.h \ ++ curses.h ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 5534 "configure" ++#include "confdefs.h" ++#include <${cf_header}> + 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_tgoto) || defined (__stub___tgoto) +-choke me +-#else +-f = tgoto; +-#endif +- ++initscr(); tgoto("?", 0,0) + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5501: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:5546: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5504: \$? = $ac_status" >&5 ++ echo "$as_me:5549: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5507: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:5552: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5510: \$? = $ac_status" >&5 ++ echo "$as_me:5555: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_tgoto=yes ++ cf_cv_ncurses_header=$cf_header; break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_tgoto=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++done ++ + fi +-echo "$as_me:5520: result: $ac_cv_func_tgoto" >&5 +-echo "${ECHO_T}$ac_cv_func_tgoto" >&6 +-if test $ac_cv_func_tgoto = yes; then +- cf_term_lib=predefined +-else ++echo "$as_me:5566: result: $cf_cv_ncurses_header" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_header" >&6 + +- for cf_term_lib in $cf_check_list termcap termlib unknown +- do +- as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh` +-echo "$as_me:5529: checking for tgoto in -l$cf_term_lib" >&5 +-echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_Lib+set}\" = set"; then ++if test "$cf_cv_ncurses_header" = none ; then ++ { { echo "$as_me:5570: error: No curses header-files found" >&5 ++echo "$as_me: error: No curses header-files found" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++# cheat, to get the right #define's for HAVE_NCURSES_H, etc. ++ ++for ac_header in $cf_cv_ncurses_header ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:5580: 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 +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-l$cf_term_lib $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 5537 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5586 "configure" + #include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char tgoto (); +-int +-main () +-{ +-tgoto (); +- ; +- return 0; +-} ++#include <$ac_header> + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5556: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:5559: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5562: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 ++if { (eval echo "$as_me:5590: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? +- echo "$as_me:5565: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- eval "$as_ac_Lib=yes" ++ egrep -v '^ *\+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:5596: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ eval "$as_ac_Header=yes" + else + echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-eval "$as_ac_Lib=no" ++ cat conftest.$ac_ext >&5 ++ eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++rm -f conftest.err conftest.$ac_ext + fi +-echo "$as_me:5576: result: `eval echo '${'$as_ac_Lib'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 +-if test `eval echo '${'$as_ac_Lib'}'` = yes; then +- break ++echo "$as_me:5615: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++EOF ++ + fi ++done + +- done ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF + +-fi ++cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +- # 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 pdcurses unknown +- do +- as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh` +-echo "$as_me:5591: checking for initscr in -l$cf_curs_lib" >&5 +-echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_Lib+set}\" = set"; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-l$cf_curs_lib $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 5599 "configure" +-#include "confdefs.h" ++cat >>confdefs.h <<EOF ++#define $cf_nculib_ROOT 1 ++EOF ++ ++cf_cv_ncurses_version=`$NCURSES_CONFIG --version` + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 () +-{ +-initscr (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5618: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:5621: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5624: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:5627: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- eval "$as_ac_Lib=yes" + else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-eval "$as_ac_Lib=no" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:5638: result: `eval echo '${'$as_ac_Lib'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 +-if test `eval echo '${'$as_ac_Lib'}'` = yes; then +- break +-fi + +- done +- test $cf_curs_lib = unknown && { { echo "$as_me:5645: error: no curses library found" >&5 +-echo "$as_me: error: no curses library found" >&2;} +- { (exit 1); exit 1; }; } ++cf_ncuhdr_root=ncurses + +- LIBS="-l$cf_curs_lib $cf_save_LIBS" +- if test "$cf_term_lib" = unknown ; then +- echo "$as_me:5651: checking if we can link with $cf_curs_lib library" >&5 +-echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6 +- cat >conftest.$ac_ext <<_ACEOF +-#line 5654 "configure" ++test -n "$cf_cv_curses_dir" && \ ++test "$cf_cv_curses_dir" != "no" && { \ ++ ++if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then ++ for cf_add_incdir in $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 <<_ACEOF ++#line 5668 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++#include <stdio.h> + int + main () + { +-initscr() ++printf("Hello") + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5666: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:5680: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5669: \$? = $ac_status" >&5 ++ echo "$as_me:5683: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5672: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:5686: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5675: \$? = $ac_status" >&5 ++ echo "$as_me:5689: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no ++cf_have_incdir=yes + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- echo "$as_me:5684: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +- test $cf_result = no && { { echo "$as_me:5686: error: Cannot link curses library" >&5 +-echo "$as_me: error: Cannot link curses library" >&2;} +- { (exit 1); exit 1; }; } +- elif test "$cf_curs_lib" = "$cf_term_lib" ; then +- : +- elif test "$cf_term_lib" != predefined ; then +- echo "$as_me:5692: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 +-echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6 +- cat >conftest.$ac_ext <<_ACEOF +-#line 5695 "configure" +-#include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> +-int +-main () +-{ +-initscr(); tgoto((char *)0, 0, 0); +- ; +- return 0; ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS=$cf_save_CPPFLAGS ++ fi ++ fi ++ fi ++ ++ if test "$cf_have_incdir" = no ; then ++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 ++ ++echo "${as_me:-configure}:5706: 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 ++ + } +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5707: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:5710: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5713: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:5716: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_result=no ++ ++echo "$as_me:5723: checking for $cf_ncuhdr_root header in include-path" >&5 ++echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 + +- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 5725 "configure" ++ 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 ++ do ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5735 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++ ++#include <$cf_header> + int + main () + { +-initscr() ++ ++#ifdef NCURSES_VERSION ++ ++printf("%s\n", NCURSES_VERSION); ++#else ++#ifdef __NCURSES_H ++printf("old\n"); ++#else ++ make an error ++#endif ++#endif ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:5737: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:5759: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5740: \$? = $ac_status" >&5 ++ echo "$as_me:5762: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:5743: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:5765: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5746: \$? = $ac_status" >&5 ++ echo "$as_me:5768: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ cf_cv_ncurses_h=$cf_header ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=error ++cf_cv_ncurses_h=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ ++ test "$cf_cv_ncurses_h" != no && break ++ done + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- echo "$as_me:5758: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +- fi +-fi +-fi ++echo "$as_me:5783: result: $cf_cv_ncurses_h" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_h" >&6 + +-echo "$as_me:5764: checking for NetBSD form.h" >&5 +-echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6 +-if test "${cf_cv_netbsd_form_h+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 ++if test "$cf_cv_ncurses_h" != no ; then ++ cf_cv_ncurses_header=$cf_cv_ncurses_h + else + +-cat >conftest.$ac_ext <<_ACEOF +-#line 5771 "configure" +-#include "confdefs.h" ++echo "$as_me:5790: checking for $cf_ncuhdr_root include-path" >&5 ++echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_h2+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +-#include <${cf_cv_ncurses_header:-curses.h}> +-#include <form.h> ++ test -n "$verbose" && echo + +-int +-main () +-{ ++cf_search= + +- FORM *form; +- int y = current_field(form)->cursor_ypos; +- int x = current_field(form)->cursor_xpos; ++# collect the current set of include-directories from compiler flags ++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$,,'` + +- ; +- return 0; ++test "x$cf_header_path" != "xNONE" && \ ++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" + } +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5790: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:5793: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5796: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:5799: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_cv_netbsd_form_h=yes + +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_cv_netbsd_form_h=no ++ cf_header_path_list="$cf_header_path_list $cf_search" ++ ;; ++ esac ++ done + fi +-rm -f conftest.$ac_objext conftest.$ac_ext + +-fi +-echo "$as_me:5811: result: $cf_cv_netbsd_form_h" >&5 +-echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6 ++# add the variations for the package we are looking for + +-test "$cf_cv_netbsd_form_h" = yes && cat >>confdefs.h <<\EOF +-#define HAVE_NETBSD_FORM_H 1 +-EOF ++cf_search= + +-echo "$as_me:5818: checking for NetBSD menu.h" >&5 +-echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6 +-if test "${cf_cv_netbsd_menu_h+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++test "x/usr" != "x$prefix" && \ ++test -d "/usr" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" ++} + +-cat >conftest.$ac_ext <<_ACEOF +-#line 5825 "configure" +-#include "confdefs.h" ++test "x$prefix" != "xNONE" && \ ++test -d "$prefix" && \ ++ { ++ test -n "$verbose" && echo " ... testing for include-directories under $prefix" ++ test -d $prefix/include && cf_search="$cf_search $prefix/include" ++ test -d $prefix/include/$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" ++} + +-#include <${cf_cv_ncurses_header:-curses.h}> +-#include <menu.h> ++test "x/usr/local" != "x$prefix" && \ ++test -d "/usr/local" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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 "x/opt" != "x$prefix" && \ ++test -d "/opt" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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 "x$HOME" != "x$prefix" && \ ++test -d "$HOME" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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 "$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 "$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" ++} ++ ++cf_search="$cf_search $cf_header_path_list" ++ ++ 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 + ++ 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 <<_ACEOF ++#line 5930 "configure" ++#include "confdefs.h" ++#include <stdio.h> + int + main () + { +- +- MENU *menu; +- int y = menu->max_item_width; +- ++printf("Hello") + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5843: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:5942: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5846: \$? = $ac_status" >&5 ++ echo "$as_me:5945: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5849: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:5948: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5852: \$? = $ac_status" >&5 ++ echo "$as_me:5951: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_netbsd_menu_h=yes +- ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_netbsd_menu_h=no ++cf_have_incdir=yes + fi + rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS=$cf_save_CPPFLAGS ++ fi ++ fi ++ fi + +-fi +-echo "$as_me:5864: result: $cf_cv_netbsd_menu_h" >&5 +-echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6 +- +-test "$cf_cv_netbsd_menu_h" = yes && cat >>confdefs.h <<\EOF +-#define HAVE_NETBSD_MENU_H 1 +-EOF +- +- ;; +-ncurses) +- +-cf_ncuconfig_root=ncurses ++ if test "$cf_have_incdir" = no ; then ++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-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 "$as_me:5881: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- case $NCURSES_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_NCURSES_CONFIG="$NCURSES_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_NCURSES_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:5898: found $ac_dir/$ac_word" >&5 +- break +-fi +-done ++echo "${as_me:-configure}:5968: testing adding $cf_add_incdir to include-path ..." 1>&5 + +- ;; +-esac +-fi +-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG ++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +-if test -n "$NCURSES_CONFIG"; then +- echo "$as_me:5909: result: $NCURSES_CONFIG" >&5 +-echo "${ECHO_T}$NCURSES_CONFIG" >&6 +-else +- echo "$as_me:5912: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++ 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 + +- test -n "$NCURSES_CONFIG" && break +-done +-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none" +- +-if test "$NCURSES_CONFIG" != none ; then +- +-CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`" +-LIBS="`$NCURSES_CONFIG --libs` $LIBS" +- +-# even with config script, some packages use no-override for curses.h +- +-echo "$as_me:5927: checking if we have identified curses headers" >&5 +-echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_header+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++ for cf_header in \ ++ ncurses.h \ ++ curses.h ++ do + +-cf_cv_ncurses_header=none +-for cf_header in \ +- ncurses/curses.h \ +- ncurses/ncurses.h \ +- curses.h \ +- ncurses.h +-do +-cat >conftest.$ac_ext <<_ACEOF +-#line 5941 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 5989 "configure" + #include "confdefs.h" +-#include <${cf_header}> ++ ++#include <$cf_header> + int + main () + { +-initscr(); tgoto("?", 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; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:5953: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6013: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:5956: \$? = $ac_status" >&5 ++ echo "$as_me:6016: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:5959: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6019: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:5962: \$? = $ac_status" >&5 ++ echo "$as_me:6022: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_header=$cf_header; break +-else ++ cf_cv_ncurses_h2=$cf_header ++ ++else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_cv_ncurses_h2=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-done +- +-fi +-echo "$as_me:5973: result: $cf_cv_ncurses_header" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_header" >&6 + +-if test "$cf_cv_ncurses_header" = none ; then +- { { echo "$as_me:5977: error: No curses header-files found" >&5 +-echo "$as_me: error: No curses header-files found" >&2;} ++ 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 "$as_me:6043: error: not found" >&5 ++echo "$as_me: error: not found" >&2;} + { (exit 1); exit 1; }; } +-fi +- +-# cheat, to get the right #define's for HAVE_NCURSES_H, etc. +- +-for ac_header in $cf_cv_ncurses_header +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:5987: 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 5993 "configure" +-#include "confdefs.h" +-#include <$ac_header> +-_ACEOF +-if { (eval echo "$as_me:5997: \"$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:6003: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- eval "$as_ac_Header=yes" +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- eval "$as_ac_Header=no" +-fi +-rm -f conftest.err conftest.$ac_ext +-fi +-echo "$as_me:6022: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-EOF + + fi +-done +- +-cat >>confdefs.h <<\EOF +-#define NCURSES 1 +-EOF +- +-cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +-cat >>confdefs.h <<EOF +-#define $cf_nculib_ROOT 1 +-EOF +- +-cf_cv_ncurses_version=`$NCURSES_CONFIG --version` +- +-else +- +-cf_ncuhdr_root=ncurses ++echo "$as_me:6048: result: $cf_cv_ncurses_h2" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_h2" >&6 + +-test -n "$cf_cv_curses_dir" && \ +-test "$cf_cv_curses_dir" != "no" && { \ ++ 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_cv_curses_dir/include/$cf_ncuhdr_root" ; then +- for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root ++if test -n "$cf_1st_incdir" ; then ++ for cf_add_incdir in $cf_1st_incdir + do + while test $cf_add_incdir != /usr/include + do +@@ -6072,7 +6078,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 6075 "configure" ++#line 6081 "configure" + #include "confdefs.h" + #include <stdio.h> + int +@@ -6084,16 +6090,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6087: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6093: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6090: \$? = $ac_status" >&5 ++ echo "$as_me:6096: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6093: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6099: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6096: \$? = $ac_status" >&5 ++ echo "$as_me:6102: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -6110,7 +6116,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:6113: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:6119: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -6125,771 +6131,765 @@ + done + fi + +-} ++fi + +-echo "$as_me:6130: checking for $cf_ncuhdr_root header in include-path" >&5 +-echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_h+set}" = set; then ++# 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 "$as_me:6165: checking for terminfo header" >&5 ++echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 ++if test "${cf_cv_term_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 +- do ++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 + +- cat >conftest.$ac_ext <<_ACEOF +-#line 6142 "configure" ++for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 6183 "configure" + #include "confdefs.h" ++#include <stdio.h> ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <$cf_test> + +-#include <$cf_header> + int + main () + { +- +-#ifdef NCURSES_VERSION +- +-printf("%s\n", NCURSES_VERSION); +-#else +-#ifdef __NCURSES_H +-printf("old\n"); +-#else +- make an error +-#endif +-#endif +- ++int x = auto_left_margin + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6166: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:6198: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:6169: \$? = $ac_status" >&5 ++ echo "$as_me:6201: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6172: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6204: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6175: \$? = $ac_status" >&5 ++ echo "$as_me:6207: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_h=$cf_header + ++ cf_cv_term_header="$cf_test" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_ncurses_h=no ++ ++ cf_cv_term_header=unknown ++ + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- +- test "$cf_cv_ncurses_h" != no && break +- done ++ test "$cf_cv_term_header" != unknown && break ++done + + fi +-echo "$as_me:6190: result: $cf_cv_ncurses_h" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_h" >&6 ++echo "$as_me:6223: result: $cf_cv_term_header" >&5 ++echo "${ECHO_T}$cf_cv_term_header" >&6 + +-if test "$cf_cv_ncurses_h" != no ; then +- cf_cv_ncurses_header=$cf_cv_ncurses_h +-else ++# Set definitions to allow ifdef'ing to accommodate subdirectories + +-echo "$as_me:6197: checking for $cf_ncuhdr_root include-path" >&5 +-echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_h2+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++case $cf_cv_term_header in # (vi ++*term.h) + +- test -n "$verbose" && echo ++cat >>confdefs.h <<\EOF ++#define HAVE_TERM_H 1 ++EOF + +-cf_search= ++ ;; ++esac + +-# collect the current set of include-directories from compiler flags +-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$,,'` ++case $cf_cv_term_header in # (vi ++ncurses/term.h) #(vi + +-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" +-} ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSES_TERM_H 1 ++EOF + +- cf_header_path_list="$cf_header_path_list $cf_search" +- ;; +- esac +- done +-fi ++ ;; ++ncursesw/term.h) + +-# add the variations for the package we are looking for ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSESW_TERM_H 1 ++EOF + +-cf_search= ++ ;; ++esac + +-test "/usr" != "$prefix" && \ +-test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$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" +-} ++# some applications need this, but should check for NCURSES_VERSION + +-test "$prefix" != "NONE" && \ +-test -d "$prefix" && \ +- { +- test -n "$verbose" && echo " ... testing for include-directories under $prefix" +- test -d $prefix/include && cf_search="$cf_search $prefix/include" +- test -d $prefix/include/$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" +-} ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF + +-test "/usr/local" != "$prefix" && \ +-test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$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" +-} ++echo "$as_me:6261: checking for ncurses version" >&5 ++echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_version+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +-test "/opt" != "$prefix" && \ +-test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$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" +-} ++ cf_cv_ncurses_version=no ++ cf_tempfile=out$$ ++ rm -f $cf_tempfile ++ if test "$cross_compiling" = yes; then + +-test "$HOME" != "$prefix" && \ +-test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$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" +-} ++ # This will not work if the preprocessor splits the line after the ++ # Autoconf token. The 'unproto' program does that. ++ cat > conftest.$ac_ext <<EOF ++#include <${cf_cv_ncurses_header:-curses.h}> ++#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 "$as_me:6287: \"$cf_try\"") >&5 ++ (eval $cf_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:6290: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ 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 + +-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" +-} ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 6300 "configure" ++#include "confdefs.h" + +-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" ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <stdio.h> ++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); + } ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:6325: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:6328: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:6330: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:6333: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + +-cf_search="$cf_search $cf_header_path_list" +- +- test -n "$verbose" && echo search path $cf_search +- cf_save2_CPPFLAGS="$CPPFLAGS" +- for cf_incdir in $cf_search +- do ++ cf_cv_ncurses_version=`cat $cf_tempfile` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ rm -f $cf_tempfile + +-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 ++fi ++echo "$as_me:6347: result: $cf_cv_ncurses_version" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_version" >&6 ++test "$cf_cv_ncurses_version" = no || ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF + +- 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 <<_ACEOF +-#line 6337 "configure" ++cf_nculib_root=ncurses ++ # 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 "$as_me:6360: 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 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lgpm $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 6368 "configure" + #include "confdefs.h" +-#include <stdio.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char Gpm_Open (); + int + main () + { +-printf("Hello") ++Gpm_Open (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6349: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:6387: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6352: \$? = $ac_status" >&5 ++ echo "$as_me:6390: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6355: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:6393: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6358: \$? = $ac_status" >&5 ++ echo "$as_me:6396: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ ac_cv_lib_gpm_Gpm_Open=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_have_incdir=yes ++ac_cv_lib_gpm_Gpm_Open=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS=$cf_save_CPPFLAGS +- fi +- fi +- fi +- +- if test "$cf_have_incdir" = no ; then +- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 +- +-echo "${as_me:-configure}:6375: 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 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +- +- for cf_header in \ +- ncurses.h \ +- curses.h +- do +- +- cat >conftest.$ac_ext <<_ACEOF +-#line 6396 "configure" ++echo "$as_me:6407: 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 ++ echo "$as_me:6410: checking for initscr in -lgpm" >&5 ++echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 ++if test "${ac_cv_lib_gpm_initscr+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lgpm $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 6418 "configure" + #include "confdefs.h" + +-#include <$cf_header> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () + { +- +-#ifdef NCURSES_VERSION +- +-printf("%s\n", NCURSES_VERSION); +-#else +-#ifdef __NCURSES_H +-printf("old\n"); +-#else +- make an error +-#endif +-#endif +- ++initscr (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6420: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:6437: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6423: \$? = $ac_status" >&5 ++ echo "$as_me:6440: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6426: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:6443: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6429: \$? = $ac_status" >&5 ++ echo "$as_me:6446: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_h2=$cf_header +- ++ ac_cv_lib_gpm_initscr=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_ncurses_h2=no ++ac_cv_lib_gpm_initscr=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- +- 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 "$as_me:6450: error: not found" >&5 +-echo "$as_me: error: not found" >&2;} +- { (exit 1); exit 1; }; } +- ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:6457: result: $ac_cv_lib_gpm_initscr" >&5 ++echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 ++if test $ac_cv_lib_gpm_initscr = yes; then ++ LIBS="$cf_ncurses_SAVE" ++else ++ cf_ncurses_LIBS="-lgpm" + fi +-echo "$as_me:6455: result: $cf_cv_ncurses_h2" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_h2" >&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 + +-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 ++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 <<_ACEOF +-#line 6488 "configure" ++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 "$as_me:6472: checking for tgoto in -lmytinfo" >&5 ++echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 ++if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lmytinfo $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 6480 "configure" + #include "confdefs.h" +-#include <stdio.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char tgoto (); + int + main () + { +-printf("Hello") ++tgoto (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6500: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:6499: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6503: \$? = $ac_status" >&5 ++ echo "$as_me:6502: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6506: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:6505: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6509: \$? = $ac_status" >&5 ++ echo "$as_me:6508: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ ac_cv_lib_mytinfo_tgoto=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_have_incdir=yes ++ac_cv_lib_mytinfo_tgoto=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS=$cf_save_CPPFLAGS +- fi +- fi +- fi +- +- if test "$cf_have_incdir" = no ; then +- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 +- +-echo "${as_me:-configure}:6526: 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 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +- ++echo "$as_me:6519: result: $ac_cv_lib_mytinfo_tgoto" >&5 ++echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 ++if test $ac_cv_lib_mytinfo_tgoto = yes; then ++ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" + 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 +- ++ fi + ;; + 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 ++LIBS="$cf_ncurses_LIBS $LIBS" + +- ;; +-esac ++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) ++then ++ LIBS="-l$cf_nculib_root $LIBS" ++else + +-echo "$as_me:6569: checking for terminfo header" >&5 +-echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 +-if test "${cf_cv_term_header+set}" = set; then ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=no' ++ cf_libdir="" ++ echo "$as_me:6538: checking for initscr" >&5 ++echo $ECHO_N "checking for initscr... $ECHO_C" >&6 ++if test "${ac_cv_func_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 6544 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char initscr (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char initscr (); ++char (*f) (); + +-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 ++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 ++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif + +-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +-do +-cat >conftest.$ac_ext <<_ACEOF +-#line 6587 "configure" ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:6575: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:6578: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:6581: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:6584: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_initscr=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_func_initscr=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:6594: result: $ac_cv_func_initscr" >&5 ++echo "${ECHO_T}$ac_cv_func_initscr" >&6 ++if test $ac_cv_func_initscr = yes; then ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' ++else ++ ++ cf_save_LIBS="$LIBS" ++ echo "$as_me:6601: checking for initscr in -l$cf_nculib_root" >&5 ++echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 ++ LIBS="-l$cf_nculib_root $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 6605 "configure" + #include "confdefs.h" +-#include <stdio.h> + #include <${cf_cv_ncurses_header:-curses.h}> +-#include <$cf_test> +- + int + main () + { +-int x = auto_left_margin ++initscr() + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:6602: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:6617: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6605: \$? = $ac_status" >&5 ++ echo "$as_me:6620: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:6608: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:6623: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6611: \$? = $ac_status" >&5 ++ echo "$as_me:6626: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ++ echo "$as_me:6628: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + +- cf_cv_term_header="$cf_test" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++echo "$as_me:6635: result: no" >&5 ++echo "${ECHO_T}no" >&6 + +- cf_cv_term_header=unknown ++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$,,'` + +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- test "$cf_cv_term_header" != unknown && break +-done ++test "x$cf_library_path" != "xNONE" && \ ++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 +-echo "$as_me:6627: result: $cf_cv_term_header" >&5 +-echo "${ECHO_T}$cf_cv_term_header" >&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 ++cf_search= + +- ;; +-esac ++test "x/usr" != "x$prefix" && \ ++test -d "/usr" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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" ++} + +-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 ++test "x$prefix" != "xNONE" && \ ++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" ++} + +-# some applications need this, but should check for NCURSES_VERSION +-cat >>confdefs.h <<\EOF +-#define NCURSES 1 +-EOF ++test "x/usr/local" != "x$prefix" && \ ++test -d "/usr/local" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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" ++} + +-echo "$as_me:6661: checking for ncurses version" >&5 +-echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_version+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++test "x/opt" != "x$prefix" && \ ++test -d "/opt" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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" ++} + +- cf_cv_ncurses_version=no +- cf_tempfile=out$$ +- rm -f $cf_tempfile +- if test "$cross_compiling" = yes; then ++test "x$HOME" != "x$prefix" && \ ++test -d "$HOME" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" ++} + +- # This will not work if the preprocessor splits the line after the +- # Autoconf token. The 'unproto' program does that. +- cat > conftest.$ac_ext <<EOF +-#include <${cf_cv_ncurses_header:-curses.h}> +-#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 "$as_me:6687: \"$cf_try\"") >&5 +- (eval $cf_try) 2>&5 +- ac_status=$? +- echo "$as_me:6690: \$? = $ac_status" >&5 +- (exit $ac_status); } +- 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 ++cf_search="$cf_library_path_list $cf_search" + +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 6700 "configure" ++ for cf_libdir in $cf_search ++ do ++ echo "$as_me:6725: checking for -l$cf_nculib_root in $cf_libdir" >&5 ++echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 ++ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 6729 "configure" + #include "confdefs.h" +- + #include <${cf_cv_ncurses_header:-curses.h}> +-#include <stdio.h> +-int main() ++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); ++initscr() ++ ; ++ return 0; + } + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:6725: \"$ac_link\"") >&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:6741: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6728: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:6730: \"$ac_try\"") >&5 ++ echo "$as_me:6744: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:6747: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6733: \$? = $ac_status" >&5 ++ echo "$as_me:6750: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_ncurses_version=`cat $cf_tempfile` ++ echo "$as_me:6752: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' ++ break + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++echo "$as_me:6759: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ LIBS="$cf_save_LIBS" + fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ done ++ + fi +- rm -f $cf_tempfile ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + + fi +-echo "$as_me:6747: result: $cf_cv_ncurses_version" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_version" >&6 +-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF +-#define NCURSES 1 +-EOF + +-cf_nculib_root=ncurses +- # 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 "$as_me:6759: 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 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lgpm $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 6767 "configure" +-#include "confdefs.h" ++eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char Gpm_Open (); ++if test $cf_found_library = no ; then ++ { { echo "$as_me:6774: error: Cannot link $cf_nculib_root library" >&5 ++echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++fi ++ ++if test -n "$cf_ncurses_LIBS" ; then ++ echo "$as_me:6782: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 ++echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 ++ 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 <<_ACEOF ++#line 6792 "configure" ++#include "confdefs.h" ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-Gpm_Open (); ++initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6786: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6804: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6789: \$? = $ac_status" >&5 ++ echo "$as_me:6807: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6792: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6810: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6795: \$? = $ac_status" >&5 ++ echo "$as_me:6813: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_gpm_Gpm_Open=yes ++ echo "$as_me:6815: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_gpm_Gpm_Open=no ++echo "$as_me:6820: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ LIBS="$cf_ncurses_SAVE" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:6806: 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 +- echo "$as_me:6809: checking for initscr in -lgpm" >&5 +-echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 +-if test "${ac_cv_lib_gpm_initscr+set}" = set; then ++ ++cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++cat >>confdefs.h <<EOF ++#define $cf_nculib_ROOT 1 ++EOF ++ ++fi ++ ++ ;; ++ncursesw) #(vi ++ ++echo "$as_me:6838: 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 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lgpm $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 6817 "configure" ++ ++ cf_save_LIBS="$LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 6846 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char initscr (); ++#include <stdlib.h> + int + main () + { +-initscr (); ++putwc(0,0); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6836: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6859: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6839: \$? = $ac_status" >&5 ++ echo "$as_me:6862: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6842: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6865: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6845: \$? = $ac_status" >&5 ++ echo "$as_me:6868: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_gpm_initscr=yes ++ cf_cv_utf8_lib=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_gpm_initscr=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:6856: result: $ac_cv_lib_gpm_initscr" >&5 +-echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 +-if test $ac_cv_lib_gpm_initscr = yes; then +- LIBS="$cf_ncurses_SAVE" +-else +- cf_ncurses_LIBS="-lgpm" +-fi + +-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= ++ ++echo "${as_me:-configure}:6880: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 ++ ++cf_save_LIBS="$LIBS" + +-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 "$as_me:6871: checking for tgoto in -lmytinfo" >&5 +-echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 +-if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lmytinfo $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 6879 "configure" ++#line 6885 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char tgoto (); ++#include <libutf8.h> + int + main () + { +-tgoto (); ++putwc(0,0); + ; + return 0; + } +@@ -6906,133 +6906,227 @@ + ac_status=$? + echo "$as_me:6907: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_mytinfo_tgoto=yes ++ ++ cf_cv_find_linkage_utf8=yes ++ cf_cv_header_path_utf8=/usr/include ++ cf_cv_library_path_utf8=/usr/lib ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_mytinfo_tgoto=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:6918: result: $ac_cv_lib_mytinfo_tgoto" >&5 +-echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 +-if test $ac_cv_lib_mytinfo_tgoto = yes; then +- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" +-fi + +- fi +- ;; +-esac +- +-LIBS="$cf_ncurses_LIBS $LIBS" +- +-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) +-then +- LIBS="-l$cf_nculib_root $LIBS" +-else ++LIBS="-lutf8 $cf_save_LIBS" + +- eval 'cf_cv_have_lib_'$cf_nculib_root'=no' +- cf_libdir="" +- echo "$as_me:6937: checking for initscr" >&5 +-echo $ECHO_N "checking for initscr... $ECHO_C" >&6 +-if test "${ac_cv_func_initscr+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 6943 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 6921 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char initscr (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char initscr (); +-char (*f) (); + ++#include <libutf8.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_initscr) || defined (__stub___initscr) +-choke me +-#else +-f = initscr; +-#endif +- ++putwc(0,0); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:6974: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:6934: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:6977: \$? = $ac_status" >&5 ++ echo "$as_me:6937: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:6980: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:6940: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:6983: \$? = $ac_status" >&5 ++ echo "$as_me:6943: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_initscr=yes ++ ++ cf_cv_find_linkage_utf8=yes ++ cf_cv_header_path_utf8=/usr/include ++ cf_cv_library_path_utf8=/usr/lib ++ cf_cv_library_file_utf8="-lutf8" ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_initscr=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ ++ cf_cv_find_linkage_utf8=no ++ LIBS="$cf_save_LIBS" ++ ++ test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 ++ ++echo "${as_me:-configure}:6960: testing find linkage for utf8 library ..." 1>&5 ++ ++echo "${as_me:-configure}:6962: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 ++ ++ cf_save_CPPFLAGS="$CPPFLAGS" ++ cf_test_CPPFLAGS="$CPPFLAGS" ++ ++cf_search= ++ ++# collect the current set of include-directories from compiler flags ++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 "x$cf_header_path" != "xNONE" && \ ++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 +-echo "$as_me:6993: result: $ac_cv_func_initscr" >&5 +-echo "${ECHO_T}$ac_cv_func_initscr" >&6 +-if test $ac_cv_func_initscr = yes; then +- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' +-else + +- cf_save_LIBS="$LIBS" +- echo "$as_me:7000: checking for initscr in -l$cf_nculib_root" >&5 +-echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 +- LIBS="-l$cf_nculib_root $LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 7004 "configure" ++# add the variations for the package we are looking for ++ ++cf_search= ++ ++test "x/usr" != "x$prefix" && \ ++test -d "/usr" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$prefix") && { ++ test -n "$verbose" && echo " ... testing for include-directories under /usr" ++ test -d /usr/include && cf_search="$cf_search /usr/include" ++ test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8" ++ test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include" ++ test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include" ++ test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8" ++} ++ ++test "x$prefix" != "xNONE" && \ ++test -d "$prefix" && \ ++ { ++ test -n "$verbose" && echo " ... testing for include-directories under $prefix" ++ test -d $prefix/include && cf_search="$cf_search $prefix/include" ++ test -d $prefix/include/utf8 && cf_search="$cf_search $prefix/include/utf8" ++ test -d $prefix/include/utf8/include && cf_search="$cf_search $prefix/include/utf8/include" ++ test -d $prefix/utf8/include && cf_search="$cf_search $prefix/utf8/include" ++ test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8" ++} ++ ++test "x/usr/local" != "x$prefix" && \ ++test -d "/usr/local" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$prefix") && { ++ test -n "$verbose" && echo " ... testing for include-directories under /usr/local" ++ test -d /usr/local/include && cf_search="$cf_search /usr/local/include" ++ test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8" ++ test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include" ++ test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include" ++ test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8" ++} ++ ++test "x/opt" != "x$prefix" && \ ++test -d "/opt" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$prefix") && { ++ test -n "$verbose" && echo " ... testing for include-directories under /opt" ++ test -d /opt/include && cf_search="$cf_search /opt/include" ++ test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8" ++ test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include" ++ test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include" ++ test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8" ++} ++ ++test "x$HOME" != "x$prefix" && \ ++test -d "$HOME" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$prefix") && { ++ test -n "$verbose" && echo " ... testing for include-directories under $HOME" ++ test -d $HOME/include && cf_search="$cf_search $HOME/include" ++ test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8" ++ test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include" ++ test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include" ++ test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8" ++} ++ ++test "$includedir" != NONE && \ ++test "$includedir" != "/usr/include" && \ ++test -d "$includedir" && { ++ test -d $includedir && cf_search="$cf_search $includedir" ++ test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8" ++} ++ ++test "$oldincludedir" != NONE && \ ++test "$oldincludedir" != "/usr/include" && \ ++test -d "$oldincludedir" && { ++ test -d $oldincludedir && cf_search="$cf_search $oldincludedir" ++ test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8" ++} ++ ++cf_search="$cf_search $cf_header_path_list" ++ ++ 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}:7075: 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 7079 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++ ++#include <libutf8.h> + int + main () + { +-initscr() ++putwc(0,0); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7016: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7092: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7019: \$? = $ac_status" >&5 ++ echo "$as_me:7095: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7022: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7098: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7025: \$? = $ac_status" >&5 ++ echo "$as_me:7101: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:7027: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + ++ test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6 ++ ++echo "${as_me:-configure}:7106: 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 "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:7034: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++ ++ CPPFLAGS="$cf_save_CPPFLAGS" ++ ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ fi ++ done ++ ++ if test "$cf_cv_find_linkage_utf8" = maybe ; then ++ ++echo "${as_me:-configure}:7124: 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="" +@@ -7043,15 +7137,15 @@ + -L*) + cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` + +-test "$cf_library_path" != "NONE" && \ ++test "x$cf_library_path" != "xNONE" && \ + 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" ++ 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" +@@ -7062,307 +7156,638 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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 -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8" ++ test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib" ++ test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib" ++ test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8" + } + +-test "$prefix" != "NONE" && \ ++test "x$prefix" != "xNONE" && \ + 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 -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 "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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 -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 "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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 -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 "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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 -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_libdir in $cf_search +- do +- echo "$as_me:7124: checking for -l$cf_nculib_root in $cf_libdir" >&5 +-echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 +- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 7128 "configure" ++ 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}:7221: 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 7227 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++ ++#include <libutf8.h> + int + main () + { +-initscr() ++putwc(0,0); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7140: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:7240: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:7143: \$? = $ac_status" >&5 ++ echo "$as_me:7243: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7146: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7246: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7149: \$? = $ac_status" >&5 ++ echo "$as_me:7249: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:7151: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' +- break ++ ++ test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6 ++ ++echo "${as_me:-configure}:7254: 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 "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:7158: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- LIBS="$cf_save_LIBS" ++ ++ CPPFLAGS="$cf_save_CPPFLAGS" ++ LIBS="$cf_save_LIBS" ++ LDFLAGS="$cf_save_LDFLAGS" ++ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- done ++ fi ++ done ++ CPPFLAGS="$cf_save_CPPFLAGS" ++ LDFLAGS="$cf_save_LDFLAGS" ++ fi ++ ++ else ++ cf_cv_find_linkage_utf8=no ++ fi + + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + + fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root ++LIBS="$cf_save_LIBS" + +-if test $cf_found_library = no ; then +- { { echo "$as_me:7173: error: Cannot link $cf_nculib_root library" >&5 +-echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} +- { (exit 1); exit 1; }; } ++if test "$cf_cv_find_linkage_utf8" = yes ; then ++cf_cv_utf8_lib=add-on ++else ++cf_cv_utf8_lib=no + fi + + fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:7296: result: $cf_cv_utf8_lib" >&5 ++echo "${ECHO_T}$cf_cv_utf8_lib" >&6 + +-if test -n "$cf_ncurses_LIBS" ; then +- echo "$as_me:7181: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 +-echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 +- 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" ++# 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_cv_header_path_utf8" ; then ++ for cf_add_incdir in $cf_cv_header_path_utf8 ++ do ++ while test $cf_add_incdir != /usr/include ++ do ++ if test -d $cf_add_incdir ++ then ++ cf_have_incdir=no ++ if test -n "$CFLAGS$CPPFLAGS" ; then ++ # a loop is needed to ensure we can add subdirs of existing dirs ++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do ++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then ++ cf_have_incdir=yes; break ++ fi ++ done + fi +- done +- cat >conftest.$ac_ext <<_ACEOF +-#line 7191 "configure" ++ ++ 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 <<_ACEOF ++#line 7331 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++#include <stdio.h> + int + main () + { +-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); ++printf("Hello") + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7203: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7343: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7206: \$? = $ac_status" >&5 ++ echo "$as_me:7346: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7209: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7349: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7212: \$? = $ac_status" >&5 ++ echo "$as_me:7352: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:7214: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:7219: result: no" >&5 ++cf_have_incdir=yes ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS=$cf_save_CPPFLAGS ++ fi ++ fi ++ fi ++ ++ if test "$cf_have_incdir" = no ; then ++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 ++ ++echo "${as_me:-configure}:7369: testing adding $cf_add_incdir to include-path ..." 1>&5 ++ ++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" ++ ++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'` ++ test "$cf_top_incdir" = "$cf_add_incdir" && break ++ cf_add_incdir="$cf_top_incdir" ++ else ++ break ++ fi ++ fi ++ done ++ done ++fi ++ ++if test -n "$cf_cv_library_path_utf8" ; then ++ for cf_add_libdir in $cf_cv_library_path_utf8 ++ do ++ if test $cf_add_libdir = /usr/lib ; then ++ : ++ elif test -d $cf_add_libdir ++ then ++ cf_have_libdir=no ++ if test -n "$LDFLAGS$LIBS" ; then ++ # a loop is needed to ensure we can add subdirs of existing dirs ++ for cf_test_libdir in $LDFLAGS $LIBS ; do ++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then ++ cf_have_libdir=yes; break ++ fi ++ done ++ fi ++ if test "$cf_have_libdir" = no ; then ++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 ++ ++echo "${as_me:-configure}:7403: testing adding $cf_add_libdir to library-path ..." 1>&5 ++ ++ LDFLAGS="-L$cf_add_libdir $LDFLAGS" ++ fi ++ fi ++ done ++fi ++ ++ LIBS="$cf_cv_library_file_utf8 $LIBS" ++fi ++ ++cf_ncuconfig_root=ncursesw ++ ++echo "Looking for ${cf_ncuconfig_root}-config" ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config ++ 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:7423: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$NCURSES_CONFIG"; then ++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # 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_NCURSES_CONFIG="$ac_tool_prefix$ac_prog" ++echo "$as_me:7438: found $ac_dir/$ac_word" >&5 ++break ++done ++ ++fi ++fi ++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG ++if test -n "$NCURSES_CONFIG"; then ++ echo "$as_me:7446: result: $NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$NCURSES_CONFIG" >&6 ++else ++ echo "$as_me:7449: result: no" >&5 + echo "${ECHO_T}no" >&6 +- LIBS="$cf_ncurses_SAVE" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ ++ test -n "$NCURSES_CONFIG" && break ++ done + fi ++if test -z "$NCURSES_CONFIG"; then ++ ac_ct_NCURSES_CONFIG=$NCURSES_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 "$as_me:7462: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_NCURSES_CONFIG"; then ++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # 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_NCURSES_CONFIG="$ac_prog" ++echo "$as_me:7477: found $ac_dir/$ac_word" >&5 ++break ++done + +-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++fi ++fi ++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG ++if test -n "$ac_ct_NCURSES_CONFIG"; then ++ echo "$as_me:7485: result: $ac_ct_NCURSES_CONFIG" >&5 ++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6 ++else ++ echo "$as_me:7488: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +-cat >>confdefs.h <<EOF +-#define $cf_nculib_ROOT 1 +-EOF ++ test -n "$ac_ct_NCURSES_CONFIG" && break ++done ++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none" + ++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG + fi + +- ;; +-ncursesw) +- cf_cv_libtype=w ++if test "$NCURSES_CONFIG" != none ; then + +-echo "$as_me:7238: 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 ++CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`" ++LIBS="`$NCURSES_CONFIG --libs` $LIBS" ++ ++# even with config script, some packages use no-override for curses.h ++ ++echo "$as_me:7506: checking if we have identified curses headers" >&5 ++echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +- cf_save_LIBS="$LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 7246 "configure" ++cf_cv_ncurses_header=none ++for cf_header in \ ++ ncursesw/ncurses.h \ ++ ncursesw/curses.h \ ++ ncurses.h \ ++ curses.h ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 7520 "configure" + #include "confdefs.h" +- +-#include <stdlib.h> ++#include <${cf_header}> + int + main () + { +-putwc(0,0); ++initscr(); tgoto("?", 0,0) + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7259: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7532: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7262: \$? = $ac_status" >&5 ++ echo "$as_me:7535: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7265: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7538: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7268: \$? = $ac_status" >&5 ++ echo "$as_me:7541: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_utf8_lib=yes ++ cf_cv_ncurses_header=$cf_header; break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++done + +-# 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= ++fi ++echo "$as_me:7552: result: $cf_cv_ncurses_header" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_header" >&6 + +-echo "${as_me:-configure}:7280: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 ++if test "$cf_cv_ncurses_header" = none ; then ++ { { echo "$as_me:7556: error: No curses header-files found" >&5 ++echo "$as_me: error: No curses header-files found" >&2;} ++ { (exit 1); exit 1; }; } ++fi + +-cf_save_LIBS="$LIBS" ++# cheat, to get the right #define's for HAVE_NCURSES_H, etc. + +-cat >conftest.$ac_ext <<_ACEOF +-#line 7285 "configure" ++for ac_header in $cf_cv_ncurses_header ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:7566: 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 7572 "configure" + #include "confdefs.h" ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:7576: \"$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:7582: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_ext ++fi ++echo "$as_me:7601: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++EOF + +-#include <libutf8.h> ++fi ++done ++ ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF ++ ++cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++cat >>confdefs.h <<EOF ++#define $cf_nculib_ROOT 1 ++EOF ++ ++cf_cv_ncurses_version=`$NCURSES_CONFIG --version` ++ ++else ++ ++cf_ncuhdr_root=ncursesw ++ ++test -n "$cf_cv_curses_dir" && \ ++test "$cf_cv_curses_dir" != "no" && { \ ++ ++if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then ++ for cf_add_incdir in $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 <<_ACEOF ++#line 7654 "configure" ++#include "confdefs.h" ++#include <stdio.h> + int + main () + { +-putwc(0,0); ++printf("Hello") + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7298: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7666: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7301: \$? = $ac_status" >&5 ++ echo "$as_me:7669: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7304: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7672: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7307: \$? = $ac_status" >&5 ++ echo "$as_me:7675: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_find_linkage_utf8=yes +- cf_cv_header_path_utf8=/usr/include +- cf_cv_library_path_utf8=/usr/lib +- ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_have_incdir=yes ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS=$cf_save_CPPFLAGS ++ fi ++ fi ++ fi + +-LIBS="-lutf8 $cf_save_LIBS" ++ if test "$cf_have_incdir" = no ; then ++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-cat >conftest.$ac_ext <<_ACEOF +-#line 7321 "configure" ++echo "${as_me:-configure}:7692: 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 ++ ++} ++ ++echo "$as_me:7709: checking for $cf_ncuhdr_root header in include-path" >&5 ++echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&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 ++ do ++ ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7721 "configure" + #include "confdefs.h" + +-#include <libutf8.h> ++#define _XOPEN_SOURCE_EXTENDED ++#undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */ ++#define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */ ++ ++#include <$cf_header> + int + main () + { +-putwc(0,0); ++ ++#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; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7334: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:7753: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7337: \$? = $ac_status" >&5 ++ echo "$as_me:7756: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7340: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:7759: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7343: \$? = $ac_status" >&5 ++ echo "$as_me:7762: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_find_linkage_utf8=yes +- cf_cv_header_path_utf8=/usr/include +- cf_cv_library_path_utf8=/usr/lib +- cf_cv_library_file_utf8="-lutf8" ++ cf_cv_ncurses_h=$cf_header + + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_cv_ncurses_h=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext + +- cf_cv_find_linkage_utf8=no +- LIBS="$cf_save_LIBS" ++ test "$cf_cv_ncurses_h" != no && break ++ done + +- test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 ++fi ++echo "$as_me:7777: result: $cf_cv_ncurses_h" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_h" >&6 + +-echo "${as_me:-configure}:7360: testing find linkage for utf8 library ..." 1>&5 ++if test "$cf_cv_ncurses_h" != no ; then ++ cf_cv_ncurses_header=$cf_cv_ncurses_h ++else + +-echo "${as_me:-configure}:7362: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 ++echo "$as_me:7784: checking for $cf_ncuhdr_root include-path" >&5 ++echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_h2+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +- cf_save_CPPFLAGS="$CPPFLAGS" +- cf_test_CPPFLAGS="$CPPFLAGS" ++ test -n "$verbose" && echo + + cf_search= + +@@ -7375,15 +7800,15 @@ + -I*) + cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` + +-test "$cf_header_path" != "NONE" && \ ++test "x$cf_header_path" != "xNONE" && \ + 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 -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" +@@ -7396,315 +7821,84 @@ + + cf_search= + +-test "/usr" != "$prefix" && \ ++test "x/usr" != "x$prefix" && \ + test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /usr" + test -d /usr/include && cf_search="$cf_search /usr/include" +- test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8" +- test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include" +- test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include" +- test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8" ++ test -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 "x$prefix" != "xNONE" && \ + test -d "$prefix" && \ + { + test -n "$verbose" && echo " ... testing for include-directories under $prefix" + test -d $prefix/include && cf_search="$cf_search $prefix/include" +- test -d $prefix/include/utf8 && cf_search="$cf_search $prefix/include/utf8" +- test -d $prefix/include/utf8/include && cf_search="$cf_search $prefix/include/utf8/include" +- test -d $prefix/utf8/include && cf_search="$cf_search $prefix/utf8/include" +- test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8" ++ test -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 "x/usr/local" != "x$prefix" && \ + test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /usr/local" + test -d /usr/local/include && cf_search="$cf_search /usr/local/include" +- test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8" +- test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include" +- test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include" +- test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8" ++ test -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 "x/opt" != "x$prefix" && \ + test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under /opt" + test -d /opt/include && cf_search="$cf_search /opt/include" +- test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8" +- test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include" +- test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include" +- test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8" ++ test -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 "x$HOME" != "x$prefix" && \ + test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$prefix") && { ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$prefix") && { + test -n "$verbose" && echo " ... testing for include-directories under $HOME" + test -d $HOME/include && cf_search="$cf_search $HOME/include" +- test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8" +- test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include" +- test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include" +- test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8" ++ test -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 "$includedir" != NONE && \ + test "$includedir" != "/usr/include" && \ + test -d "$includedir" && { + test -d $includedir && cf_search="$cf_search $includedir" +- test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8" ++ test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root" + } + + test "$oldincludedir" != NONE && \ + test "$oldincludedir" != "/usr/include" && \ + test -d "$oldincludedir" && { + test -d $oldincludedir && cf_search="$cf_search $oldincludedir" +- test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8" ++ test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root" + } + + cf_search="$cf_search $cf_header_path_list" + +- 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}:7475: 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 7479 "configure" +-#include "confdefs.h" +- +-#include <libutf8.h> +-int +-main () +-{ +-putwc(0,0); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7492: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:7495: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7498: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:7501: \$? = $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}:7506: 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 "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +- +- CPPFLAGS="$cf_save_CPPFLAGS" +- +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- fi +- done +- +- if test "$cf_cv_find_linkage_utf8" = maybe ; then +- +-echo "${as_me:-configure}:7524: 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 ++ test -n "$verbose" && echo search path $cf_search ++ cf_save2_CPPFLAGS="$CPPFLAGS" ++ for cf_incdir in $cf_search + do +- case $cf_library_path in #(vi +- -L*) +- cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` +- +-test "$cf_library_path" != "NONE" && \ +-test -d "$cf_library_path" && \ +- { +- test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" +- test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib" +- test -d $cf_library_path/lib/utf8 && cf_search="$cf_search $cf_library_path/lib/utf8" +- test -d $cf_library_path/lib/utf8/lib && cf_search="$cf_search $cf_library_path/lib/utf8/lib" +- test -d $cf_library_path/utf8/lib && cf_search="$cf_search $cf_library_path/utf8/lib" +- test -d $cf_library_path/utf8/lib/utf8 && cf_search="$cf_search $cf_library_path/utf8/lib/utf8" +-} +- +- cf_library_path_list="$cf_library_path_list $cf_search" +- ;; +- esac +- done +-fi +- +-cf_search= +- +-test "/usr" != "$prefix" && \ +-test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$prefix") && { +- test -n "$verbose" && echo " ... testing for lib-directories under /usr" +- test -d /usr/lib && cf_search="$cf_search /usr/lib" +- test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8" +- test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib" +- test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib" +- test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8" +-} +- +-test "$prefix" != "NONE" && \ +-test -d "$prefix" && \ +- { +- test -n "$verbose" && echo " ... testing for lib-directories under $prefix" +- test -d $prefix/lib && cf_search="$cf_search $prefix/lib" +- test -d $prefix/lib/utf8 && cf_search="$cf_search $prefix/lib/utf8" +- test -d $prefix/lib/utf8/lib && cf_search="$cf_search $prefix/lib/utf8/lib" +- test -d $prefix/utf8/lib && cf_search="$cf_search $prefix/utf8/lib" +- test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8" +-} +- +-test "/usr/local" != "$prefix" && \ +-test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$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 "/opt" != "$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 "$HOME" != "$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}:7621: 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 7627 "configure" +-#include "confdefs.h" +- +-#include <libutf8.h> +-int +-main () +-{ +-putwc(0,0); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:7640: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:7643: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:7646: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:7649: \$? = $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}:7654: 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 "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +- +- CPPFLAGS="$cf_save_CPPFLAGS" +- LIBS="$cf_save_LIBS" +- LDFLAGS="$cf_save_LDFLAGS" +- +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- fi +- done +- CPPFLAGS="$cf_save_CPPFLAGS" +- LDFLAGS="$cf_save_LDFLAGS" +- fi +- +- else +- cf_cv_find_linkage_utf8=no +- fi +- +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- +-LIBS="$cf_save_LIBS" +- +-if test "$cf_cv_find_linkage_utf8" = yes ; then +-cf_cv_utf8_lib=add-on +-else +-cf_cv_utf8_lib=no +-fi +- +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:7696: 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 +-# 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_cv_header_path_utf8" ; then +- for cf_add_incdir in $cf_cv_header_path_utf8 ++if test -n "$cf_incdir" ; then ++ for cf_add_incdir in $cf_incdir + do + while test $cf_add_incdir != /usr/include + do +@@ -7727,7 +7921,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 7730 "configure" ++#line 7924 "configure" + #include "confdefs.h" + #include <stdio.h> + int +@@ -7739,16 +7933,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7742: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:7936: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7745: \$? = $ac_status" >&5 ++ echo "$as_me:7939: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7748: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:7942: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7751: \$? = $ac_status" >&5 ++ echo "$as_me:7945: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -7765,7 +7959,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:7768: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:7962: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -7780,215 +7974,82 @@ + 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 ++ for cf_header in \ ++ ncurses.h \ ++ curses.h ++ do + +-echo "${as_me:-configure}:7802: testing adding $cf_add_libdir to library-path ..." 1>&5 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 7983 "configure" ++#include "confdefs.h" + +- LDFLAGS="-L$cf_add_libdir $LDFLAGS" +- fi +- fi +- done +-fi +- +- LIBS="$cf_cv_library_file_utf8 $LIBS" +-fi +- +-cf_ncuconfig_root=ncursesw +- +-echo "Looking for ${cf_ncuconfig_root}-config" +-for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-echo "$as_me:7820: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- case $NCURSES_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_NCURSES_CONFIG="$NCURSES_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_NCURSES_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:7837: found $ac_dir/$ac_word" >&5 +- break +-fi +-done +- +- ;; +-esac +-fi +-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG +- +-if test -n "$NCURSES_CONFIG"; then +- echo "$as_me:7848: result: $NCURSES_CONFIG" >&5 +-echo "${ECHO_T}$NCURSES_CONFIG" >&6 +-else +- echo "$as_me:7851: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- test -n "$NCURSES_CONFIG" && break +-done +-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none" +- +-if test "$NCURSES_CONFIG" != none ; then +- +-CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`" +-LIBS="`$NCURSES_CONFIG --libs` $LIBS" +- +-# even with config script, some packages use no-override for curses.h +- +-echo "$as_me:7866: checking if we have identified curses headers" >&5 +-echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_header+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- +-cf_cv_ncurses_header=none +-for cf_header in \ +- ncursesw/curses.h \ +- ncursesw/ncurses.h \ +- curses.h \ +- ncurses.h +-do +-cat >conftest.$ac_ext <<_ACEOF +-#line 7880 "configure" +-#include "confdefs.h" +-#include <${cf_header}> ++#include <$cf_header> + int + main () + { +-initscr(); tgoto("?", 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; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:7892: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8007: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:7895: \$? = $ac_status" >&5 ++ echo "$as_me:8010: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:7898: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8013: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:7901: \$? = $ac_status" >&5 ++ echo "$as_me:8016: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_header=$cf_header; break ++ cf_cv_ncurses_h2=$cf_header ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_cv_ncurses_h2=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-done +- +-fi +-echo "$as_me:7912: result: $cf_cv_ncurses_header" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_header" >&6 + +-if test "$cf_cv_ncurses_header" = none ; then +- { { echo "$as_me:7916: error: No curses header-files found" >&5 +-echo "$as_me: error: No curses header-files found" >&2;} ++ 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 "$as_me:8037: error: not found" >&5 ++echo "$as_me: error: not found" >&2;} + { (exit 1); exit 1; }; } +-fi +- +-# cheat, to get the right #define's for HAVE_NCURSES_H, etc. +- +-for ac_header in $cf_cv_ncurses_header +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:7926: 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 7932 "configure" +-#include "confdefs.h" +-#include <$ac_header> +-_ACEOF +-if { (eval echo "$as_me:7936: \"$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:7942: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- eval "$as_ac_Header=yes" +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- eval "$as_ac_Header=no" +-fi +-rm -f conftest.err conftest.$ac_ext +-fi +-echo "$as_me:7961: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-EOF + + fi +-done +- +-cat >>confdefs.h <<\EOF +-#define NCURSES 1 +-EOF +- +-cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +-cat >>confdefs.h <<EOF +-#define $cf_nculib_ROOT 1 +-EOF +- +-cf_cv_ncurses_version=`$NCURSES_CONFIG --version` +- +-else +- +-cf_ncuhdr_root=ncursesw ++echo "$as_me:8042: result: $cf_cv_ncurses_h2" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_h2" >&6 + +-test -n "$cf_cv_curses_dir" && \ +-test "$cf_cv_curses_dir" != "no" && { \ ++ 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_cv_curses_dir/include/$cf_ncuhdr_root" ; then +- for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root ++if test -n "$cf_1st_incdir" ; then ++ for cf_add_incdir in $cf_1st_incdir + do + while test $cf_add_incdir != /usr/include + do +@@ -8011,7 +8072,7 @@ + cf_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + cat >conftest.$ac_ext <<_ACEOF +-#line 8014 "configure" ++#line 8075 "configure" + #include "confdefs.h" + #include <stdio.h> + int +@@ -8023,16 +8084,16 @@ + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8026: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8087: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8029: \$? = $ac_status" >&5 ++ echo "$as_me:8090: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8032: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8093: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8035: \$? = $ac_status" >&5 ++ echo "$as_me:8096: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : + else +@@ -8049,7 +8110,7 @@ + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + +-echo "${as_me:-configure}:8052: testing adding $cf_add_incdir to include-path ..." 1>&5 ++echo "${as_me:-configure}:8113: testing adding $cf_add_incdir to include-path ..." 1>&5 + + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" + +@@ -8064,1639 +8125,1554 @@ + done + fi + +-} ++fi + +-echo "$as_me:8069: checking for $cf_ncuhdr_root header in include-path" >&5 +-echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_h+set}" = set; then ++# 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 "$as_me:8159: checking for terminfo header" >&5 ++echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 ++if test "${cf_cv_term_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 +- do ++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 + +- cat >conftest.$ac_ext <<_ACEOF +-#line 8081 "configure" ++for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 8177 "configure" + #include "confdefs.h" ++#include <stdio.h> ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <$cf_test> + +-#define _XOPEN_SOURCE_EXTENDED +-#undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */ +-#define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */ +- +-#include <$cf_header> + 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 +- ++int x = auto_left_margin + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8113: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:8192: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:8116: \$? = $ac_status" >&5 ++ echo "$as_me:8195: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8119: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8198: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8122: \$? = $ac_status" >&5 ++ echo "$as_me:8201: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_h=$cf_header + ++ cf_cv_term_header="$cf_test" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_ncurses_h=no ++ ++ cf_cv_term_header=unknown ++ + fi + rm -f conftest.$ac_objext conftest.$ac_ext +- +- test "$cf_cv_ncurses_h" != no && break +- done ++ test "$cf_cv_term_header" != unknown && break ++done + + fi +-echo "$as_me:8137: result: $cf_cv_ncurses_h" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_h" >&6 ++echo "$as_me:8217: result: $cf_cv_term_header" >&5 ++echo "${ECHO_T}$cf_cv_term_header" >&6 + +-if test "$cf_cv_ncurses_h" != no ; then +- cf_cv_ncurses_header=$cf_cv_ncurses_h +-else ++# Set definitions to allow ifdef'ing to accommodate subdirectories + +-echo "$as_me:8144: checking for $cf_ncuhdr_root include-path" >&5 +-echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_h2+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++case $cf_cv_term_header in # (vi ++*term.h) + +- test -n "$verbose" && echo ++cat >>confdefs.h <<\EOF ++#define HAVE_TERM_H 1 ++EOF + +-cf_search= ++ ;; ++esac + +-# collect the current set of include-directories from compiler flags +-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$,,'` ++case $cf_cv_term_header in # (vi ++ncurses/term.h) #(vi + +-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" +-} ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSES_TERM_H 1 ++EOF + +- cf_header_path_list="$cf_header_path_list $cf_search" +- ;; +- esac +- done +-fi ++ ;; ++ncursesw/term.h) + +-# add the variations for the package we are looking for ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSESW_TERM_H 1 ++EOF + +-cf_search= ++ ;; ++esac + +-test "/usr" != "$prefix" && \ +-test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$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" +-} ++# some applications need this, but should check for NCURSES_VERSION + +-test "$prefix" != "NONE" && \ +-test -d "$prefix" && \ +- { +- test -n "$verbose" && echo " ... testing for include-directories under $prefix" +- test -d $prefix/include && cf_search="$cf_search $prefix/include" +- test -d $prefix/include/$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" +-} ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF + +-test "/usr/local" != "$prefix" && \ +-test -d "/usr/local" && \ +-(test $prefix = NONE || test "/usr/local" != "$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" +-} ++echo "$as_me:8255: checking for ncurses version" >&5 ++echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_version+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +-test "/opt" != "$prefix" && \ +-test -d "/opt" && \ +-(test $prefix = NONE || test "/opt" != "$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" +-} ++ cf_cv_ncurses_version=no ++ cf_tempfile=out$$ ++ rm -f $cf_tempfile ++ if test "$cross_compiling" = yes; then + +-test "$HOME" != "$prefix" && \ +-test -d "$HOME" && \ +-(test $prefix = NONE || test "$HOME" != "$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" +-} ++ # This will not work if the preprocessor splits the line after the ++ # Autoconf token. The 'unproto' program does that. ++ cat > conftest.$ac_ext <<EOF ++#include <${cf_cv_ncurses_header:-curses.h}> ++#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 "$as_me:8281: \"$cf_try\"") >&5 ++ (eval $cf_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8284: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ 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 + +-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" +-} ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8294 "configure" ++#include "confdefs.h" + +-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" ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <stdio.h> ++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); + } ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:8319: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:8322: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:8324: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:8327: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + +-cf_search="$cf_search $cf_header_path_list" +- +- test -n "$verbose" && echo search path $cf_search +- cf_save2_CPPFLAGS="$CPPFLAGS" +- for cf_incdir in $cf_search +- do ++ cf_cv_ncurses_version=`cat $cf_tempfile` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++fi ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ rm -f $cf_tempfile + +-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 ++fi ++echo "$as_me:8341: result: $cf_cv_ncurses_version" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_version" >&6 ++test "$cf_cv_ncurses_version" = no || ++cat >>confdefs.h <<\EOF ++#define NCURSES 1 ++EOF + +- 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 <<_ACEOF +-#line 8284 "configure" ++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 "$as_me:8354: 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 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lgpm $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 8362 "configure" + #include "confdefs.h" +-#include <stdio.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char Gpm_Open (); + int + main () + { +-printf("Hello") ++Gpm_Open (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8296: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:8381: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8299: \$? = $ac_status" >&5 ++ echo "$as_me:8384: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8302: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:8387: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8305: \$? = $ac_status" >&5 ++ echo "$as_me:8390: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ ac_cv_lib_gpm_Gpm_Open=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_have_incdir=yes ++ac_cv_lib_gpm_Gpm_Open=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS=$cf_save_CPPFLAGS +- fi +- fi +- fi +- +- if test "$cf_have_incdir" = no ; then +- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 +- +-echo "${as_me:-configure}:8322: 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 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +- +- for cf_header in \ +- ncurses.h \ +- curses.h +- do +- +- cat >conftest.$ac_ext <<_ACEOF +-#line 8343 "configure" ++echo "$as_me:8401: 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 ++ echo "$as_me:8404: checking for initscr in -lgpm" >&5 ++echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 ++if test "${ac_cv_lib_gpm_initscr+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lgpm $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 8412 "configure" + #include "confdefs.h" + +-#include <$cf_header> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () + { +- +-#ifdef NCURSES_VERSION +- +-printf("%s\n", NCURSES_VERSION); +-#else +-#ifdef __NCURSES_H +-printf("old\n"); +-#else +- make an error +-#endif +-#endif +- ++initscr (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8367: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:8431: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8370: \$? = $ac_status" >&5 ++ echo "$as_me:8434: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8373: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:8437: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8376: \$? = $ac_status" >&5 ++ echo "$as_me:8440: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_h2=$cf_header +- ++ ac_cv_lib_gpm_initscr=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_ncurses_h2=no ++ac_cv_lib_gpm_initscr=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- +- 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 "$as_me:8397: error: not found" >&5 +-echo "$as_me: error: not found" >&2;} +- { (exit 1); exit 1; }; } +- ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:8451: result: $ac_cv_lib_gpm_initscr" >&5 ++echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 ++if test $ac_cv_lib_gpm_initscr = yes; then ++ LIBS="$cf_ncurses_SAVE" ++else ++ cf_ncurses_LIBS="-lgpm" + fi +-echo "$as_me:8402: result: $cf_cv_ncurses_h2" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_h2" >&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 + +-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 ++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 <<_ACEOF +-#line 8435 "configure" ++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 "$as_me:8466: checking for tgoto in -lmytinfo" >&5 ++echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 ++if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lmytinfo $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 8474 "configure" + #include "confdefs.h" +-#include <stdio.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char tgoto (); + int + main () + { +-printf("Hello") ++tgoto (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8447: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:8493: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8450: \$? = $ac_status" >&5 ++ echo "$as_me:8496: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8453: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:8499: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8456: \$? = $ac_status" >&5 ++ echo "$as_me:8502: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ ac_cv_lib_mytinfo_tgoto=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_have_incdir=yes ++ac_cv_lib_mytinfo_tgoto=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- CPPFLAGS=$cf_save_CPPFLAGS +- fi +- fi +- fi +- +- if test "$cf_have_incdir" = no ; then +- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 +- +-echo "${as_me:-configure}:8473: 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 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +- ++echo "$as_me:8513: result: $ac_cv_lib_mytinfo_tgoto" >&5 ++echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 ++if test $ac_cv_lib_mytinfo_tgoto = yes; then ++ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" + 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 +- ++ fi + ;; + 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 ++LIBS="$cf_ncurses_LIBS $LIBS" + +- ;; +-esac ++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) ++then ++ LIBS="-l$cf_nculib_root $LIBS" ++else + +-echo "$as_me:8516: checking for terminfo header" >&5 +-echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 +-if test "${cf_cv_term_header+set}" = set; then ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=no' ++ cf_libdir="" ++ echo "$as_me:8532: checking for initscr" >&5 ++echo $ECHO_N "checking for initscr... $ECHO_C" >&6 ++if test "${ac_cv_func_initscr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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" +-do +-cat >conftest.$ac_ext <<_ACEOF +-#line 8534 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8538 "configure" + #include "confdefs.h" +-#include <stdio.h> +-#include <${cf_cv_ncurses_header:-curses.h}> +-#include <$cf_test> ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char initscr (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char initscr (); ++char (*f) (); + + int + main () + { +-int x = auto_left_margin ++/* 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 ++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:8549: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:8569: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8552: \$? = $ac_status" >&5 ++ echo "$as_me:8572: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:8555: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:8575: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8558: \$? = $ac_status" >&5 ++ echo "$as_me:8578: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- +- cf_cv_term_header="$cf_test" ++ ac_cv_func_initscr=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +- +- cf_cv_term_header=unknown +- ++ac_cv_func_initscr=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- test "$cf_cv_term_header" != unknown && break +-done +- ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +-echo "$as_me:8574: result: $cf_cv_term_header" >&5 +-echo "${ECHO_T}$cf_cv_term_header" >&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 "$as_me:8608: checking for ncurses version" >&5 +-echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_version+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 ++echo "$as_me:8588: result: $ac_cv_func_initscr" >&5 ++echo "${ECHO_T}$ac_cv_func_initscr" >&6 ++if test $ac_cv_func_initscr = yes; then ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + 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 <<EOF +-#include <${cf_cv_ncurses_header:-curses.h}> +-#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 "$as_me:8634: \"$cf_try\"") >&5 +- (eval $cf_try) 2>&5 +- ac_status=$? +- echo "$as_me:8637: \$? = $ac_status" >&5 +- (exit $ac_status); } +- 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 <<_ACEOF +-#line 8647 "configure" ++ cf_save_LIBS="$LIBS" ++ echo "$as_me:8595: checking for initscr in -l$cf_nculib_root" >&5 ++echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 ++ LIBS="-l$cf_nculib_root $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8599 "configure" + #include "confdefs.h" +- + #include <${cf_cv_ncurses_header:-curses.h}> +-#include <stdio.h> +-int main() ++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); ++initscr() ++ ; ++ return 0; + } + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:8672: \"$ac_link\"") >&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:8611: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8675: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:8677: \"$ac_try\"") >&5 ++ echo "$as_me:8614: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:8617: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8680: \$? = $ac_status" >&5 ++ echo "$as_me:8620: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ++ echo "$as_me:8622: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + +- cf_cv_ncurses_version=`cat $cf_tempfile` + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi +- rm -f $cf_tempfile ++echo "$as_me:8629: result: no" >&5 ++echo "${ECHO_T}no" >&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 "x$cf_library_path" != "xNONE" && \ ++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 +-echo "$as_me:8694: result: $cf_cv_ncurses_version" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_version" >&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 "$as_me:8706: 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 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lgpm $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 8714 "configure" +-#include "confdefs.h" ++cf_search= + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char Gpm_Open (); ++test "x/usr" != "x$prefix" && \ ++test -d "/usr" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr" != "x$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 "x$prefix" != "xNONE" && \ ++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 "x/usr/local" != "x$prefix" && \ ++test -d "/usr/local" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/usr/local" != "x$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 "x/opt" != "x$prefix" && \ ++test -d "/opt" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x/opt" != "x$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 "x$HOME" != "x$prefix" && \ ++test -d "$HOME" && \ ++(test -z "$prefix" || test x$prefix = xNONE || test "x$HOME" != "x$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" ++} ++ ++cf_search="$cf_library_path_list $cf_search" ++ ++ for cf_libdir in $cf_search ++ do ++ echo "$as_me:8719: checking for -l$cf_nculib_root in $cf_libdir" >&5 ++echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 ++ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8723 "configure" ++#include "confdefs.h" ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-Gpm_Open (); ++initscr() + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8733: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8735: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8736: \$? = $ac_status" >&5 ++ echo "$as_me:8738: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8739: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8741: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8742: \$? = $ac_status" >&5 ++ echo "$as_me:8744: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_gpm_Gpm_Open=yes ++ echo "$as_me:8746: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' ++ break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_gpm_Gpm_Open=no ++echo "$as_me:8753: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ LIBS="$cf_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++ done ++ + fi +-echo "$as_me:8753: 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 +- echo "$as_me:8756: checking for initscr in -lgpm" >&5 +-echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 +-if test "${ac_cv_lib_gpm_initscr+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lgpm $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 8764 "configure" +-#include "confdefs.h" ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 () +-{ +-initscr (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8783: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:8786: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8789: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:8792: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_gpm_initscr=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_lib_gpm_initscr=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:8803: result: $ac_cv_lib_gpm_initscr" >&5 +-echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 +-if test $ac_cv_lib_gpm_initscr = yes; then +- LIBS="$cf_ncurses_SAVE" +-else +- cf_ncurses_LIBS="-lgpm" ++ ++eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root ++ ++if test $cf_found_library = no ; then ++ { { echo "$as_me:8768: error: Cannot link $cf_nculib_root library" >&5 ++echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} ++ { (exit 1); exit 1; }; } + fi + + 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 "$as_me:8818: checking for tgoto in -lmytinfo" >&5 +-echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 +-if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lmytinfo $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 8826 "configure" ++if test -n "$cf_ncurses_LIBS" ; then ++ echo "$as_me:8776: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 ++echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 ++ 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 <<_ACEOF ++#line 8786 "configure" + #include "confdefs.h" +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char tgoto (); ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-tgoto (); ++initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8845: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8798: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8848: \$? = $ac_status" >&5 ++ echo "$as_me:8801: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8851: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8804: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8854: \$? = $ac_status" >&5 ++ echo "$as_me:8807: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_mytinfo_tgoto=yes ++ echo "$as_me:8809: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_mytinfo_tgoto=no ++echo "$as_me:8814: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ LIBS="$cf_ncurses_SAVE" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:8865: result: $ac_cv_lib_mytinfo_tgoto" >&5 +-echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 +-if test $ac_cv_lib_mytinfo_tgoto = yes; then +- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" ++ ++cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++cat >>confdefs.h <<EOF ++#define $cf_nculib_ROOT 1 ++EOF ++ + fi + +- fi + ;; +-esac ++pdcurses) ++ echo "$as_me:8831: checking for X" >&5 ++echo $ECHO_N "checking for X... $ECHO_C" >&6 + +-LIBS="$cf_ncurses_LIBS $LIBS" ++# Check whether --with-x or --without-x was given. ++if test "${with_x+set}" = set; then ++ withval="$with_x" + +-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) +-then +- LIBS="-l$cf_nculib_root $LIBS" ++fi; ++# $have_x is `yes', `no', `disabled', or empty when we do not yet know. ++if test "x$with_x" = xno; then ++ # The user explicitly disabled X. ++ have_x=disabled + else +- +- eval 'cf_cv_have_lib_'$cf_nculib_root'=no' +- cf_libdir="" +- echo "$as_me:8884: checking for initscr" >&5 +-echo $ECHO_N "checking for initscr... $ECHO_C" >&6 +-if test "${ac_cv_func_initscr+set}" = set; then ++ if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then ++ # Both variables are already set. ++ have_x=yes ++ else ++ if test "${ac_cv_have_x+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else ++ # One or both of the vars are not set, and there is no cached value. ++ac_x_includes=no ac_x_libraries=no ++rm -fr conftest.dir ++if mkdir conftest.dir; then ++ cd conftest.dir ++ # Make sure to not put "make" in the Imakefile rules, since we grep it out. ++ cat >Imakefile <<'EOF' ++acfindx: ++ @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' ++EOF ++ if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then ++ # GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++ eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` ++ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. ++ for ac_extension in a so sl dylib dll; do ++ if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ++ test -f $ac_im_libdir/libX11.$ac_extension; then ++ ac_im_usrlibdir=$ac_im_libdir; break ++ fi ++ done ++ # Screen out bogus values from the imake configuration. They are ++ # bogus both because they are the default anyway, and because ++ # using them would break gcc on systems where it needs fixed includes. ++ case $ac_im_incroot in ++ /usr/include) ;; ++ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; ++ esac ++ case $ac_im_usrlibdir in ++ /usr/lib | /lib) ;; ++ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; ++ esac ++ fi ++ cd .. ++ rm -fr conftest.dir ++fi ++ ++# Standard set of common directories for X headers. ++# Check X11 before X11Rn because it is often a symlink to the current release. ++ac_x_header_dirs=' ++/usr/X11/include ++/usr/X11R6/include ++/usr/X11R5/include ++/usr/X11R4/include ++ ++/usr/include/X11 ++/usr/include/X11R6 ++/usr/include/X11R5 ++/usr/include/X11R4 ++ ++/usr/local/X11/include ++/usr/local/X11R6/include ++/usr/local/X11R5/include ++/usr/local/X11R4/include ++ ++/usr/local/include/X11 ++/usr/local/include/X11R6 ++/usr/local/include/X11R5 ++/usr/local/include/X11R4 ++ ++/usr/X386/include ++/usr/x386/include ++/usr/XFree86/include/X11 ++ ++/usr/include ++/usr/local/include ++/usr/unsupported/include ++/usr/athena/include ++/usr/local/x11r5/include ++/usr/lpp/Xamples/include ++ ++/usr/openwin/include ++/usr/openwin/share/include' ++ ++if test "$ac_x_includes" = no; then ++ # Guess where to find include files, by looking for Intrinsic.h. ++ # First, try using that file with no special directory specified. + cat >conftest.$ac_ext <<_ACEOF +-#line 8890 "configure" ++#line 8928 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char initscr (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char initscr (); +-char (*f) (); ++#include <X11/Intrinsic.h> ++_ACEOF ++if { (eval echo "$as_me:8932: \"$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:8938: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ # We can compile using X headers with no special include directory. ++ac_x_includes= ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ for ac_dir in $ac_x_header_dirs; do ++ if test -r "$ac_dir/X11/Intrinsic.h"; then ++ ac_x_includes=$ac_dir ++ break ++ fi ++done ++fi ++rm -f conftest.err conftest.$ac_ext ++fi # $ac_x_includes = no + ++if test "$ac_x_libraries" = no; then ++ # Check for the libraries. ++ # See if we find them without any special options. ++ # Don't add to $LIBS permanently. ++ ac_save_LIBS=$LIBS ++ LIBS="-lXt $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 8971 "configure" ++#include "confdefs.h" ++#include <X11/Intrinsic.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_initscr) || defined (__stub___initscr) +-choke me +-#else +-f = initscr; +-#endif +- ++XtMalloc (0) + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8921: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:8983: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8924: \$? = $ac_status" >&5 ++ echo "$as_me:8986: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8927: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:8989: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8930: \$? = $ac_status" >&5 ++ echo "$as_me:8992: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_initscr=yes ++ LIBS=$ac_save_LIBS ++# We can link X programs with no special library path. ++ac_x_libraries= + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_initscr=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:8940: result: $ac_cv_func_initscr" >&5 +-echo "${ECHO_T}$ac_cv_func_initscr" >&6 +-if test $ac_cv_func_initscr = yes; then +- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' +-else +- +- cf_save_LIBS="$LIBS" +- echo "$as_me:8947: checking for initscr in -l$cf_nculib_root" >&5 +-echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 +- LIBS="-l$cf_nculib_root $LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 8951 "configure" ++LIBS=$ac_save_LIBS ++for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` ++do ++ # Don't even attempt the hair of trying to link an X program! ++ for ac_extension in a so sl dylib dll; do ++ if test -r $ac_dir/libXt.$ac_extension; then ++ ac_x_libraries=$ac_dir ++ break 2 ++ fi ++ done ++done ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi # $ac_x_libraries = no ++ ++if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then ++ # Didn't find X anywhere. Cache the known absence of X. ++ ac_cv_have_x="have_x=no" ++else ++ # Record where we found X for the cache. ++ ac_cv_have_x="have_x=yes \ ++ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" ++fi ++fi ++ ++ fi ++ eval "$ac_cv_have_x" ++fi # $with_x != no ++ ++if test "$have_x" != yes; then ++ echo "$as_me:9030: result: $have_x" >&5 ++echo "${ECHO_T}$have_x" >&6 ++ no_x=yes ++else ++ # If each of the values was on the command line, it overrides each guess. ++ test "x$x_includes" = xNONE && x_includes=$ac_x_includes ++ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries ++ # Update the cache value to reflect the command line values. ++ ac_cv_have_x="have_x=yes \ ++ ac_x_includes=$x_includes ac_x_libraries=$x_libraries" ++ echo "$as_me:9040: result: libraries $x_libraries, headers $x_includes" >&5 ++echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 ++fi ++ ++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 ++ ++ 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 "$as_me:9064: checking whether -R must be followed by a space" >&5 ++echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 ++ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9068 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++ + int + main () + { +-initscr() ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:8963: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9080: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:8966: \$? = $ac_status" >&5 ++ echo "$as_me:9083: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:8969: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9086: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:8972: \$? = $ac_status" >&5 ++ echo "$as_me:9089: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:8974: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' +- ++ ac_R_nospace=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:8981: result: no" >&5 +-echo "${ECHO_T}no" >&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 ++ac_R_nospace=no + fi +- +-cf_search= +- +-test "/usr" != "$prefix" && \ +-test -d "/usr" && \ +-(test $prefix = NONE || test "/usr" != "$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 "/usr/local" != "$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 "/opt" != "$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 "$HOME" != "$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" +-} +- +-cf_search="$cf_library_path_list $cf_search" +- +- for cf_libdir in $cf_search +- do +- echo "$as_me:9071: checking for -l$cf_nculib_root in $cf_libdir" >&5 +-echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 +- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 9075 "configure" ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ if test $ac_R_nospace = yes; then ++ echo "$as_me:9099: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ X_LIBS="$X_LIBS -R$x_libraries" ++ else ++ LIBS="$ac_xsave_LIBS -R $x_libraries" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9105 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++ + int + main () + { +-initscr() ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9087: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9117: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9090: \$? = $ac_status" >&5 ++ echo "$as_me:9120: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9093: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9123: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9096: \$? = $ac_status" >&5 ++ echo "$as_me:9126: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:9098: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' +- break ++ ac_R_space=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:9105: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- LIBS="$cf_save_LIBS" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- done +- ++ac_R_space=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ if test $ac_R_space = yes; then ++ echo "$as_me:9136: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ X_LIBS="$X_LIBS -R $x_libraries" ++ else ++ echo "$as_me:9140: result: neither works" >&5 ++echo "${ECHO_T}neither works" >&6 ++ fi ++ fi ++ LIBS=$ac_xsave_LIBS ++ esac ++ fi + +-fi +- +-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root +- +-if test $cf_found_library = no ; then +- { { echo "$as_me:9120: error: Cannot link $cf_nculib_root library" >&5 +-echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +-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 -n "$cf_ncurses_LIBS" ; then +- echo "$as_me:9128: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 +-echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 +- 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 <<_ACEOF +-#line 9138 "configure" ++ if test "$ISC" = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" ++ else ++ # Martyn Johnson says this is needed for Ultrix, if the X ++ # libraries were built with DECnet support. And Karl Berry says ++ # the Alpha needs dnet_stub (dnet does not exist). ++ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9160 "configure" + #include "confdefs.h" +-#include <${cf_cv_ncurses_header:-curses.h}> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () + { +-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); ++XOpenDisplay (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9150: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9179: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9153: \$? = $ac_status" >&5 ++ echo "$as_me:9182: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9156: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9185: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9159: \$? = $ac_status" >&5 ++ echo "$as_me:9188: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- echo "$as_me:9161: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:9166: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- LIBS="$cf_ncurses_SAVE" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +- +-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +-cat >>confdefs.h <<EOF +-#define $cf_nculib_ROOT 1 +-EOF +- +-fi ++echo "$as_me:9194: checking for dnet_ntoa in -ldnet" >&5 ++echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 ++if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldnet $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 9202 "configure" ++#include "confdefs.h" + +- ;; +-pdcurses) #(vi +- +-echo "$as_me:9184: 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:9194: 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 +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +-echo "$as_me:9205: 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 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dnet_ntoa (); ++int ++main () ++{ ++dnet_ntoa (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:9221: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:9224: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:9227: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:9230: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_dnet_dnet_ntoa=yes + 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:9222: found $ac_dir/$ac_word" >&5 +- break ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_lib_dnet_dnet_ntoa=no + fi +-done +- +- ;; +-esac ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +-PKG_CONFIG=$ac_cv_path_PKG_CONFIG +- +-if test -n "$PKG_CONFIG"; then +- echo "$as_me:9233: result: $PKG_CONFIG" >&5 +-echo "${ECHO_T}$PKG_CONFIG" >&6 +-else +- echo "$as_me:9236: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++echo "$as_me:9241: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 ++echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 ++if test $ac_cv_lib_dnet_dnet_ntoa = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" + fi + +-fi +-if test -z "$ac_cv_path_PKG_CONFIG"; then +- ac_pt_PKG_CONFIG=$PKG_CONFIG +- # 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:9245: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then ++ if test $ac_cv_lib_dnet_dnet_ntoa = no; then ++ echo "$as_me:9248: checking for dnet_ntoa in -ldnet_stub" >&5 ++echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 ++if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- case $ac_pt_PKG_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_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_ac_pt_PKG_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:9262: found $ac_dir/$ac_word" >&5 +- break +-fi +-done +- +- test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none" +- ;; +-esac +-fi +-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldnet_stub $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 9256 "configure" ++#include "confdefs.h" + +-if test -n "$ac_pt_PKG_CONFIG"; then +- echo "$as_me:9274: result: $ac_pt_PKG_CONFIG" >&5 +-echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dnet_ntoa (); ++int ++main () ++{ ++dnet_ntoa (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:9275: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:9278: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:9281: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:9284: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_dnet_stub_dnet_ntoa=yes + else +- echo "$as_me:9277: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_lib_dnet_stub_dnet_ntoa=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:9295: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 ++echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 ++if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" + fi + +- PKG_CONFIG=$ac_pt_PKG_CONFIG +-else +- PKG_CONFIG="$ac_cv_path_PKG_CONFIG" ++ fi + fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ LIBS="$ac_xsave_LIBS" + +- ;; +-*) +- PKG_CONFIG=$withval +- ;; +-esac ++ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, ++ # to get the SysV transport functions. ++ # Chad R. Larson 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 T.E. Dickey. ++ # The functions gethostbyname, getservbyname, and inet_addr are ++ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. ++ echo "$as_me:9314: checking for gethostbyname" >&5 ++echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 ++if test "${ac_cv_func_gethostbyname+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9320 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char gethostbyname (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (*f) (); + +-test -z "$PKG_CONFIG" && PKG_CONFIG=none +-if test "$PKG_CONFIG" != none ; then ++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 ++f = gethostbyname; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif + +-if test "x$prefix" != xNONE; then +- cf_path_syntax="$prefix" ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:9351: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:9354: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:9357: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:9360: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_gethostbyname=yes + else +- cf_path_syntax="$ac_default_prefix" ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_func_gethostbyname=no + 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:9320: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 +-echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;} +- { (exit 1); exit 1; }; } +- ;; +-esac +- ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi ++echo "$as_me:9370: result: $ac_cv_func_gethostbyname" >&5 ++echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 + +-echo "$as_me:9328: checking for X" >&5 +-echo $ECHO_N "checking for X... $ECHO_C" >&6 +- +-# Check whether --with-x or --without-x was given. +-if test "${with_x+set}" = set; then +- withval="$with_x" +- +-fi; +-# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +-if test "x$with_x" = xno; then +- # The user explicitly disabled X. +- have_x=disabled +-else +- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then +- # Both variables are already set. +- have_x=yes +- else +- if test "${ac_cv_have_x+set}" = set; then ++ if test $ac_cv_func_gethostbyname = no; then ++ echo "$as_me:9374: checking for gethostbyname in -lnsl" >&5 ++echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 ++if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- # One or both of the vars are not set, and there is no cached value. +-ac_x_includes=no ac_x_libraries=no +-rm -fr conftest.dir +-if mkdir conftest.dir; then +- cd conftest.dir +- # Make sure to not put "make" in the Imakefile rules, since we grep it out. +- cat >Imakefile <<'EOF' +-acfindx: +- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +-EOF +- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then +- # GNU make sometimes prints "make[1]: Entering...", which would confuse us. +- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` +- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. +- for ac_extension in a so sl dylib dll; do +- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && +- test -f $ac_im_libdir/libX11.$ac_extension; then +- ac_im_usrlibdir=$ac_im_libdir; break +- fi +- done +- # Screen out bogus values from the imake configuration. They are +- # bogus both because they are the default anyway, and because +- # using them would break gcc on systems where it needs fixed includes. +- case $ac_im_incroot in +- /usr/include) ;; +- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; +- esac +- case $ac_im_usrlibdir in +- /usr/lib | /lib) ;; +- *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; +- esac +- fi +- cd .. +- rm -fr conftest.dir +-fi +- +-# Standard set of common directories for X headers. +-# Check X11 before X11Rn because it is often a symlink to the current release. +-ac_x_header_dirs=' +-/usr/X11/include +-/usr/X11R6/include +-/usr/X11R5/include +-/usr/X11R4/include +- +-/usr/include/X11 +-/usr/include/X11R6 +-/usr/include/X11R5 +-/usr/include/X11R4 +- +-/usr/local/X11/include +-/usr/local/X11R6/include +-/usr/local/X11R5/include +-/usr/local/X11R4/include +- +-/usr/local/include/X11 +-/usr/local/include/X11R6 +-/usr/local/include/X11R5 +-/usr/local/include/X11R4 +- +-/usr/X386/include +-/usr/x386/include +-/usr/XFree86/include/X11 +- +-/usr/include +-/usr/local/include +-/usr/unsupported/include +-/usr/athena/include +-/usr/local/x11r5/include +-/usr/lpp/Xamples/include +- +-/usr/openwin/include +-/usr/openwin/share/include' +- +-if test "$ac_x_includes" = no; then +- # Guess where to find include files, by looking for Intrinsic.h. +- # First, try using that file with no special directory specified. +- cat >conftest.$ac_ext <<_ACEOF +-#line 9425 "configure" ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lnsl $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 9382 "configure" + #include "confdefs.h" +-#include <X11/Intrinsic.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char gethostbyname (); ++int ++main () ++{ ++gethostbyname (); ++ ; ++ return 0; ++} + _ACEOF +-if { (eval echo "$as_me:9429: \"$ac_cpp conftest.$ac_ext\"") >&5 +- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:9401: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- egrep -v '^ *\+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:9435: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- # We can compile using X headers with no special include directory. +-ac_x_includes= ++ echo "$as_me:9404: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:9407: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:9410: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_nsl_gethostbyname=yes + else + echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- for ac_dir in $ac_x_header_dirs; do +- if test -r "$ac_dir/X11/Intrinsic.h"; then +- ac_x_includes=$ac_dir +- break +- fi +-done ++cat conftest.$ac_ext >&5 ++ac_cv_lib_nsl_gethostbyname=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:9421: result: $ac_cv_lib_nsl_gethostbyname" >&5 ++echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 ++if test $ac_cv_lib_nsl_gethostbyname = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" + fi +-rm -f conftest.err conftest.$ac_ext +-fi # $ac_x_includes = no + +-if test "$ac_x_libraries" = no; then +- # Check for the libraries. +- # See if we find them without any special options. +- # Don't add to $LIBS permanently. +- ac_save_LIBS=$LIBS +- LIBS="-lXt $LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-#line 9468 "configure" ++ if test $ac_cv_lib_nsl_gethostbyname = no; then ++ echo "$as_me:9428: checking for gethostbyname in -lbsd" >&5 ++echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 ++if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lbsd $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 9436 "configure" + #include "confdefs.h" +-#include <X11/Intrinsic.h> ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char gethostbyname (); + int + main () + { +-XtMalloc (0) ++gethostbyname (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9480: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9455: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9483: \$? = $ac_status" >&5 ++ echo "$as_me:9458: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9486: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9461: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9489: \$? = $ac_status" >&5 ++ echo "$as_me:9464: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- LIBS=$ac_save_LIBS +-# We can link X programs with no special library path. +-ac_x_libraries= ++ ac_cv_lib_bsd_gethostbyname=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-LIBS=$ac_save_LIBS +-for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +-do +- # Don't even attempt the hair of trying to link an X program! +- for ac_extension in a so sl dylib dll; do +- if test -r $ac_dir/libXt.$ac_extension; then +- ac_x_libraries=$ac_dir +- break 2 +- fi +- done +-done ++ac_cv_lib_bsd_gethostbyname=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi # $ac_x_libraries = no +- +-if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then +- # Didn't find X anywhere. Cache the known absence of X. +- ac_cv_have_x="have_x=no" +-else +- # Record where we found X for the cache. +- ac_cv_have_x="have_x=yes \ +- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +-fi ++LIBS=$ac_check_lib_save_LIBS + fi +- +- fi +- eval "$ac_cv_have_x" +-fi # $with_x != no +- +-if test "$have_x" != yes; then +- echo "$as_me:9527: result: $have_x" >&5 +-echo "${ECHO_T}$have_x" >&6 +- no_x=yes +-else +- # If each of the values was on the command line, it overrides each guess. +- test "x$x_includes" = xNONE && x_includes=$ac_x_includes +- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries +- # Update the cache value to reflect the command line values. +- ac_cv_have_x="have_x=yes \ +- ac_x_includes=$x_includes ac_x_libraries=$x_libraries" +- echo "$as_me:9537: result: libraries $x_libraries, headers $x_includes" >&5 +-echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 ++echo "$as_me:9475: result: $ac_cv_lib_bsd_gethostbyname" >&5 ++echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 ++if test $ac_cv_lib_bsd_gethostbyname = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" + fi + +-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 ++ fi ++ fi + +- X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= ++ # 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 Leinen: 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 "$as_me:9491: checking for connect" >&5 ++echo $ECHO_N "checking for connect... $ECHO_C" >&6 ++if test "${ac_cv_func_connect+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + 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 "$as_me:9561: checking whether -R must be followed by a space" >&5 +-echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 +- ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" +- cat >conftest.$ac_ext <<_ACEOF +-#line 9565 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9497 "configure" + #include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char connect (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (*f) (); + + 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) ++choke me ++#else ++f = connect; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif + + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9577: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9528: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9580: \$? = $ac_status" >&5 ++ echo "$as_me:9531: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9583: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9534: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9586: \$? = $ac_status" >&5 ++ echo "$as_me:9537: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_R_nospace=yes ++ ac_cv_func_connect=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_R_nospace=no ++ac_cv_func_connect=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- if test $ac_R_nospace = yes; then +- echo "$as_me:9596: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- X_LIBS="$X_LIBS -R$x_libraries" +- else +- LIBS="$ac_xsave_LIBS -R $x_libraries" +- cat >conftest.$ac_ext <<_ACEOF +-#line 9602 "configure" ++fi ++echo "$as_me:9547: result: $ac_cv_func_connect" >&5 ++echo "${ECHO_T}$ac_cv_func_connect" >&6 ++ ++ if test $ac_cv_func_connect = no; then ++ echo "$as_me:9551: checking for connect in -lsocket" >&5 ++echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 ++if test "${ac_cv_lib_socket_connect+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsocket $X_EXTRA_LIBS $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 9559 "configure" + #include "confdefs.h" + ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () + { +- ++connect (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9614: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9578: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9617: \$? = $ac_status" >&5 ++ echo "$as_me:9581: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9620: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9584: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9623: \$? = $ac_status" >&5 ++ echo "$as_me:9587: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_R_space=yes ++ ac_cv_lib_socket_connect=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_R_space=no ++ac_cv_lib_socket_connect=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- if test $ac_R_space = yes; then +- echo "$as_me:9633: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- X_LIBS="$X_LIBS -R $x_libraries" +- else +- echo "$as_me:9637: result: neither works" >&5 +-echo "${ECHO_T}neither works" >&6 +- fi +- fi +- LIBS=$ac_xsave_LIBS +- esac +- fi ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:9598: result: $ac_cv_lib_socket_connect" >&5 ++echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 ++if test $ac_cv_lib_socket_connect = yes; then ++ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" ++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. ++ fi + +- if test "$ISC" = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" +- else +- # Martyn Johnson says this is needed for Ultrix, if the X +- # libraries were built with DECnet support. And Karl Berry says +- # the Alpha needs dnet_stub (dnet does not exist). +- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" +- cat >conftest.$ac_ext <<_ACEOF +-#line 9657 "configure" ++ # Guillermo Gomez says -lposix is necessary on A/UX. ++ echo "$as_me:9607: checking for remove" >&5 ++echo $ECHO_N "checking for remove... $ECHO_C" >&6 ++if test "${ac_cv_func_remove+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9613 "configure" + #include "confdefs.h" +- ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char remove (); below. */ ++#include <assert.h> + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* 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 (); ++char (*f) (); ++ + int + main () + { +-XOpenDisplay (); ++/* 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 ++f = remove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9676: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9644: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9679: \$? = $ac_status" >&5 ++ echo "$as_me:9647: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9682: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9650: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9685: \$? = $ac_status" >&5 ++ echo "$as_me:9653: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ ac_cv_func_remove=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-echo "$as_me:9691: checking for dnet_ntoa in -ldnet" >&5 +-echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 +-if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then ++ac_cv_func_remove=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:9663: result: $ac_cv_func_remove" >&5 ++echo "${ECHO_T}$ac_cv_func_remove" >&6 ++ ++ if test $ac_cv_func_remove = no; then ++ echo "$as_me:9667: checking for remove in -lposix" >&5 ++echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 ++if test "${ac_cv_lib_posix_remove+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldnet $LIBS" ++LIBS="-lposix $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 9699 "configure" ++#line 9675 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -9705,178 +9681,179 @@ + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char dnet_ntoa (); ++char remove (); + int + main () + { +-dnet_ntoa (); ++remove (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9718: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9694: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9721: \$? = $ac_status" >&5 ++ echo "$as_me:9697: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9724: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9700: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9727: \$? = $ac_status" >&5 ++ echo "$as_me:9703: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_dnet_dnet_ntoa=yes ++ ac_cv_lib_posix_remove=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_dnet_dnet_ntoa=no ++ac_cv_lib_posix_remove=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:9738: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +-echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 +-if test $ac_cv_lib_dnet_dnet_ntoa = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" ++echo "$as_me:9714: result: $ac_cv_lib_posix_remove" >&5 ++echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 ++if test $ac_cv_lib_posix_remove = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" + fi + +- if test $ac_cv_lib_dnet_dnet_ntoa = no; then +- echo "$as_me:9745: checking for dnet_ntoa in -ldnet_stub" >&5 +-echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 +-if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then ++ fi ++ ++ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. ++ echo "$as_me:9723: checking for shmat" >&5 ++echo $ECHO_N "checking for shmat... $ECHO_C" >&6 ++if test "${ac_cv_func_shmat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldnet_stub $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 9753 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 9729 "configure" + #include "confdefs.h" +- ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char shmat (); below. */ ++#include <assert.h> + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char dnet_ntoa (); ++char shmat (); ++char (*f) (); ++ + int + main () + { +-dnet_ntoa (); ++/* 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) ++choke me ++#else ++f = shmat; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9772: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9760: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9775: \$? = $ac_status" >&5 ++ echo "$as_me:9763: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9778: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9766: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9781: \$? = $ac_status" >&5 ++ echo "$as_me:9769: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_dnet_stub_dnet_ntoa=yes ++ ac_cv_func_shmat=yes + else + echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_lib_dnet_stub_dnet_ntoa=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:9792: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +-echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 +-if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +-fi +- +- fi ++cat conftest.$ac_ext >&5 ++ac_cv_func_shmat=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- LIBS="$ac_xsave_LIBS" ++fi ++echo "$as_me:9779: result: $ac_cv_func_shmat" >&5 ++echo "${ECHO_T}$ac_cv_func_shmat" >&6 + +- # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, +- # to get the SysV transport functions. +- # Chad R. Larson 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 T.E. Dickey. +- # The functions gethostbyname, getservbyname, and inet_addr are +- # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. +- echo "$as_me:9811: checking for gethostbyname" >&5 +-echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 +-if test "${ac_cv_func_gethostbyname+set}" = set; then ++ if test $ac_cv_func_shmat = no; then ++ echo "$as_me:9783: checking for shmat in -lipc" >&5 ++echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 ++if test "${ac_cv_lib_ipc_shmat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 9817 "configure" ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lipc $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 9791 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char gethostbyname (); below. */ +-#include <assert.h> ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* 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 (*f) (); +- ++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_gethostbyname) || defined (__stub___gethostbyname) +-choke me +-#else +-f = gethostbyname; +-#endif +- ++shmat (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9848: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9810: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9851: \$? = $ac_status" >&5 ++ echo "$as_me:9813: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9854: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9816: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9857: \$? = $ac_status" >&5 ++ echo "$as_me:9819: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_gethostbyname=yes ++ ac_cv_lib_ipc_shmat=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_gethostbyname=no ++ac_cv_lib_ipc_shmat=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:9830: result: $ac_cv_lib_ipc_shmat" >&5 ++echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 ++if test $ac_cv_lib_ipc_shmat = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" + fi +-echo "$as_me:9867: result: $ac_cv_func_gethostbyname" >&5 +-echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 + +- if test $ac_cv_func_gethostbyname = no; then +- echo "$as_me:9871: checking for gethostbyname in -lnsl" >&5 +-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 +-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then ++ 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. ++ # John Interrante, Karl Berry ++ echo "$as_me:9848: checking for IceConnectionNumber in -lICE" >&5 ++echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 ++if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lnsl $LIBS" ++LIBS="-lICE $X_EXTRA_LIBS $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 9879 "configure" ++#line 9856 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -9885,291 +9862,548 @@ + #endif + /* 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 IceConnectionNumber (); + int + main () + { +-gethostbyname (); ++IceConnectionNumber (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9898: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:9875: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9901: \$? = $ac_status" >&5 ++ echo "$as_me:9878: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9904: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:9881: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9907: \$? = $ac_status" >&5 ++ echo "$as_me:9884: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_nsl_gethostbyname=yes ++ ac_cv_lib_ICE_IceConnectionNumber=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_nsl_gethostbyname=no ++ac_cv_lib_ICE_IceConnectionNumber=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:9918: result: $ac_cv_lib_nsl_gethostbyname" >&5 +-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 +-if test $ac_cv_lib_nsl_gethostbyname = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" ++echo "$as_me:9895: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 ++echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 ++if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then ++ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" + fi + +- if test $ac_cv_lib_nsl_gethostbyname = no; then +- echo "$as_me:9925: checking for gethostbyname in -lbsd" >&5 +-echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 +-if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then ++ LDFLAGS=$ac_save_LDFLAGS ++ ++fi ++ ++cf_x_athena=${cf_x_athena:-Xaw} ++ ++echo "$as_me:9907: checking if you want to link with Xaw 3d library" >&5 ++echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6 ++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 "$as_me:9918: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:9921: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++echo "$as_me:9925: checking if you want to link with neXT Athena library" >&5 ++echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6 ++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 "$as_me:9936: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:9939: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++echo "$as_me:9943: checking if you want to link with Athena-Plus library" >&5 ++echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6 ++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 "$as_me:9954: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:9957: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++cf_x_athena_lib="" ++ ++if test "$PKG_CONFIG" != none ; then ++ cf_athena_list= ++ test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6" ++ for cf_athena_pkg in \ ++ $cf_athena_list \ ++ ${cf_x_athena} \ ++ ${cf_x_athena}-devel \ ++ lib${cf_x_athena} \ ++ lib${cf_x_athena}-devel ++ do ++ ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then ++ test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6 ++ ++echo "${as_me:-configure}:9977: testing found package $cf_athena_pkg ..." 1>&5 ++ ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`" ++ test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ ++echo "${as_me:-configure}:9983: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++ ++ test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6 ++ ++echo "${as_me:-configure}:9987: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5 ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_pkgconfig_incs ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ LIBS="$cf_pkgconfig_libs $LIBS" ++ ++ cf_x_athena_lib="$cf_pkgconfig_libs" ++ ++cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++ cat >>confdefs.h <<EOF ++#define $cf_x_athena_LIBS 1 ++EOF ++ ++ for cf_trim_lib in Xmu Xt X11 ++ do ++ case "$LIBS" in ++ *-l$cf_trim_lib\ *-l$cf_trim_lib*) ++ LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'` ++ test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10084: testing ..trimmed $LIBS ..." 1>&5 ++ ++ ;; ++ esac ++ done ++ ++echo "$as_me:10090: checking for usable $cf_x_athena/Xmu package" >&5 ++echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6 ++if test "${cf_cv_xaw_compat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lbsd $LIBS" ++ + cat >conftest.$ac_ext <<_ACEOF +-#line 9933 "configure" ++#line 10097 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gethostbyname (); ++#include <X11/Xmu/CharSet.h> ++ + int + main () + { +-gethostbyname (); ++ ++int check = XmuCompareISOLatin1("big", "small") ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:9952: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10113: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:9955: \$? = $ac_status" >&5 ++ echo "$as_me:10116: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:9958: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10119: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:9961: \$? = $ac_status" >&5 ++ echo "$as_me:10122: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_bsd_gethostbyname=yes ++ cf_cv_xaw_compat=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_bsd_gethostbyname=no ++cf_cv_xaw_compat=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:9972: result: $ac_cv_lib_bsd_gethostbyname" >&5 +-echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 +-if test $ac_cv_lib_bsd_gethostbyname = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" ++echo "$as_me:10132: result: $cf_cv_xaw_compat" >&5 ++echo "${ECHO_T}$cf_cv_xaw_compat" >&6 ++ ++ if test "$cf_cv_xaw_compat" = no ++ then ++ # workaround for broken ".pc" files... ++ case "$cf_x_athena_lib" in #(vi ++ *-lXmu*) #(vi ++ ;; ++ *) ++ test -n "$verbose" && echo " work around broken package" 1>&6 ++ ++echo "${as_me:-configure}:10144: testing work around broken package ..." 1>&5 ++ ++ cf_save_xmu="$LIBS" ++ cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^ *//' -e 's/ .*//'` ++ ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then ++ test -n "$verbose" && echo " found package xmu" 1>&6 ++ ++echo "${as_me:-configure}:10152: testing found package xmu ..." 1>&5 ++ ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs xmu 2>/dev/null`" ++ test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ ++echo "${as_me:-configure}:10158: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++ ++ test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6 ++ ++echo "${as_me:-configure}:10162: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5 ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_pkgconfig_incs ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi + +- fi +- fi ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ LIBS="$cf_pkgconfig_libs $LIBS" ++ ++ LIBS="$cf_save_xmu" ++ ++test -n "$verbose" && echo " ...before $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10248: testing ...before $LIBS ..." 1>&5 ++ ++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib $cf_pkgconfig_libs %" -e 's% % %g'` ++test -n "$verbose" && echo " ...after $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10253: testing ...after $LIBS ..." 1>&5 + +- # 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 Leinen: 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 "$as_me:9988: checking for connect" >&5 +-echo $ECHO_N "checking for connect... $ECHO_C" >&6 +-if test "${ac_cv_func_connect+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 9994 "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char connect (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 (*f) (); ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= ++ ++test -n "$verbose" && echo " ...before $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10261: testing ...before $LIBS ..." 1>&5 ++ ++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib -lXmu %" -e 's% % %g'` ++test -n "$verbose" && echo " ...after $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10266: testing ...after $LIBS ..." 1>&5 ++ ++fi ++ ++ for cf_trim_lib in Xmu Xt X11 ++ do ++ case "$LIBS" in ++ *-l$cf_trim_lib\ *-l$cf_trim_lib*) ++ LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'` ++ test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10277: testing ..trimmed $LIBS ..." 1>&5 ++ ++ ;; ++ esac ++ done ++ ++ ;; ++ esac ++ fi ++ ++ break ++else ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= ++ : ++fi ++ ++ done ++fi ++ ++if test -z "$cf_x_athena_lib" ; then ++ ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then ++ test -n "$verbose" && echo " found package Xext" 1>&6 ++ ++echo "${as_me:-configure}:10302: testing found package Xext ..." 1>&5 ++ ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs Xext 2>/dev/null`" ++ test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ ++echo "${as_me:-configure}:10308: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++ ++ test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6 ++ ++echo "${as_me:-configure}:10312: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5 ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_pkgconfig_incs ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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/^[^"]*"'\''//'` + +-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) +-choke me +-#else +-f = connect; +-#endif ++ test "${cf_add_cflags}" != "${cf_tst_cflags}" \ ++ && test -z "${cf_tst_cflags}" \ ++ && cf_fix_cppflags=no ++ ;; ++esac ++done + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10025: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10028: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10031: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10034: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_func_connect=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_func_connect=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++if test -n "$cf_new_cflags" ; then ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi +-echo "$as_me:10044: result: $ac_cv_func_connect" >&5 +-echo "${ECHO_T}$ac_cv_func_connect" >&6 + +- if test $ac_cv_func_connect = no; then +- echo "$as_me:10048: checking for connect in -lsocket" >&5 +-echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 +-if test "${ac_cv_lib_socket_connect+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 10056 "configure" +-#include "confdefs.h" ++if test -n "$cf_new_cppflags" ; then + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 () +-{ +-connect (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10075: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10078: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10081: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10084: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_socket_connect=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_lib_socket_connect=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:10095: result: $ac_cv_lib_socket_connect" >&5 +-echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 +-if test $ac_cv_lib_socket_connect = yes; then +- X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + fi + +- fi +- +- # Guillermo Gomez says -lposix is necessary on A/UX. +- echo "$as_me:10104: checking for remove" >&5 +-echo $ECHO_N "checking for remove... $ECHO_C" >&6 +-if test "${ac_cv_func_remove+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 10110 "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char remove (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char remove (); +-char (*f) (); ++if test -n "$cf_new_extra_cppflags" ; then + +-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_remove) || defined (__stub___remove) +-choke me +-#else +-f = remove; +-#endif ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10141: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10144: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10147: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10150: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_func_remove=yes ++ LIBS="$cf_pkgconfig_libs $LIBS" ++ : + else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_func_remove=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:10160: result: $ac_cv_func_remove" >&5 +-echo "${ECHO_T}$ac_cv_func_remove" >&6 ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= + +- if test $ac_cv_func_remove = no; then +- echo "$as_me:10164: checking for remove in -lposix" >&5 +-echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 +-if test "${ac_cv_lib_posix_remove+set}" = set; then ++ echo "$as_me:10398: checking for XextCreateExtension in -lXext" >&5 ++echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6 ++if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lposix $LIBS" ++LIBS="-lXext $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 10172 "configure" ++#line 10406 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -10178,310 +10412,386 @@ + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char remove (); ++char XextCreateExtension (); + int + main () + { +-remove (); ++XextCreateExtension (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10191: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10425: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10194: \$? = $ac_status" >&5 ++ echo "$as_me:10428: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10197: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10431: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10200: \$? = $ac_status" >&5 ++ echo "$as_me:10434: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_posix_remove=yes ++ ac_cv_lib_Xext_XextCreateExtension=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_posix_remove=no ++ac_cv_lib_Xext_XextCreateExtension=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:10211: result: $ac_cv_lib_posix_remove" >&5 +-echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 +-if test $ac_cv_lib_posix_remove = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" ++echo "$as_me:10445: result: $ac_cv_lib_Xext_XextCreateExtension" >&5 ++echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6 ++if test $ac_cv_lib_Xext_XextCreateExtension = yes; then ++ LIBS="-lXext $LIBS" + fi + +- fi ++fi + +- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. +- echo "$as_me:10220: checking for shmat" >&5 +-echo $ECHO_N "checking for shmat... $ECHO_C" >&6 +-if test "${ac_cv_func_shmat+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 10226 "configure" +-#include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char shmat (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 (*f) (); ++cf_have_X_LIBS=no ++ ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then ++ test -n "$verbose" && echo " found package xt" 1>&6 ++ ++echo "${as_me:-configure}:10458: testing found package xt ..." 1>&5 ++ ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`" ++ test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ ++echo "${as_me:-configure}:10464: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++ ++ test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6 ++ ++echo "${as_me:-configure}:10468: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5 ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_pkgconfig_incs ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 + +-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) +-choke me +-#else +-f = shmat; +-#endif ++if test -n "$cf_new_cflags" ; then + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10257: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10260: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10263: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10266: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_func_shmat=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_func_shmat=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi +-echo "$as_me:10276: result: $ac_cv_func_shmat" >&5 +-echo "${ECHO_T}$ac_cv_func_shmat" >&6 + +- if test $ac_cv_func_shmat = no; then +- echo "$as_me:10280: checking for shmat in -lipc" >&5 +-echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 +-if test "${ac_cv_lib_ipc_shmat+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lipc $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 10288 "configure" +-#include "confdefs.h" ++if test -n "$cf_new_cppflags" ; then + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char shmat (); +-int +-main () +-{ +-shmat (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10307: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10310: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10313: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10316: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_ipc_shmat=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_lib_ipc_shmat=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + fi +-echo "$as_me:10327: result: $ac_cv_lib_ipc_shmat" >&5 +-echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 +-if test $ac_cv_lib_ipc_shmat = yes; then +- X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +- fi +- fi ++ LIBS="$cf_pkgconfig_libs $LIBS" + +- # 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. +- # John Interrante, Karl Berry +- echo "$as_me:10345: checking for IceConnectionNumber in -lICE" >&5 +-echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 +-if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then ++ case "x$LIBS" in #(vi ++ *-lX11*) #(vi ++ ;; ++ *) ++# we have an "xt" package, but it may omit Xt's dependency on X11 ++echo "$as_me:10555: checking for usable X dependency" >&5 ++echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6 ++if test "${cf_cv_xt_x11_compat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lICE $X_EXTRA_LIBS $LIBS" ++ + cat >conftest.$ac_ext <<_ACEOF +-#line 10353 "configure" ++#line 10562 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char IceConnectionNumber (); ++#include <X11/Xlib.h> ++ + int + main () + { +-IceConnectionNumber (); ++ ++ int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0); ++ int rc2 = XClearWindow((Display*) 0, (Window) 0); ++ int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0); ++ int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0); ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10372: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:10581: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10375: \$? = $ac_status" >&5 ++ echo "$as_me:10584: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10378: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:10587: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10381: \$? = $ac_status" >&5 ++ echo "$as_me:10590: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_ICE_IceConnectionNumber=yes ++ cf_cv_xt_x11_compat=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_ICE_IceConnectionNumber=no ++cf_cv_xt_x11_compat=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:10392: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +-echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 +-if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then +- X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" + fi ++echo "$as_me:10600: result: $cf_cv_xt_x11_compat" >&5 ++echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6 ++ if test "$cf_cv_xt_x11_compat" = no ++ then ++ test -n "$verbose" && echo " work around broken X11 dependency" 1>&6 + +- LDFLAGS=$ac_save_LDFLAGS ++echo "${as_me:-configure}:10606: testing work around broken X11 dependency ..." 1>&5 ++ ++ # 2010/11/19 - good enough until a working Xt on Xcb is delivered. ++ ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then ++ test -n "$verbose" && echo " found package x11" 1>&6 ++ ++echo "${as_me:-configure}:10613: testing found package x11 ..." 1>&5 ++ ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`" ++ test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ ++echo "${as_me:-configure}:10619: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++ ++ test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6 ++ ++echo "${as_me:-configure}:10623: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5 ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in $cf_pkgconfig_incs ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 + ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi + +-cf_x_athena=${cf_x_athena:-Xaw} ++if test -n "$cf_new_cppflags" ; then + +-echo "$as_me:10404: checking if you want to link with Xaw 3d library" >&5 +-echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6 +-withval= ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi + +-# Check whether --with-Xaw3d or --without-Xaw3d was given. +-if test "${with_Xaw3d+set}" = set; then +- withval="$with_Xaw3d" ++if test -n "$cf_new_extra_cppflags" ; then + +-fi; +-if test "$withval" = yes ; then +- cf_x_athena=Xaw3d +- echo "$as_me:10415: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +-else +- echo "$as_me:10418: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +-echo "$as_me:10422: checking if you want to link with neXT Athena library" >&5 +-echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6 +-withval= ++ LIBS="$cf_pkgconfig_libs $LIBS" ++ : ++else ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= + +-# Check whether --with-neXtaw or --without-neXtaw was given. +-if test "${with_neXtaw+set}" = set; then +- withval="$with_neXtaw" ++test -n "$verbose" && echo " ...before $LIBS" 1>&6 + +-fi; +-if test "$withval" = yes ; then +- cf_x_athena=neXtaw +- echo "$as_me:10433: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 ++echo "${as_me:-configure}:10711: testing ...before $LIBS ..." 1>&5 ++ ++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt -lX11 %" -e 's% % %g'` ++test -n "$verbose" && echo " ...after $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:10716: testing ...after $LIBS ..." 1>&5 ++ ++fi ++ ++ fi ++ ;; ++ esac ++ ++echo "$as_me:10724: checking for usable X Toolkit package" >&5 ++echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6 ++if test "${cf_cv_xt_ice_compat+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- echo "$as_me:10436: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi + +-echo "$as_me:10440: checking if you want to link with Athena-Plus library" >&5 +-echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6 +-withval= ++cat >conftest.$ac_ext <<_ACEOF ++#line 10731 "configure" ++#include "confdefs.h" + +-# Check whether --with-XawPlus or --without-XawPlus was given. +-if test "${with_XawPlus+set}" = set; then +- withval="$with_XawPlus" ++#include <X11/Shell.h> + +-fi; +-if test "$withval" = yes ; then +- cf_x_athena=XawPlus +- echo "$as_me:10451: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 ++int ++main () ++{ ++int num = IceConnectionNumber(0) ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:10746: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:10749: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:10752: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:10755: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_xt_ice_compat=yes + else +- echo "$as_me:10454: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_xt_ice_compat=no + fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:10765: result: $cf_cv_xt_ice_compat" >&5 ++echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6 + +-cf_x_athena_lib="" ++ if test "$cf_cv_xt_ice_compat" = no ++ then ++ # workaround for broken ".pc" files used for X Toolkit. ++ case "x$X_PRE_LIBS" in #(vi ++ *-lICE*) ++ case "x$LIBS" in #(vi ++ *-lICE*) #(vi ++ ;; ++ *) ++ test -n "$verbose" && echo " work around broken ICE dependency" 1>&6 + +-if test "$PKG_CONFIG" != none ; then +- cf_athena_list= +- test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6" +- for cf_athena_pkg in \ +- $cf_athena_list \ +- ${cf_x_athena} \ +- ${cf_x_athena}-devel \ +- lib${cf_x_athena} \ +- lib${cf_x_athena}-devel +- do ++echo "${as_me:-configure}:10779: testing work around broken ICE dependency ..." 1>&5 + +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then +- test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6 ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then ++ test -n "$verbose" && echo " found package ice" 1>&6 + +-echo "${as_me:-configure}:10474: testing found package $cf_athena_pkg ..." 1>&5 ++echo "${as_me:-configure}:10784: testing found package ice ..." 1>&5 + +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`" +- test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`" ++ test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6 + +-echo "${as_me:-configure}:10480: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++echo "${as_me:-configure}:10790: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5 + +- test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6 ++ test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6 + +-echo "${as_me:-configure}:10484: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5 ++echo "${as_me:-configure}:10794: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5 + + cf_fix_cppflags=no + cf_new_cflags= +@@ -10563,84 +10873,20 @@ + + LIBS="$cf_pkgconfig_libs $LIBS" + +- cf_x_athena_lib="$cf_pkgconfig_libs" +- +-cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +- cat >>confdefs.h <<EOF +-#define $cf_x_athena_LIBS 1 +-EOF +- +-echo "$as_me:10574: checking for usable $cf_x_athena/Xmu package" >&5 +-echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6 +-if test "${cf_cv_xaw_compat+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- +-cat >conftest.$ac_ext <<_ACEOF +-#line 10581 "configure" +-#include "confdefs.h" +- +-#include <X11/Xmu/CharSet.h> +- +-int +-main () +-{ +- +-int check = XmuCompareISOLatin1("big", "small") +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10597: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:10600: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10603: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:10606: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_cv_xaw_compat=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_cv_xaw_compat=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:10616: result: $cf_cv_xaw_compat" >&5 +-echo "${ECHO_T}$cf_cv_xaw_compat" >&6 +- +- if test "$cf_cv_xaw_compat" = no +- then +- # workaround for broken ".pc" files... +- case "$cf_x_athena_lib" in #(vi +- *-lXmu*) #(vi +- ;; +- *) +- test -n "$verbose" && echo " work around broken package" 1>&6 +- +-echo "${as_me:-configure}:10628: testing work around broken package ..." 1>&5 +- +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then +- test -n "$verbose" && echo " found package xmu" 1>&6 ++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then ++ test -n "$verbose" && echo " found package sm" 1>&6 + +-echo "${as_me:-configure}:10633: testing found package xmu ..." 1>&5 ++echo "${as_me:-configure}:10879: testing found package sm ..." 1>&5 + +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs xmu 2>/dev/null`" +- test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`" ++ cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`" ++ test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6 + +-echo "${as_me:-configure}:10639: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++echo "${as_me:-configure}:10885: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5 + +- test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6 ++ test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6 + +-echo "${as_me:-configure}:10643: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5 ++echo "${as_me:-configure}:10889: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5 + + cf_fix_cppflags=no + cf_new_cflags= +@@ -10723,53 +10969,53 @@ + LIBS="$cf_pkgconfig_libs $LIBS" + : + else ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= ++ : ++fi ++ ++else ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= + + test -n "$verbose" && echo " ...before $LIBS" 1>&6 + +-echo "${as_me:-configure}:10729: testing ...before $LIBS ..." 1>&5 ++echo "${as_me:-configure}:10983: testing ...before $LIBS ..." 1>&5 + +-LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/ / /g'` ++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt $X_PRE_LIBS %" -e 's% % %g'` + test -n "$verbose" && echo " ...after $LIBS" 1>&6 + +-echo "${as_me:-configure}:10734: testing ...after $LIBS ..." 1>&5 +- +-fi +- +- ;; +- esac +- fi +- +- break +-else +- : +-fi ++echo "${as_me:-configure}:10988: testing ...after $LIBS ..." 1>&5 + +- done + fi + +-if test -z "$cf_x_athena_lib" ; then ++ ;; ++ esac ++ ;; ++ esac ++ fi + +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then +- test -n "$verbose" && echo " found package Xext" 1>&6 ++ cf_have_X_LIBS=yes + +-echo "${as_me:-configure}:10755: testing found package Xext ..." 1>&5 ++else ++ cf_pkgconfig_incs= ++ cf_pkgconfig_libs= + +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs Xext 2>/dev/null`" +- test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6 ++ LDFLAGS="$X_LIBS $LDFLAGS" + +-echo "${as_me:-configure}:10761: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 + +- test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6 ++echo "${as_me:-configure}:11008: testing checking additions to CFLAGS ..." 1>&5 + +-echo "${as_me:-configure}:10765: testing package Xext LIBS: $cf_pkgconfig_libs ..." 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 $cf_pkgconfig_incs ++for cf_add_cflags in $X_CFLAGS + do + case $cf_fix_cppflags in + no) +@@ -10828,33 +11074,144 @@ + done + + if test -n "$cf_new_cflags" ; then ++ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 ++ ++echo "${as_me:-configure}:11079: 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}:11087: 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}:11095: 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 <<_ACEOF ++#line 11102 "configure" ++#include "confdefs.h" ++#include <stdio.h> ++int ++main () ++{ ++printf("Hello world"); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11114: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11117: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11120: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11123: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 ++ ++echo "${as_me:-configure}:11131: 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}:11136: testing but keeping change to \$CPPFLAGS ..." 1>&5 ++ ++ fi ++ CFLAGS="$cf_check_flags" ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++ ++ echo "$as_me:11144: checking for XOpenDisplay" >&5 ++echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6 ++if test "${ac_cv_func_XOpenDisplay+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 11150 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char XOpenDisplay (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (*f) (); ++ ++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 ++f = XOpenDisplay; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11181: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11184: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11187: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11190: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_XOpenDisplay=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_func_XOpenDisplay=no + fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi +- +- LIBS="$cf_pkgconfig_libs $LIBS" +- : ++echo "$as_me:11200: result: $ac_cv_func_XOpenDisplay" >&5 ++echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6 ++if test $ac_cv_func_XOpenDisplay = yes; then ++ : + else + +- echo "$as_me:10849: checking for XextCreateExtension in -lXext" >&5 +-echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6 +-if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then ++ echo "$as_me:11206: checking for XOpenDisplay in -lX11" >&5 ++echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 ++if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lXext $LIBS" ++LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 10857 "configure" ++#line 11214 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -10863,486 +11220,447 @@ + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char XextCreateExtension (); ++char XOpenDisplay (); + int + main () + { +-XextCreateExtension (); ++XOpenDisplay (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:10876: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11233: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:10879: \$? = $ac_status" >&5 ++ echo "$as_me:11236: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:10882: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11239: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:10885: \$? = $ac_status" >&5 ++ echo "$as_me:11242: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_Xext_XextCreateExtension=yes ++ ac_cv_lib_X11_XOpenDisplay=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_Xext_XextCreateExtension=no ++ac_cv_lib_X11_XOpenDisplay=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:10896: result: $ac_cv_lib_Xext_XextCreateExtension" >&5 +-echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6 +-if test $ac_cv_lib_Xext_XextCreateExtension = yes; then +- LIBS="-lXext $LIBS" ++echo "$as_me:11253: result: $ac_cv_lib_X11_XOpenDisplay" >&5 ++echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 ++if test $ac_cv_lib_X11_XOpenDisplay = yes; then ++ LIBS="-lX11 $LIBS" + fi + + fi + +-cf_have_X_LIBS=no +- +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then +- test -n "$verbose" && echo " found package xt" 1>&6 +- +-echo "${as_me:-configure}:10909: testing found package xt ..." 1>&5 +- +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`" +- test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6 +- +-echo "${as_me:-configure}:10915: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5 +- +- test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6 +- +-echo "${as_me:-configure}:10919: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5 +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_pkgconfig_incs +-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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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" ++ echo "$as_me:11261: checking for XtAppInitialize" >&5 ++echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6 ++if test "${ac_cv_func_XtAppInitialize+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 11267 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char XtAppInitialize (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (*f) (); + +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` ++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 ++f = XtAppInitialize; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac +-done ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11298: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11301: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11304: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11307: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_XtAppInitialize=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_func_XtAppInitialize=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:11317: result: $ac_cv_func_XtAppInitialize" >&5 ++echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6 ++if test $ac_cv_func_XtAppInitialize = yes; then ++ : ++else + +-if test -n "$cf_new_cflags" ; then ++ echo "$as_me:11323: checking for XtAppInitialize in -lXt" >&5 ++echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6 ++if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 11331 "configure" ++#include "confdefs.h" + +- CFLAGS="$CFLAGS $cf_new_cflags" ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () ++{ ++XtAppInitialize (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11350: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11353: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11356: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11359: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_Xt_XtAppInitialize=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_lib_Xt_XtAppInitialize=no + fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:11370: result: $ac_cv_lib_Xt_XtAppInitialize" >&5 ++echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6 ++if test $ac_cv_lib_Xt_XtAppInitialize = yes; then + +-if test -n "$cf_new_cppflags" ; then ++cat >>confdefs.h <<\EOF ++#define HAVE_LIBXT 1 ++EOF + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++ cf_have_X_LIBS=Xt ++ LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS" + fi + +-if test -n "$cf_new_extra_cppflags" ; then ++fi + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +- LIBS="$cf_pkgconfig_libs $LIBS" ++if test $cf_have_X_LIBS = no ; then ++ { echo "$as_me:11387: 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." >&5 ++echo "$as_me: 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." >&2;} ++fi + +- case "x$LIBS" in #(vi +- *-lX11*) #(vi +- ;; +- *) +-# we have an "xt" package, but it may omit Xt's dependency on X11 +-echo "$as_me:11006: checking for usable X dependency" >&5 +-echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6 +-if test "${cf_cv_xt_x11_compat+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++cf_x_athena_root=$cf_x_athena ++cf_x_athena_inc="" + +-cat >conftest.$ac_ext <<_ACEOF +-#line 11013 "configure" ++for cf_path in default \ ++ /usr/contrib/X11R6 \ ++ /usr/contrib/X11R5 \ ++ /usr/lib/X11R5 \ ++ /usr/local ++do ++ if test -z "$cf_x_athena_inc" ; 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 "$as_me:11409: checking for $cf_test in $cf_path" >&5 ++echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6 ++ else ++ echo "$as_me:11412: checking for $cf_test" >&5 ++echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6 ++ fi ++ cat >conftest.$ac_ext <<_ACEOF ++#line 11416 "configure" + #include "confdefs.h" + +-#include <X11/Xlib.h> +- ++#include <X11/Intrinsic.h> ++#include <$cf_test> + int + main () + { + +- int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0); +- int rc2 = XClearWindow((Display*) 0, (Window) 0); +- int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0); +- int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0); +- + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11032: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:11430: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11035: \$? = $ac_status" >&5 ++ echo "$as_me:11433: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11038: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:11436: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11041: \$? = $ac_status" >&5 ++ echo "$as_me:11439: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_xt_x11_compat=yes ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_xt_x11_compat=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++cf_result=no + fi +-echo "$as_me:11051: result: $cf_cv_xt_x11_compat" >&5 +-echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6 +- if test "$cf_cv_xt_x11_compat" = no +- then +- test -n "$verbose" && echo " work around broken X11 dependency" 1>&6 +- +-echo "${as_me:-configure}:11057: testing work around broken X11 dependency ..." 1>&5 +- +- # 2010/11/19 - good enough until a working Xt on Xcb is delivered. +- +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then +- test -n "$verbose" && echo " found package x11" 1>&6 +- +-echo "${as_me:-configure}:11064: testing found package x11 ..." 1>&5 +- +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`" +- test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6 +- +-echo "${as_me:-configure}:11070: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5 +- +- test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6 +- +-echo "${as_me:-configure}:11074: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5 +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_pkgconfig_incs +-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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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 ++rm -f conftest.$ac_objext conftest.$ac_ext ++ echo "$as_me:11448: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ if test "$cf_result" = yes ; then ++ cf_x_athena_inc=$cf_path ++ break ++ else ++ CPPFLAGS="$cf_save" ++ fi ++ fi + done + +-if test -n "$cf_new_cflags" ; then +- +- CFLAGS="$CFLAGS $cf_new_cflags" +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi +- +- LIBS="$cf_pkgconfig_libs $LIBS" +- : +-else +- +-test -n "$verbose" && echo " ...before $LIBS" 1>&6 +- +-echo "${as_me:-configure}:11160: testing ...before $LIBS ..." 1>&5 +- +-LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/ / /g'` +-test -n "$verbose" && echo " ...after $LIBS" 1>&6 +- +-echo "${as_me:-configure}:11165: testing ...after $LIBS ..." 1>&5 +- ++if test -z "$cf_x_athena_inc" ; then ++ { echo "$as_me:11460: WARNING: Unable to successfully find Athena header files with test program" >&5 ++echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;} ++elif test "$cf_x_athena_inc" != default ; then ++ CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc" + fi + +- fi +- ;; +- esac +- +-echo "$as_me:11173: checking for usable X Toolkit package" >&5 +-echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6 +-if test "${cf_cv_xt_ice_compat+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++cf_x_athena_root=$cf_x_athena ++cf_x_athena_lib="" + +-cat >conftest.$ac_ext <<_ACEOF +-#line 11180 "configure" ++for cf_path in default \ ++ /usr/contrib/X11R6 \ ++ /usr/contrib/X11R5 \ ++ /usr/lib/X11R5 \ ++ /usr/local ++do ++ for cf_lib in \ ++ ${cf_x_athena_root} \ ++ ${cf_x_athena_root}7 \ ++ ${cf_x_athena_root}6 ++ do ++ for cf_libs in \ ++ "-l$cf_lib -lXmu" \ ++ "-l$cf_lib -lXpm -lXmu" \ ++ "-l${cf_lib}_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_libs $LIBS" ++ echo "$as_me:11490: checking for $cf_libs in $cf_path" >&5 ++echo $ECHO_N "checking for $cf_libs in $cf_path... $ECHO_C" >&6 ++ else ++ LIBS="$cf_libs $LIBS" ++ echo "$as_me:11494: checking for $cf_test in $cf_libs" >&5 ++echo $ECHO_N "checking for $cf_test in $cf_libs... $ECHO_C" >&6 ++ fi ++ cat >conftest.$ac_ext <<_ACEOF ++#line 11498 "configure" + #include "confdefs.h" + +-#include <X11/Shell.h> ++#include <X11/Intrinsic.h> ++#include <X11/$cf_x_athena_root/SimpleMenu.h> + + int + main () + { +-int num = IceConnectionNumber(0) + ++$cf_test((XtAppContext) 0) + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11195: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:11514: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11198: \$? = $ac_status" >&5 ++ echo "$as_me:11517: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11201: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:11520: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11204: \$? = $ac_status" >&5 ++ echo "$as_me:11523: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_xt_ice_compat=yes ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_xt_ice_compat=no ++cf_result=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:11214: result: $cf_cv_xt_ice_compat" >&5 +-echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6 +- +- if test "$cf_cv_xt_ice_compat" = no +- then +- # workaround for broken ".pc" files used for X Toolkit. +- case "x$X_PRE_LIBS" in #(vi +- *-lICE*) +- case "x$LIBS" in #(vi +- *-lICE*) #(vi +- ;; +- *) +- test -n "$verbose" && echo " work around broken ICE dependency" 1>&6 +- +-echo "${as_me:-configure}:11228: testing work around broken ICE dependency ..." 1>&5 +- +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then +- test -n "$verbose" && echo " found package ice" 1>&6 +- +-echo "${as_me:-configure}:11233: testing found package ice ..." 1>&5 +- +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`" +- test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6 +- +-echo "${as_me:-configure}:11239: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5 +- +- test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6 +- +-echo "${as_me:-configure}:11243: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5 +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_pkgconfig_incs +-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 ++ echo "$as_me:11532: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ if test "$cf_result" = yes ; then ++ cf_x_athena_lib="$cf_libs" ++ break + fi +- ;; +- esac +- case "$CPPFLAGS" in +- *$cf_add_cflags) #(vi +- ;; +- *) #(vi +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ LIBS="$cf_save" ++ fi ++ done # cf_libs ++ test -n "$cf_x_athena_lib" && break ++ done # cf_lib ++done ++ ++if test -z "$cf_x_athena_lib" ; then ++ { { echo "$as_me:11546: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5 ++echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;} ++ { (exit 1); exit 1; }; } ++fi + +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +- ;; +- esac +- 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" ++cat >>confdefs.h <<EOF ++#define $cf_x_athena_LIBS 1 ++EOF + +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` ++fi + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in xcurses-config ++ 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:11564: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_XCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$XCURSES_CONFIG"; then ++ ac_cv_prog_XCURSES_CONFIG="$XCURSES_CONFIG" # 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_XCURSES_CONFIG="$ac_tool_prefix$ac_prog" ++echo "$as_me:11579: found $ac_dir/$ac_word" >&5 ++break + done + +-if test -n "$cf_new_cflags" ; then +- +- CFLAGS="$CFLAGS $cf_new_cflags" ++fi ++fi ++XCURSES_CONFIG=$ac_cv_prog_XCURSES_CONFIG ++if test -n "$XCURSES_CONFIG"; then ++ echo "$as_me:11587: result: $XCURSES_CONFIG" >&5 ++echo "${ECHO_T}$XCURSES_CONFIG" >&6 ++else ++ echo "$as_me:11590: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-if test -n "$cf_new_cppflags" ; then ++ test -n "$XCURSES_CONFIG" && break ++ done ++fi ++if test -z "$XCURSES_CONFIG"; then ++ ac_ct_XCURSES_CONFIG=$XCURSES_CONFIG ++ for ac_prog in xcurses-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 "$as_me:11603: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_XCURSES_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_XCURSES_CONFIG"; then ++ ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_ct_XCURSES_CONFIG" # 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_XCURSES_CONFIG="$ac_prog" ++echo "$as_me:11618: found $ac_dir/$ac_word" >&5 ++break ++done + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++fi ++ac_ct_XCURSES_CONFIG=$ac_cv_prog_ac_ct_XCURSES_CONFIG ++if test -n "$ac_ct_XCURSES_CONFIG"; then ++ echo "$as_me:11626: result: $ac_ct_XCURSES_CONFIG" >&5 ++echo "${ECHO_T}$ac_ct_XCURSES_CONFIG" >&6 ++else ++ echo "$as_me:11629: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-if test -n "$cf_new_extra_cppflags" ; then ++ test -n "$ac_ct_XCURSES_CONFIG" && break ++done ++test -n "$ac_ct_XCURSES_CONFIG" || ac_ct_XCURSES_CONFIG="none" + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++ XCURSES_CONFIG=$ac_ct_XCURSES_CONFIG + fi + +- LIBS="$cf_pkgconfig_libs $LIBS" ++if test "$XCURSES_CONFIG" != none ; then + +-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then +- test -n "$verbose" && echo " found package sm" 1>&6 ++CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`" ++LIBS="`$XCURSES_CONFIG --libs` $LIBS" + +-echo "${as_me:-configure}:11328: testing found package sm ..." 1>&5 ++cf_cv_lib_XCurses=yes + +- cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`" +- cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`" +- test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6 ++else ++ ++LDFLAGS="$LDFLAGS $X_LIBS" + +-echo "${as_me:-configure}:11334: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5 ++test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 + +- test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6 ++echo "${as_me:-configure}:11653: testing checking additions to CFLAGS ..." 1>&5 + +-echo "${as_me:-configure}:11338: testing package sm LIBS: $cf_pkgconfig_libs ..." 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 $cf_pkgconfig_incs ++for cf_add_cflags in $X_CFLAGS + do + case $cf_fix_cppflags in + no) +@@ -11401,260 +11719,375 @@ + done + + if test -n "$cf_new_cflags" ; then ++ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 ++ ++echo "${as_me:-configure}:11724: 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}:11732: 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 + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi ++echo "${as_me:-configure}:11740: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 + +- LIBS="$cf_pkgconfig_libs $LIBS" +- : +-else +- : ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + ++if test "$cf_check_cflags" != "$CFLAGS" ; then ++cat >conftest.$ac_ext <<_ACEOF ++#line 11747 "configure" ++#include "confdefs.h" ++#include <stdio.h> ++int ++main () ++{ ++printf("Hello world"); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11759: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11762: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11765: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11768: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : + else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 + +-test -n "$verbose" && echo " ...before $LIBS" 1>&6 +- +-echo "${as_me:-configure}:11428: testing ...before $LIBS ..." 1>&5 ++echo "${as_me:-configure}:11776: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5 + +-LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/ / /g'` +-test -n "$verbose" && echo " ...after $LIBS" 1>&6 ++ if test "$cf_check_cppflags" != "$CPPFLAGS" ; then ++ test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6 + +-echo "${as_me:-configure}:11433: testing ...after $LIBS ..." 1>&5 ++echo "${as_me:-configure}:11781: testing but keeping change to \$CPPFLAGS ..." 1>&5 + ++ fi ++ CFLAGS="$cf_check_flags" ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi + +- ;; +- esac +- ;; +- esac +- fi +- +- cf_have_X_LIBS=yes +- ++echo "$as_me:11789: checking for XOpenDisplay in -lX11" >&5 ++echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 ++if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 11797 "configure" ++#include "confdefs.h" + +- LDFLAGS="$X_LIBS $LDFLAGS" +- +-test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 +- +-echo "${as_me:-configure}:11451: 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= ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 () ++{ ++XOpenDisplay (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11816: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11819: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11822: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11825: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_X11_XOpenDisplay=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++ac_cv_lib_X11_XOpenDisplay=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:11836: result: $ac_cv_lib_X11_XOpenDisplay" >&5 ++echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 ++if test $ac_cv_lib_X11_XOpenDisplay = yes; then ++ LIBS="-lX11 $LIBS" ++fi + +-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[^=]*='\''\"[^"]*//'` ++echo "$as_me:11842: checking for XCurses library" >&5 ++echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6 ++if test "${cf_cv_lib_XCurses+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes ++LIBS="-lXCurses $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 11850 "configure" ++#include "confdefs.h" + +- 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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++#include <xcurses.h> ++char *XCursesProgramName = "test"; + +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++int ++main () ++{ ++XCursesExit(); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:11865: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:11868: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:11871: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:11874: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_lib_XCurses=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_lib_XCurses=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +- ;; +- esac +- 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" ++fi ++echo "$as_me:11885: result: $cf_cv_lib_XCurses" >&5 ++echo "${ECHO_T}$cf_cv_lib_XCurses" >&6 + +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` ++fi + +- test "${cf_add_cflags}" != "${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac +-done ++if test $cf_cv_lib_XCurses = yes ; then + +-if test -n "$cf_new_cflags" ; then +- test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 ++cat >>confdefs.h <<\EOF ++#define UNIX 1 ++EOF + +-echo "${as_me:-configure}:11522: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 ++cat >>confdefs.h <<\EOF ++#define XCURSES 1 ++EOF + +- CFLAGS="$CFLAGS $cf_new_cflags" ++ echo "$as_me:11900: checking for xcurses.h" >&5 ++echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6 ++if test "${ac_cv_header_xcurses_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 11906 "configure" ++#include "confdefs.h" ++#include <xcurses.h> ++_ACEOF ++if { (eval echo "$as_me:11910: \"$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:11916: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_cv_header_xcurses_h=yes ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ ac_cv_header_xcurses_h=no ++fi ++rm -f conftest.err conftest.$ac_ext + fi ++echo "$as_me:11935: result: $ac_cv_header_xcurses_h" >&5 ++echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6 ++if test $ac_cv_header_xcurses_h = yes; then + +-if test -n "$cf_new_cppflags" ; then +- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6 ++cat >>confdefs.h <<\EOF ++#define HAVE_XCURSES 1 ++EOF + +-echo "${as_me:-configure}:11530: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 ++fi + +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++else ++ { { echo "$as_me:11946: error: Cannot link with XCurses" >&5 ++echo "$as_me: error: Cannot link with XCurses" >&2;} ++ { (exit 1); exit 1; }; } + fi + +-if test -n "$cf_new_extra_cppflags" ; then +- test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6 ++ ;; ++esac + +-echo "${as_me:-configure}:11538: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 ++case $cf_cv_screen in ++curses|curses_*) + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +-fi ++echo "$as_me:11957: checking for NetBSD form.h" >&5 ++echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6 ++if test "${cf_cv_netbsd_form_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else + +-if test "$cf_check_cflags" != "$CFLAGS" ; then + cat >conftest.$ac_ext <<_ACEOF +-#line 11545 "configure" ++#line 11964 "configure" + #include "confdefs.h" +-#include <stdio.h> ++ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <form.h> ++ + int + main () + { +-printf("Hello world"); ++ ++ FORM *form; ++ int y = current_field(form)->cursor_ypos; ++ int x = current_field(form)->cursor_xpos; ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11557: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:11983: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11560: \$? = $ac_status" >&5 ++ echo "$as_me:11986: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11563: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:11989: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11566: \$? = $ac_status" >&5 ++ echo "$as_me:11992: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ cf_cv_netbsd_form_h=yes ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 +- +-echo "${as_me:-configure}:11574: 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}:11579: testing but keeping change to \$CPPFLAGS ..." 1>&5 +- +- fi +- CFLAGS="$cf_check_flags" ++cf_cv_netbsd_form_h=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ + fi ++echo "$as_me:12004: result: $cf_cv_netbsd_form_h" >&5 ++echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6 + +- echo "$as_me:11587: checking for XOpenDisplay" >&5 +-echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6 +-if test "${ac_cv_func_XOpenDisplay+set}" = set; then ++test "$cf_cv_netbsd_form_h" = yes && ++cat >>confdefs.h <<\EOF ++#define HAVE_NETBSD_FORM_H 1 ++EOF ++ ++echo "$as_me:12012: checking for NetBSD menu.h" >&5 ++echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6 ++if test "${cf_cv_netbsd_menu_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 11593 "configure" ++ ++cat >conftest.$ac_ext <<_ACEOF ++#line 12019 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char XOpenDisplay (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 (*f) (); ++ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <menu.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_XOpenDisplay) || defined (__stub___XOpenDisplay) +-choke me +-#else +-f = XOpenDisplay; +-#endif ++ ++ MENU *menu; ++ int y = menu->max_item_width; + + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11624: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12037: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11627: \$? = $ac_status" >&5 ++ echo "$as_me:12040: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11630: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12043: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11633: \$? = $ac_status" >&5 ++ echo "$as_me:12046: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_XOpenDisplay=yes ++ cf_cv_netbsd_menu_h=yes ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_XOpenDisplay=no ++cf_cv_netbsd_menu_h=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ + fi +-echo "$as_me:11643: result: $ac_cv_func_XOpenDisplay" >&5 +-echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6 +-if test $ac_cv_func_XOpenDisplay = yes; then +- : +-else ++echo "$as_me:12058: result: $cf_cv_netbsd_menu_h" >&5 ++echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6 + +- echo "$as_me:11649: checking for XOpenDisplay in -lX11" >&5 +-echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 +-if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then ++test "$cf_cv_netbsd_menu_h" = yes && ++cat >>confdefs.h <<\EOF ++#define HAVE_NETBSD_MENU_H 1 ++EOF ++ ++ ;; ++ncursesw) ++ cf_cv_libtype=w ++ ;; ++esac ++ ++case $cf_cv_screen in #(vi ++pdcurses) #(vi ++ ;; ++*) ++ # look for curses-related libraries ++ : ${cf_panel_lib:=panel} ++ : ${cf_menu_lib:=menu} ++ : ${cf_form_lib:=form} ++ ++as_ac_Lib=`echo "ac_cv_lib_$cf_panel_lib$cf_cv_libtype''_new_panel" | $as_tr_sh` ++echo "$as_me:12082: checking for new_panel in -l$cf_panel_lib$cf_cv_libtype" >&5 ++echo $ECHO_N "checking for new_panel in -l$cf_panel_lib$cf_cv_libtype... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Lib+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" ++LIBS="-l$cf_panel_lib$cf_cv_libtype $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 11657 "configure" ++#line 12090 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -11663,115 +12096,116 @@ + #endif + /* 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 new_panel (); + int + main () + { +-XOpenDisplay (); ++new_panel (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11676: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:12109: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11679: \$? = $ac_status" >&5 ++ echo "$as_me:12112: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11682: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12115: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11685: \$? = $ac_status" >&5 ++ echo "$as_me:12118: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_X11_XOpenDisplay=yes ++ eval "$as_ac_Lib=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_X11_XOpenDisplay=no ++eval "$as_ac_Lib=no" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:11696: result: $ac_cv_lib_X11_XOpenDisplay" >&5 +-echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 +-if test $ac_cv_lib_X11_XOpenDisplay = yes; then +- LIBS="-lX11 $LIBS" +-fi ++echo "$as_me:12129: result: `eval echo '${'$as_ac_Lib'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 ++if test `eval echo '${'$as_ac_Lib'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_LIB$cf_panel_lib$cf_cv_libtype" | $as_tr_cpp` 1 ++EOF ++ ++ LIBS="-l$cf_panel_lib$cf_cv_libtype $LIBS" + + fi + +- echo "$as_me:11704: checking for XtAppInitialize" >&5 +-echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6 +-if test "${ac_cv_func_XtAppInitialize+set}" = set; then ++as_ac_Lib=`echo "ac_cv_lib_$cf_menu_lib$cf_cv_libtype''_menu_driver" | $as_tr_sh` ++echo "$as_me:12141: checking for menu_driver in -l$cf_menu_lib$cf_cv_libtype" >&5 ++echo $ECHO_N "checking for menu_driver in -l$cf_menu_lib$cf_cv_libtype... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Lib+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 11710 "configure" ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-l$cf_menu_lib$cf_cv_libtype $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++#line 12149 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char XtAppInitialize (); below. */ +-#include <assert.h> ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* 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 (*f) (); +- ++char menu_driver (); + 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 +-f = XtAppInitialize; +-#endif +- ++menu_driver (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11741: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:12168: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11744: \$? = $ac_status" >&5 ++ echo "$as_me:12171: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11747: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12174: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11750: \$? = $ac_status" >&5 ++ echo "$as_me:12177: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_XtAppInitialize=yes ++ eval "$as_ac_Lib=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_XtAppInitialize=no ++eval "$as_ac_Lib=no" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:12188: result: `eval echo '${'$as_ac_Lib'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 ++if test `eval echo '${'$as_ac_Lib'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_LIB$cf_menu_lib$cf_cv_libtype" | $as_tr_cpp` 1 ++EOF ++ ++ LIBS="-l$cf_menu_lib$cf_cv_libtype $LIBS" ++ + fi +-echo "$as_me:11760: result: $ac_cv_func_XtAppInitialize" >&5 +-echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6 +-if test $ac_cv_func_XtAppInitialize = yes; then +- : +-else + +- echo "$as_me:11766: checking for XtAppInitialize in -lXt" >&5 +-echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6 +-if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then ++as_ac_Lib=`echo "ac_cv_lib_$cf_form_lib$cf_cv_libtype''_form_driver" | $as_tr_sh` ++echo "$as_me:12200: checking for form_driver in -l$cf_form_lib$cf_cv_libtype" >&5 ++echo $ECHO_N "checking for form_driver in -l$cf_form_lib$cf_cv_libtype... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Lib+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" ++LIBS="-l$cf_form_lib$cf_cv_libtype $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 11774 "configure" ++#line 12208 "configure" + #include "confdefs.h" + + /* Override any gcc2 internal prototype to avoid an error. */ +@@ -11780,2296 +12214,2187 @@ + #endif + /* 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 form_driver (); + int + main () + { +-XtAppInitialize (); ++form_driver (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11793: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:12227: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11796: \$? = $ac_status" >&5 ++ echo "$as_me:12230: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11799: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12233: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11802: \$? = $ac_status" >&5 ++ echo "$as_me:12236: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_Xt_XtAppInitialize=yes ++ eval "$as_ac_Lib=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_Xt_XtAppInitialize=no ++eval "$as_ac_Lib=no" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:11813: result: $ac_cv_lib_Xt_XtAppInitialize" >&5 +-echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6 +-if test $ac_cv_lib_Xt_XtAppInitialize = yes; then +- cat >>confdefs.h <<\EOF +-#define HAVE_LIBXT 1 ++echo "$as_me:12247: result: `eval echo '${'$as_ac_Lib'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 ++if test `eval echo '${'$as_ac_Lib'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_LIB$cf_form_lib$cf_cv_libtype" | $as_tr_cpp` 1 + EOF + +- cf_have_X_LIBS=Xt +- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS" ++ LIBS="-l$cf_form_lib$cf_cv_libtype $LIBS" ++ + fi + ++ # look for curses-related headers ++ ++for ac_header in \ ++ nc_alloc.h \ ++ nomacros.h \ ++ form.h \ ++ menu.h \ ++ panel.h \ ++ term_entry.h \ ++ ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:12270: 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 12276 "configure" ++#include "confdefs.h" ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:12280: \"$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:12286: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_ext + fi ++echo "$as_me:12305: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++EOF + + fi ++done + +-if test $cf_have_X_LIBS = no ; then +- { echo "$as_me:11829: 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." >&5 +-echo "$as_me: 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." >&2;} ++ ;; ++esac ++ ++echo "$as_me:12318: 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 12324 "configure" ++#include "confdefs.h" ++#include <stdlib.h> ++#include <stdarg.h> ++#include <string.h> ++#include <float.h> ++ ++_ACEOF ++if { (eval echo "$as_me:12332: \"$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:12338: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_cv_header_stdc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ ac_cv_header_stdc=no + fi ++rm -f conftest.err conftest.$ac_ext + +-cf_x_athena_root=$cf_x_athena +-cf_x_athena_inc="" ++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 12360 "configure" ++#include "confdefs.h" ++#include <string.h> + +-for cf_path in default \ +- /usr/contrib/X11R6 \ +- /usr/contrib/X11R5 \ +- /usr/lib/X11R5 \ +- /usr/local +-do +- if test -z "$cf_x_athena_inc" ; 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 "$as_me:11851: checking for $cf_test in $cf_path" >&5 +-echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6 +- else +- echo "$as_me:11854: checking for $cf_test" >&5 +-echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6 +- fi +- cat >conftest.$ac_ext <<_ACEOF +-#line 11858 "configure" ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "memchr" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no ++fi ++rm -rf 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 <<_ACEOF ++#line 12378 "configure" + #include "confdefs.h" ++#include <stdlib.h> + +-#include <X11/Intrinsic.h> +-#include <$cf_test> ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "free" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no ++fi ++rm -rf 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. ++ if test "$cross_compiling" = yes; then ++ : ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12399 "configure" ++#include "confdefs.h" ++#include <ctype.h> ++#if ((' ' & 0x0FF) == 0x020) ++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#else ++# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) ++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ++#endif ++ ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) + int + main () + { +- +- ; +- return 0; ++ int i; ++ for (i = 0; i < 256; i++) ++ if (XOR (islower (i), ISLOWER (i)) ++ || toupper (i) != TOUPPER (i)) ++ $ac_main_return(2); ++ $ac_main_return (0); + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:11872: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:12425: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:11875: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:11878: \"$ac_try\"") >&5 ++ echo "$as_me:12428: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:12430: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11881: \$? = $ac_status" >&5 ++ echo "$as_me:12433: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ : + else +- echo "$as_me: failed program was:" >&5 ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no ++ac_cv_header_stdc=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- echo "$as_me:11890: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +- if test "$cf_result" = yes ; then +- cf_x_athena_inc=$cf_path +- break +- else +- CPPFLAGS="$cf_save" +- fi +- fi +-done +- +-if test -z "$cf_x_athena_inc" ; then +- { echo "$as_me:11902: WARNING: Unable to successfully find Athena header files with test program" >&5 +-echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;} +-elif test "$cf_x_athena_inc" != default ; then +- CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc" ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi ++fi ++fi ++echo "$as_me:12446: result: $ac_cv_header_stdc" >&5 ++echo "${ECHO_T}$ac_cv_header_stdc" >&6 ++if test $ac_cv_header_stdc = yes; then + +-cf_x_athena_root=$cf_x_athena +-cf_x_athena_lib="" ++cat >>confdefs.h <<\EOF ++#define STDC_HEADERS 1 ++EOF + +-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 "$as_me:11927: checking for $cf_lib in $cf_path" >&5 +-echo $ECHO_N "checking for $cf_lib in $cf_path... $ECHO_C" >&6 +- else +- LIBS="$cf_lib $LIBS" +- echo "$as_me:11931: checking for $cf_test in $cf_lib" >&5 +-echo $ECHO_N "checking for $cf_test in $cf_lib... $ECHO_C" >&6 +- fi +- cat >conftest.$ac_ext <<_ACEOF +-#line 11935 "configure" ++fi ++ ++echo "$as_me:12456: 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 12462 "configure" + #include "confdefs.h" +- +-#include <X11/Intrinsic.h> +-#include <X11/$cf_x_athena_root/SimpleMenu.h> ++#include <sys/types.h> ++#include <sys/time.h> ++#include <time.h> + + int + main () + { +- +-$cf_test((XtAppContext) 0) ++if ((struct tm *) 0) ++return 0; + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:11951: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12478: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:11954: \$? = $ac_status" >&5 ++ echo "$as_me:12481: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:11957: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12484: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:11960: \$? = $ac_status" >&5 ++ echo "$as_me:12487: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ ac_cv_header_time=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no ++ac_cv_header_time=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- echo "$as_me:11969: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&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 "$as_me:11981: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5 +-echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;} +- { (exit 1); exit 1; }; } ++rm -f conftest.$ac_objext conftest.$ac_ext + fi ++echo "$as_me:12497: result: $ac_cv_header_time" >&5 ++echo "${ECHO_T}$ac_cv_header_time" >&6 ++if test $ac_cv_header_time = yes; then + +-cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +-cat >>confdefs.h <<EOF +-#define $cf_x_athena_LIBS 1 ++cat >>confdefs.h <<\EOF ++#define TIME_WITH_SYS_TIME 1 + EOF + + fi + +-for ac_prog in xcurses-config ++for ac_header in \ ++getopt.h \ ++locale.h \ ++math.h \ ++stdarg.h \ ++sys/ioctl.h \ ++sys/select.h \ ++sys/time.h \ ++termios.h \ ++unistd.h \ ++ + 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:11998: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +-if test "${ac_cv_path_XCURSES_CONFIG+set}" = set; then ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:12520: 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 +- case $XCURSES_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_XCURSES_CONFIG="$XCURSES_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_XCURSES_CONFIG="$ac_dir/$ac_word" +- echo "$as_me:12015: found $ac_dir/$ac_word" >&5 +- break ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12526 "configure" ++#include "confdefs.h" ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:12530: \"$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:12536: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes + fi +-done ++if test -z "$ac_cpp_err"; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_ext ++fi ++echo "$as_me:12555: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++EOF + +- ;; +-esac + fi +-XCURSES_CONFIG=$ac_cv_path_XCURSES_CONFIG ++done + +-if test -n "$XCURSES_CONFIG"; then +- echo "$as_me:12026: result: $XCURSES_CONFIG" >&5 +-echo "${ECHO_T}$XCURSES_CONFIG" >&6 ++for ac_header in unistd.h getopt.h ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:12568: 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 +- echo "$as_me:12029: result: no" >&5 +-echo "${ECHO_T}no" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12574 "configure" ++#include "confdefs.h" ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:12578: \"$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:12584: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_ext + fi ++echo "$as_me:12603: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++EOF + +- test -n "$XCURSES_CONFIG" && break ++fi + 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 + ++echo "$as_me:12613: checking for header declaring getopt variables" >&5 ++echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6 ++if test "${cf_cv_getopt_header+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +-LDFLAGS="$LDFLAGS $X_LIBS" +- +-test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 +- +-echo "${as_me:-configure}:12050: 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 ++cf_cv_getopt_header=none ++for cf_header in stdio.h stdlib.h unistd.h getopt.h + 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 +- case $cf_add_cflags in #(vi +- -D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- 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}:12121: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 ++cat >conftest.$ac_ext <<_ACEOF ++#line 12623 "configure" ++#include "confdefs.h" + +- CFLAGS="$CFLAGS $cf_new_cflags" ++#include <$cf_header> ++int ++main () ++{ ++int x = optind; char *y = optarg ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12636: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:12639: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12642: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:12645: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_getopt_header=$cf_header ++ break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 + fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++done + +-if test -n "$cf_new_cppflags" ; then +- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6 +- +-echo "${as_me:-configure}:12129: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 +- +- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + fi ++echo "$as_me:12657: result: $cf_cv_getopt_header" >&5 ++echo "${ECHO_T}$cf_cv_getopt_header" >&6 ++if test $cf_cv_getopt_header != none ; then + +-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}:12137: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 ++cat >>confdefs.h <<\EOF ++#define HAVE_GETOPT_HEADER 1 ++EOF + +- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" + fi + +-if test "$cf_check_cflags" != "$CFLAGS" ; then +-cat >conftest.$ac_ext <<_ACEOF +-#line 12144 "configure" ++for ac_func in \ ++gettimeofday \ ++ ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:12672: 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 12678 "configure" + #include "confdefs.h" +-#include <stdio.h> ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* 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 (); ++char (*f) (); ++ + int + main () + { +-printf("Hello world"); ++/* 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 ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12156: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:12709: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12159: \$? = $ac_status" >&5 ++ echo "$as_me:12712: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12162: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12715: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12165: \$? = $ac_status" >&5 ++ echo "$as_me:12718: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ eval "$as_ac_var=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 +- +-echo "${as_me:-configure}:12173: 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}:12178: testing but keeping change to \$CPPFLAGS ..." 1>&5 +- +- fi +- CFLAGS="$cf_check_flags" ++eval "$as_ac_var=no" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi ++echo "$as_me:12728: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++EOF ++ ++fi ++done + +-echo "$as_me:12186: checking for XOpenDisplay in -lX11" >&5 +-echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 +-if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then ++if test "$cf_enable_widec" = yes; then ++ ++for ac_func in \ ++mblen \ ++mbrlen \ ++mbrtowc \ ++mbsrtowcs \ ++mbstowcs \ ++mbtowc \ ++wcsrtombs \ ++wcstombs \ ++ ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:12752: 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 +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 12194 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12758 "configure" + #include "confdefs.h" +- ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. */ ++#include <assert.h> + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* 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 $ac_func (); ++char (*f) (); ++ + int + main () + { +-XOpenDisplay (); ++/* 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 ++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12213: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:12789: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12216: \$? = $ac_status" >&5 ++ echo "$as_me:12792: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12219: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12795: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12222: \$? = $ac_status" >&5 ++ echo "$as_me:12798: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_X11_XOpenDisplay=yes ++ eval "$as_ac_var=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_lib_X11_XOpenDisplay=no ++eval "$as_ac_var=no" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:12233: result: $ac_cv_lib_X11_XOpenDisplay" >&5 +-echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 +-if test $ac_cv_lib_X11_XOpenDisplay = yes; then +- LIBS="-lX11 $LIBS" ++echo "$as_me:12808: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<EOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++EOF ++ + fi ++done + +-echo "$as_me:12239: checking for XCurses library" >&5 +-echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6 +-if test "${cf_cv_lib_XCurses+set}" = set; then ++fi ++ ++echo "$as_me:12820: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 ++echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6 ++if test "${cf_cv_need_xopen_extension+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +-LIBS="-lXCurses $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 12247 "configure" ++#line 12827 "configure" + #include "confdefs.h" + +-#include <xcurses.h> +-char *XCursesProgramName = "test"; ++#include <stdlib.h> ++#include <${cf_cv_ncurses_header:-curses.h}> ++int ++main () ++{ + ++#if defined(NCURSES_VERSION_PATCH) ++#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403) ++ make an error ++#endif ++#endif ++ long x = winnstr(stdscr, "", 0); ++ int x1, y1; ++ getbegyx(stdscr, y1, x1) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:12849: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:12852: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:12855: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:12858: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_need_xopen_extension=no ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cat >conftest.$ac_ext <<_ACEOF ++#line 12865 "configure" ++#include "confdefs.h" ++ ++#define _XOPEN_SOURCE_EXTENDED ++#include <stdlib.h> ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-XCursesExit(); ++ ++#ifdef NCURSES_VERSION ++ cchar_t check; ++ int check2 = curs_set((int)sizeof(check)); ++#endif ++ long x = winnstr(stdscr, "", 0); ++ int x1, y1; ++ getbegyx(stdscr, y1, x1) + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12262: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:12887: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12265: \$? = $ac_status" >&5 ++ echo "$as_me:12890: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12268: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:12893: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12271: \$? = $ac_status" >&5 ++ echo "$as_me:12896: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_lib_XCurses=yes ++ cf_cv_need_xopen_extension=yes ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_need_xopen_extension=unknown ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:12908: result: $cf_cv_need_xopen_extension" >&5 ++echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6 ++test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" ++ ++echo "$as_me:12912: checking for term.h" >&5 ++echo $ECHO_N "checking for term.h... $ECHO_C" >&6 ++if test "${cf_cv_term_header+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look ++# for <term.h> if we do not find the variant. ++ ++cf_header_list="term.h ncurses/term.h ncursesw/term.h" ++ ++case ${cf_cv_ncurses_header:-curses.h} in #(vi ++*/*) ++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h ++ cf_header_list="$cf_header_item $cf_header_list" ++ ;; ++esac ++ ++for cf_header in $cf_header_list ++do ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12933 "configure" ++#include "confdefs.h" ++ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <${cf_header}> ++int ++main () ++{ ++WINDOW *x ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12947: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:12950: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12953: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:12956: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_term_header=$cf_header ++ break ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_cv_term_header=no ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++done ++ ++case $cf_cv_term_header in #(vi ++no) ++ # If curses is ncurses, some packagers still mess it up by trying to make ++ # us use GNU termcap. This handles the most common case. ++ for cf_header in ncurses/term.h ncursesw/term.h ++ do ++ cat >conftest.$ac_ext <<_ACEOF ++#line 12975 "configure" ++#include "confdefs.h" ++ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#ifdef NCURSES_VERSION ++#include <${cf_header}> ++#else ++make an error ++#endif ++int ++main () ++{ ++WINDOW *x ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:12993: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:12996: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:12999: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:13002: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_term_header=$cf_header ++ break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_lib_XCurses=no ++cf_cv_term_header=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ done ++ ;; ++esac + + fi +-echo "$as_me:12282: result: $cf_cv_lib_XCurses" >&5 +-echo "${ECHO_T}$cf_cv_lib_XCurses" >&6 ++echo "$as_me:13017: result: $cf_cv_term_header" >&5 ++echo "${ECHO_T}$cf_cv_term_header" >&6 + +-fi ++case $cf_cv_term_header in #(vi ++term.h) #(vi + +-if test $cf_cv_lib_XCurses = yes ; then +- cat >>confdefs.h <<\EOF +-#define UNIX 1 ++cat >>confdefs.h <<\EOF ++#define HAVE_TERM_H 1 + EOF + +- cat >>confdefs.h <<\EOF +-#define XCURSES 1 +-EOF ++ ;; ++ncurses/term.h) #(vi + +- echo "$as_me:12296: checking for xcurses.h" >&5 +-echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6 +-if test "${ac_cv_header_xcurses_h+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 12302 "configure" +-#include "confdefs.h" +-#include <xcurses.h> +-_ACEOF +-if { (eval echo "$as_me:12306: \"$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:12312: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- ac_cv_header_xcurses_h=yes +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- ac_cv_header_xcurses_h=no +-fi +-rm -f conftest.err conftest.$ac_ext +-fi +-echo "$as_me:12331: result: $ac_cv_header_xcurses_h" >&5 +-echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6 +-if test $ac_cv_header_xcurses_h = yes; then +- cat >>confdefs.h <<\EOF +-#define HAVE_XCURSES 1 ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSES_TERM_H 1 + EOF + +-fi ++ ;; ++ncursesw/term.h) + +-else +- { { echo "$as_me:12341: error: Cannot link with XCurses" >&5 +-echo "$as_me: error: Cannot link with XCurses" >&2;} +- { (exit 1); exit 1; }; } +-fi ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSESW_TERM_H 1 ++EOF + + ;; + esac + +-case $cf_cv_screen in #(vi +-pdcurses) #(vi +- ;; +-*) +- # look for curses-related libraries +- +-as_ac_Lib=`echo "ac_cv_lib_panel$cf_cv_libtype''_new_panel" | $as_tr_sh` +-echo "$as_me:12356: checking for new_panel in -lpanel$cf_cv_libtype" >&5 +-echo $ECHO_N "checking for new_panel in -lpanel$cf_cv_libtype... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_Lib+set}\" = set"; then ++echo "$as_me:13044: checking for unctrl.h" >&5 ++echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6 ++if test "${cf_cv_unctrl_header+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lpanel$cf_cv_libtype $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 12364 "configure" ++ ++# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look ++# for <unctrl.h> if we do not find the variant. ++ ++cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h" ++ ++case ${cf_cv_ncurses_header:-curses.h} in #(vi ++*/*) ++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h ++ cf_header_list="$cf_header_item $cf_header_list" ++ ;; ++esac ++ ++for cf_header in $cf_header_list ++do ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13065 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char new_panel (); ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <${cf_header}> + int + main () + { +-new_panel (); ++WINDOW *x + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12383: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:13079: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:12386: \$? = $ac_status" >&5 ++ echo "$as_me:13082: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12389: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:13085: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12392: \$? = $ac_status" >&5 ++ echo "$as_me:13088: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_Lib=yes" ++ cf_cv_unctrl_header=$cf_header ++ break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_Lib=no" ++cf_cv_unctrl_header=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++rm -f conftest.$ac_objext conftest.$ac_ext ++done ++ + fi +-echo "$as_me:12403: result: `eval echo '${'$as_ac_Lib'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 +-if test `eval echo '${'$as_ac_Lib'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_LIBpanel$cf_cv_libtype" | $as_tr_cpp` 1 ++echo "$as_me:13101: result: $cf_cv_unctrl_header" >&5 ++echo "${ECHO_T}$cf_cv_unctrl_header" >&6 ++ ++case $cf_cv_unctrl_header in #(vi ++no) ++ { echo "$as_me:13106: WARNING: unctrl.h header not found" >&5 ++echo "$as_me: WARNING: unctrl.h header not found" >&2;} ++ ;; ++esac ++ ++case $cf_cv_unctrl_header in #(vi ++unctrl.h) #(vi ++ ++cat >>confdefs.h <<\EOF ++#define HAVE_UNCTRL_H 1 + EOF + +- LIBS="-lpanel$cf_cv_libtype $LIBS" ++ ;; ++ncurses/unctrl.h) #(vi + +-fi ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSES_UNCTRL_H 1 ++EOF + +-as_ac_Lib=`echo "ac_cv_lib_menu$cf_cv_libtype''_menu_driver" | $as_tr_sh` +-echo "$as_me:12415: checking for menu_driver in -lmenu$cf_cv_libtype" >&5 +-echo $ECHO_N "checking for menu_driver in -lmenu$cf_cv_libtype... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_Lib+set}\" = set"; then ++ ;; ++ncursesw/unctrl.h) ++ ++cat >>confdefs.h <<\EOF ++#define HAVE_NCURSESW_UNCTRL_H 1 ++EOF ++ ++ ;; ++esac ++ ++for cf_func in \ ++assume_default_colors \ ++chgat \ ++color_set \ ++filter \ ++getbegx \ ++getcurx \ ++getmaxx \ ++getnstr \ ++getparx \ ++getwin \ ++mvvline \ ++mvwvline \ ++napms \ ++putwin \ ++resize_term \ ++resizeterm \ ++ripoffline \ ++scr_dump \ ++setupterm \ ++slk_color \ ++slk_init \ ++termattrs \ ++tgetent \ ++tigetnum \ ++tigetstr \ ++typeahead \ ++use_default_colors \ ++use_screen \ ++use_window \ ++vsscanf \ ++vw_printw \ ++wchgat \ ++winsstr \ ++wresize \ ++wsyncdown \ ++ ++do ++ ++cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++ echo "$as_me:13176: checking for ${cf_func}" >&5 ++echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6 ++ ++echo "${as_me:-configure}:13179: testing ${cf_func} ..." 1>&5 ++ ++ if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lmenu$cf_cv_libtype $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 12423 "configure" ++ ++ eval cf_result='$ac_cv_func_'$cf_func ++ if test ".$cf_result" != ".no"; then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13188 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> + #endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char menu_driver (); ++#endif ++ + int + main () + { +-menu_driver (); ++ ++#ifndef ${cf_func} ++long foo = (long)(&${cf_func}); ++if (foo + 1234 > 5678) ++ ${cf_cv_main_return:-return}(foo); ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12442: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13220: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12445: \$? = $ac_status" >&5 ++ echo "$as_me:13223: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12448: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13226: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12451: \$? = $ac_status" >&5 ++ echo "$as_me:13229: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_Lib=yes" ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_Lib=no" ++cf_result=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++ fi ++ eval 'cf_cv_func_'$cf_func'=$cf_result' ++ + fi +-echo "$as_me:12462: result: `eval echo '${'$as_ac_Lib'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 +-if test `eval echo '${'$as_ac_Lib'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_LIBmenu$cf_cv_libtype" | $as_tr_cpp` 1 ++ ++ # use the computed/retrieved cache-value: ++ eval 'cf_result=$cf_cv_func_'$cf_func ++ echo "$as_me:13245: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ if test $cf_result != no; then ++ cat >>confdefs.h <<EOF ++#define HAVE_${cf_tr_func} 1 + EOF + +- LIBS="-lmenu$cf_cv_libtype $LIBS" ++ fi ++done + +-fi ++for cf_func in tputs ++do + +-as_ac_Lib=`echo "ac_cv_lib_form$cf_cv_libtype''_form_driver" | $as_tr_sh` +-echo "$as_me:12474: checking for form_driver in -lform$cf_cv_libtype" >&5 +-echo $ECHO_N "checking for form_driver in -lform$cf_cv_libtype... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_Lib+set}\" = set"; then ++cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++ echo "$as_me:13260: checking for ${cf_func}" >&5 ++echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6 ++ ++echo "${as_me:-configure}:13263: testing ${cf_func} ..." 1>&5 ++ ++ if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lform$cf_cv_libtype $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-#line 12482 "configure" ++ ++ eval cf_result='$ac_cv_func_'$cf_func ++ if test ".$cf_result" != ".no"; then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13272 "configure" + #include "confdefs.h" + +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> + #endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char form_driver (); ++#endif ++ + int + main () + { +-form_driver (); ++ ++#ifndef ${cf_func} ++long foo = (long)(&${cf_func}); ++if (foo + 1234 > 5678) ++ ${cf_cv_main_return:-return}(foo); ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12501: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13304: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12504: \$? = $ac_status" >&5 ++ echo "$as_me:13307: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12507: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13310: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12510: \$? = $ac_status" >&5 ++ echo "$as_me:13313: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_Lib=yes" ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_Lib=no" ++cf_result=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:12521: result: `eval echo '${'$as_ac_Lib'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6 +-if test `eval echo '${'$as_ac_Lib'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_LIBform$cf_cv_libtype" | $as_tr_cpp` 1 +-EOF +- +- LIBS="-lform$cf_cv_libtype $LIBS" ++ fi ++ eval 'cf_cv_func_'$cf_func'=$cf_result' + + fi + +- # look for curses-related headers +- +-for ac_header in \ +- nc_alloc.h \ +- nomacros.h \ +- form.h \ +- menu.h \ +- panel.h \ +- term_entry.h \ +- +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:12544: 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 12550 "configure" +-#include "confdefs.h" +-#include <$ac_header> +-_ACEOF +-if { (eval echo "$as_me:12554: \"$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:12560: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- eval "$as_ac_Header=yes" +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- eval "$as_ac_Header=no" +-fi +-rm -f conftest.err conftest.$ac_ext +-fi +-echo "$as_me:12579: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++ # use the computed/retrieved cache-value: ++ eval 'cf_result=$cf_cv_func_'$cf_func ++ echo "$as_me:13329: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ if test $cf_result != no; then ++ cat >>confdefs.h <<EOF ++#define HAVE_${cf_tr_func} 1 + EOF + +-fi ++ fi + done + +- ;; +-esac +- +-echo "$as_me:12592: 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 12598 "configure" ++if test x$cf_cv_func_tputs = xyes ++then ++ cf_done=no ++ for cf_arg in int char ++ do ++ for cf_ret in int void ++ do ++ if test $cf_ret = void ++ then ++ cf_return="/* nothing */" ++ else ++ cf_return="return value" ++ fi ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13353 "configure" + #include "confdefs.h" +-#include <sys/types.h> +-#include <signal.h> +-#ifdef signal +-# undef signal +-#endif +-#ifdef __cplusplus +-extern "C" void (*signal (int, void (*)(int)))(int); +-#else +-void (*signal ()) (); +-#endif ++ ++#include <${cf_cv_ncurses_header:-curses.h}> ++#include <$cf_cv_term_header> ++ ++static $cf_ret outc($cf_arg value) { $cf_return; } + + int + main () + { +-int i; ++ ++ tputs("hello", 0, outc); ++ ${cf_cv_main_return:-return}(0); ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:12620: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:13373: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:12623: \$? = $ac_status" >&5 ++ echo "$as_me:13376: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:12626: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13379: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12629: \$? = $ac_status" >&5 ++ echo "$as_me:13382: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_type_signal=void ++ ++ test -n "$verbose" && echo " prototype $cf_ret func($cf_arg value)" 1>&6 ++ ++echo "${as_me:-configure}:13387: testing prototype $cf_ret func($cf_arg value) ..." 1>&5 ++ ++ cat >>confdefs.h <<EOF ++#define TPUTS_ARG $cf_arg ++#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value) ++#define TPUTS_RETURN(value) $cf_return ++EOF ++ cf_done=yes ++ break ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_type_signal=int + fi + rm -f conftest.$ac_objext conftest.$ac_ext ++ done ++ test $cf_done = yes && break ++ done + fi +-echo "$as_me:12639: result: $ac_cv_type_signal" >&5 +-echo "${ECHO_T}$ac_cv_type_signal" >&6 +- +-cat >>confdefs.h <<EOF +-#define RETSIGTYPE $ac_cv_type_signal +-EOF + +-echo "$as_me:12646: 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 "$as_me:13407: checking for ncurses extended functions" >&5 ++echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6 ++if test "${cf_cv_ncurses_ext_funcs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat >conftest.$ac_ext <<_ACEOF +-#line 12652 "configure" +-#include "confdefs.h" +-#include <stdlib.h> +-#include <stdarg.h> +-#include <string.h> +-#include <float.h> +- +-_ACEOF +-if { (eval echo "$as_me:12660: \"$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:12666: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- ac_cv_header_stdc=yes +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- ac_cv_header_stdc=no +-fi +-rm -f conftest.err conftest.$ac_ext + +-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 12688 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 13414 "configure" + #include "confdefs.h" +-#include <string.h> +- +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- egrep "memchr" >/dev/null 2>&1; then +- : +-else +- ac_cv_header_stdc=no +-fi +-rm -rf conftest* + +-fi ++#include <${cf_cv_ncurses_header:-curses.h}> ++int ++main () ++{ + +-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 12706 "configure" +-#include "confdefs.h" +-#include <stdlib.h> ++int x = NCURSES_EXT_FUNCS + ++ ; ++ return 0; ++} + _ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- egrep "free" >/dev/null 2>&1; then +- : ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:13429: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:13432: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:13435: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:13438: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_cv_ncurses_ext_funcs=defined + else +- ac_cv_header_stdc=no +-fi +-rm -rf conftest* +- +-fi ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 + +-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 <<_ACEOF +-#line 12727 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 13446 "configure" + #include "confdefs.h" +-#include <ctype.h> +-#if ((' ' & 0x0FF) == 0x020) +-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +-#else +-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) +-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +-#endif + +-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +- int i; +- for (i = 0; i < 256; i++) +- if (XOR (islower (i), ISLOWER (i)) +- || toupper (i) != TOUPPER (i)) +- $ac_main_return(2); +- $ac_main_return (0); ++ ++ (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; + } + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:12753: \"$ac_link\"") >&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:13471: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:12756: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:12758: \"$ac_try\"") >&5 ++ echo "$as_me:13474: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:13477: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12761: \$? = $ac_status" >&5 ++ echo "$as_me:13480: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- : ++ cf_cv_ncurses_ext_funcs=yes + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_header_stdc=no +-fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi ++cf_cv_ncurses_ext_funcs=no + fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ + fi +-echo "$as_me:12774: result: $ac_cv_header_stdc" >&5 +-echo "${ECHO_T}$ac_cv_header_stdc" >&6 +-if test $ac_cv_header_stdc = yes; then ++rm -f conftest.$ac_objext conftest.$ac_ext + ++fi ++echo "$as_me:13494: result: $cf_cv_ncurses_ext_funcs" >&5 ++echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6 ++test "$cf_cv_ncurses_ext_funcs" = yes && + cat >>confdefs.h <<\EOF +-#define STDC_HEADERS 1 ++#define NCURSES_EXT_FUNCS 1 + EOF + +-fi ++if test "$cf_enable_widec" = yes ++then ++ # workaround for systems with ncurses before 20111029, due to change of ++ # feature test macro from _XPG5 to _XOPEN_SOURCE ++ if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno ++ then ++ cf_define_xpg5=no ++ echo "$as_me:13508: checking if _XPG5 should be defined to enable wide-characters" >&5 ++echo $ECHO_N "checking if _XPG5 should be defined to enable wide-characters... $ECHO_C" >&6 + +-echo "$as_me:12784: 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 12790 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13512 "configure" + #include "confdefs.h" +-#include <sys/types.h> +-#include <sys/time.h> +-#include <time.h> + ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +-if ((struct tm *) 0) +-return 0; ++int x = _XPG5 + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:12806: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:13525: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:12809: \$? = $ac_status" >&5 ++ echo "$as_me:13528: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:12812: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13531: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12815: \$? = $ac_status" >&5 ++ echo "$as_me:13534: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_header_time=yes ++ : + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_header_time=no +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-fi +-echo "$as_me:12825: result: $ac_cv_header_time" >&5 +-echo "${ECHO_T}$ac_cv_header_time" >&6 +-if test $ac_cv_header_time = yes; then +- +-cat >>confdefs.h <<\EOF +-#define TIME_WITH_SYS_TIME 1 +-EOF +- +-fi +- +-for ac_header in \ +-getopt.h \ +-locale.h \ +-math.h \ +-stdarg.h \ +-sys/ioctl.h \ +-sys/select.h \ +-sys/time.h \ +-termios.h \ +-unistd.h \ +- +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:12848: 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 12854 "configure" +-#include "confdefs.h" +-#include <$ac_header> +-_ACEOF +-if { (eval echo "$as_me:12858: \"$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:12864: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- eval "$as_ac_Header=yes" +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- eval "$as_ac_Header=no" +-fi +-rm -f conftest.err conftest.$ac_ext +-fi +-echo "$as_me:12883: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-EOF +- +-fi +-done +- +-for ac_func in \ +-gettimeofday \ +-mblen \ +-mbrlen \ +-mbrtowc \ +-mbsrtowcs \ +-mbstowcs \ +-mbtowc \ +-strdup \ +-wcsrtombs \ +-wcstombs \ +- +-do +-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +-echo "$as_me:12907: 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 12913 "configure" ++cf_save_cppflags="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XPG5" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13543 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 (); +-char (*f) (); + ++#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 +-f = $ac_func; +-#endif +- ++int x = _XPG5 + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:12944: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:13556: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:12947: \$? = $ac_status" >&5 ++ echo "$as_me:13559: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:12950: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:13562: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:12953: \$? = $ac_status" >&5 ++ echo "$as_me:13565: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_var=yes" ++ cf_define_xpg5=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CPPFLAGS="$cf_save_cppflags" + fi +-echo "$as_me:12963: result: `eval echo '${'$as_ac_var'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +-if test `eval echo '${'$as_ac_var'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-EOF ++rm -f conftest.$ac_objext conftest.$ac_ext ++ echo "$as_me:13576: result: $cf_define_xpg5" >&5 ++echo "${ECHO_T}$cf_define_xpg5" >&6 + +-fi +-done ++ if test "$cf_define_xpg5" = yes ++ then ++ CPPFLAGS="$CPPFLAGS -D_XPG5" ++ fi ++ fi + +-echo "$as_me:12973: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 +-echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6 +-if test "${cf_cv_need_xopen_extension+set}" = set; then ++ echo "$as_me:13585: checking for wide-character functions" >&5 ++echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6 ++if test "${cf_cv_widechar_funcs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +-cat >conftest.$ac_ext <<_ACEOF +-#line 12980 "configure" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13592 "configure" + #include "confdefs.h" + +-#include <stdlib.h> + #include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { + +-#if defined(NCURSES_VERSION_PATCH) +-#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403) +- make an error +-#endif +-#endif +- long x = winnstr(stdscr, "", 0); +- int x1, y1; +- getbegyx(stdscr, y1, x1) ++ static wchar_t src_wchar[2]; ++ static cchar_t dst_cchar; ++ setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13002: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13609: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13005: \$? = $ac_status" >&5 ++ echo "$as_me:13612: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13008: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13615: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13011: \$? = $ac_status" >&5 ++ echo "$as_me:13618: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_need_xopen_extension=no ++ cf_cv_widechar_funcs=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_cv_widechar_funcs=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ ++fi ++echo "$as_me:13629: result: $cf_cv_widechar_funcs" >&5 ++echo "${ECHO_T}$cf_cv_widechar_funcs" >&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 ++else ++ cat >>confdefs.h <<\EOF ++#define USE_WIDEC_SUPPORT 0 ++EOF ++ ++fi ++ ++echo "$as_me:13650: 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 13018 "configure" ++#line 13657 "configure" + #include "confdefs.h" + +-#define _XOPEN_SOURCE_EXTENDED +-#include <stdlib.h> +-#include <${cf_cv_ncurses_header:-curses.h}> ++#include <sys/types.h> ++#ifdef HAVE_SYS_TIME_H ++#include <sys/time.h> ++#endif ++#ifdef HAVE_SYS_SELECT_H ++#include <sys/select.h> ++#endif ++ + int + main () + { + +-#ifdef NCURSES_VERSION +- cchar_t check; +- int check2 = curs_set((int)sizeof(check)); +-#endif +- long x = winnstr(stdscr, "", 0); +- int x1, y1; +- getbegyx(stdscr, y1, x1) + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13040: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:13677: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13043: \$? = $ac_status" >&5 ++ echo "$as_me:13680: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13046: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:13683: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13049: \$? = $ac_status" >&5 ++ echo "$as_me:13686: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_need_xopen_extension=yes ++ cf_cv_sys_time_select=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_need_xopen_extension=unknown +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++cf_cv_sys_time_select=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++ + fi +-echo "$as_me:13061: result: $cf_cv_need_xopen_extension" >&5 +-echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6 +-test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" + +-echo "$as_me:13065: checking for term.h" >&5 +-echo $ECHO_N "checking for term.h... $ECHO_C" >&6 +-if test "${cf_cv_term_header+set}" = set; then ++echo "$as_me:13698: 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 ++EOF ++ ++echo "$as_me:13705: checking for function curses_version" >&5 ++echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6 ++if test "${cf_cv_func_curses_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +-# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look +-# for <term.h> if we do not find the variant. +-for cf_header in \ +- `echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \ +- term.h +-do +- cat >conftest.$ac_ext <<_ACEOF +-#line 13078 "configure" ++if test "$cross_compiling" = yes; then ++ cf_cv_func_curses_version=unknown ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13715 "configure" + #include "confdefs.h" + + #include <${cf_cv_ncurses_header:-curses.h}> +-#include <${cf_header}> +-int +-main () ++int main() + { +-WINDOW *x +- ; +- return 0; ++ char temp[1024]; ++ sprintf(temp, "%s\n", curses_version()); ++ ${cf_cv_main_return:-return}(0); + } ++ + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13092: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:13728: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13095: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13098: \"$ac_try\"") >&5 ++ echo "$as_me:13731: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:13733: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13101: \$? = $ac_status" >&5 ++ echo "$as_me:13736: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_term_header=$cf_header +- break ++ cf_cv_func_curses_version=yes ++ + else +- echo "$as_me: failed program was:" >&5 ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_term_header=no ++cf_cv_func_curses_version=no ++ + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-done ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core ++fi ++echo "$as_me:13751: result: $cf_cv_func_curses_version" >&5 ++echo "${ECHO_T}$cf_cv_func_curses_version" >&6 ++test "$cf_cv_func_curses_version" = yes && ++cat >>confdefs.h <<\EOF ++#define HAVE_CURSES_VERSION 1 ++EOF + +-case $cf_cv_term_header in #(vi +-no) +- # If curses is ncurses, some packagers still mess it up by trying to make +- # us use GNU termcap. This handles the most common case. +- for cf_header in ncurses/term.h ncursesw/term.h +- do +- cat >conftest.$ac_ext <<_ACEOF +-#line 13120 "configure" ++echo "$as_me:13758: checking for alternate character set array" >&5 ++echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6 ++if test "${cf_cv_curses_acs_map+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++cf_cv_curses_acs_map=unknown ++for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map ++do ++cat >conftest.$ac_ext <<_ACEOF ++#line 13768 "configure" + #include "confdefs.h" + + #include <${cf_cv_ncurses_header:-curses.h}> +-#ifdef NCURSES_VERSION +-#include <${cf_header}> +-#else +-make an error +-#endif ++ + int + main () + { +-WINDOW *x ++ ++$name['k'] = ACS_PLUS ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13138: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:13784: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13141: \$? = $ac_status" >&5 ++ echo "$as_me:13787: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13144: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:13790: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13147: \$? = $ac_status" >&5 ++ echo "$as_me:13793: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_term_header=$cf_header +- break ++ cf_cv_curses_acs_map=$name; break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_term_header=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- done +- ;; +-esac ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++done + + fi +-echo "$as_me:13162: result: $cf_cv_term_header" >&5 +-echo "${ECHO_T}$cf_cv_term_header" >&6 +- +-case $cf_cv_term_header in #(vi +-term.h) #(vi +- cat >>confdefs.h <<\EOF +-#define HAVE_TERM_H 1 +-EOF +- +- ;; +-ncurses/term.h) #(vi +- cat >>confdefs.h <<\EOF +-#define HAVE_NCURSES_TERM_H 1 +-EOF ++echo "$as_me:13804: result: $cf_cv_curses_acs_map" >&5 ++echo "${ECHO_T}$cf_cv_curses_acs_map" >&6 + +- ;; +-ncursesw/term.h) +- cat >>confdefs.h <<\EOF +-#define HAVE_NCURSESW_TERM_H 1 ++test "$cf_cv_curses_acs_map" != unknown && ++cat >>confdefs.h <<EOF ++#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map + EOF + +- ;; +-esac +- +-for cf_func in \ +-chgat \ +-color_set \ +-filter \ +-getbegx \ +-getcurx \ +-getmaxx \ +-getnstr \ +-getparx \ +-getwin \ +-mvvline \ +-mvwvline \ +-napms \ +-putwin \ +-resize_term \ +-resizeterm \ +-ripoffline \ +-scr_dump \ +-setupterm \ +-slk_color \ +-slk_init \ +-termattrs \ +-tgetent \ +-tigetnum \ +-tigetstr \ +-typeahead \ +-use_default_colors \ +-vw_printw \ +-vsscanf \ +-wchgat \ +-winsstr \ +-wresize \ +-wsyncdown \ +- +-do +- +-cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +- echo "$as_me:13224: checking for ${cf_func}" >&5 +-echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6 +- +-echo "${as_me:-configure}:13227: testing ${cf_func} ..." 1>&5 ++if test "$cf_enable_widec" = yes; then + +- if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then ++echo "$as_me:13814: checking for wide alternate character set array" >&5 ++echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6 ++if test "${cf_cv_curses_wacs_map+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +- eval cf_result='$ac_cv_func_'$cf_func +- if test ".$cf_result" != ".no"; then +- cat >conftest.$ac_ext <<_ACEOF +-#line 13236 "configure" ++ cf_cv_curses_wacs_map=unknown ++ for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char ++ do ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13824 "configure" + #include "confdefs.h" + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif ++#ifndef _XOPEN_SOURCE_EXTENDED ++#define _XOPEN_SOURCE_EXTENDED + #endif +- ++#include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +- +-#ifndef ${cf_func} +-long foo = (long)(&${cf_func}); +-${cf_cv_main_return:-return}(foo == 0); +-#endif +- ++void *foo = &($name['k']) + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13267: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13840: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13270: \$? = $ac_status" >&5 ++ echo "$as_me:13843: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13273: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13846: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13276: \$? = $ac_status" >&5 ++ echo "$as_me:13849: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ cf_cv_curses_wacs_map=$name ++ break + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- fi +- eval 'cf_cv_func_'$cf_func'=$cf_result' +- ++ done + fi ++echo "$as_me:13860: result: $cf_cv_curses_wacs_map" >&5 ++echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6 + +- # use the computed/retrieved cache-value: +- eval 'cf_result=$cf_cv_func_'$cf_func +- echo "$as_me:13292: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +- if test $cf_result != no; then +- cat >>confdefs.h <<EOF +-#define HAVE_${cf_tr_func} 1 ++test "$cf_cv_curses_wacs_map" != unknown && ++cat >>confdefs.h <<EOF ++#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map + EOF + +- fi +-done +- +-echo "$as_me:13302: checking for ncurses extended functions" >&5 +-echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6 +-if test "${cf_cv_ncurses_ext_funcs+set}" = set; then ++echo "$as_me:13868: checking for wide alternate character constants" >&5 ++echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6 ++if test "${cf_cv_curses_wacs_symbols+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +-cat >conftest.$ac_ext <<_ACEOF +-#line 13309 "configure" ++cf_cv_curses_wacs_symbols=no ++if test "$cf_cv_curses_wacs_map" != unknown ++then ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13878 "configure" + #include "confdefs.h" + ++#ifndef _XOPEN_SOURCE_EXTENDED ++#define _XOPEN_SOURCE_EXTENDED ++#endif + #include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { +- +-int x = NCURSES_EXT_FUNCS +- ++cchar_t *foo = WACS_PLUS; ++ $cf_cv_curses_wacs_map['k'] = *WACS_PLUS + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13324: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:13895: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13327: \$? = $ac_status" >&5 ++ echo "$as_me:13898: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13330: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:13901: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13333: \$? = $ac_status" >&5 ++ echo "$as_me:13904: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_ext_funcs=defined ++ cf_cv_curses_wacs_symbols=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +- +-cat >conftest.$ac_ext <<_ACEOF +-#line 13341 "configure" ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 13914 "configure" + #include "confdefs.h" + ++#ifndef _XOPEN_SOURCE_EXTENDED ++#define _XOPEN_SOURCE_EXTENDED ++#endif + #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); ++cchar_t *foo = WACS_PLUS + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13366: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:13930: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:13369: \$? = $ac_status" >&5 ++ echo "$as_me:13933: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13372: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:13936: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13375: \$? = $ac_status" >&5 ++ echo "$as_me:13939: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_ncurses_ext_funcs=yes ++ cf_cv_curses_wacs_symbols=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_ncurses_ext_funcs=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- + fi +-rm -f conftest.$ac_objext conftest.$ac_ext + + fi +-echo "$as_me:13389: result: $cf_cv_ncurses_ext_funcs" >&5 +-echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6 +-test "$cf_cv_ncurses_ext_funcs" = yes && cat >>confdefs.h <<\EOF +-#define NCURSES_EXT_FUNCS 1 ++echo "$as_me:13950: result: $cf_cv_curses_wacs_symbols" >&5 ++echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6 ++ ++test "$cf_cv_curses_wacs_symbols" != no && ++cat >>confdefs.h <<\EOF ++#define CURSES_WACS_SYMBOLS 1 + EOF + +-echo "$as_me:13395: checking for wide-character functions" >&5 +-echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6 +-if test "${cf_cv_widechar_funcs+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++fi + ++echo "$as_me:13960: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5 ++echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line 13402 "configure" ++#line 13963 "configure" + #include "confdefs.h" + ++#ifndef _XOPEN_SOURCE_EXTENDED ++#define _XOPEN_SOURCE_EXTENDED ++#endif + #include <${cf_cv_ncurses_header:-curses.h}> + int + main () + { + +- static wchar_t src_wchar[2]; +- static cchar_t dst_cchar; +- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); ++attr_t foo + + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13419: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:13981: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13422: \$? = $ac_status" >&5 ++ echo "$as_me:13984: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13425: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:13987: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13428: \$? = $ac_status" >&5 ++ echo "$as_me:13990: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_widechar_funcs=yes ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_widechar_funcs=no ++cf_result=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:13999: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++if test $cf_result = yes ; then + +-fi +-echo "$as_me:13439: result: $cf_cv_widechar_funcs" >&5 +-echo "${ECHO_T}$cf_cv_widechar_funcs" >&6 +-if test "$cf_cv_widechar_funcs" != no ; then +- cat >>confdefs.h <<\EOF +-#define USE_WIDEC_SUPPORT 1 ++cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++cat >>confdefs.h <<EOF ++#define $cf_result 1 + EOF + + else +- cat >>confdefs.h <<\EOF +-#define USE_WIDEC_SUPPORT 0 ++ ++cat >>confdefs.h <<EOF ++#define attr_t long + EOF + + fi + +-# On IRIX 5.3, sys/types and inttypes.h are conflicting. ++if test "$cf_enable_widec" = yes; then + +-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ +- inttypes.h stdint.h unistd.h +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:13459: checking for $ac_header" >&5 +-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_Header+set}\" = set"; then ++# This is needed on Tru64 5.0 to declare mbstate_t ++echo "$as_me:14020: 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 13465 "configure" ++ ++cat >conftest.$ac_ext <<_ACEOF ++#line 14027 "configure" + #include "confdefs.h" +-$ac_includes_default +-#include <$ac_header> ++ ++#include <stdlib.h> ++#include <stdarg.h> ++#include <stdio.h> ++#ifdef HAVE_LIBUTF8_H ++#include <libutf8.h> ++#endif ++int ++main () ++{ ++mbstate_t state ++ ; ++ return 0; ++} + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13471: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14045: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13474: \$? = $ac_status" >&5 ++ echo "$as_me:14048: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13477: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14051: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13480: \$? = $ac_status" >&5 ++ echo "$as_me:14054: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_Header=yes" ++ cf_cv_mbstate_t=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_Header=no" +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-fi +-echo "$as_me:13490: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-EOF +- +-fi +-done +- +-echo "$as_me:13500: checking for pid_t" >&5 +-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 +-if test "${ac_cv_type_pid_t+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 13506 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 14061 "configure" + #include "confdefs.h" +-$ac_includes_default ++ ++#include <stdlib.h> ++#include <stdarg.h> ++#include <stdio.h> ++#include <wchar.h> ++#ifdef HAVE_LIBUTF8_H ++#include <libutf8.h> ++#endif + int + main () + { +-if ((pid_t *) 0) +- return 0; +-if (sizeof (pid_t)) +- return 0; ++mbstate_t value + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13521: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14080: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13524: \$? = $ac_status" >&5 ++ echo "$as_me:14083: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13527: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14086: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13530: \$? = $ac_status" >&5 ++ echo "$as_me:14089: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_type_pid_t=yes ++ cf_cv_mbstate_t=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_type_pid_t=no ++cf_cv_mbstate_t=unknown + fi + rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:13540: result: $ac_cv_type_pid_t" >&5 +-echo "${ECHO_T}$ac_cv_type_pid_t" >&6 +-if test $ac_cv_type_pid_t = yes; then +- : +-else ++rm -f conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:14101: result: $cf_cv_mbstate_t" >&5 ++echo "${ECHO_T}$cf_cv_mbstate_t" >&6 + +-cat >>confdefs.h <<EOF +-#define pid_t int ++if test "$cf_cv_mbstate_t" = yes ; then ++ ++cat >>confdefs.h <<\EOF ++#define NEED_WCHAR_H 1 + EOF + ++ NEED_WCHAR_H=1 + fi + +-for ac_header in unistd.h vfork.h +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-echo "$as_me:13555: 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 13561 "configure" +-#include "confdefs.h" +-#include <$ac_header> +-_ACEOF +-if { (eval echo "$as_me:13565: \"$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:13571: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- eval "$as_ac_Header=yes" +-else +- echo "$as_me: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- eval "$as_ac_Header=no" +-fi +-rm -f conftest.err conftest.$ac_ext ++# 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 +-echo "$as_me:13590: result: `eval echo '${'$as_ac_Header'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-EOF + ++# 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 +-done + +-for ac_func in fork vfork +-do +-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +-echo "$as_me:13603: checking for $ac_func" >&5 +-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +-if eval "test \"\${$as_ac_var+set}\" = set"; then ++# This is needed on Tru64 5.0 to declare wchar_t ++echo "$as_me:14124: 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 13609 "configure" ++ ++cat >conftest.$ac_ext <<_ACEOF ++#line 14131 "configure" + #include "confdefs.h" +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. */ +-#include <assert.h> +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* 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 (); +-char (*f) (); + ++#include <stdlib.h> ++#include <stdarg.h> ++#include <stdio.h> ++#ifdef HAVE_LIBUTF8_H ++#include <libutf8.h> ++#endif + 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 +-f = $ac_func; +-#endif +- ++wchar_t state + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:13640: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14149: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13643: \$? = $ac_status" >&5 ++ echo "$as_me:14152: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:13646: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14155: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13649: \$? = $ac_status" >&5 ++ echo "$as_me:14158: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- eval "$as_ac_var=yes" ++ cf_cv_wchar_t=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-eval "$as_ac_var=no" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +-echo "$as_me:13659: result: `eval echo '${'$as_ac_var'}'`" >&5 +-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +-if test `eval echo '${'$as_ac_var'}'` = yes; then +- cat >>confdefs.h <<EOF +-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-EOF +- +-fi +-done +- +-ac_cv_func_fork_works=$ac_cv_func_fork +-if test "x$ac_cv_func_fork" = xyes; then +- echo "$as_me:13671: checking for working fork" >&5 +-echo $ECHO_N "checking for working fork... $ECHO_C" >&6 +-if test "${ac_cv_func_fork_works+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- if test "$cross_compiling" = yes; then +- ac_cv_func_fork_works=cross +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* By Rüdiger Kuhlmann. */ +- #include <sys/types.h> +- #if HAVE_UNISTD_H +- # include <unistd.h> +- #endif +- /* Some systems only have a dummy stub for fork() */ +- int main () +- { +- if (fork() < 0) +- $ac_main_return (1); +- $ac_main_return (0); +- } +-_ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:13694: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:13697: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:13699: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:13702: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_func_fork_works=yes +-else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-ac_cv_func_fork_works=no +-fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi +-fi +-echo "$as_me:13714: result: $ac_cv_func_fork_works" >&5 +-echo "${ECHO_T}$ac_cv_func_fork_works" >&6 +- +-fi +-if test "x$ac_cv_func_fork_works" = xcross; then +- case $host in +- *-*-amigaos* | *-*-msdosdjgpp*) +- # Override, as these systems have only a dummy fork() stub +- ac_cv_func_fork_works=no +- ;; +- *) +- ac_cv_func_fork_works=yes +- ;; +- esac +- { echo "$as_me:13728: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5 +-echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;} +-fi +-ac_cv_func_vfork_works=$ac_cv_func_vfork +-if test "x$ac_cv_func_vfork" = xyes; then +- echo "$as_me:13733: checking for working vfork" >&5 +-echo $ECHO_N "checking for working vfork... $ECHO_C" >&6 +-if test "${ac_cv_func_vfork_works+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- if test "$cross_compiling" = yes; then +- ac_cv_func_vfork_works=cross +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 13742 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 14165 "configure" + #include "confdefs.h" +-/* Thanks to Paul Eggert for this test. */ ++ ++#include <stdlib.h> ++#include <stdarg.h> + #include <stdio.h> +-#include <sys/types.h> +-#include <sys/stat.h> +-#if HAVE_UNISTD_H +-# include <unistd.h> +-#endif +-#if HAVE_VFORK_H +-# include <vfork.h> +-#endif +-/* On some sparc systems, changes by the child to local and incoming +- argument registers are propagated back to the parent. The compiler +- is told about this with #include <vfork.h>, but some compilers +- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a +- static variable whose address is put into a register that is +- clobbered by the vfork. */ +-static +-#ifdef __cplusplus +-sparc_address_test (int arg) +-# else +-sparc_address_test (arg) int arg; ++#include <wchar.h> ++#ifdef HAVE_LIBUTF8_H ++#include <libutf8.h> + #endif +-{ +- static pid_t child; +- if (!child) { +- child = vfork (); +- if (child < 0) { +- perror ("vfork"); +- _exit(2); +- } +- if (!child) { +- arg = getpid(); +- write(-1, "", 0); +- _exit (arg); +- } +- } +-} +- + int + main () + { +- pid_t parent = getpid (); +- pid_t child; +- +- sparc_address_test (); +- +- child = vfork (); +- +- if (child == 0) { +- /* Here is another test for sparc vfork register problems. This +- test uses lots of local variables, at least as many local +- variables as main has allocated so far including compiler +- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris +- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should +- reuse the register of parent for one of the local variables, +- since it will think that parent can't possibly be used any more +- in this routine. Assigning to the local variable will thus +- munge parent in the parent process. */ +- pid_t +- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), +- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); +- /* Convince the compiler that p..p7 are live; otherwise, it might +- use the same hardware register for all 8 local variables. */ +- if (p != p1 || p != p2 || p != p3 || p != p4 +- || p != p5 || p != p6 || p != p7) +- _exit(1); +- +- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent +- from child file descriptors. If the child closes a descriptor +- before it execs or exits, this munges the parent's descriptor +- as well. Test for this by closing stdout in the child. */ +- _exit(close(fileno(stdout)) != 0); +- } else { +- int status; +- struct stat st; +- +- while (wait(&status) != child) +- ; +- $ac_main_return( +- /* Was there some problem with vforking? */ +- child < 0 +- +- /* Did the child fail? (This shouldn't happen.) */ +- || status +- +- /* Did the vfork/compiler bug occur? */ +- || parent != getpid() +- +- /* Did the file descriptor bug occur? */ +- || fstat(fileno(stdout), &st) != 0 +- ); +- } ++wchar_t value ++ ; ++ return 0; + } + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:13839: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14184: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13842: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:13844: \"$ac_try\"") >&5 ++ echo "$as_me:14187: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14190: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13847: \$? = $ac_status" >&5 ++ echo "$as_me:14193: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_func_vfork_works=yes ++ cf_cv_wchar_t=yes + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-ac_cv_func_vfork_works=no +-fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++cf_cv_wchar_t=unknown + fi ++rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:13859: result: $ac_cv_func_vfork_works" >&5 +-echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 +- +-fi; +-if test "x$ac_cv_func_fork_works" = xcross; then +- ac_cv_func_vfork_works=ac_cv_func_vfork +- { echo "$as_me:13865: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5 +-echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;} ++rm -f conftest.$ac_objext conftest.$ac_ext + fi ++echo "$as_me:14205: result: $cf_cv_wchar_t" >&5 ++echo "${ECHO_T}$cf_cv_wchar_t" >&6 + +-if test "x$ac_cv_func_vfork_works" = xyes; then +- +-cat >>confdefs.h <<\EOF +-#define HAVE_WORKING_VFORK 1 +-EOF +- +-else ++if test "$cf_cv_wchar_t" = yes ; then + + cat >>confdefs.h <<\EOF +-#define vfork fork ++#define NEED_WCHAR_H 1 + EOF + ++ NEED_WCHAR_H=1 + fi +-if test "x$ac_cv_func_fork_works" = xyes; then + +-cat >>confdefs.h <<\EOF +-#define HAVE_WORKING_FORK 1 +-EOF ++# 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 + ++# 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 + +-echo "$as_me:13890: 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 ++# This is needed on Tru64 5.0 to declare wint_t ++echo "$as_me:14228: 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 13897 "configure" ++#line 14235 "configure" + #include "confdefs.h" + +-#include <sys/types.h> +-#ifdef HAVE_SYS_TIME_H +-#include <sys/time.h> +-#endif +-#ifdef HAVE_SYS_SELECT_H +-#include <sys/select.h> ++#include <stdlib.h> ++#include <stdarg.h> ++#include <stdio.h> ++#ifdef HAVE_LIBUTF8_H ++#include <libutf8.h> + #endif +- + int + main () + { +- ++wint_t state + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:13917: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14253: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13920: \$? = $ac_status" >&5 ++ echo "$as_me:14256: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:13923: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14259: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13926: \$? = $ac_status" >&5 ++ echo "$as_me:14262: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_sys_time_select=yes ++ cf_cv_wint_t=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_sys_time_select=no +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +- +-fi +- +-echo "$as_me:13938: 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 +-EOF +- +-echo "$as_me:13944: checking for function curses_version" >&5 +-echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6 +-if test "${cf_cv_func_curses_version+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- +-if test "$cross_compiling" = yes; then +- cf_cv_func_curses_version=unknown +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 13954 "configure" ++cat >conftest.$ac_ext <<_ACEOF ++#line 14269 "configure" + #include "confdefs.h" + +-#include <${cf_cv_ncurses_header:-curses.h}> +-int main() ++#include <stdlib.h> ++#include <stdarg.h> ++#include <stdio.h> ++#include <wchar.h> ++#ifdef HAVE_LIBUTF8_H ++#include <libutf8.h> ++#endif ++int ++main () + { +- char temp[1024]; +- sprintf(temp, "%s\n", curses_version()); +- ${cf_cv_main_return:-return}(0); ++wint_t value ++ ; ++ return 0; + } +- + _ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:13967: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14288: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:13970: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:13972: \"$ac_try\"") >&5 ++ echo "$as_me:14291: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14294: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:13975: \$? = $ac_status" >&5 ++ echo "$as_me:14297: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_func_curses_version=yes +- ++ cf_cv_wint_t=yes + else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 ++ echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_func_curses_version=no +- ++cf_cv_wint_t=unknown + fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext + fi +-rm -f core ++rm -f conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:13990: result: $cf_cv_func_curses_version" >&5 +-echo "${ECHO_T}$cf_cv_func_curses_version" >&6 +-test "$cf_cv_func_curses_version" = yes && cat >>confdefs.h <<\EOF +-#define HAVE_CURSES_VERSION 1 ++echo "$as_me:14309: result: $cf_cv_wint_t" >&5 ++echo "${ECHO_T}$cf_cv_wint_t" >&6 ++ ++if test "$cf_cv_wint_t" = yes ; then ++ ++cat >>confdefs.h <<\EOF ++#define NEED_WCHAR_H 1 + EOF + +-echo "$as_me:13996: checking for ncurses wrap-prefix" >&5 +-echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6 ++ NEED_WCHAR_H=1 ++fi + +-# 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 "$as_me:14006: result: $NCURSES_WRAP_PREFIX" >&5 +-echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6 ++# 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 + +-echo "$as_me:14009: checking for alternate character set array" >&5 +-echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6 +-if test "${cf_cv_curses_acs_map+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else ++# 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 + +-cf_cv_curses_acs_map=unknown +-for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map +-do ++ if test "$NCURSES_OK_MBSTATE_T" = 0 ; then ++ ++echo "$as_me:14333: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5 ++echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line 14019 "configure" ++#line 14336 "configure" + #include "confdefs.h" + ++#ifndef _XOPEN_SOURCE_EXTENDED ++#define _XOPEN_SOURCE_EXTENDED ++#endif + #include <${cf_cv_ncurses_header:-curses.h}> +- + int + main () + { + +-$name['k'] = ACS_PLUS ++mbstate_t foo + + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14035: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14354: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14038: \$? = $ac_status" >&5 ++ echo "$as_me:14357: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14041: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14360: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14044: \$? = $ac_status" >&5 ++ echo "$as_me:14363: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_curses_acs_map=$name; break ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_result=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-done ++rm -f conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:14372: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++if test $cf_result = yes ; then + +-fi +-echo "$as_me:14055: result: $cf_cv_curses_acs_map" >&5 +-echo "${ECHO_T}$cf_cv_curses_acs_map" >&6 ++cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +-test "$cf_cv_curses_acs_map" != unknown && cat >>confdefs.h <<EOF +-#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map ++cat >>confdefs.h <<EOF ++#define $cf_result 1 + EOF + +-echo "$as_me:14062: checking for wide alternate character set array" >&5 +-echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6 +-if test "${cf_cv_curses_wacs_map+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +- cf_cv_curses_wacs_map=unknown +- for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char +- do +- cat >conftest.$ac_ext <<_ACEOF +-#line 14072 "configure" ++cat >>confdefs.h <<EOF ++#define mbstate_t long ++EOF ++ ++fi ++ ++ fi ++ ++ if test "$NCURSES_OK_WCHAR_T" = 0 ; then ++ ++echo "$as_me:14394: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5 ++echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++#line 14397 "configure" + #include "confdefs.h" + + #ifndef _XOPEN_SOURCE_EXTENDED +@@ -14079,86 +14404,58 @@ + int + main () + { +-void *foo = &($name['k']) ++ ++wchar_t foo ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14088: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14415: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14091: \$? = $ac_status" >&5 ++ echo "$as_me:14418: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14094: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14421: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14097: \$? = $ac_status" >&5 ++ echo "$as_me:14424: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_curses_wacs_map=$name +- break ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_result=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +- done +-fi +-echo "$as_me:14108: result: $cf_cv_curses_wacs_map" >&5 +-echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6 ++rm -f conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:14433: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++if test $cf_result = yes ; then + +-test "$cf_cv_curses_wacs_map" != unknown && cat >>confdefs.h <<EOF +-#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map ++cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++cat >>confdefs.h <<EOF ++#define $cf_result 1 + EOF + +-echo "$as_me:14115: checking for wide alternate character constants" >&5 +-echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6 +-if test "${cf_cv_curses_wacs_symbols+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 + else + +-cf_cv_curses_wacs_symbols=no +-if test "$cf_cv_curses_wacs_map" != unknown +-then +- cat >conftest.$ac_ext <<_ACEOF +-#line 14125 "configure" +-#include "confdefs.h" ++cat >>confdefs.h <<EOF ++#define wchar_t long ++EOF + +-#ifndef _XOPEN_SOURCE_EXTENDED +-#define _XOPEN_SOURCE_EXTENDED +-#endif +-#include <${cf_cv_ncurses_header:-curses.h}> +-int +-main () +-{ +-cchar_t *foo = WACS_PLUS; +- $cf_cv_curses_wacs_map['k'] = *WACS_PLUS +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14142: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:14145: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14148: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:14151: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_cv_curses_wacs_symbols=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 14161 "configure" ++ ++ fi ++ ++ if test "$NCURSES_OK_WINT_T" = 0 ; then ++ ++echo "$as_me:14455: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5 ++echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++#line 14458 "configure" + #include "confdefs.h" + + #ifndef _XOPEN_SOURCE_EXTENDED +@@ -14168,70 +14465,95 @@ + int + main () + { +-cchar_t *foo = WACS_PLUS ++ ++wint_t foo ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14177: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:14476: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14180: \$? = $ac_status" >&5 ++ echo "$as_me:14479: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14183: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:14482: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14186: \$? = $ac_status" >&5 ++ echo "$as_me:14485: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_curses_wacs_symbols=yes ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_result=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:14494: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++if test $cf_result = yes ; then ++ ++cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++cat >>confdefs.h <<EOF ++#define $cf_result 1 ++EOF ++ ++else ++ ++cat >>confdefs.h <<EOF ++#define wint_t long ++EOF ++ + fi + ++ fi + fi +-echo "$as_me:14197: result: $cf_cv_curses_wacs_symbols" >&5 +-echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6 + +-test "$cf_cv_curses_wacs_symbols" != no && cat >>confdefs.h <<\EOF +-#define CURSES_WACS_SYMBOLS 1 +-EOF ++echo "$as_me:14515: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5 ++echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 + +-echo "$as_me:14204: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5 +-echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line 14207 "configure" ++#line 14519 "configure" + #include "confdefs.h" + +-#ifndef _XOPEN_SOURCE_EXTENDED +-#define _XOPEN_SOURCE_EXTENDED +-#endif ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else + #include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> ++#endif ++#endif ++ + int + main () + { + +-attr_t foo ++void *foo = &(boolnames) + + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14225: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14547: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14228: \$? = $ac_status" >&5 ++ echo "$as_me:14550: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14231: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14553: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14234: \$? = $ac_status" >&5 ++ echo "$as_me:14556: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cf_result=yes + else +@@ -14240,868 +14562,1577 @@ + cf_result=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14243: result: $cf_result" >&5 ++echo "$as_me:14565: result: $cf_result" >&5 + echo "${ECHO_T}$cf_result" >&6 ++ + if test $cf_result = yes ; then + +-cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + + cat >>confdefs.h <<EOF + #define $cf_result 1 + EOF + + else +- cat >>confdefs.h <<EOF +-#define attr_t long +-EOF +- +-fi +- +-# This is needed on Tru64 5.0 to declare mbstate_t +-echo "$as_me:14261: 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 ++ echo "$as_me:14577: checking for data boolnames in library" >&5 ++echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6 ++ # BSD linkers insist on making weak linkage, but resolve at runtime. ++ if test "$cross_compiling" = yes; then + +-cat >conftest.$ac_ext <<_ACEOF +-#line 14268 "configure" ++ # cross-compiling ++ cat >conftest.$ac_ext <<_ACEOF ++#line 14584 "configure" + #include "confdefs.h" + +-#include <stdlib.h> +-#include <stdarg.h> +-#include <stdio.h> +-#ifdef HAVE_LIBUTF8_H +-#include <libutf8.h> ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> + #endif ++#endif ++ ++extern char boolnames; + int + main () + { +-mbstate_t state ++ ++ do { ++ void *foo = &(boolnames); ++ ${cf_cv_main_return:-return}(foo == 0); ++ } while (0) ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14286: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:14616: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14289: \$? = $ac_status" >&5 ++ echo "$as_me:14619: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14292: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:14622: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14295: \$? = $ac_status" >&5 ++ echo "$as_me:14625: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_mbstate_t=no ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 ++cf_result=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 14637 "configure" ++#include "confdefs.h" ++ ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> ++#endif ++#endif ++ ++extern char boolnames; ++int main(void) ++{ ++ void *foo = &(boolnames); ++ ${cf_cv_main_return:-return}(foo == 0); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:14662: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:14665: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:14667: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:14670: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cf_result=yes ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++cf_result=no ++fi ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ echo "$as_me:14681: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ if test $cf_result = yes ; then ++ ++cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++ cat >>confdefs.h <<EOF ++#define $cf_result 1 ++EOF ++ ++ fi ++fi ++ ++echo "$as_me:14694: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5 ++echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 ++ + cat >conftest.$ac_ext <<_ACEOF +-#line 14302 "configure" ++#line 14698 "configure" + #include "confdefs.h" + +-#include <stdlib.h> +-#include <stdarg.h> +-#include <stdio.h> +-#include <wchar.h> +-#ifdef HAVE_LIBUTF8_H +-#include <libutf8.h> ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> + #endif ++#endif ++ + int + main () + { +-mbstate_t value ++ ++void *foo = &(boolfnames) ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14321: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:14726: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14324: \$? = $ac_status" >&5 ++ echo "$as_me:14729: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14327: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:14732: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14330: \$? = $ac_status" >&5 ++ echo "$as_me:14735: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_mbstate_t=yes ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_mbstate_t=unknown +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++cf_result=no + fi + rm -f conftest.$ac_objext conftest.$ac_ext +-fi +-echo "$as_me:14342: result: $cf_cv_mbstate_t" >&5 +-echo "${ECHO_T}$cf_cv_mbstate_t" >&6 +- +-if test "$cf_cv_mbstate_t" = yes ; then +- cat >>confdefs.h <<\EOF +-#define NEED_WCHAR_H 1 +-EOF ++echo "$as_me:14744: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 + +- NEED_WCHAR_H=1 +-fi ++if test $cf_result = yes ; then + +-# 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 ++cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +-# 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 ++ cat >>confdefs.h <<EOF ++#define $cf_result 1 ++EOF + +-# This is needed on Tru64 5.0 to declare wchar_t +-echo "$as_me:14364: 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 ++ echo "$as_me:14756: checking for data boolfnames in library" >&5 ++echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6 ++ # BSD linkers insist on making weak linkage, but resolve at runtime. ++ if test "$cross_compiling" = yes; then + +-cat >conftest.$ac_ext <<_ACEOF +-#line 14371 "configure" ++ # cross-compiling ++ cat >conftest.$ac_ext <<_ACEOF ++#line 14763 "configure" + #include "confdefs.h" + +-#include <stdlib.h> +-#include <stdarg.h> +-#include <stdio.h> +-#ifdef HAVE_LIBUTF8_H +-#include <libutf8.h> ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> ++#endif + #endif ++ ++extern char boolfnames; + int + main () + { +-wchar_t state ++ ++ do { ++ void *foo = &(boolfnames); ++ ${cf_cv_main_return:-return}(foo == 0); ++ } while (0) ++ + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14389: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:14795: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14392: \$? = $ac_status" >&5 ++ echo "$as_me:14798: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14395: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:14801: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14398: \$? = $ac_status" >&5 ++ echo "$as_me:14804: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_wchar_t=no ++ cf_result=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cat >conftest.$ac_ext <<_ACEOF +-#line 14405 "configure" ++cf_result=no ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ ++else ++ cat >conftest.$ac_ext <<_ACEOF ++#line 14816 "configure" + #include "confdefs.h" + +-#include <stdlib.h> +-#include <stdarg.h> +-#include <stdio.h> +-#include <wchar.h> +-#ifdef HAVE_LIBUTF8_H +-#include <libutf8.h> ++#ifdef HAVE_XCURSES ++#include <xcurses.h> ++char * XCursesProgramName = "test"; ++#else ++#include <${cf_cv_ncurses_header:-curses.h}> ++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) ++#include <ncursesw/term.h> ++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) ++#include <ncurses/term.h> ++#elif defined(HAVE_TERM_H) ++#include <term.h> + #endif +-int +-main () ++#endif ++ ++extern char boolfnames; ++int main(void) + { +-wchar_t value +- ; +- return 0; ++ void *foo = &(boolfnames); ++ ${cf_cv_main_return:-return}(foo == 0); + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14424: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:14841: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14427: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14430: \"$ac_try\"") >&5 ++ echo "$as_me:14844: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:14846: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14433: \$? = $ac_status" >&5 ++ echo "$as_me:14849: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_wchar_t=yes ++ cf_result=yes + else +- echo "$as_me: failed program was:" >&5 ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_wchar_t=unknown +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++cf_result=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:14445: result: $cf_cv_wchar_t" >&5 +-echo "${ECHO_T}$cf_cv_wchar_t" >&6 ++ echo "$as_me:14860: result: $cf_result" >&5 ++echo "${ECHO_T}$cf_result" >&6 ++ if test $cf_result = yes ; then + +-if test "$cf_cv_wchar_t" = yes ; then +- cat >>confdefs.h <<\EOF +-#define NEED_WCHAR_H 1 ++cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++ cat >>confdefs.h <<EOF ++#define $cf_result 1 + EOF + +- NEED_WCHAR_H=1 ++ fi + 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 ++if ( test "$GCC" = yes || test "$GXX" = yes ) ++then ++echo "$as_me:14875: checking if you want to turn on gcc warnings" >&5 ++echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6 + +-# 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 ++# Check whether --enable-warnings or --disable-warnings was given. ++if test "${enable_warnings+set}" = set; then ++ enableval="$enable_warnings" ++ test "$enableval" != yes && enableval=no ++ if test "$enableval" != "no" ; then ++ with_warnings=yes ++ else ++ with_warnings=no ++ fi ++else ++ enableval=no ++ with_warnings=no + +-# This is needed on Tru64 5.0 to declare wint_t +-echo "$as_me:14467: 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 ++fi; ++echo "$as_me:14892: result: $with_warnings" >&5 ++echo "${ECHO_T}$with_warnings" >&6 ++if test "$with_warnings" = "yes" ++then ++ ++if test "$GCC" = yes ++then ++cat > conftest.i <<EOF ++#ifndef GCC_PRINTF ++#define GCC_PRINTF 0 ++#endif ++#ifndef GCC_SCANF ++#define GCC_SCANF 0 ++#endif ++#ifndef GCC_NORETURN ++#define GCC_NORETURN /* nothing */ ++#endif ++#ifndef GCC_UNUSED ++#define GCC_UNUSED /* nothing */ ++#endif ++EOF ++if test "$GCC" = yes ++then ++ { echo "$as_me:14915: checking for $CC __attribute__ directives..." >&5 ++echo "$as_me: checking for $CC __attribute__ directives..." >&6;} ++cat > conftest.$ac_ext <<EOF ++#line 14918 "${as_me:-configure}" ++#include "confdefs.h" ++#include "conftest.h" ++#include "conftest.i" ++#if GCC_PRINTF ++#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) ++#else ++#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ ++#endif ++#if GCC_SCANF ++#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) ++#else ++#define GCC_SCANFLIKE(fmt,var) /*nothing*/ ++#endif ++extern void wow(char *,...) GCC_SCANFLIKE(1,2); ++extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; ++extern void foo(void) GCC_NORETURN; ++int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; } ++EOF ++ cf_printf_attribute=no ++ cf_scanf_attribute=no ++ for cf_attribute in scanf printf unused noreturn ++ do ++ ++cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++ ++ cf_directive="__attribute__(($cf_attribute))" ++ echo "checking for $CC $cf_directive" 1>&5 ++ ++ case $cf_attribute in #(vi ++ printf) #(vi ++ cf_printf_attribute=yes ++ cat >conftest.h <<EOF ++#define GCC_$cf_ATTRIBUTE 1 ++EOF ++ ;; ++ scanf) #(vi ++ cf_scanf_attribute=yes ++ cat >conftest.h <<EOF ++#define GCC_$cf_ATTRIBUTE 1 ++EOF ++ ;; ++ *) #(vi ++ cat >conftest.h <<EOF ++#define GCC_$cf_ATTRIBUTE $cf_directive ++EOF ++ ;; ++ esac ++ ++ if { (eval echo "$as_me:14967: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:14970: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ test -n "$verbose" && echo "$as_me:14972: result: ... $cf_attribute" >&5 ++echo "${ECHO_T}... $cf_attribute" >&6 ++ cat conftest.h >>confdefs.h ++ case $cf_attribute in #(vi ++ noreturn) #(vi ++ ++cat >>confdefs.h <<EOF ++#define GCC_NORETURN $cf_directive ++EOF ++ ++ ;; ++ printf) #(vi ++ cf_value='/* nothing */' ++ if test "$cf_printf_attribute" != no ; then ++ cf_value='__attribute__((format(printf,fmt,var)))' ++ ++cat >>confdefs.h <<\EOF ++#define GCC_PRINTF 1 ++EOF ++ ++ fi ++ ++cat >>confdefs.h <<EOF ++#define GCC_PRINTFLIKE(fmt,var) $cf_value ++EOF ++ ++ ;; ++ scanf) #(vi ++ cf_value='/* nothing */' ++ if test "$cf_scanf_attribute" != no ; then ++ cf_value='__attribute__((format(scanf,fmt,var)))' ++ ++cat >>confdefs.h <<\EOF ++#define GCC_SCANF 1 ++EOF ++ ++ fi ++ ++cat >>confdefs.h <<EOF ++#define GCC_SCANFLIKE(fmt,var) $cf_value ++EOF ++ ++ ;; ++ unused) #(vi ++ ++cat >>confdefs.h <<EOF ++#define GCC_UNUSED $cf_directive ++EOF ++ ++ ;; ++ esac ++ fi ++ done + else ++ fgrep define conftest.i >>confdefs.h ++fi ++rm -rf conftest* ++fi + +-cat >conftest.$ac_ext <<_ACEOF +-#line 14474 "configure" ++INTEL_COMPILER=no ++ ++if test "$GCC" = yes ; then ++ case $host_os in ++ linux*|gnu*) ++ echo "$as_me:15036: 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 15041 "configure" + #include "confdefs.h" + +-#include <stdlib.h> +-#include <stdarg.h> +-#include <stdio.h> +-#ifdef HAVE_LIBUTF8_H +-#include <libutf8.h> +-#endif + int + main () + { +-wint_t state ++ ++#ifdef __INTEL_COMPILER ++#else ++make an error ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14492: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15058: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14495: \$? = $ac_status" >&5 ++ echo "$as_me:15061: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14498: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15064: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14501: \$? = $ac_status" >&5 ++ echo "$as_me:15067: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_wint_t=no ++ INTEL_COMPILER=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cat >conftest.$ac_ext <<_ACEOF +-#line 14508 "configure" ++fi ++rm -f conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$cf_save_CFLAGS" ++ echo "$as_me:15078: result: $INTEL_COMPILER" >&5 ++echo "${ECHO_T}$INTEL_COMPILER" >&6 ++ ;; ++ esac ++fi ++ ++CLANG_COMPILER=no ++ ++if test "$GCC" = yes ; then ++ echo "$as_me:15087: checking if this is really Clang C compiler" >&5 ++echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 ++ cf_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -Qunused-arguments" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 15092 "configure" + #include "confdefs.h" + +-#include <stdlib.h> +-#include <stdarg.h> +-#include <stdio.h> +-#include <wchar.h> +-#ifdef HAVE_LIBUTF8_H +-#include <libutf8.h> +-#endif + int + main () + { +-wint_t value ++ ++#ifdef __clang__ ++#else ++make an error ++#endif ++ + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14527: \"$ac_compile\"") >&5 ++if { (eval echo "$as_me:15109: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +- echo "$as_me:14530: \$? = $ac_status" >&5 ++ echo "$as_me:15112: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14533: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15115: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14536: \$? = $ac_status" >&5 ++ echo "$as_me:15118: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_cv_wint_t=yes ++ CLANG_COMPILER=yes ++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" ++ + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_cv_wint_t=unknown + fi + rm -f conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$cf_save_CFLAGS" ++ echo "$as_me:15129: result: $CLANG_COMPILER" >&5 ++echo "${ECHO_T}$CLANG_COMPILER" >&6 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++ ++cat > conftest.$ac_ext <<EOF ++#line 15134 "${as_me:-configure}" ++int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; } ++EOF ++ ++if test "$INTEL_COMPILER" = yes ++then ++# The "-wdXXX" options suppress warnings: ++# remark #1419: external declaration in primary source file ++# 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 ++# remark #593: variable "curs_sb_left_arrow" was set but never used ++# 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 #279: controlling expression is constant ++ ++ { echo "$as_me:15151: 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 \ ++ wd1683 \ ++ wd1684 \ ++ wd193 \ ++ wd593 \ ++ wd279 \ ++ wd810 \ ++ wd869 \ ++ wd981 ++ do ++ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" ++ if { (eval echo "$as_me:15167: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:15170: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ test -n "$verbose" && echo "$as_me:15172: result: ... -$cf_opt" >&5 ++echo "${ECHO_T}... -$cf_opt" >&6 ++ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" ++ fi ++ done ++ CFLAGS="$cf_save_CFLAGS" ++ ++elif test "$GCC" = yes ++then ++ { echo "$as_me:15181: checking for $CC warning options..." >&5 ++echo "$as_me: checking for $CC warning options..." >&6;} ++ cf_save_CFLAGS="$CFLAGS" ++ EXTRA_CFLAGS= ++ cf_warn_CONST="" ++ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" ++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" ++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= ++ for cf_opt in W Wall \ ++ Wbad-function-cast \ ++ Wcast-align \ ++ Wcast-qual \ ++ Wdeclaration-after-statement \ ++ Wextra \ ++ Winline \ ++ Wmissing-declarations \ ++ Wmissing-prototypes \ ++ Wnested-externs \ ++ Wpointer-arith \ ++ Wshadow \ ++ Wstrict-prototypes \ ++ Wundef $cf_gcc_warnings $cf_warn_CONST ++ do ++ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" ++ if { (eval echo "$as_me:15205: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:15208: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ test -n "$verbose" && echo "$as_me:15210: result: ... -$cf_opt" >&5 ++echo "${ECHO_T}... -$cf_opt" >&6 ++ case $cf_opt in #(vi ++ Wcast-qual) #(vi ++ CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES" ++ ;; ++ Winline) #(vi ++ case $GCC_VERSION in ++ [34].*) ++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 ++ ++echo "${as_me:-configure}:15221: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 ++ ++ continue;; ++ esac ++ ;; ++ Wpointer-arith) #(vi ++ case $GCC_VERSION in ++ [12].*) ++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 ++ ++echo "${as_me:-configure}:15231: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 ++ ++ continue;; ++ esac ++ ;; ++ esac ++ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" ++ fi ++ done ++ CFLAGS="$cf_save_CFLAGS" + fi +-echo "$as_me:14548: result: $cf_cv_wint_t" >&5 +-echo "${ECHO_T}$cf_cv_wint_t" >&6 ++rm -rf conftest* + +-if test "$cf_cv_wint_t" = yes ; then +- cat >>confdefs.h <<\EOF +-#define NEED_WCHAR_H 1 ++fi ++fi ++ ++echo "$as_me:15247: 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. ++if test "${with_dmalloc+set}" = set; then ++ withval="$with_dmalloc" ++ ++cat >>confdefs.h <<EOF ++#define USE_DMALLOC 1 + EOF + +- NEED_WCHAR_H=1 ++ : ${with_cflags:=-g} ++ : ${with_no_leaks:=yes} ++ with_dmalloc=yes ++else ++ with_dmalloc= ++fi; ++echo "$as_me:15264: result: ${with_dmalloc:-no}" >&5 ++echo "${ECHO_T}${with_dmalloc:-no}" >&6 ++ ++case .$with_cflags in #(vi ++.*-g*) ++ case .$CFLAGS in #(vi ++ .*-g*) #(vi ++ ;; ++ *) ++ ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= ++ ++for cf_add_cflags in -g ++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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` ++ ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` ++ ++ ;; ++ esac ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi + +-# 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 ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi ++ ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ ;; ++ esac ++ ;; ++esac ++ ++if test "$with_dmalloc" = yes ; then ++ echo "$as_me:15358: 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 15364 "configure" ++#include "confdefs.h" ++#include <dmalloc.h> ++_ACEOF ++if { (eval echo "$as_me:15368: \"$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:15374: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_cv_header_dmalloc_h=yes ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ ac_cv_header_dmalloc_h=no + 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 ++rm -f conftest.err conftest.$ac_ext + fi ++echo "$as_me:15393: 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 + +-if test "$NCURSES_OK_MBSTATE_T" = 0 ; then +- +-echo "$as_me:14571: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5 +-echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 ++echo "$as_me:15397: 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 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldmalloc $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 14574 "configure" ++#line 15405 "configure" + #include "confdefs.h" + +-#ifndef _XOPEN_SOURCE_EXTENDED +-#define _XOPEN_SOURCE_EXTENDED ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" + #endif +-#include <${cf_cv_ncurses_header:-curses.h}> ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dmalloc_debug (); + int + main () + { +- +-mbstate_t foo +- ++dmalloc_debug (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14592: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:15424: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14595: \$? = $ac_status" >&5 ++ echo "$as_me:15427: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14598: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:15430: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14601: \$? = $ac_status" >&5 ++ echo "$as_me:15433: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ ac_cv_lib_dmalloc_dmalloc_debug=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no ++ac_cv_lib_dmalloc_dmalloc_debug=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14610: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +-if test $cf_result = yes ; then +- +-cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +- +- cat >>confdefs.h <<EOF +-#define $cf_result 1 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:15444: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 ++echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 ++if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then ++ cat >>confdefs.h <<EOF ++#define HAVE_LIBDMALLOC 1 + EOF + +-else +- cat >>confdefs.h <<EOF +-#define mbstate_t long +-EOF ++ LIBS="-ldmalloc $LIBS" + + fi + + fi + +-if test "$NCURSES_OK_WCHAR_T" = 0 ; then ++fi + +-echo "$as_me:14631: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5 +-echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 +-cat >conftest.$ac_ext <<_ACEOF +-#line 14634 "configure" +-#include "confdefs.h" ++echo "$as_me:15459: 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 + +-#ifndef _XOPEN_SOURCE_EXTENDED +-#define _XOPEN_SOURCE_EXTENDED +-#endif +-#include <${cf_cv_ncurses_header:-curses.h}> +-int +-main () +-{ ++# Check whether --with-dbmalloc or --without-dbmalloc was given. ++if test "${with_dbmalloc+set}" = set; then ++ withval="$with_dbmalloc" + +-wchar_t foo ++cat >>confdefs.h <<EOF ++#define USE_DBMALLOC 1 ++EOF + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14652: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:14655: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14658: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:14661: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_result=yes ++ : ${with_cflags:=-g} ++ : ${with_no_leaks:=yes} ++ with_dbmalloc=yes + else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_result=no +-fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14670: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +-if test $cf_result = yes ; then ++ with_dbmalloc= ++fi; ++echo "$as_me:15476: result: ${with_dbmalloc:-no}" >&5 ++echo "${ECHO_T}${with_dbmalloc:-no}" >&6 + +-cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++case .$with_cflags in #(vi ++.*-g*) ++ case .$CFLAGS in #(vi ++ .*-g*) #(vi ++ ;; ++ *) + +- cat >>confdefs.h <<EOF +-#define $cf_result 1 +-EOF ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= + +-else +- cat >>confdefs.h <<EOF +-#define wchar_t long +-EOF ++for cf_add_cflags in -g ++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[^=]*='\''\"[^"]*//'` + +-fi ++ test "${cf_add_cflags}" != "${cf_tst_cflags}" \ ++ && test -z "${cf_tst_cflags}" \ ++ && cf_fix_cppflags=yes + +-fi ++ 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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + +-if test "$NCURSES_OK_WINT_T" = 0 ; then ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` + +-echo "$as_me:14691: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5 +-echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 +-cat >conftest.$ac_ext <<_ACEOF +-#line 14694 "configure" +-#include "confdefs.h" ++ ;; ++ esac ++ 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" + +-#ifndef _XOPEN_SOURCE_EXTENDED +-#define _XOPEN_SOURCE_EXTENDED +-#endif +-#include <${cf_cv_ncurses_header:-curses.h}> +-int +-main () +-{ ++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + +-wint_t foo ++ test "${cf_add_cflags}" != "${cf_tst_cflags}" \ ++ && test -z "${cf_tst_cflags}" \ ++ && cf_fix_cppflags=no ++ ;; ++esac ++done + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14712: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- echo "$as_me:14715: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14718: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:14721: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_result=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_result=no ++if test -n "$cf_new_cflags" ; then ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14730: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +-if test $cf_result = yes ; then + +-cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++if test -n "$cf_new_cppflags" ; then + +- cat >>confdefs.h <<EOF +-#define $cf_result 1 +-EOF ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" ++fi + +-else +- cat >>confdefs.h <<EOF +-#define wint_t long +-EOF ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ ;; ++ esac ++ ;; ++esac + ++if test "$with_dbmalloc" = yes ; then ++ echo "$as_me:15570: 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 15576 "configure" ++#include "confdefs.h" ++#include <dbmalloc.h> ++_ACEOF ++if { (eval echo "$as_me:15580: \"$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:15586: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_cv_header_dbmalloc_h=yes ++else ++ echo "$as_me: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ ac_cv_header_dbmalloc_h=no + fi +- ++rm -f conftest.err conftest.$ac_ext + fi ++echo "$as_me:15605: 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:14749: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5 +-echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 +- ++echo "$as_me:15609: 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 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldbmalloc $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line 14753 "configure" ++#line 15617 "configure" + #include "confdefs.h" + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" + #endif +- ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char debug_malloc (); + int + main () + { +- +-void *foo = &(boolnames) +- ++debug_malloc (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14781: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:15636: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14784: \$? = $ac_status" >&5 ++ echo "$as_me:15639: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14787: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:15642: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14790: \$? = $ac_status" >&5 ++ echo "$as_me:15645: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ ac_cv_lib_dbmalloc_debug_malloc=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no ++ac_cv_lib_dbmalloc_debug_malloc=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14799: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:15656: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 ++echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 ++if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then ++ cat >>confdefs.h <<EOF ++#define HAVE_LIBDBMALLOC 1 ++EOF + +-if test $cf_result = yes ; then ++ LIBS="-ldbmalloc $LIBS" + +-cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++fi + +- cat >>confdefs.h <<EOF +-#define $cf_result 1 ++fi ++ ++fi ++ ++echo "$as_me:15671: 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. ++if test "${with_valgrind+set}" = set; then ++ withval="$with_valgrind" ++ ++cat >>confdefs.h <<EOF ++#define USE_VALGRIND 1 + EOF + ++ : ${with_cflags:=-g} ++ : ${with_no_leaks:=yes} ++ with_valgrind=yes + else +- echo "$as_me:14811: checking for data boolnames in library" >&5 +-echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6 +- # BSD linkers insist on making weak linkage, but resolve at runtime. +- if test "$cross_compiling" = yes; then ++ with_valgrind= ++fi; ++echo "$as_me:15688: result: ${with_valgrind:-no}" >&5 ++echo "${ECHO_T}${with_valgrind:-no}" >&6 + +- # cross-compiling +- cat >conftest.$ac_ext <<_ACEOF +-#line 14818 "configure" +-#include "confdefs.h" ++case .$with_cflags in #(vi ++.*-g*) ++ case .$CFLAGS in #(vi ++ .*-g*) #(vi ++ ;; ++ *) + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif +-#endif ++cf_fix_cppflags=no ++cf_new_cflags= ++cf_new_cppflags= ++cf_new_extra_cppflags= + +-extern char boolnames; +-int +-main () +-{ ++for cf_add_cflags in -g ++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[^=]*='\''\"[^"]*//'` + +- do { +- void *foo = &(boolnames); +- ${cf_cv_main_return:-return}(foo == 0); +- } while (0) ++ test "${cf_add_cflags}" != "${cf_tst_cflags}" \ ++ && test -z "${cf_tst_cflags}" \ ++ && cf_fix_cppflags=yes + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:14850: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:14853: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:14856: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:14859: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_result=yes +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_result=no +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ 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 ++ case $cf_add_cflags in #(vi ++ -D*) ++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` + +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 14871 "configure" +-#include "confdefs.h" ++CPPFLAGS=`echo "$CPPFLAGS" | \ ++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ ++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif +-#endif ++ ;; ++ esac ++ 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" + +-extern char boolnames; +-int main(void) +-{ +- void *foo = &(boolnames); +- ${cf_cv_main_return:-return}(foo == 0); +-} +-_ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:14896: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:14899: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:14901: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:14904: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_result=yes +-else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_result=no ++ 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 ++ ++ CFLAGS="$CFLAGS $cf_new_cflags" + fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++ ++if test -n "$cf_new_cppflags" ; then ++ ++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + fi +- echo "$as_me:14915: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +- if test $cf_result = yes ; then + +-cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++if test -n "$cf_new_extra_cppflags" ; then ++ ++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" ++fi ++ ++ ;; ++ esac ++ ;; ++esac ++ ++echo "$as_me:15781: 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. ++if test "${enable_leaks+set}" = set; then ++ enableval="$enable_leaks" ++ if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi ++else ++ : ${with_no_leaks:=no} ++fi; ++echo "$as_me:15791: result: $with_no_leaks" >&5 ++echo "${ECHO_T}$with_no_leaks" >&6 ++ ++if test "$with_no_leaks" = yes ; then + +- cat >>confdefs.h <<EOF +-#define $cf_result 1 ++cat >>confdefs.h <<\EOF ++#define NO_LEAKS 1 ++EOF ++ ++cat >>confdefs.h <<\EOF ++#define YY_NO_LEAKS 1 + EOF + +- fi + fi + +-echo "$as_me:14928: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5 +-echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6 ++LD_RPATH_OPT= ++echo "$as_me:15807: checking for an rpath option" >&5 ++echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6 ++case $cf_cv_system_name in #(vi ++irix*) #(vi ++ if test "$GCC" = yes; then ++ LD_RPATH_OPT="-Wl,-rpath," ++ else ++ LD_RPATH_OPT="-rpath " ++ fi ++ ;; ++linux*|gnu*|k*bsd*-gnu) #(vi ++ LD_RPATH_OPT="-Wl,-rpath," ++ ;; ++openbsd[2-9].*|mirbsd*) #(vi ++ LD_RPATH_OPT="-Wl,-rpath," ++ ;; ++dragonfly*|freebsd*) #(vi ++ LD_RPATH_OPT="-rpath " ++ ;; ++netbsd*) #(vi ++ LD_RPATH_OPT="-Wl,-rpath," ++ ;; ++osf*|mls+*) #(vi ++ LD_RPATH_OPT="-rpath " ++ ;; ++solaris2*) #(vi ++ LD_RPATH_OPT="-R" ++ ;; ++*) ++ ;; ++esac ++echo "$as_me:15838: result: $LD_RPATH_OPT" >&5 ++echo "${ECHO_T}$LD_RPATH_OPT" >&6 + +-cat >conftest.$ac_ext <<_ACEOF +-#line 14932 "configure" ++case "x$LD_RPATH_OPT" in #(vi ++x-R*) ++ echo "$as_me:15843: 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="${LD_RPATH_OPT}$libdir $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++#line 15848 "configure" + #include "confdefs.h" + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif +-#endif +- + int + main () + { + +-void *foo = &(boolfnames) +- + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:14960: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:15860: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:14963: \$? = $ac_status" >&5 ++ echo "$as_me:15863: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:14966: \"$ac_try\"") >&5 ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:15866: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:14969: \$? = $ac_status" >&5 ++ echo "$as_me:15869: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ cf_rpath_space=no + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no ++cf_rpath_space=yes + fi +-rm -f conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:14978: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++ LIBS="$cf_save_LIBS" ++ echo "$as_me:15879: result: $cf_rpath_space" >&5 ++echo "${ECHO_T}$cf_rpath_space" >&6 ++ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " ++ ;; ++esac + +-if test $cf_result = yes ; then ++echo "$as_me:15885: checking if rpath-hack should be disabled" >&5 ++echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6 + +-cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++# Check whether --enable-rpath-hack or --disable-rpath-hack was given. ++if test "${enable_rpath_hack+set}" = set; then ++ enableval="$enable_rpath_hack" ++ test "$enableval" != no && enableval=yes ++ if test "$enableval" != "yes" ; then ++ cf_disable_rpath_hack=yes ++ else ++ cf_disable_rpath_hack=no ++ fi ++else ++ enableval=yes ++ cf_disable_rpath_hack=no + +- cat >>confdefs.h <<EOF +-#define $cf_result 1 +-EOF ++fi; ++echo "$as_me:15902: result: $cf_disable_rpath_hack" >&5 ++echo "${ECHO_T}$cf_disable_rpath_hack" >&6 ++if test "$cf_disable_rpath_hack" = no ; then ++ ++echo "$as_me:15906: checking for updated LDFLAGS" >&5 ++echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6 ++if test -n "$LD_RPATH_OPT" ; then ++ echo "$as_me:15909: result: maybe" >&5 ++echo "${ECHO_T}maybe" >&6 + ++ for ac_prog in ldd ++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:15916: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- echo "$as_me:14990: checking for data boolfnames in library" >&5 +-echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6 +- # BSD linkers insist on making weak linkage, but resolve at runtime. +- if test "$cross_compiling" = yes; then ++ if test -n "$cf_ldd_prog"; then ++ ac_cv_prog_cf_ldd_prog="$cf_ldd_prog" # 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_cf_ldd_prog="$ac_prog" ++echo "$as_me:15931: found $ac_dir/$ac_word" >&5 ++break ++done + +- # cross-compiling +- cat >conftest.$ac_ext <<_ACEOF +-#line 14997 "configure" +-#include "confdefs.h" ++fi ++fi ++cf_ldd_prog=$ac_cv_prog_cf_ldd_prog ++if test -n "$cf_ldd_prog"; then ++ echo "$as_me:15939: result: $cf_ldd_prog" >&5 ++echo "${ECHO_T}$cf_ldd_prog" >&6 ++else ++ echo "$as_me:15942: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif +-#endif ++ test -n "$cf_ldd_prog" && break ++done ++test -n "$cf_ldd_prog" || cf_ldd_prog="no" + +-extern char boolfnames; ++ cf_rpath_list="/usr/lib /lib" ++ if test "$cf_ldd_prog" != no ++ then ++ cf_rpath_oops= ++ ++cat >conftest.$ac_ext <<_ACEOF ++#line 15956 "configure" ++#include "confdefs.h" ++#include <stdio.h> + int + main () + { +- +- do { +- void *foo = &(boolfnames); +- ${cf_cv_main_return:-return}(foo == 0); +- } while (0) +- ++printf("Hello"); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:15029: \"$ac_link\"") >&5 ++if { (eval echo "$as_me:15968: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? +- echo "$as_me:15032: \$? = $ac_status" >&5 ++ echo "$as_me:15971: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:15035: \"$ac_try\"") >&5 ++ { (eval echo "$as_me:15974: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +- echo "$as_me:15038: \$? = $ac_status" >&5 ++ echo "$as_me:15977: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- cf_result=yes ++ cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq` ++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq` + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 +-cf_result=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +-else +- cat >conftest.$ac_ext <<_ACEOF +-#line 15050 "configure" +-#include "confdefs.h" ++ # If we passed the link-test, but get a "not found" on a given library, ++ # this could be due to inept reconfiguration of gcc to make it only ++ # partly honor /usr/local/lib (or whatever). Sometimes this behavior ++ # is intentional, e.g., installing gcc in /usr/bin and suppressing the ++ # /usr/local libraries. ++ if test -n "$cf_rpath_oops" ++ then ++ for cf_rpath_src in $cf_rpath_oops ++ do ++ for cf_rpath_dir in \ ++ /usr/local \ ++ /usr/pkg \ ++ /opt/sfw ++ do ++ if test -f $cf_rpath_dir/lib/$cf_rpath_src ++ then ++ test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6 ++ ++echo "${as_me:-configure}:16005: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5 ++ ++ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib" ++ break ++ fi ++ done ++ done ++ fi ++ fi + +-#ifdef HAVE_XCURSES +-#include <xcurses.h> +-char * XCursesProgramName = "test"; +-#else +-#include <${cf_cv_ncurses_header:-curses.h}> +-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +-#include <ncursesw/term.h> +-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +-#include <ncurses/term.h> +-#elif defined(HAVE_TERM_H) +-#include <term.h> +-#endif +-#endif ++ test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 + +-extern char boolfnames; +-int main(void) +-{ +- void *foo = &(boolfnames); +- ${cf_cv_main_return:-return}(foo == 0); +-} +-_ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:15075: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:15078: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:15080: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:15083: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- cf_result=yes +-else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-cf_result=no +-fi +-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi +- echo "$as_me:15094: result: $cf_result" >&5 +-echo "${ECHO_T}$cf_result" >&6 +- if test $cf_result = yes ; then ++echo "${as_me:-configure}:16017: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 + +-cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ++test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6 + +- cat >>confdefs.h <<EOF +-#define $cf_result 1 +-EOF ++echo "${as_me:-configure}:16021: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5 ++ ++cf_rpath_dst= ++for cf_rpath_src in $LDFLAGS ++do ++ case $cf_rpath_src in #(vi ++ -L*) #(vi ++ ++ # check if this refers to a directory which we will ignore ++ cf_rpath_skip=no ++ if test -n "$cf_rpath_list" ++ then ++ for cf_rpath_item in $cf_rpath_list ++ do ++ if test "x$cf_rpath_src" = "x-L$cf_rpath_item" ++ then ++ cf_rpath_skip=yes ++ break ++ fi ++ done ++ fi ++ ++ if test "$cf_rpath_skip" = no ++ then ++ # transform the option ++ if test "$LD_RPATH_OPT" = "-R " ; then ++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"` ++ else ++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"` ++ fi ++ ++ # if we have not already added this, add it now ++ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"` ++ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS" ++ then ++ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 ++ ++echo "${as_me:-configure}:16058: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 ++ ++ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" ++ fi ++ fi ++ ;; ++ esac ++ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src" ++done ++LDFLAGS=$cf_rpath_dst ++ ++test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6 ++ ++echo "${as_me:-configure}:16071: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5 ++ ++test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:16075: testing ...checking LIBS $LIBS ..." 1>&5 ++ ++cf_rpath_dst= ++for cf_rpath_src in $LIBS ++do ++ case $cf_rpath_src in #(vi ++ -L*) #(vi ++ ++ # check if this refers to a directory which we will ignore ++ cf_rpath_skip=no ++ if test -n "$cf_rpath_list" ++ then ++ for cf_rpath_item in $cf_rpath_list ++ do ++ if test "x$cf_rpath_src" = "x-L$cf_rpath_item" ++ then ++ cf_rpath_skip=yes ++ break ++ fi ++ done ++ fi ++ ++ if test "$cf_rpath_skip" = no ++ then ++ # transform the option ++ if test "$LD_RPATH_OPT" = "-R " ; then ++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"` ++ else ++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"` ++ fi ++ ++ # if we have not already added this, add it now ++ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"` ++ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS" ++ then ++ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 ++ ++echo "${as_me:-configure}:16112: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 ++ ++ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" ++ fi ++ fi ++ ;; ++ esac ++ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src" ++done ++LIBS=$cf_rpath_dst ++ ++test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6 ++ ++echo "${as_me:-configure}:16125: testing ...checked LIBS $LIBS ..." 1>&5 ++ ++ test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 ++ ++echo "${as_me:-configure}:16129: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 ++ ++else ++ echo "$as_me:16132: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +- fi + fi + + TEST_ARGS="$LIBS" +@@ -15188,7 +16219,7 @@ + : ${CONFIG_STATUS=./config.status} + ac_clean_files_save=$ac_clean_files + ac_clean_files="$ac_clean_files $CONFIG_STATUS" +-{ echo "$as_me:15191: creating $CONFIG_STATUS" >&5 ++{ echo "$as_me:16222: creating $CONFIG_STATUS" >&5 + echo "$as_me: creating $CONFIG_STATUS" >&6;} + cat >$CONFIG_STATUS <<_ACEOF + #! $SHELL +@@ -15320,7 +16351,7 @@ + cat >>$CONFIG_STATUS <<EOF + ac_cs_version="\\ + config.status +-configured by $0, generated by GNU Autoconf 2.52.20101002, ++configured by $0, generated by GNU Autoconf 2.52.20121002, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + + Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +@@ -15364,7 +16395,7 @@ + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header +- { { echo "$as_me:15367: error: ambiguous option: $1 ++ { { echo "$as_me:16398: error: ambiguous option: $1 + Try \`$0 --help' for more information." >&5 + echo "$as_me: error: ambiguous option: $1 + Try \`$0 --help' for more information." >&2;} +@@ -15383,7 +16414,7 @@ + ac_need_defaults=false;; + + # This is an error. +- -*) { { echo "$as_me:15386: error: unrecognized option: $1 ++ -*) { { echo "$as_me:16417: 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;} +@@ -15402,7 +16433,7 @@ + ## Running config.status. ## + ## ----------------------- ## + +-This file was extended by $as_me 2.52.20101002, executed with ++This file was extended by $as_me 2.52.20121002, executed with + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS +@@ -15419,7 +16450,9 @@ + # + + AWK="$AWK" ++ECHO_CC="$ECHO_CC" + ECHO_LD="$ECHO_LD" ++SHOW_CC="$SHOW_LD" + + EOF + +@@ -15431,7 +16464,7 @@ + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + "ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ncurses_cfg.h:ncurses_tst.hin" ;; +- *) { { echo "$as_me:15434: error: invalid argument: $ac_config_target" >&5 ++ *) { { echo "$as_me:16467: error: invalid argument: $ac_config_target" >&5 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +@@ -15490,6 +16523,7 @@ + s,@bindir@,$bindir,;t t + s,@sbindir@,$sbindir,;t t + s,@libexecdir@,$libexecdir,;t t ++s,@datarootdir@,$datarootdir,;t t + s,@datadir@,$datadir,;t t + s,@sysconfdir@,$sysconfdir,;t t + s,@sharedstatedir@,$sharedstatedir,;t t +@@ -15529,6 +16563,7 @@ + s,@ac_ct_CC@,$ac_ct_CC,;t t + s,@EXEEXT@,$EXEEXT,;t t + s,@OBJEXT@,$OBJEXT,;t t ++s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t + s,@CPP@,$CPP,;t t + s,@AWK@,$AWK,;t t + s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +@@ -15541,6 +16576,7 @@ + s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t + s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t + s,@MATH_LIB@,$MATH_LIB,;t t ++s,@top_builddir@,$top_builddir,;t t + s,@CC_G_OPT@,$CC_G_OPT,;t t + s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t + s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t +@@ -15561,25 +16597,30 @@ + s,@TEST_ARGS@,$TEST_ARGS,;t t + s,@TEST_DEPS@,$TEST_DEPS,;t t + s,@TEST_LIBS@,$TEST_LIBS,;t t +-s,@TINFO_ARGS@,$TINFO_ARGS,;t t ++s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t ++s,@TINFO_LIBS@,$TINFO_LIBS,;t t + s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t + s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t +-s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t ++s,@includesubdir@,$includesubdir,;t t ++s,@PKG_CONFIG@,$PKG_CONFIG,;t t ++s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t + s,@ECHO_LT@,$ECHO_LT,;t t + s,@ECHO_LD@,$ECHO_LD,;t t + s,@RULE_CC@,$RULE_CC,;t t + s,@SHOW_CC@,$SHOW_CC,;t t + s,@ECHO_CC@,$ECHO_CC,;t t +-s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t ++s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t + s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t +-s,@PKG_CONFIG@,$PKG_CONFIG,;t t +-s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t ++s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t + s,@X_CFLAGS@,$X_CFLAGS,;t t + s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t + s,@X_LIBS@,$X_LIBS,;t t + s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t + s,@XCURSES_CONFIG@,$XCURSES_CONFIG,;t t +-s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t ++s,@ac_ct_XCURSES_CONFIG@,$ac_ct_XCURSES_CONFIG,;t t ++s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t ++s,@cf_ldd_prog@,$cf_ldd_prog,;t t ++s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t + CEOF + + EOF +@@ -15694,7 +16735,7 @@ + esac + + if test x"$ac_file" != x-; then +- { echo "$as_me:15697: creating $ac_file" >&5 ++ { echo "$as_me:16738: creating $ac_file" >&5 + echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi +@@ -15712,7 +16753,7 @@ + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:15715: error: cannot find input file: $f" >&5 ++ test -f "$f" || { { echo "$as_me:16756: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; +@@ -15725,13 +16766,45 @@ + echo $srcdir/$f + else + # /dev/null tree +- { { echo "$as_me:15728: error: cannot find input file: $f" >&5 ++ { { echo "$as_me:16769: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + EOF ++cat >>$CONFIG_STATUS <<\EOF ++ ac_warn_datarootdir=no ++ if test x"$ac_file" != x-; then ++ for ac_item in $ac_file_inputs ++ do ++ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item` ++ if test -n "$ac_seen"; then ++ ac_used=`grep '@datarootdir@' $ac_item` ++ if test -z "$ac_used"; then ++ { echo "$as_me:16785: WARNING: datarootdir was used implicitly but not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: datarootdir was used implicitly but not set: ++$ac_seen" >&2;} ++ ac_warn_datarootdir=yes ++ fi ++ fi ++ ac_seen=`grep '${datarootdir}' $ac_item` ++ if test -n "$ac_seen"; then ++ { echo "$as_me:16794: WARNING: datarootdir was used explicitly but not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: datarootdir was used explicitly but not set: ++$ac_seen" >&2;} ++ ac_warn_datarootdir=yes ++ fi ++ done ++ fi ++ ++if test "x$ac_warn_datarootdir" = xyes; then ++ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'" ++fi ++ ++EOF + cat >>$CONFIG_STATUS <<EOF + sed "$ac_vpsub + $extrasub +@@ -15746,11 +16819,35 @@ + " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then +- mv $tmp/out $ac_file ++ cp $tmp/out $ac_file ++ ++ for ac_name in prefix exec_prefix datarootdir ++ do ++ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file` ++ if test -n "$ac_seen"; then ++ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file` ++ if test -z "$ac_init"; then ++ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` ++ { echo "$as_me:16831: WARNING: Variable $ac_name is used but was not set: ++$ac_seen" >&5 ++echo "$as_me: WARNING: Variable $ac_name is used but was not set: ++$ac_seen" >&2;} ++ fi ++ fi ++ done ++ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out ++ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out ++ if test -s $tmp/out; then ++ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` ++ { echo "$as_me:16842: WARNING: Some variables may not be substituted: ++$ac_seen" >&5 ++echo "$as_me: WARNING: Some variables may not be substituted: ++$ac_seen" >&2;} ++ fi + else + cat $tmp/out +- rm -f $tmp/out + fi ++ rm -f $tmp/out + + done + EOF +@@ -15791,7 +16888,7 @@ + * ) ac_file_in=$ac_file.in ;; + esac + +- test x"$ac_file" != x- && { echo "$as_me:15794: creating $ac_file" >&5 ++ test x"$ac_file" != x- && { echo "$as_me:16891: creating $ac_file" >&5 + echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the +@@ -15802,7 +16899,7 @@ + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:15805: error: cannot find input file: $f" >&5 ++ test -f "$f" || { { echo "$as_me:16902: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; +@@ -15815,7 +16912,7 @@ + echo $srcdir/$f + else + # /dev/null tree +- { { echo "$as_me:15818: error: cannot find input file: $f" >&5 ++ { { echo "$as_me:16915: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; +@@ -15873,7 +16970,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:15876: $ac_file is unchanged" >&5 ++ { echo "$as_me:16973: $ac_file is unchanged" >&5 + echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +@@ -15949,7 +17046,8 @@ + \$(MODEL)/$N.o : \$(srcdir)/$N.c \\ + \$(srcdir)/test.priv.h \\ + ncurses_cfg.h +- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c ++ $SHOW_CC ++ $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c + TEST_EOF + done + +diff -Naur ncurses-5.9/test/configure.in ncurses-5.9.patch/test/configure.in +--- ncurses-5.9/test/configure.in 2011-03-22 10:15:08.000000000 +0100 ++++ ncurses-5.9.patch/test/configure.in 2014-09-01 16:33:22.534792419 +0200 +@@ -1,5 +1,5 @@ + dnl*************************************************************************** +-dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++dnl Copyright (c) 1998-2012,2013 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 1996, etc. + dnl +-dnl $Id: configure.in,v 1.90 2011/03/22 09:15:08 tom Exp $ ++dnl $Id: configure.in,v 1.113 2013/10/19 21:03:17 tom Exp $ + dnl This is a simple configuration-script for the ncurses test programs that + dnl allows the test-directory to be separately configured against a reference + dnl system (i.e., sysvr4 curses) +@@ -38,7 +38,7 @@ + dnl + dnl See http://invisible-island.net/autoconf/ for additional information. + dnl --------------------------------------------------------------------------- +-AC_PREREQ(2.13.20020210) ++AC_PREREQ(2.52.20030208) + AC_INIT(ncurses.c) + AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin) + +@@ -49,17 +49,18 @@ + AC_ARG_PROGRAM + + AC_PROG_MAKE_SET +-AC_PROG_CC ++CF_PROG_CC + AC_PROG_CPP + AC_PROG_AWK + CF_PROG_INSTALL + CF_PROG_LINT + CF_MAKE_TAGS + +-CF_MATH_LIB(MATH_LIB,sin(x)) ++CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) + AC_SUBST(MATH_LIB) + + dnl Things that we don't need (or must override) if we're not building ncurses ++CF_TOP_BUILDDIR + CC_G_OPT="-g" AC_SUBST(CC_G_OPT) + CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS) + CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS) +@@ -81,9 +82,11 @@ + TEST_ARGS="" AC_SUBST(TEST_ARGS) + TEST_DEPS="" AC_SUBST(TEST_DEPS) + TEST_LIBS="" AC_SUBST(TEST_LIBS) +-TINFO_ARGS='$(LIBS_CURSES)' AC_SUBST(TINFO_ARGS) ++TINFO_LDFLAGS='' AC_SUBST(TINFO_LDFLAGS) ++TINFO_LIBS='$(LIBS_CURSES)' AC_SUBST(TINFO_LIBS) + cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version) + cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version) ++includesubdir="" AC_SUBST(includesubdir) + + cf_cv_screen=curses + cf_cv_libtype= +@@ -91,55 +94,38 @@ + AC_EXEEXT + AC_OBJEXT + +-CF_ANSI_CC_REQD + CF_GCC_ATTRIBUTES + CF_XOPEN_SOURCE +-AC_C_CONST + CF_SIG_ATOMIC_T + ++dnl --------------------------------------------------------------------------- ++CF_HELP_MESSAGE(General Options:) ++CF_PKG_CONFIG + CF_DISABLE_ECHO +-CF_ENABLE_WARNINGS + +-CF_DISABLE_LEAKS +-CF_WITH_CURSES_DIR ++dnl --------------------------------------------------------------------------- ++CF_HELP_MESSAGE(Curses Version-dependent Options:) ++CF_NCURSES_WRAP_PREFIX + +-dnl SunOS 4.x +-AC_ARG_WITH(5lib, +- [ --with-5lib use SunOS sysv-libraries], +- [LIBS="-L/usr/5lib $LIBS" +- CPPFLAGS="$CPPFLAGS -I/usr/5include"]) ++AC_MSG_CHECKING(if you want to check for wide-character functions) ++CF_ARG_DISABLE(widec, ++ [ --disable-widec disable checks for wide-character functions], ++ cf_enable_widec=no, ++ cf_enable_widec=yes, ++ yes) ++AC_MSG_RESULT($cf_enable_widec) + + dnl --------------------------------------------------------------------------- +-dnl NcursesW, installed in conventional location +-AC_ARG_WITH(ncursesw, +- [ --with-ncursesw use wide ncurses-libraries (installed)], +- [cf_cv_screen=ncursesw],[ +- +-dnl Ncurses, installed in conventional location +-AC_ARG_WITH(ncurses, +- [ --with-ncurses use ncurses-libraries (installed)], +- [cf_cv_screen=ncurses],[ +- +-AC_ARG_WITH(pdcurses, +- [ --with-pdcurses compile/link with pdcurses X11 library], +- [cf_cv_screen=pdcurses])])]) ++CF_HELP_MESSAGE(Curses Version-dependent Options:) ++CF_WITH_NCURSES_ETC + + case $cf_cv_screen in +-curses) +- CF_CURSES_CONFIG ++curses|curses_*) + CF_NETBSD_FORM_H + CF_NETBSD_MENU_H + ;; +-ncurses) +- CF_NCURSES_CONFIG +- ;; + ncursesw) + cf_cv_libtype=w +- CF_UTF8_LIB +- CF_NCURSES_CONFIG(ncursesw) +- ;; +-pdcurses) #(vi +- CF_PDCURSES_X11 + ;; + esac + +@@ -153,9 +139,12 @@ + ;; + *) + # look for curses-related libraries +- AC_CHECK_LIB(panel$cf_cv_libtype,new_panel) +- AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver) +- AC_CHECK_LIB(form$cf_cv_libtype,form_driver) ++ : ${cf_panel_lib:=panel} ++ : ${cf_menu_lib:=menu} ++ : ${cf_form_lib:=form} ++ AC_CHECK_LIB($cf_panel_lib$cf_cv_libtype,new_panel) ++ AC_CHECK_LIB($cf_menu_lib$cf_cv_libtype,menu_driver) ++ AC_CHECK_LIB($cf_form_lib$cf_cv_libtype,form_driver) + + # look for curses-related headers + AC_CHECK_HEADERS( \ +@@ -169,8 +158,6 @@ + ;; + esac + +-AC_TYPE_SIGNAL +- + AC_STDC_HEADERS + AC_HEADER_TIME + AC_CHECK_HEADERS( \ +@@ -185,20 +172,27 @@ + unistd.h \ + ) + ++CF_GETOPT_HEADER ++ + AC_CHECK_FUNCS( \ + gettimeofday \ ++) ++ ++if test "$cf_enable_widec" = yes; then ++AC_CHECK_FUNCS( \ + mblen \ + mbrlen \ + mbrtowc \ + mbsrtowcs \ + mbstowcs \ + mbtowc \ +-strdup \ + wcsrtombs \ + wcstombs \ + ) ++fi + + CF_CURSES_FUNCS( \ ++assume_default_colors \ + chgat \ + color_set \ + filter \ +@@ -225,61 +219,104 @@ + tigetstr \ + typeahead \ + use_default_colors \ +-vw_printw \ ++use_screen \ ++use_window \ + vsscanf \ ++vw_printw \ + wchgat \ + winsstr \ + wresize \ + wsyncdown \ + ) + ++CF_TPUTS_PROTO + CF_NCURSES_EXT_FUNCS + +-AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[ +-AC_TRY_LINK([ ++if test "$cf_enable_widec" = yes ++then ++ # workaround for systems with ncurses before 20111029, due to change of ++ # feature test macro from _XPG5 to _XOPEN_SOURCE ++ if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno ++ then ++ cf_define_xpg5=no ++ AC_MSG_CHECKING(if _XPG5 should be defined to enable wide-characters) ++ ++ AC_TRY_COMPILE([ ++#include <${cf_cv_ncurses_header:-curses.h}>], ++ [int x = _XPG5],, ++ [cf_save_cppflags="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_XPG5" ++ AC_TRY_COMPILE([ ++#include <${cf_cv_ncurses_header:-curses.h}>], ++ [int x = _XPG5], ++ [cf_define_xpg5=yes]) ++ CPPFLAGS="$cf_save_cppflags"]) ++ AC_MSG_RESULT($cf_define_xpg5) ++ ++ if test "$cf_define_xpg5" = yes ++ then ++ CPPFLAGS="$CPPFLAGS -D_XPG5" ++ fi ++ fi ++ ++ AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[ ++ AC_TRY_LINK([ + #include <${cf_cv_ncurses_header:-curses.h}>], +-[ +- static wchar_t src_wchar[2]; +- static cchar_t dst_cchar; +- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); +- ], +- [cf_cv_widechar_funcs=yes], +- [cf_cv_widechar_funcs=no]) +-]) +-if test "$cf_cv_widechar_funcs" != no ; then +- AC_DEFINE(USE_WIDEC_SUPPORT,1) ++ [ ++ static wchar_t src_wchar[2]; ++ static cchar_t dst_cchar; ++ setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); ++ ], ++ [cf_cv_widechar_funcs=yes], ++ [cf_cv_widechar_funcs=no]) ++ ]) ++ if test "$cf_cv_widechar_funcs" != no ; then ++ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to enable wide-character support in (n)curses]) ++ else ++ AC_DEFINE(USE_WIDEC_SUPPORT,0) ++ fi + else + AC_DEFINE(USE_WIDEC_SUPPORT,0) + fi + +-AC_FUNC_VFORK + CF_SYS_TIME_SELECT + CF_FUNC_CURSES_VERSION +-CF_CURSES_ACS_MAP +-CF_CURSES_WACS_MAP +-CF_CURSES_WACS_SYMBOLS +- +-CF_CURSES_CHECK_TYPE(attr_t,long) +- +-CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T) +-CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) +-CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) + +-if test "$NCURSES_OK_MBSTATE_T" = 0 ; then +- CF_CURSES_CHECK_TYPE(mbstate_t,long) ++CF_CURSES_ACS_MAP ++if test "$cf_enable_widec" = yes; then ++ CF_CURSES_WACS_MAP ++ CF_CURSES_WACS_SYMBOLS + fi + +-if test "$NCURSES_OK_WCHAR_T" = 0 ; then +- CF_CURSES_CHECK_TYPE(wchar_t,long) +-fi ++CF_CURSES_CHECK_TYPE(attr_t,long) + +-if test "$NCURSES_OK_WINT_T" = 0 ; then +- CF_CURSES_CHECK_TYPE(wint_t,long) ++if test "$cf_enable_widec" = yes; then ++ CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T) ++ CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) ++ CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) ++ ++ if test "$NCURSES_OK_MBSTATE_T" = 0 ; then ++ CF_CURSES_CHECK_TYPE(mbstate_t,long) ++ fi ++ ++ if test "$NCURSES_OK_WCHAR_T" = 0 ; then ++ CF_CURSES_CHECK_TYPE(wchar_t,long) ++ fi ++ ++ if test "$NCURSES_OK_WINT_T" = 0 ; then ++ CF_CURSES_CHECK_TYPE(wint_t,long) ++ fi + fi + + CF_CURSES_CHECK_DATA(boolnames) + CF_CURSES_CHECK_DATA(boolfnames) + ++dnl --------------------------------------------------------------------------- ++CF_HELP_MESSAGE(Testing/development Options:) ++CF_ENABLE_WARNINGS ++CF_DISABLE_LEAKS ++CF_DISABLE_RPATH_HACK ++ + TEST_ARGS="$LIBS" + LIBS= + +@@ -302,7 +339,8 @@ + \$(MODEL)/$N.o : \$(srcdir)/$N.c \\ + \$(srcdir)/test.priv.h \\ + ncurses_cfg.h +- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c ++ $SHOW_CC ++ $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c + TEST_EOF + done + +@@ -317,5 +355,7 @@ + fi + ],[ + AWK="$AWK" ++ECHO_CC="$ECHO_CC" + ECHO_LD="$ECHO_LD" ++SHOW_CC="$SHOW_LD" + ],cat) +diff -Naur ncurses-5.9/test/demo_defkey.c ncurses-5.9.patch/test/demo_defkey.c +--- ncurses-5.9/test/demo_defkey.c 2010-11-14 01:59:35.000000000 +0100 ++++ ncurses-5.9.patch/test/demo_defkey.c 2014-09-01 16:33:22.534792419 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_defkey.c,v 1.20 2010/11/14 00:59:35 tom Exp $ ++ * $Id: demo_defkey.c,v 1.22 2013/09/28 22:02:17 tom Exp $ + * + * Demonstrate the define_key() function. + * Thomas Dickey - 2002/11/23 +@@ -106,7 +106,7 @@ + for (pass = 0; pass < 2; ++pass) { + for (n = 0; string[n] != '\0'; ++n) { + char temp[80]; +- strcpy(temp, visichar(string[n])); ++ strncpy(temp, visichar(string[n]), sizeof(temp) - 2); + if (pass) + strcat(result, temp); + else +@@ -116,7 +116,7 @@ + result = typeCalloc(char, need); + } + } else { +- result = typeCalloc(char, 1); ++ result = typeCalloc(char, (size_t) 1); + } + return result; + } +@@ -186,9 +186,9 @@ + const char *prefix = 0; + char temp[BUFSIZ]; + +- if (!strncmp(value, "\033[", 2)) { ++ if (!strncmp(value, "\033[", (size_t) 2)) { + prefix = "\033O"; +- } else if (!strncmp(value, "\033O", 2)) { ++ } else if (!strncmp(value, "\033O", (size_t) 2)) { + prefix = "\033["; + } + if (prefix != 0) { +diff -Naur ncurses-5.9/test/demo_forms.c ncurses-5.9.patch/test/demo_forms.c +--- ncurses-5.9/test/demo_forms.c 2011-01-15 19:15:11.000000000 +0100 ++++ ncurses-5.9.patch/test/demo_forms.c 2014-09-01 16:33:22.534792419 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2003-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2003-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_forms.c,v 1.38 2011/01/15 18:15:11 tom Exp $ ++ * $Id: demo_forms.c,v 1.46 2013/09/28 21:55:54 tom Exp $ + * + * Demonstrate a variety of functions from the form library. + * Thomas Dickey - 2003/4/26 +@@ -70,14 +70,115 @@ + + #include <edit_field.h> + ++typedef struct { ++ char *name; ++ char *value; ++} MY_DATA; ++ ++static MY_DATA *my_data; ++ + static int d_option = 0; + static int j_value = 0; + static int m_value = 0; + static int o_value = 0; + static char *t_value = 0; + ++static void ++failed(const char *s) ++{ ++ perror(s); ++ ExitProgram(EXIT_FAILURE); ++} ++ ++static void ++chomp(char *value) ++{ ++ size_t have = strlen(value); ++ while (have != 0 && (value[have - 1] == '\n' || value[have - 1] == '\r')) { ++ value[--have] = '\0'; ++ } ++} ++ ++static int ++trimmed(const char *value) ++{ ++ int result = (int) strlen(value); ++ while (result > 0 && isspace(UChar(value[result - 1]))) { ++ --result; ++ } ++ return result; ++} ++ ++static char * ++get_data(const char *name) ++{ ++ char *result = t_value; ++ if (my_data != 0) { ++ int n; ++ for (n = 0; my_data[n].name != 0; ++n) { ++ if (!strcmp(name, my_data[n].name)) { ++ result = my_data[n].value; ++ break; ++ } ++ } ++ } ++ return result; ++} ++ ++/* ++ * Read (possibly) multi-line data with name+value pairs. ++ */ ++static void ++read_data(const char *filename) ++{ ++ FILE *fp = fopen(filename, "r"); ++ ++ if (fp != 0) { ++ char buffer[BUFSIZ]; ++ char *colon; ++ int more = 0; ++ int item = 0; ++ ++ my_data = typeCalloc(MY_DATA, (size_t) 100); /* FIXME */ ++ while (fgets(buffer, sizeof(buffer), fp) != 0) { ++ chomp(buffer); ++ if (more) { ++ if (strcmp(buffer, ".")) { ++ char *prior = my_data[more - 1].value; ++ size_t need = strlen(buffer) + 2 + strlen(prior); ++ char *value = typeRealloc(char, need, prior); ++ if (value == 0) ++ failed("realloc"); ++ strcat(value, "\n"); ++ strcat(value, buffer); ++ my_data[more - 1].value = value; ++ } else { ++ more = 0; ++ } ++ } else if (*buffer == '#') { ++ continue; ++ } else if ((colon = strchr(buffer, ':')) != 0) { ++ char *name; ++ char *value; ++ *colon++ = '\0'; ++ name = strdup(buffer); ++ value = strdup(colon); ++ if (name == 0 || value == 0) ++ failed("strdup"); ++ my_data[item].name = name; ++ my_data[item].value = value; ++ more = ++item; ++ } else { ++ failed("expected a colon"); ++ } ++ } ++ } else { ++ failed(filename); ++ } ++} ++ + static FIELD * +-make_label(int frow, int fcol, NCURSES_CONST char *label) ++make_label(const char *label, int frow, int fcol) + { + FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0); + +@@ -92,13 +193,11 @@ + * Define each field with an extra one, for reflecting "actual" text. + */ + static FIELD * +-make_field(int frow, int fcol, int rows, int cols) ++make_field(const char *label, int frow, int fcol, int rows, int cols) + { + FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1); + + if (f) { +- FieldAttrs *ptr; +- + set_field_back(f, A_UNDERLINE); + /* + * If -j and -d options are combined, -j loses. It is documented in +@@ -108,7 +207,7 @@ + set_field_just(f, j_value); + if (d_option) { + if (has_colors()) { +- set_field_fore(f, COLOR_PAIR(2)); ++ set_field_fore(f, (chtype) COLOR_PAIR(2)); + set_field_back(f, A_UNDERLINE | COLOR_PAIR(3)); + } else { + set_field_fore(f, A_BOLD); +@@ -121,17 +220,7 @@ + set_max_field(f, m_value); + } + +- /* +- * The userptr is used in edit_field.c's inactive_field(). +- */ +- ptr = (FieldAttrs *) field_userptr(f); +- if (ptr == 0) { +- ptr = typeCalloc(FieldAttrs, 1); +- ptr->background = field_back(f); +- } +- set_field_userptr(f, (void *) ptr); +- if (t_value) +- set_field_buffer(f, 0, t_value); ++ init_edit_field(f, get_data(label)); + } + return (f); + } +@@ -153,10 +242,10 @@ + set_form_sub(f, derwin(w, rows, cols, 1, 2)); + box(w, 0, 0); + keypad(w, TRUE); +- } + +- if (post_form(f) != E_OK) +- wrefresh(w); ++ if (post_form(f) != E_OK) ++ wrefresh(w); ++ } + } + + static void +@@ -257,7 +346,7 @@ + int currow, curcol; + + if (has_colors()) { +- wbkgd(win, COLOR_PAIR(1)); ++ wbkgd(win, (chtype) COLOR_PAIR(1)); + } + werase(win); + form_getyx(form, currow, curcol); +@@ -309,25 +398,28 @@ + } + + waddch(win, ' '); +- (void) wattrset(win, field_fore(field)); ++ (void) wattrset(win, (int) field_fore(field)); + waddstr(win, "fore"); +- wattroff(win, field_fore(field)); ++ wattroff(win, (int) field_fore(field)); + + waddch(win, '/'); + +- (void) wattrset(win, field_back(field)); ++ (void) wattrset(win, (int) field_back(field)); + waddstr(win, "back"); +- wattroff(win, field_back(field)); ++ wattroff(win, (int) field_back(field)); + +- wprintw(win, ", pad '%c'", +- field_pad(field)); ++ wprintw(win, ", pad '%c'", field_pad(field)); + + waddstr(win, "\n"); + for (nbuf = 0; nbuf <= 2; ++nbuf) { + if ((buffer = field_buffer(field, nbuf)) != 0) { + wprintw(win, "buffer %d:", nbuf); + (void) wattrset(win, A_REVERSE); +- waddstr(win, buffer); ++ if (nbuf) { ++ waddnstr(win, buffer, trimmed(buffer)); ++ } else { ++ waddstr(win, buffer); ++ } + wattroff(win, A_REVERSE); + waddstr(win, "\n"); + } +@@ -341,11 +433,12 @@ + { + WINDOW *w; + FORM *form; +- FIELD *f[100]; /* FIXME memset to zero */ ++ FIELD *f[100]; /* will memset to zero */ + int finished = 0, c; + unsigned n = 0; + int pg; + WINDOW *also; ++ const char *fname; + + #ifdef NCURSES_MOUSE_VERSION + mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0); +@@ -363,66 +456,76 @@ + for (pg = 0; pg < 4; ++pg) { + char label[80]; + sprintf(label, "Sample Form Page %d", pg + 1); +- f[n++] = make_label(0, 15, label); ++ f[n++] = make_label(label, 0, 15); + set_new_page(f[n - 1], TRUE); + + switch (pg) { + default: +- f[n++] = make_label(2, 0, "Last Name"); +- f[n++] = make_field(3, 0, 1, 18); ++ fname = "Last Name"; ++ f[n++] = make_label(fname, 2, 0); ++ f[n++] = make_field(fname, 3, 0, 1, 18); + set_field_type(f[n - 1], TYPE_ALPHA, 1); + +- f[n++] = make_label(2, 20, "First Name"); +- f[n++] = make_field(3, 20, 1, 12); ++ fname = "First Name"; ++ f[n++] = make_label(fname, 2, 20); ++ f[n++] = make_field(fname, 3, 20, 1, 12); + set_field_type(f[n - 1], TYPE_ALPHA, 1); + +- f[n++] = make_label(2, 34, "Middle Name"); +- f[n++] = make_field(3, 34, 1, 12); ++ fname = "Middle Name"; ++ f[n++] = make_label(fname, 2, 34); ++ f[n++] = make_field(fname, 3, 34, 1, 12); + set_field_type(f[n - 1], TYPE_ALPHA, 1); + break; + case 1: +- f[n++] = make_label(2, 0, "Last Name"); +- f[n++] = make_field(3, 0, 1, 18); ++ fname = "Last Name"; ++ f[n++] = make_label(fname, 2, 0); ++ f[n++] = make_field(fname, 3, 0, 1, 18); + set_field_type(f[n - 1], TYPE_ALPHA, 1); + +- f[n++] = make_label(2, 20, "First Name"); +- f[n++] = make_field(3, 20, 1, 12); ++ fname = "First Name"; ++ f[n++] = make_label(fname, 2, 20); ++ f[n++] = make_field(fname, 3, 20, 1, 12); + set_field_type(f[n - 1], TYPE_ALPHA, 1); + +- f[n++] = make_label(2, 34, "MI"); +- f[n++] = make_field(3, 34, 1, 1); ++ fname = "MI"; ++ f[n++] = make_label(fname, 2, 34); ++ f[n++] = make_field(fname, 3, 34, 1, 1); + set_field_pad(f[n - 1], '?'); + set_field_type(f[n - 1], TYPE_ALPHA, 1); + break; + case 2: +- f[n++] = make_label(2, 0, "Host Name"); +- f[n++] = make_field(3, 0, 1, 18); ++ fname = "Host Name"; ++ f[n++] = make_label(fname, 2, 0); ++ f[n++] = make_field(fname, 3, 0, 1, 24); + set_field_type(f[n - 1], TYPE_ALNUM, 1); + + #ifdef NCURSES_VERSION +- f[n++] = make_label(2, 20, "IP Address"); +- f[n++] = make_field(3, 20, 1, 12); ++ fname = "IP Address"; ++ f[n++] = make_label(fname, 2, 26); ++ f[n++] = make_field(fname, 3, 26, 1, 16); + set_field_type(f[n - 1], TYPE_IPV4, 1); + #endif + + break; + + case 3: +- f[n++] = make_label(2, 0, "Four digits"); +- f[n++] = make_field(3, 0, 1, 18); ++ fname = "Four digits"; ++ f[n++] = make_label(fname, 2, 0); ++ f[n++] = make_field(fname, 3, 0, 1, 18); + set_field_type(f[n - 1], TYPE_INTEGER, 4, 0, 0); + +- f[n++] = make_label(2, 20, "Numeric"); +- f[n++] = make_field(3, 20, 1, 12); ++ fname = "Numeric"; ++ f[n++] = make_label(fname, 2, 20); ++ f[n++] = make_field(fname, 3, 20, 1, 12); + set_field_type(f[n - 1], TYPE_NUMERIC, 3, -10000.0, 100000000.0); + + break; + } + +- f[n++] = make_label(5, 0, "Comments"); +- f[n++] = make_field(6, 0, 4, 46); +- set_field_buffer(f[n - 1], 0, "HELLO\nWORLD!"); +- set_field_buffer(f[n - 1], 1, "Hello\nWorld!"); ++ fname = "Comments"; ++ f[n++] = make_label(fname, 5, 0); ++ f[n++] = make_field(fname, 6, 0, 4, 46); ++ init_edit_field(f[n - 1], get_data(fname)); + } + + f[n] = (FIELD *) 0; +@@ -471,7 +574,7 @@ + { + static const char *tbl[] = + { +- "Usage: demo_forms [options]" ++ "Usage: demo_forms [options] [data file]" + ,"" + ," -d make fields dynamic" + ," -j value justify (1=left, 2=center, 3=right)" +@@ -517,6 +620,9 @@ + + } + } ++ while (optind < argc) { ++ read_data(argv[optind++]); ++ } + + initscr(); + cbreak(); +@@ -531,7 +637,7 @@ + init_pair(1, COLOR_WHITE, COLOR_BLUE); + init_pair(2, COLOR_GREEN, COLOR_BLACK); + init_pair(3, COLOR_CYAN, COLOR_BLACK); +- bkgd(COLOR_PAIR(1)); ++ bkgd((chtype) COLOR_PAIR(1)); + refresh(); + } + +@@ -540,6 +646,7 @@ + endwin(); + ExitProgram(EXIT_SUCCESS); + } ++ + #else + int + main(void) +diff -Naur ncurses-5.9/test/demo_forms.txt ncurses-5.9.patch/test/demo_forms.txt +--- ncurses-5.9/test/demo_forms.txt 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/demo_forms.txt 2014-09-01 16:33:22.534792419 +0200 +@@ -0,0 +1,20 @@ ++# $Id: demo_forms.txt,v 1.3 2013/06/08 14:10:15 tom Exp $ ++First Name:John ++. ++Middle Name:Don ++. ++MI:D ++. ++Last Name:Smith ++. ++Comments:Hello ++World! ++. ++Host Name:localhost@localdomain ++. ++IP Address:192.168.1.100 ++. ++Four digits:1234 ++. ++Numeric:32768 ++. +diff -Naur ncurses-5.9/test/demo_menus.c ncurses-5.9.patch/test/demo_menus.c +--- ncurses-5.9/test/demo_menus.c 2011-01-15 21:02:47.000000000 +0100 ++++ ncurses-5.9.patch/test/demo_menus.c 2014-09-01 16:33:22.535792421 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2005-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2005-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_menus.c,v 1.32 2011/01/15 20:02:47 tom Exp $ ++ * $Id: demo_menus.c,v 1.52 2013/09/28 21:55:02 tom Exp $ + * + * Demonstrate a variety of functions from the menu library. + * Thomas Dickey - 2005/4/9 +@@ -38,7 +38,6 @@ + item_opts_off - + item_opts_on - + item_term - +-item_userptr - + item_visible - + menu_back - + menu_fore - +@@ -49,22 +48,16 @@ + menu_pad - + menu_request_by_name - + menu_request_name - +-menu_sub - + menu_term - + menu_userptr - + set_current_item - +-set_item_init - + set_item_opts - +-set_item_term - +-set_item_userptr - + set_menu_grey - +-set_menu_init - + set_menu_items - + set_menu_opts - + set_menu_pad - + set_menu_pattern - + set_menu_spacing - +-set_menu_term - + set_menu_userptr - + set_top_row - + top_row - +@@ -103,23 +96,21 @@ + + #define MENU_Y 1 + ++typedef struct { ++ const char *name; ++ void (*func) (int); ++ unsigned mask; ++} MENU_DATA; ++ ++static void call_files(int); ++ + static MENU *mpBanner; + static MENU *mpFile; + static MENU *mpSelect; + +-static bool loaded_file = FALSE; ++static WINDOW *status; + +-#if !HAVE_STRDUP +-#define strdup my_strdup +-static char * +-strdup(char *s) +-{ +- char *p = typeMalloc(char, strlen(s) + 1); +- if (p) +- strcpy(p, s); +- return (p); +-} +-#endif /* not HAVE_STRDUP */ ++static bool loaded_file = FALSE; + + /* Common function to allow ^T to toggle trace-mode in the middle of a test + * so that trace-files can be made smaller. +@@ -207,6 +198,48 @@ + return result; + } + ++static void ++my_menu_init(MENU * menu) ++{ ++ Trace(("called MenuHook my_menu_init")); ++ mvwprintw(status, 2, 0, "menu_init %p", (void *) menu); ++ wclrtoeol(status); ++ wrefresh(status); ++} ++ ++static void ++my_menu_term(MENU * menu) ++{ ++ Trace(("called MenuHook my_menu_term")); ++ mvwprintw(status, 2, 0, "menu_term %p", (void *) menu); ++ wclrtoeol(status); ++ wrefresh(status); ++} ++ ++static void ++my_item_init(MENU * menu) ++{ ++ ITEM *item = current_item(menu); ++ const char *name = item_name(item); ++ ++ Trace(("called MenuHook my_item_init (%s)", name)); ++ mvwprintw(status, 2, 0, "item_init %s", name); ++ wclrtoeol(status); ++ wrefresh(status); ++} ++ ++static void ++my_item_term(MENU * menu) ++{ ++ ITEM *item = current_item(menu); ++ const char *name = item_name(item); ++ ++ Trace(("called MenuHook my_item_term (%s)", name)); ++ mvwprintw(status, 2, 0, "item_term %s", name); ++ wclrtoeol(status); ++ wrefresh(status); ++} ++ + static MENU * + menu_create(ITEM ** items, int count, int ncols, MenuNo number) + { +@@ -225,8 +258,8 @@ + result = new_menu(items); + + if (has_colors()) { +- set_menu_fore(result, COLOR_PAIR(1)); +- set_menu_back(result, COLOR_PAIR(2)); ++ set_menu_fore(result, (chtype) COLOR_PAIR(1)); ++ set_menu_back(result, (chtype) COLOR_PAIR(2)); + } + + set_menu_format(result, maxrow, maxcol); +@@ -252,6 +285,10 @@ + + post_menu(result); + ++ set_menu_init(result, my_menu_init); ++ set_menu_term(result, my_menu_term); ++ set_item_init(result, my_item_init); ++ set_item_term(result, my_item_term); + return result; + } + +@@ -281,12 +318,15 @@ + free((char *) blob); + } + free(items); ++ items = 0; + } + #ifdef TRACE + if ((count > 0) && (m == mpTrace)) { + ITEM **ip = items; +- while (*ip) +- free(*ip++); ++ if (ip != 0) { ++ while (*ip) ++ free(*ip++); ++ } + } + #endif + } +@@ -305,21 +345,24 @@ + static void + build_file_menu(MenuNo number) + { +- static CONST_MENUS char *labels[] = ++ static MENU_DATA table[] = + { +- "Exit", +- (char *) 0 ++ {"Exit", call_files, 0}, ++ {(char *) 0, 0, 0} + }; +- static ITEM *items[SIZEOF(labels)]; ++ static ITEM *items[SIZEOF(table)]; + + ITEM **ip = items; +- CONST_MENUS char **ap; ++ int n; + +- for (ap = labels; *ap; ap++) +- *ip++ = new_item(*ap, ""); ++ for (n = 0; table[n].name != 0; ++n) { ++ *ip = new_item(table[n].name, ""); ++ set_item_userptr(*ip, &table[n]); ++ ++ip; ++ } + *ip = (ITEM *) 0; + +- mpFile = menu_create(items, SIZEOF(labels) - 1, 1, number); ++ mpFile = menu_create(items, SIZEOF(table) - 1, 1, number); + } + + static int +@@ -331,31 +374,40 @@ + /*****************************************************************************/ + + static void ++call_select(int code) ++{ ++ (void) code; ++ Trace(("Selected item %d", code)); ++} ++ ++static void + build_select_menu(MenuNo number, char *filename) + { +- static CONST_MENUS char *labels[] = ++#define MY_DATA(name) { name, call_select, 0 } ++ static MENU_DATA table[] = + { +- "Lions", +- "Tigers", +- "Bears", +- "(Oh my!)", +- "Newts", +- "Platypi", +- "Lemurs", +- "(Oh really?!)", +- "Leopards", +- "Panthers", +- "Pumas", +- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs", +- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs", +- (char *) 0 ++ MY_DATA("Lions"), ++ MY_DATA("Tigers"), ++ MY_DATA("Bears"), ++ MY_DATA("(Oh my!)"), ++ MY_DATA("Newts"), ++ MY_DATA("Platypi"), ++ MY_DATA("Lemurs"), ++ MY_DATA("(Oh really?!)"), ++ MY_DATA("Leopards"), ++ MY_DATA("Panthers"), ++ MY_DATA("Pumas"), ++ MY_DATA("Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs"), ++ MY_DATA("Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs"), ++ {(char *) 0, 0, 0} + }; + static ITEM **items; + + ITEM **ip; +- CONST_MENUS char **ap = 0; +- CONST_MENUS char **myList = 0; +- unsigned count = 0; ++ MENU_DATA *ap = 0; ++ MENU_DATA *myList = 0; ++ int i; ++ size_t count = 0; + + if (filename != 0) { + struct stat sb; +@@ -365,7 +417,7 @@ + size_t size = (size_t) sb.st_size; + unsigned j, k; + char *blob = typeMalloc(char, size + 1); +- CONST_MENUS char **list = typeCalloc(CONST_MENUS char *, size + 1); ++ MENU_DATA *list = typeCalloc(MENU_DATA, size + 1); + + items = typeCalloc(ITEM *, size + 1); + Trace(("build_select_menu blob=%p, items=%p", +@@ -378,19 +430,19 @@ + bool mark = TRUE; + for (j = k = 0; j < size; ++j) { + if (mark) { +- list[k++] = blob + j; ++ list[k++].name = blob + j; + mark = FALSE; + } + if (blob[j] == '\n') { + blob[j] = '\0'; +- if (k > 0 && *list[k - 1] == '\0') ++ if (k > 0 && *list[k - 1].name == '\0') + --k; + mark = TRUE; + } else if (blob[j] == '\t') { + blob[j] = ' '; /* menu items are printable */ + } + } +- list[k] = 0; ++ list[k].name = 0; + count = k; + ap = myList = list; + } +@@ -398,17 +450,24 @@ + } + loaded_file = TRUE; + } ++ if (ap == 0) ++ free(items); + } + } + if (ap == 0) { +- count = SIZEOF(labels) - 1; ++ count = SIZEOF(table) - 1; + items = typeCalloc(ITEM *, count + 1); +- ap = labels; ++ ap = table; + } + + ip = items; +- while (*ap != 0) +- *ip++ = new_item(*ap++, ""); ++ for (i = 0; ap[i].name != 0; ++i) { ++ ap[i].func = call_select; ++ ap[i].mask = (unsigned) i; ++ *ip = new_item(ap[i].name, ""); ++ set_item_userptr(*ip, &table[i]); ++ ++ip; ++ } + *ip = 0; + + mpSelect = menu_create(items, (int) count, 1, number); +@@ -425,30 +484,36 @@ + /*****************************************************************************/ + + #ifdef TRACE +-#define T_TBL(name) { #name, name } +-static struct { +- const char *name; +- unsigned mask; +-} t_tbl[] = { ++ ++static void ++call_trace(int code) ++{ ++ (void) code; ++ Trace(("Updating trace mask %d", code)); ++} ++ ++#define T_TBL(name) { #name, call_trace, name } ++static MENU_DATA t_tbl[] = ++{ + + T_TBL(TRACE_DISABLE), +- T_TBL(TRACE_TIMES), +- T_TBL(TRACE_TPUTS), +- T_TBL(TRACE_UPDATE), +- T_TBL(TRACE_MOVE), +- T_TBL(TRACE_CHARPUT), +- T_TBL(TRACE_ORDINARY), +- T_TBL(TRACE_CALLS), +- T_TBL(TRACE_VIRTPUT), +- T_TBL(TRACE_IEVENT), +- T_TBL(TRACE_BITS), +- T_TBL(TRACE_ICALLS), +- T_TBL(TRACE_CCALLS), +- T_TBL(TRACE_DATABASE), +- T_TBL(TRACE_ATTRS), +- T_TBL(TRACE_MAXIMUM), ++ T_TBL(TRACE_TIMES), ++ T_TBL(TRACE_TPUTS), ++ T_TBL(TRACE_UPDATE), ++ T_TBL(TRACE_MOVE), ++ T_TBL(TRACE_CHARPUT), ++ T_TBL(TRACE_ORDINARY), ++ T_TBL(TRACE_CALLS), ++ T_TBL(TRACE_VIRTPUT), ++ T_TBL(TRACE_IEVENT), ++ T_TBL(TRACE_BITS), ++ T_TBL(TRACE_ICALLS), ++ T_TBL(TRACE_CCALLS), ++ T_TBL(TRACE_DATABASE), ++ T_TBL(TRACE_ATTRS), ++ T_TBL(TRACE_MAXIMUM), + { +- (char *) 0, 0 ++ (char *) 0, 0, 0 + } + }; + +@@ -460,8 +525,11 @@ + ITEM **ip = items; + int n; + +- for (n = 0; t_tbl[n].name != 0; n++) +- *ip++ = new_item(t_tbl[n].name, ""); ++ for (n = 0; t_tbl[n].name != 0; n++) { ++ *ip = new_item(t_tbl[n].name, ""); ++ set_item_userptr(*ip, &t_tbl[n]); ++ ++ip; ++ } + *ip = (ITEM *) 0; + + mpTrace = menu_create(items, SIZEOF(t_tbl) - 1, 2, number); +@@ -527,7 +595,8 @@ + int result; + + for (ip = menu_items(mpTrace); *ip; ip++) { +- unsigned mask = t_tbl[item_index(*ip)].mask; ++ MENU_DATA *td = (MENU_DATA *) item_userptr(*ip); ++ unsigned mask = td->mask; + if (mask == 0) + set_item_value(*ip, _nc_tracing == 0); + else if ((mask & _nc_tracing) == mask) +@@ -540,15 +609,17 @@ + if (update_trace_menu(mpTrace) || cmd == REQ_TOGGLE_ITEM) { + newtrace = 0; + for (ip = menu_items(mpTrace); *ip; ip++) { +- if (item_value(*ip)) +- newtrace |= t_tbl[item_index(*ip)].mask; ++ if (item_value(*ip)) { ++ MENU_DATA *td = (MENU_DATA *) item_userptr(*ip); ++ newtrace |= td->mask; ++ } + } + trace(newtrace); + Trace(("trace level interactively set to %s", tracetrace(_nc_tracing))); + +- MvPrintw(LINES - 2, 0, +- "Trace level is %s\n", tracetrace(_nc_tracing)); +- refresh(); ++ MvWPrintw(status, 1, 0, ++ "Trace level is %s\n", tracetrace(_nc_tracing)); ++ wrefresh(status); + } + } + return result; +@@ -588,27 +659,37 @@ + } + + static void ++call_menus(int code) ++{ ++ (void) code; ++ Trace(("Activated menu %d\n", code)); ++} ++ ++static void + build_menus(char *filename) + { +- static CONST_MENUS char *labels[] = ++ static MENU_DATA table[] = + { +- "File", +- "Select", ++ {"File", call_menus, 0}, ++ {"Select", call_menus, 1}, + #ifdef TRACE +- "Trace", ++ {"Trace", call_menus, 2}, + #endif +- (char *) 0 ++ {(char *) 0, 0, 0} + }; +- static ITEM *items[SIZEOF(labels)]; ++ static ITEM *items[SIZEOF(table)]; + + ITEM **ip = items; +- CONST_MENUS char **ap; ++ int n; + +- for (ap = labels; *ap; ap++) +- *ip++ = new_item(*ap, ""); ++ for (n = 0; table[n].name != 0; ++n) { ++ *ip = new_item(table[n].name, ""); ++ set_item_userptr(*ip, &table[n]); ++ ++ip; ++ } + *ip = (ITEM *) 0; + +- mpBanner = menu_create(items, SIZEOF(labels) - 1, SIZEOF(labels) - 1, eBanner); ++ mpBanner = menu_create(items, SIZEOF(table) - 1, SIZEOF(table) - 1, eBanner); + set_menu_mark(mpBanner, ">"); + + build_file_menu(eFile); +@@ -671,14 +752,14 @@ + static void + show_status(int ch, MENU * menu) + { +- move(LINES - 1, 0); +- printw("key %s, menu %d, mark %s, match %s", +- keyname(ch), +- menu_number(), +- menu_mark(menu), +- menu_pattern(menu)); +- clrtoeol(); +- refresh(); ++ wmove(status, 0, 0); ++ wprintw(status, "key %s, menu %d, mark %s, match %s", ++ keyname(ch), ++ menu_number(), ++ menu_mark(menu), ++ menu_pattern(menu)); ++ wclrtoeol(status); ++ wrefresh(status); + } + + static void +@@ -777,9 +858,9 @@ + wrefresh(menu_win(last_menu)); + if (code == E_UNKNOWN_COMMAND + || code == E_NOT_POSTED) { +- if (menu_number() == eFile) +- break; +- beep(); ++ ITEM *item = current_item(last_menu); ++ MENU_DATA *td = (MENU_DATA *) item_userptr(item); ++ td->func((int) td->mask); + } + if (code == E_REQUEST_DENIED) + beep(); +@@ -827,11 +908,23 @@ + #endif /* HAVE_RIPOFFLINE */ + + static void ++call_files(int code) ++{ ++ switch (code) { ++ case 0: ++ destroy_menus(); ++ endwin(); ++ printf("DONE!\n"); ++ ExitProgram(EXIT_SUCCESS); ++ } ++} ++ ++static void + usage(void) + { + static const char *const tbl[] = + { +- "Usage: demo_menus [options]" ++ "Usage: demo_menus [options] [menu-file]" + ,"" + ,"Options:" + #if HAVE_RIPOFFLINE +@@ -867,7 +960,7 @@ + #endif /* HAVE_RIPOFFLINE */ + #ifdef TRACE + case 't': +- trace(strtoul(optarg, 0, 0)); ++ trace((unsigned) strtoul(optarg, 0, 0)); + break; + #endif + default: +@@ -885,6 +978,7 @@ + init_pair(1, COLOR_RED, COLOR_BLACK); + init_pair(2, COLOR_BLUE, COLOR_WHITE); + } ++ status = newwin(3, COLS, LINES - 3, 0); + build_menus(argc > 1 ? argv[1] : 0); + perform_menus(); + destroy_menus(); +diff -Naur ncurses-5.9/test/demo_termcap.c ncurses-5.9.patch/test/demo_termcap.c +--- ncurses-5.9/test/demo_termcap.c 2011-01-15 22:41:27.000000000 +0100 ++++ ncurses-5.9.patch/test/demo_termcap.c 2014-09-01 16:33:22.535792421 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2005-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2005-2012,2013 Free 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.14 2011/01/15 21:41:27 tom Exp $ ++ * $Id: demo_termcap.c,v 1.24 2013/06/08 16:58:49 tom Exp $ + * + * A simple demo of the termcap interface. + */ +@@ -50,11 +50,90 @@ + #if USE_CODE_LISTS + static bool b_opt = FALSE; + static bool n_opt = FALSE; ++static bool q_opt = FALSE; + static bool s_opt = FALSE; + #endif + ++static char *d_opt; ++static char *e_opt; ++static char **db_list; ++static int db_item; ++ ++static long total_values; ++ + #define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0) + ++static char * ++make_dbitem(char *p, char *q) ++{ ++ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q)); ++ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q); ++ return result; ++} ++ ++static void ++make_dblist(void) ++{ ++ if (d_opt && e_opt) { ++ int pass; ++ ++ for (pass = 0; pass < 2; ++pass) { ++ char *p, *q; ++ size_t count = 0; ++ ++ for (p = q = d_opt; *p != '\0'; ++p) { ++ if (*p == ':') { ++ if (p != q + 1) { ++ if (pass) { ++ db_list[count] = make_dbitem(p, q); ++ } ++ count++; ++ } ++ q = p + 1; ++ } ++ } ++ if (p != q + 1) { ++ if (pass) { ++ db_list[count] = make_dbitem(p, q); ++ } ++ count++; ++ } ++ if (!pass) { ++ db_list = typeCalloc(char *, count + 1); ++ } ++ } ++ } ++} ++ ++static char * ++next_dbitem(void) ++{ ++ char *result = 0; ++ ++ if (db_list) { ++ if ((result = db_list[db_item]) == 0) { ++ db_item = 0; ++ result = db_list[0]; ++ } else { ++ db_item++; ++ } ++ } ++ printf("** %s\n", result); ++ return result; ++} ++ ++static void ++free_dblist(void) ++{ ++ if (db_list) { ++ int n; ++ for (n = 0; db_list[n]; ++n) ++ free(db_list[n]); ++ free(db_list); ++ db_list = 0; ++ } ++} ++ + static void + dumpit(NCURSES_CONST char *cap) + { +@@ -70,66 +149,77 @@ + int num; + + if ((str = tgetstr(cap, &ap)) != 0) { +- /* +- * 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; ++ total_values++; ++ if (!q_opt) { ++ /* ++ * 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"); + } +- printf("\n"); + } else if ((num = tgetnum(cap)) >= 0) { +- printf(FNAME(num), cap); +- printf(" %d\n", num); ++ total_values++; ++ if (!q_opt) { ++ printf(FNAME(num), cap); ++ printf(" %d\n", num); ++ } + } else if (tgetflag(cap) > 0) { +- printf(FNAME(flg), cap); +- printf("%s\n", "true"); ++ ++total_values; ++ if (!q_opt) { ++ printf(FNAME(flg), cap); ++ printf("%s\n", "true"); ++ } + } +- fflush(stdout); ++ ++ if (!q_opt) ++ fflush(stdout); + } + + static void +@@ -137,6 +227,9 @@ + { + char buffer[1024]; + ++ if (db_list) { ++ putenv(next_dbitem()); ++ } + printf("Terminal type %s\n", name); + if (tgetent(buffer, name) >= 0) { + char cap[3]; +@@ -159,42 +252,43 @@ + + #if USE_CODE_LISTS + static void +-demo_terminfo(NCURSES_CONST char *name) ++demo_termcap(NCURSES_CONST char *name) + { + unsigned n; + NCURSES_CONST char *cap; ++ char buffer[1024]; + ++ if (db_list) { ++ putenv(next_dbitem()); ++ } + printf("Terminal type \"%s\"\n", name); +-#if HAVE_SETUPTERM +- setupterm(name, 1, (int *) 0); +-#else +- setterm(name); +-#endif ++ if (tgetent(buffer, name) >= 0) { + +- if (b_opt) { +- for (n = 0;; ++n) { +- cap = boolcodes[n]; +- if (cap == 0) +- break; +- dumpit(cap); ++ 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 (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); ++ if (s_opt) { ++ for (n = 0;; ++n) { ++ cap = strcodes[n]; ++ if (cap == 0) ++ break; ++ dumpit(cap); ++ } + } + } + } +@@ -204,7 +298,7 @@ + { + static const char *msg[] = + { +- "Usage: demo_terminfo [options] [terminal]", ++ "Usage: demo_termcap [options] [terminal]", + "", + "If no options are given, print all (boolean, numeric, string)", + "capabilities for the given terminal, using short names.", +@@ -212,9 +306,15 @@ + "Options:", + " -a try all names, print capabilities found", + " -b print boolean-capabilities", ++ " -d LIST colon-separated list of databases to use", ++ " -e NAME environment variable to set with -d option", + " -n print numeric-capabilities", ++ " -q quiet (prints only counts)", + " -r COUNT repeat for given count", + " -s print string-capabilities", ++#ifdef NCURSES_VERSION ++ " -y disable extended capabilities", ++#endif + }; + unsigned n; + for (n = 0; n < SIZEOF(msg); ++n) { +@@ -235,7 +335,7 @@ + int repeat; + int r_opt = 1; + +- while ((n = getopt(argc, argv, "abnr:s")) != -1) { ++ while ((n = getopt(argc, argv, "abd:e:nqr:sy")) != -1) { + switch (n) { + case 'a': + a_opt = TRUE; +@@ -243,9 +343,18 @@ + case 'b': + b_opt = TRUE; + break; ++ case 'd': ++ d_opt = optarg; ++ break; ++ case 'e': ++ e_opt = optarg; ++ break; + case 'n': + n_opt = TRUE; + break; ++ case 'q': ++ q_opt = TRUE; ++ break; + case 'r': + if ((r_opt = atoi(optarg)) <= 0) + usage(); +@@ -253,6 +362,11 @@ + case 's': + s_opt = TRUE; + break; ++#if NCURSES_XNAMES ++ case 'y': ++ use_extended_names(FALSE); ++ break; ++#endif + default: + usage(); + break; +@@ -268,6 +382,8 @@ + a_opt = TRUE; + #endif + ++ make_dblist(); ++ + if (a_opt) { + if (optind < argc) { + for (n = optind; n < argc; ++n) { +@@ -285,17 +401,21 @@ + for (repeat = 0; repeat < r_opt; ++repeat) { + if (optind < argc) { + for (n = optind; n < argc; ++n) { +- demo_terminfo(argv[n]); ++ demo_termcap(argv[n]); + } + } else if ((name = getenv("TERM")) != 0) { +- demo_terminfo(name); ++ demo_termcap(name); + } else { + static char dumb[] = "dumb"; +- demo_terminfo(dumb); ++ demo_termcap(dumb); + } + } + } +-#endif ++#endif /* USE_CODE_LISTS */ ++ ++ printf("%ld values\n", total_values); ++ ++ free_dblist(); + + ExitProgram(EXIT_SUCCESS); + } +@@ -306,6 +426,6 @@ + char *argv[]GCC_UNUSED) + { + printf("This program requires termcap\n"); +- exit(EXIT_FAILURE); ++ ExitProgram(EXIT_FAILURE); + } + #endif +diff -Naur ncurses-5.9/test/demo_terminfo.c ncurses-5.9.patch/test/demo_terminfo.c +--- ncurses-5.9/test/demo_terminfo.c 2010-11-28 01:15:27.000000000 +0100 ++++ ncurses-5.9.patch/test/demo_terminfo.c 2014-09-01 16:33:22.535792421 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2012,2013 Free 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,20 +29,19 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: demo_terminfo.c,v 1.9 2010/11/28 00:15:27 tom Exp $ ++ * $Id: demo_terminfo.c,v 1.19 2013/09/28 21:50:01 tom Exp $ + * + * A simple demo of the terminfo interface. + */ + #define USE_TINFO + #include <test.priv.h> + +-#ifdef NCURSES_VERSION +-#if !(defined(HAVE_TERM_ENTRY_H) && HAVE_TERM_ENTRY_H) +-#undef NCURSES_XNAMES +-#define NCURSES_XNAMES 0 +-#endif + #if NCURSES_XNAMES ++#if HAVE_TERM_ENTRY_H + #include <term_entry.h> ++#else ++#undef NCURSES_XNAMES ++#define NCURSES_XNAMES 0 + #endif + #endif + +@@ -52,12 +51,90 @@ + static bool b_opt = FALSE; + static bool f_opt = FALSE; + static bool n_opt = FALSE; ++static bool q_opt = FALSE; + static bool s_opt = FALSE; + static bool x_opt = FALSE; + ++static char *d_opt; ++static char *e_opt; ++static char **db_list; ++static int db_item; ++ ++static long total_values; ++ + #define FCOLS 8 + #define FNAME(type) "%s %-*s = ", #type, FCOLS + ++static char * ++make_dbitem(char *p, char *q) ++{ ++ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q)); ++ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q); ++ return result; ++} ++ ++static void ++make_dblist(void) ++{ ++ if (d_opt && e_opt) { ++ int pass; ++ ++ for (pass = 0; pass < 2; ++pass) { ++ char *p, *q; ++ size_t count = 0; ++ ++ for (p = q = d_opt; *p != '\0'; ++p) { ++ if (*p == ':') { ++ if (p != q + 1) { ++ if (pass) { ++ db_list[count] = make_dbitem(p, q); ++ } ++ count++; ++ } ++ q = p + 1; ++ } ++ } ++ if (p != q + 1) { ++ if (pass) { ++ db_list[count] = make_dbitem(p, q); ++ } ++ count++; ++ } ++ if (!pass) { ++ db_list = typeCalloc(char *, count + 1); ++ } ++ } ++ } ++} ++ ++static char * ++next_dbitem(void) ++{ ++ char *result = 0; ++ ++ if (db_list) { ++ if ((result = db_list[db_item]) == 0) { ++ db_item = 0; ++ result = db_list[0]; ++ } else { ++ db_item++; ++ } ++ } ++ printf("** %s\n", result); ++ return result; ++} ++ ++static void ++free_dblist(void) ++{ ++ if (db_list) { ++ int n; ++ for (n = 0; db_list[n]; ++n) ++ free(db_list[n]); ++ free(db_list); ++ db_list = 0; ++ } ++} + static void + dumpit(NCURSES_CONST char *cap) + { +@@ -72,66 +149,77 @@ + 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; ++ total_values++; ++ if (!q_opt) { ++ /* ++ * 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"); + } +- printf("\n"); + } else if ((num = tigetnum(cap)) >= 0) { +- printf(FNAME(num), cap); +- printf(" %d\n", num); ++ total_values++; ++ if (!q_opt) { ++ printf(FNAME(num), cap); ++ printf(" %d\n", num); ++ } + } else if ((num = tigetflag(cap)) >= 0) { +- printf(FNAME(flg), cap); +- printf("%s\n", num ? "true" : "false"); ++ total_values++; ++ if (!q_opt) { ++ printf(FNAME(flg), cap); ++ printf("%s\n", num ? "true" : "false"); ++ } + } +- fflush(stdout); ++ ++ if (!q_opt) ++ fflush(stdout); + } + + static void +@@ -140,6 +228,9 @@ + unsigned n; + NCURSES_CONST char *cap; + ++ if (db_list) { ++ putenv(next_dbitem()); ++ } + printf("Terminal type \"%s\"\n", name); + setupterm(name, 1, (int *) 0); + +@@ -191,7 +282,7 @@ + } + #endif + } else { +- char temp[10]; ++ char temp[80]; + static const char *xterm_keys[] = + { + "kDC", "kDN", "kEND", "kHOM", "kIC", +@@ -200,9 +291,9 @@ + for (n = 0; n < SIZEOF(xterm_keys); ++n) { + for (mod = 0; mod < 8; ++mod) { + if (mod == 0) +- strcpy(temp, xterm_keys[n]); ++ sprintf(temp, "%.*s", 8, xterm_keys[n]); + else +- sprintf(temp, "%s%d", xterm_keys[n], mod); ++ sprintf(temp, "%.*s%d", 8, xterm_keys[n], mod); + dumpit(temp); + } + } +@@ -224,12 +315,16 @@ + "", + "Options:", + " -b print boolean-capabilities", ++ " -d LIST colon-separated list of databases to use", ++ " -e NAME environment variable to set with -d option", + " -f print full names", + " -n print numeric-capabilities", ++ " -q quiet (prints only counts)", + " -r COUNT repeat for given count", + " -s print string-capabilities", + #ifdef NCURSES_VERSION + " -x print extended capabilities", ++ " -y disable extended capabilities", + #endif + }; + unsigned n; +@@ -246,18 +341,30 @@ + int repeat; + char *name; + int r_opt = 1; ++#ifdef NCURSES_VERSION ++ bool xy_opt = TRUE; /* by default, use_extended_names is true */ ++#endif + +- while ((n = getopt(argc, argv, "bfnr:sx")) != -1) { ++ while ((n = getopt(argc, argv, "bd:e:fnqr:sxy")) != -1) { + switch (n) { + case 'b': + b_opt = TRUE; + break; ++ case 'd': ++ d_opt = optarg; ++ break; ++ case 'e': ++ e_opt = optarg; ++ break; + case 'f': + f_opt = TRUE; + break; + case 'n': + n_opt = TRUE; + break; ++ case 'q': ++ q_opt = TRUE; ++ break; + case 'r': + if ((r_opt = atoi(optarg)) <= 0) + usage(); +@@ -268,7 +375,10 @@ + #ifdef NCURSES_VERSION + case 'x': + x_opt = TRUE; +- use_extended_names(TRUE); ++ xy_opt = TRUE; ++ break; ++ case 'y': ++ xy_opt = FALSE; + break; + #endif + default: +@@ -277,12 +387,18 @@ + } + } + ++#if NCURSES_XNAMES ++ use_extended_names(xy_opt); ++#endif ++ + if (!(b_opt || n_opt || s_opt || x_opt)) { + b_opt = TRUE; + n_opt = TRUE; + s_opt = TRUE; + } + ++ make_dblist(); ++ + for (repeat = 0; repeat < r_opt; ++repeat) { + if (optind < argc) { + for (n = optind; n < argc; ++n) { +@@ -296,6 +412,10 @@ + } + } + ++ printf("%ld values\n", total_values); ++ ++ free_dblist(); ++ + ExitProgram(EXIT_SUCCESS); + } + +diff -Naur ncurses-5.9/test/ditto.c ncurses-5.9.patch/test/ditto.c +--- ncurses-5.9/test/ditto.c 2010-11-14 02:06:47.000000000 +0100 ++++ ncurses-5.9.patch/test/ditto.c 2014-09-01 16:33:22.535792421 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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-on) + * +- * $Id: ditto.c,v 1.40 2010/11/14 01:06:47 tom Exp $ ++ * $Id: ditto.c,v 1.42 2012/11/24 20:16:18 tom Exp $ + * + * The program illustrates how to set up multiple screens from a single + * program. +@@ -80,6 +80,7 @@ + int which1; /* this screen's index in DITTO[] array */ + int length; /* length of windows[] and peeks[] */ + char **titles; /* per-window titles */ ++ WINDOW **parents; /* display boxes around each screen's data */ + WINDOW **windows; /* display data from each screen */ + PEEK *peeks; /* indices for each screen's fifo */ + FIFO fifo; /* fifo for this screen */ +@@ -98,6 +99,9 @@ + DITTO *ditto; /* data for all screens */ + } DDATA; + ++static void failed(const char *) GCC_NORETURN; ++static void usage(void) GCC_NORETURN; ++ + static void + failed(const char *s) + { +@@ -201,6 +205,7 @@ + scrollok(stdscr, TRUE); + box(stdscr, 0, 0); + ++ target->parents = typeCalloc(WINDOW *, (size_t) target->length); + target->windows = typeCalloc(WINDOW *, (size_t) target->length); + target->peeks = typeCalloc(PEEK, (size_t) target->length); + +@@ -220,6 +225,7 @@ + nodelay(inner, TRUE); + #endif + ++ target->parents[k] = outer; + target->windows[k] = inner; + } + doupdate(); +diff -Naur ncurses-5.9/test/dots.c ncurses-5.9.patch/test/dots.c +--- ncurses-5.9/test/dots.c 2010-11-14 02:00:02.000000000 +0100 ++++ ncurses-5.9.patch/test/dots.c 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1999-2011,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -29,7 +29,7 @@ + /* + * Author: Thomas E. Dickey <dickey@clark.net> 1999 + * +- * $Id: dots.c,v 1.22 2010/11/14 01:00:02 tom Exp $ ++ * $Id: dots.c,v 1.25 2013/09/28 22:12:09 tom Exp $ + * + * A simple demo of the terminfo interface. + */ +@@ -46,23 +46,23 @@ + static long total_chars = 0; + static time_t started; + +-static int +-outc(TPUTS_ARG c) ++static ++TPUTS_PROTO(outc, c) + { + int rc = c; + + if (interrupted) { + char tmp = (char) c; +- if (write(STDOUT_FILENO, &tmp, 1) == -1) ++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1) + rc = EOF; + } else { + rc = putc(c, stdout); + } +- return rc; ++ TPUTS_RETURN(rc); + } + + static bool +-outs(char *s) ++outs(const char *s) + { + if (valid(s)) { + tputs(s, 1, outc); +@@ -105,6 +105,7 @@ + int x, y, z, p; + double r; + double c; ++ int my_colors; + + CATCHALL(onsig); + +@@ -112,11 +113,12 @@ + setupterm((char *) 0, 1, (int *) 0); + outs(clear_screen); + outs(cursor_invisible); +- if (max_colors > 1) { ++ my_colors = max_colors; ++ if (my_colors > 1) { + if (!valid(set_a_foreground) + || !valid(set_a_background) + || (!valid(orig_colors) && !valid(orig_pair))) +- max_colors = -1; ++ my_colors = -1; + } + + r = (double) (lines - 4); +@@ -129,8 +131,8 @@ + p = (ranf() > 0.9) ? '*' : ' '; + + tputs(tparm3(cursor_address, y, x), 1, outc); +- if (max_colors > 0) { +- z = (int) (ranf() * max_colors); ++ if (my_colors > 0) { ++ z = (int) (ranf() * my_colors); + if (ranf() > 0.01) { + tputs(tparm2(set_a_foreground, z), 1, outc); + } else { +diff -Naur ncurses-5.9/test/dots_mvcur.c ncurses-5.9.patch/test/dots_mvcur.c +--- ncurses-5.9/test/dots_mvcur.c 2010-11-14 02:00:44.000000000 +0100 ++++ ncurses-5.9.patch/test/dots_mvcur.c 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2007-2009,2013 Free 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 - 2007 + * +- * $Id: dots_mvcur.c,v 1.6 2010/11/14 01:00:44 tom Exp $ ++ * $Id: dots_mvcur.c,v 1.10 2013/09/28 22:44:18 tom Exp $ + * + * A simple demo of the terminfo interface, and mvcur. + */ +@@ -46,24 +46,24 @@ + static long total_chars = 0; + static time_t started; + +-static int +-outc(TPUTS_ARG c) ++static ++TPUTS_PROTO(outc, c) + { + int rc = c; + + if (interrupted) { + char tmp = (char) c; +- if (write(STDOUT_FILENO, &tmp, 1) == -1) ++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1) + rc = EOF; + } else { + if (putc(c, stdout) == EOF) + rc = EOF; + } +- return rc; ++ TPUTS_RETURN(rc); + } + + static bool +-outs(char *s) ++outs(const char *s) + { + if (valid(s)) { + tputs(s, 1, outc); +@@ -108,6 +108,7 @@ + double r; + double c; + SCREEN *sp; ++ int my_colors; + + CATCHALL(onsig); + +@@ -116,11 +117,12 @@ + outs(clear_screen); + outs(cursor_home); + outs(cursor_invisible); +- if (max_colors > 1) { ++ my_colors = max_colors; ++ if (my_colors > 1) { + if (!valid(set_a_foreground) + || !valid(set_a_background) + || (!valid(orig_colors) && !valid(orig_pair))) +- max_colors = -1; ++ my_colors = -1; + } + + r = (double) (lines - 4); +@@ -137,8 +139,8 @@ + y0 = y; + } + +- if (max_colors > 0) { +- z = (int) (ranf() * max_colors); ++ if (my_colors > 0) { ++ z = (int) (ranf() * my_colors); + if (ranf() > 0.01) { + tputs(tparm2(set_a_foreground, z), 1, outc); + } else { +@@ -155,6 +157,7 @@ + } + } + outc(p); ++ ++x0; + fflush(stdout); + ++total_chars; + } +diff -Naur ncurses-5.9/test/dots_termcap.c ncurses-5.9.patch/test/dots_termcap.c +--- ncurses-5.9/test/dots_termcap.c 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/dots_termcap.c 2014-09-01 16:33:22.536792422 +0200 +@@ -0,0 +1,254 @@ ++/**************************************************************************** ++ * Copyright (c) 2013 Free 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: dots_termcap.c,v 1.7 2013/09/28 21:50:35 tom Exp $ ++ * ++ * A simple demo of the termcap interface. ++ */ ++#define USE_TINFO ++#include <test.priv.h> ++ ++#if !defined(__MINGW32__) ++#include <sys/time.h> ++#endif ++ ++#if HAVE_TGETENT ++ ++#include <time.h> ++ ++#define valid(s) ((s != 0) && s != (char *)-1) ++ ++static bool interrupted = FALSE; ++static long total_chars = 0; ++static time_t started; ++ ++static char *t_AB; ++static char *t_AF; ++static char *t_cl; ++static char *t_cm; ++static char *t_me; ++static char *t_mr; ++static char *t_oc; ++static char *t_op; ++static char *t_ve; ++static char *t_vi; ++ ++static struct { ++ const char *name; ++ char **value; ++} my_caps[] = { ++ ++ { ++ "AB", &t_AB ++ }, ++ { ++ "AF", &t_AF ++ }, ++ { ++ "cl", &t_cl ++ }, ++ { ++ "cm", &t_cm ++ }, ++ { ++ "me", &t_me ++ }, ++ { ++ "mr", &t_mr ++ }, ++ { ++ "oc", &t_oc ++ }, ++ { ++ "op", &t_op ++ }, ++ { ++ "ve", &t_ve ++ }, ++ { ++ "vi", &t_vi ++ }, ++}; ++ ++static ++TPUTS_PROTO(outc, c) ++{ ++ int rc = c; ++ ++ if (interrupted) { ++ char tmp = (char) c; ++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1) ++ rc = EOF; ++ } else { ++ rc = putc(c, stdout); ++ } ++ TPUTS_RETURN(rc); ++} ++ ++static bool ++outs(char *s) ++{ ++ if (valid(s)) { ++ tputs(s, 1, outc); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++static void ++cleanup(void) ++{ ++ outs(t_me); ++ if (!outs(t_oc)) ++ outs(t_op); ++ outs(t_cl); ++ outs(t_ve); ++ ++ printf("\n\n%ld total chars, rate %.2f/sec\n", ++ total_chars, ++ ((double) (total_chars) / (double) (time((time_t *) 0) - started))); ++} ++ ++static void ++onsig(int n GCC_UNUSED) ++{ ++ interrupted = TRUE; ++} ++ ++static double ++ranf(void) ++{ ++ long r = (rand() & 077777); ++ return ((double) r / 32768.); ++} ++ ++static void ++my_napms(int ms) ++{ ++#if defined(__MINGW32__) || !HAVE_GETTIMEOFDAY ++ Sleep(ms); ++#else ++ struct timeval data; ++ data.tv_sec = 0; ++ data.tv_usec = ms * 1000; ++ select(0, NULL, NULL, NULL, &data); ++#endif ++} ++ ++int ++main(int argc GCC_UNUSED, ++ char *argv[]GCC_UNUSED) ++{ ++ int x, y, z, p; ++ int num_colors; ++ int num_lines; ++ int num_columns; ++ double r; ++ double c; ++ char buffer[1024]; ++ char area[1024]; ++ char *name; ++ ++ CATCHALL(onsig); ++ ++ srand((unsigned) time(0)); ++ ++ if ((name = getenv("TERM")) == 0) { ++ fprintf(stderr, "TERM is not set\n"); ++ ExitProgram(EXIT_FAILURE); ++ } else if (tgetent(buffer, name) < 0) { ++ fprintf(stderr, "terminal description not found\n"); ++ ExitProgram(EXIT_FAILURE); ++ } else { ++ size_t t; ++ char *ap = area; ++ for (t = 0; t < SIZEOF(my_caps); ++t) { ++ *(my_caps[t].value) = tgetstr((NCURSES_CONST char *) ++ my_caps[t].name, &ap); ++ } ++ } ++ ++ num_colors = tgetnum("Co"); ++ num_lines = tgetnum("li"); ++ num_columns = tgetnum("co"); ++ ++ outs(t_cl); ++ outs(t_vi); ++ if (num_colors > 1) { ++ if (!valid(t_AF) ++ || !valid(t_AB) ++ || (!valid(t_oc) && !valid(t_op))) ++ num_colors = -1; ++ } ++ ++ r = (double) (num_lines - 4); ++ c = (double) (num_columns - 4); ++ started = time((time_t *) 0); ++ ++ while (!interrupted) { ++ x = (int) (c * ranf()) + 2; ++ y = (int) (r * ranf()) + 2; ++ p = (ranf() > 0.9) ? '*' : ' '; ++ ++ tputs(tgoto(t_cm, x, y), 1, outc); ++ if (num_colors > 0) { ++ z = (int) (ranf() * num_colors); ++ if (ranf() > 0.01) { ++ tputs(tgoto(t_AF, 0, z), 1, outc); ++ } else { ++ tputs(tgoto(t_AB, 0, z), 1, outc); ++ my_napms(1); ++ } ++ } else if (valid(t_me) ++ && valid(t_mr)) { ++ if (ranf() <= 0.01) { ++ outs((ranf() > 0.6) ++ ? t_mr ++ : t_me); ++ my_napms(1); ++ } ++ } ++ outc(p); ++ fflush(stdout); ++ ++total_chars; ++ } ++ cleanup(); ++ ExitProgram(EXIT_SUCCESS); ++} ++#else ++int ++main(int argc GCC_UNUSED, ++ char *argv[]GCC_UNUSED) ++{ ++ fprintf(stderr, "This program requires termcap\n"); ++ exit(EXIT_FAILURE); ++} ++#endif +diff -Naur ncurses-5.9/test/echochar.c ncurses-5.9.patch/test/echochar.c +--- ncurses-5.9/test/echochar.c 2010-11-14 02:00:44.000000000 +0100 ++++ ncurses-5.9.patch/test/echochar.c 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2010,2012 Free 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: echochar.c,v 1.8 2010/11/14 01:00:44 tom Exp $ ++ * $Id: echochar.c,v 1.9 2012/06/09 20:30:32 tom Exp $ + * + * Demonstrate the echochar function (compare to dots.c). + * Thomas Dickey - 2006/11/4 +@@ -74,7 +74,7 @@ + (short) fg, + (short) bg); + } +- attron(COLOR_PAIR(pair)); ++ attron((attr_t) COLOR_PAIR(pair)); + } + + int +diff -Naur ncurses-5.9/test/edit_field.c ncurses-5.9.patch/test/edit_field.c +--- ncurses-5.9/test/edit_field.c 2011-01-15 19:15:11.000000000 +0100 ++++ ncurses-5.9.patch/test/edit_field.c 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2003-2008,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2003-2011,2013 Free 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,11 +26,11 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: edit_field.c,v 1.17 2011/01/15 18:15:11 tom Exp $ ++ * $Id: edit_field.c,v 1.22 2013/09/28 22:02:17 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 +- * in field_buffer(field,1). ++ * for each field, and makes the resulting length available as a ++ * null-terminated string in field_buffer(field,1). + * + * Thomas Dickey - 2003/4/26. + */ +@@ -297,8 +297,49 @@ + static void + inactive_field(FIELD * f) + { +- FieldAttrs *ptr = (FieldAttrs *) field_userptr(f); +- set_field_back(f, ptr->background); ++ set_field_back(f, field_attrs(f)->background); ++} ++ ++FieldAttrs * ++field_attrs(FIELD * f) ++{ ++ return (FieldAttrs *) field_userptr(f); ++} ++ ++static int ++buffer_length(FIELD * f) ++{ ++ return field_attrs(f)->row_lengths[0]; ++} ++ ++static void ++set_buffer_length(FIELD * f, int length) ++{ ++ field_attrs(f)->row_lengths[0] = length; ++} ++ ++/* ++ * The userptr is used in edit_field.c's inactive_field(), as well as for ++ * keeping track of the actual lengths of lines in a multiline field. ++ */ ++void ++init_edit_field(FIELD * f, char *value) ++{ ++ FieldAttrs *ptr = field_attrs(f); ++ if (ptr == 0) { ++ int rows, cols, frow, fcol, nrow, nbuf; ++ ++ ptr = typeCalloc(FieldAttrs, (size_t) 1); ++ ptr->background = field_back(f); ++ if (field_info(f, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK) { ++ ptr->row_count = nrow; ++ ptr->row_lengths = typeCalloc(int, (size_t) nrow + 1); ++ } ++ } ++ set_field_userptr(f, (void *) ptr); ++ set_field_buffer(f, 0, value); /* will be formatted */ ++ set_field_buffer(f, 1, value); /* will be unformatted */ ++ set_buffer_length(f, (int) strlen(value)); + } + + int +@@ -308,9 +349,7 @@ + int status; + FIELD *before; + unsigned n; +- char lengths[80]; + int length; +- char *buffer; + int before_row; + int before_col; + int before_off = offset_in_field(form); +@@ -337,9 +376,7 @@ + if (status == E_OK) { + bool modified = TRUE; + +- length = 0; +- if ((buffer = field_buffer(before, 1)) != 0) +- length = atoi(buffer); ++ length = buffer_length(before); + if (length < before_off) + length = before_off; + switch (*result) { +@@ -445,8 +482,7 @@ + < MIN_FORM_COMMAND) + ++length; + +- sprintf(lengths, "%d", length); +- set_field_buffer(before, 1, lengths); ++ set_buffer_length(before, length); + } + + if (current_field(form) != before) +diff -Naur ncurses-5.9/test/edit_field.h ncurses-5.9.patch/test/edit_field.h +--- ncurses-5.9/test/edit_field.h 2008-12-20 20:23:18.000000000 +0100 ++++ ncurses-5.9.patch/test/edit_field.h 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 2003-2008,2013 Free 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.6 2008/12/20 19:23:18 tom Exp $ ++ * $Id: edit_field.h,v 1.9 2013/06/08 15:46:01 tom Exp $ + * + * Interface of edit_field.c + */ +@@ -45,8 +45,12 @@ + + typedef struct { + chtype background; ++ int row_count; ++ int *row_lengths; + } FieldAttrs; + ++extern FieldAttrs *field_attrs(FIELD * field); ++extern void init_edit_field(FIELD * field, char *value); + extern void help_edit_field(void); + extern int edit_field(FORM * form, int *result); + +diff -Naur ncurses-5.9/test/filter.c ncurses-5.9.patch/test/filter.c +--- ncurses-5.9/test/filter.c 2010-11-13 21:55:54.000000000 +0100 ++++ ncurses-5.9.patch/test/filter.c 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -29,7 +29,7 @@ + /* + * Author: Thomas E. Dickey <dickey@clark.net> 1998 + * +- * $Id: filter.c,v 1.13 2010/11/13 20:55:54 tom Exp $ ++ * $Id: filter.c,v 1.15 2012/06/09 20:30:32 tom Exp $ + */ + #include <test.priv.h> + +@@ -133,7 +133,7 @@ + background = -1; + #endif + init_pair(1, COLOR_CYAN, (short) background); +- underline = COLOR_PAIR(1); ++ underline = (attr_t) COLOR_PAIR(1); + } else { + underline = A_UNDERLINE; + } +@@ -143,7 +143,7 @@ + reset_shell_mode(); + printf("\n"); + fflush(stdout); +- system(buffer); ++ IGNORE_RC(system(buffer)); + reset_prog_mode(); + touchwin(stdscr); + erase(); +diff -Naur ncurses-5.9/test/firework.c ncurses-5.9.patch/test/firework.c +--- ncurses-5.9/test/firework.c 2010-11-13 21:58:25.000000000 +0100 ++++ ncurses-5.9.patch/test/firework.c 2014-09-01 16:33:22.536792422 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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.27 2010/11/13 20:58:25 tom Exp $ ++ * $Id: firework.c,v 1.29 2013/04/27 19:46:53 tom Exp $ + */ + #include <test.priv.h> + +@@ -41,7 +41,7 @@ + endwin(); + } + +-static RETSIGTYPE ++static void + onsig(int n GCC_UNUSED) + { + cleanup(); +@@ -94,14 +94,14 @@ + showit(); + + init_pair(1, get_colour(&bold), my_bg); +- (void) attrset(COLOR_PAIR(1) | bold); ++ (void) attrset((chtype) 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); +- (void) attrset(COLOR_PAIR(1) | bold); ++ (void) attrset((chtype) 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); +- (void) attrset(COLOR_PAIR(1) | bold); ++ (void) attrset((chtype) 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); +- (void) attrset(COLOR_PAIR(1) | bold); ++ (void) attrset((chtype) 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); +- (void) attrset(COLOR_PAIR(1) | bold); ++ (void) attrset((chtype) COLOR_PAIR(1) | bold); + MvPrintw(row - 2, col - 2, " # # "); + MvPrintw(row - 1, col - 2, "# #"); + MvPrintw(row + 0, col - 2, " "); +diff -Naur ncurses-5.9/test/form_driver_w.c ncurses-5.9.patch/test/form_driver_w.c +--- ncurses-5.9/test/form_driver_w.c 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/form_driver_w.c 2014-09-01 16:33:22.537792423 +0200 +@@ -0,0 +1,150 @@ ++/**************************************************************************** ++ * Copyright (c) 2013,2014 Free 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: Gaute Hope, 2013 * ++ ****************************************************************************/ ++ ++/* ++ * $Id: form_driver_w.c,v 1.11 2014/02/09 22:20:27 tom Exp $ ++ * ++ * Test form_driver_w (int, int, wchar_t), a wide char aware ++ * replacement of form_driver. ++ */ ++ ++#include <locale.h> ++ ++#include <test.priv.h> ++ ++#if USE_WIDEC_SUPPORT && USE_LIBFORM ++ ++#include <form.h> ++ ++int ++main(void) ++{ ++ FIELD *field[3]; ++ FORM *my_form; ++ bool done = FALSE; ++ ++ setlocale(LC_ALL, ""); ++ ++ /* Initialize curses */ ++ initscr(); ++ cbreak(); ++ noecho(); ++ keypad(stdscr, TRUE); ++ ++ /* Initialize the fields */ ++ field[0] = new_field(1, 10, 4, 18, 0, 0); ++ field[1] = new_field(1, 10, 6, 18, 0, 0); ++ field[2] = NULL; ++ ++ /* Set field options */ ++ set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */ ++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */ ++ /* Field is filled up */ ++ set_field_back(field[1], A_UNDERLINE); ++ field_opts_off(field[1], O_AUTOSKIP); ++ ++ /* Create the form and post it */ ++ my_form = new_form(field); ++ post_form(my_form); ++ refresh(); ++ ++ mvprintw(4, 10, "Value 1:"); ++ mvprintw(6, 10, "Value 2:"); ++ refresh(); ++ ++ /* Loop through to get user requests */ ++ while (!done) { ++ wint_t ch; ++ int ret = get_wch(&ch); ++ ++ mvprintw(8, 10, "Got %d (%#x), type: %s", (int) ch, (int) ch, ++ (ret == KEY_CODE_YES) ++ ? "KEY_CODE_YES" ++ : ((ret == OK) ++ ? "OK" ++ : ((ret == ERR) ++ ? "ERR" ++ : "?"))); ++ clrtoeol(); ++ ++ switch (ret) { ++ case KEY_CODE_YES: ++ switch (ch) { ++ case KEY_DOWN: ++ /* Go to next field */ ++ form_driver_w(my_form, KEY_CODE_YES, REQ_NEXT_FIELD); ++ /* Go to the end of the present buffer */ ++ /* Leaves nicely at the last character */ ++ form_driver_w(my_form, KEY_CODE_YES, REQ_END_LINE); ++ break; ++ case KEY_UP: ++ /* Go to previous field */ ++ form_driver_w(my_form, KEY_CODE_YES, REQ_PREV_FIELD); ++ form_driver_w(my_form, KEY_CODE_YES, REQ_END_LINE); ++ break; ++ default: ++ break; ++ } ++ break; ++ case OK: ++ switch (ch) { ++ case CTRL('D'): ++ case QUIT: ++ case ESCAPE: ++ done = TRUE; ++ break; ++ default: ++ form_driver_w(my_form, OK, ch); ++ break; ++ } ++ break; ++ } ++ } ++ ++ /* Un post form and free the memory */ ++ unpost_form(my_form); ++ free_form(my_form); ++ free_field(field[0]); ++ free_field(field[1]); ++ ++ endwin(); ++ ExitProgram(EXIT_SUCCESS); ++} ++ ++#else ++int ++main(void) ++{ ++ printf("This program requires the wide-ncurses and forms library\n"); ++ ExitProgram(EXIT_FAILURE); ++} ++#endif /* USE_WIDEC_SUPPORT */ +diff -Naur ncurses-5.9/test/gdc.c ncurses-5.9.patch/test/gdc.c +--- ncurses-5.9/test/gdc.c 2010-11-13 22:01:23.000000000 +0100 ++++ ncurses-5.9.patch/test/gdc.c 2014-09-01 16:33:22.537792423 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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,13 +27,13 @@ + ****************************************************************************/ + /* + * Grand digital clock for curses compatible terminals +- * Usage: gdc [-s] [n] -- run for n seconds (default infinity) ++ * Usage: gdc [-s] [-t hh:mm:ss] [n] -- run for n seconds (default infinity) + * Flags: -s: scroll + * + * modified 10-18-89 for curses (jrl) + * 10-18-89 added signal handling + * +- * $Id: gdc.c,v 1.34 2010/11/13 21:01:23 tom Exp $ ++ * $Id: gdc.c,v 1.40 2014/02/15 17:34:36 tom Exp $ + */ + + #include <test.priv.h> +@@ -60,7 +60,7 @@ + static bool redirected = FALSE; + static bool hascolor = FALSE; + +-static RETSIGTYPE ++static void + sighndl(int signo) + { + signal(signo, sighndl); +@@ -72,13 +72,24 @@ + } + + static void ++check_term(void) ++{ ++ if (sigtermed) { ++ (void) standend(); ++ endwin(); ++ fprintf(stderr, "gdc terminated by signal %d\n", sigtermed); ++ ExitProgram(EXIT_FAILURE); ++ } ++} ++ ++static void + drawbox(bool scrolling) + { + chtype bottom[XLENGTH + 1]; + int n; + + if (hascolor) +- (void) attrset(COLOR_PAIR(PAIR_FRAMES)); ++ (void) attrset((attr_t) COLOR_PAIR(PAIR_FRAMES)); + + MvAddCh(YBASE - 1, XBASE - 1, ACS_ULCORNER); + hline(ACS_HLINE, XLENGTH); +@@ -102,7 +113,7 @@ + vline(ACS_VLINE, YDEPTH); + + if (hascolor) +- (void) attrset(COLOR_PAIR(PAIR_OTHERS)); ++ (void) attrset((attr_t) COLOR_PAIR(PAIR_OTHERS)); + } + + static void +@@ -110,13 +121,13 @@ + { + if (on) { + if (hascolor) { +- attron(COLOR_PAIR(PAIR_DIGITS)); ++ attron((attr_t) COLOR_PAIR(PAIR_DIGITS)); + } else { + attron(A_STANDOUT); + } + } else { + if (hascolor) { +- attron(COLOR_PAIR(PAIR_OTHERS)); ++ attron((attr_t) COLOR_PAIR(PAIR_OTHERS)); + } else { + attroff(A_STANDOUT); + } +@@ -147,6 +158,7 @@ + ,"Options:" + ," -n redirect input to /dev/null" + ," -s scroll each number into place, rather than flipping" ++ ," -t hh:mm:ss specify starting time (default is ``now'')" + ,"" + ,"If you specify a count, gdc runs for that number of seconds" + }; +@@ -156,6 +168,43 @@ + ExitProgram(EXIT_FAILURE); + } + ++static time_t ++parse_time(const char *value) ++{ ++ int hh, mm, ss; ++ int check; ++ time_t result; ++ char c; ++ struct tm *tm; ++ ++ if (sscanf(value, "%d:%d:%d%c", &hh, &mm, &ss, &c) != 3) { ++ if (sscanf(value, "%02d%02d%02d%c", &hh, &mm, &ss, &c) != 3) { ++ usage(); ++ } ++ } ++ ++ if ((hh < 0) || (hh >= 24) || ++ (mm < 0) || (mm >= 60) || ++ (ss < 0) || (ss >= 60)) { ++ usage(); ++ } ++ ++ /* adjust so that the localtime in the main loop will give usable time */ ++ result = (hh * 3600) + ((mm * 60) + ss); ++ for (check = 0; check < 24; ++check) { ++ tm = localtime(&result); ++ if (tm->tm_hour == hh) ++ break; ++ result += 3600; ++ } ++ ++ if (tm->tm_hour != hh) { ++ fprintf(stderr, "Cannot find local time for %s!\n", value); ++ usage(); ++ } ++ return result; ++} ++ + int + main(int argc, char *argv[]) + { +@@ -166,21 +215,26 @@ + int count = 0; + FILE *ofp = stdout; + FILE *ifp = stdin; +- bool scrol = FALSE; ++ bool smooth = FALSE; ++ bool stages = FALSE; ++ time_t starts = 0; + + setlocale(LC_ALL, ""); + + CATCHALL(sighndl); + +- while ((k = getopt(argc, argv, "sn")) != -1) { ++ while ((k = getopt(argc, argv, "nst:")) != -1) { + switch (k) { +- case 's': +- scrol = TRUE; +- break; + case 'n': + ifp = fopen("/dev/null", "r"); + redirected = TRUE; + break; ++ case 's': ++ smooth = TRUE; ++ break; ++ case 't': ++ starts = parse_time(optarg); ++ break; + default: + usage(); + } +@@ -220,7 +274,7 @@ + init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED); + init_pair(PAIR_OTHERS, COLOR_RED, bg); + init_pair(PAIR_FRAMES, COLOR_WHITE, bg); +- (void) attrset(COLOR_PAIR(PAIR_OTHERS)); ++ (void) attrset((attr_t) COLOR_PAIR(PAIR_OTHERS)); + } + + restart: +@@ -231,9 +285,13 @@ + drawbox(FALSE); + + do { +- char buf[30]; ++ char buf[40]; + +- time(&now); ++ if (starts != 0) { ++ now = ++starts; ++ } else { ++ time(&now); ++ } + tm = localtime(&now); + + mask = 0; +@@ -247,12 +305,13 @@ + set(10, 17); + + for (k = 0; k < 6; k++) { +- if (scrol) { ++ if (smooth) { + for (i = 0; i < 5; i++) + newer[i] = (newer[i] & ~mask) | (newer[i + 1] & mask); + newer[5] = (newer[5] & ~mask) | (next[k] & mask); +- } else ++ } else { + newer[k] = (newer[k] & ~mask) | (next[k] & mask); ++ } + next[k] = 0; + for (s = 1; s >= 0; s--) { + standt(s); +@@ -273,7 +332,7 @@ + } + } + if (!s) { +- if (scrol) ++ if (smooth) + drawbox(TRUE); + refresh(); + /* +@@ -286,14 +345,41 @@ + * a lot of time when asking what time it is, at the top of + * this loop -T.Dickey + */ +- if (scrol) ++ if (smooth) + napms(85); ++ if (stages) { ++ stages = FALSE; ++ switch (wgetch(stdscr)) { ++ case 'q': ++ count = 1; ++ break; ++ case 'S': ++ stages = TRUE; ++ /* FALLTHRU */ ++ case 's': ++ nodelay(stdscr, FALSE); ++ break; ++ case ' ': ++ nodelay(stdscr, TRUE); ++ break; ++#ifdef KEY_RESIZE ++ case KEY_RESIZE: ++#endif ++ case '?': ++ goto restart; ++ case ERR: ++ check_term(); ++ /* FALLTHRU */ ++ default: ++ continue; ++ } ++ } + } + } + } + + /* this depends on the detailed format of ctime(3) */ +- (void) strcpy(buf, ctime(&now)); ++ (void) strncpy(buf, ctime(&now), (size_t) 30); + (void) strcpy(buf + 10, buf + 19); + MvAddStr(16, 30, buf); + +@@ -302,11 +388,11 @@ + refresh(); + + /* +- * If we're not scrolling, wait 1000 msec (1 sec). Use napms() rather +- * than sleep() because the latter does odd things on some systems, +- * e.g., suspending output as well. ++ * If we're not smooth-scrolling, wait 1000 msec (1 sec). Use napms() ++ * rather than sleep() because the latter does odd things on some ++ * systems, e.g., suspending output as well. + */ +- if (scrol) ++ if (smooth) + napms(500); + else + napms(1000); +@@ -318,10 +404,14 @@ + * will return an error if interrupted. This works only if we can + * read from the input, of course. + */ ++ stages = FALSE; + switch (wgetch(stdscr)) { + case 'q': + count = 1; + break; ++ case 'S': ++ stages = TRUE; ++ /* FALLTHRU */ + case 's': + nodelay(stdscr, FALSE); + break; +@@ -334,12 +424,7 @@ + case '?': + goto restart; + case ERR: +- if (sigtermed) { +- (void) standend(); +- endwin(); +- fprintf(stderr, "gdc terminated by signal %d\n", sigtermed); +- ExitProgram(EXIT_FAILURE); +- } ++ check_term(); + /* FALLTHRU */ + default: + continue; +diff -Naur ncurses-5.9/test/hanoi.c ncurses-5.9.patch/test/hanoi.c +--- ncurses-5.9/test/hanoi.c 2010-11-14 02:01:07.000000000 +0100 ++++ ncurses-5.9.patch/test/hanoi.c 2014-09-01 16:33:22.569792509 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,10 +41,11 @@ + * + * Date: 05.Nov.90 + * +- * $Id: hanoi.c,v 1.31 2010/11/14 01:01:07 tom Exp $ ++ * $Id: hanoi.c,v 1.35 2013/09/28 22:02:17 tom Exp $ + */ + + #include <test.priv.h> ++#include <math.h> + + #define NPEGS 3 /* This is not configurable !! */ + #define MINTILES 3 +@@ -57,7 +58,7 @@ + #define MIDPEG 39 + #define RIGHTPEG 59 + +-#define LENTOIND(x) (((x)-1)/2) ++#define LENTOIND(x) (((int)(x)-1)/2) + #define OTHER(a,b) (3-((a)+(b))) + + struct Peg { +@@ -84,10 +85,11 @@ + COLOR_MAGENTA, /* Length 17 */ + COLOR_RED, /* Length 19 */ + }; ++static int NTiles = 0; + static int NMoves = 0; + static bool AutoFlag = FALSE; + +-static void InitTiles(int NTiles); ++static void InitTiles(void); + static void DisplayTiles(void); + static void MakeMove(int From, int To); + static void AutoMove(int From, int To, int Num); +@@ -99,7 +101,7 @@ + int + main(int argc, char **argv) + { +- int NTiles, FromCol, ToCol; ++ int FromCol, ToCol; + + setlocale(LC_ALL, ""); + +@@ -130,9 +132,6 @@ + Usage(); + ExitProgram(EXIT_FAILURE); + } +-#ifdef TRACE +- trace(TRACE_MAXIMUM); +-#endif + initscr(); + if (has_colors()) { + int i; +@@ -155,7 +154,7 @@ + curs_set(0); + leaveok(stdscr, TRUE); /* Attempt to remove cursor */ + } +- InitTiles(NTiles); ++ InitTiles(); + DisplayTiles(); + if (AutoFlag) { + do { +@@ -211,7 +210,7 @@ + } + + static void +-InitTiles(int NTiles) ++InitTiles(void) + { + int Size, SlotNo; + +@@ -232,7 +231,7 @@ + erase(); + 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); ++ MvPrintw(19, 5, "Moves : %d of %.0f", NMoves, pow(2.0, (float) NTiles) - 1); + (void) attrset(A_REVERSE); + MvAddStr(BASELINE, 8, + " "); +@@ -255,7 +254,7 @@ + memset(TileBuf, ' ', len); + TileBuf[len] = '\0'; + if (has_colors()) +- (void) attrset(COLOR_PAIR(LENTOIND(len))); ++ (void) attrset((attr_t) COLOR_PAIR(LENTOIND(len))); + else + (void) attrset(A_REVERSE); + MvAddStr(BASELINE - (SlotNo + 1), +@@ -310,12 +309,12 @@ + if (Num == 1) { + MakeMove(From, To); + napms(500); +- return; ++ } else { ++ AutoMove(From, OTHER(From, To), Num - 1); ++ MakeMove(From, To); ++ napms(500); ++ AutoMove(OTHER(From, To), To, Num - 1); + } +- AutoMove(From, OTHER(From, To), Num - 1); +- MakeMove(From, To); +- napms(500); +- AutoMove(OTHER(From, To), To, Num - 1); + } + + static int +diff -Naur ncurses-5.9/test/hashtest.c ncurses-5.9.patch/test/hashtest.c +--- ncurses-5.9/test/hashtest.c 2010-11-14 00:43:15.000000000 +0100 ++++ ncurses-5.9.patch/test/hashtest.c 2014-09-01 16:33:22.569792509 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2010,2013 Free 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 @@ + * + * Generate timing statistics for vertical-motion optimization. + * +- * $Id: hashtest.c,v 1.31 2010/11/13 23:43:15 tom Exp $ ++ * $Id: hashtest.c,v 1.32 2013/04/27 19:50:17 tom Exp $ + */ + + #include <test.priv.h> +@@ -54,7 +54,7 @@ + endwin(); + } + +-static RETSIGTYPE ++static void + finish(int sig GCC_UNUSED) + { + cleanup(); +diff -Naur ncurses-5.9/test/inchs.c ncurses-5.9.patch/test/inchs.c +--- ncurses-5.9/test/inchs.c 2010-11-14 00:41:23.000000000 +0100 ++++ ncurses-5.9.patch/test/inchs.c 2014-09-01 16:33:22.569792509 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2007-2010,2012 Free 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: inchs.c,v 1.11 2010/11/13 23:41:23 tom Exp $ ++ * $Id: inchs.c,v 1.12 2012/11/18 01:58:15 tom Exp $ + * + * Author: Thomas E Dickey + */ +@@ -50,6 +50,16 @@ + #define BASE_Y 7 + #define MAX_COLS 1024 + ++static void ++failed(const char *s) ++{ ++ int save = errno; ++ endwin(); ++ errno = save; ++ perror(s); ++ ExitProgram(EXIT_FAILURE); ++} ++ + static bool + Quit(int ch) + { +@@ -87,6 +97,8 @@ + txtwin = stdscr; + base_y = BASE_Y; + } ++ if (txtwin == 0) ++ failed("cannot create txtwin"); + + keypad(txtwin, TRUE); /* enable keyboard mapping */ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ +diff -Naur ncurses-5.9/test/insdelln.c ncurses-5.9.patch/test/insdelln.c +--- ncurses-5.9/test/insdelln.c 2010-11-14 00:39:38.000000000 +0100 ++++ ncurses-5.9.patch/test/insdelln.c 2014-09-01 16:33:22.570792508 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2008-2010,2012 Free 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: insdelln.c,v 1.5 2010/11/13 23:39:38 tom Exp $ ++ * $Id: insdelln.c,v 1.7 2012/11/18 00:37:58 tom Exp $ + * + * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln + */ +@@ -175,6 +175,8 @@ + delwin(win1); + touchwin(win); + } else { ++ if (win1) ++ delwin(win1); + beep(); + } + } +@@ -300,7 +302,7 @@ + init_status(win, &st); + + do { +- (void) wattrset(win, st.attr | (attr_t) COLOR_PAIR(st.pair)); ++ (void) wattrset(win, (int) (st.attr | (attr_t) COLOR_PAIR(st.pair))); + switch (st.ch) { + case 'i': + for (n = 0; n < st.count; ++n) +diff -Naur ncurses-5.9/test/inserts.c ncurses-5.9.patch/test/inserts.c +--- ncurses-5.9/test/inserts.c 2010-12-12 01:19:55.000000000 +0100 ++++ ncurses-5.9.patch/test/inserts.c 2014-09-01 16:33:22.570792508 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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: inserts.c,v 1.23 2010/12/12 00:19:55 tom Exp $ ++ * $Id: inserts.c,v 1.27 2012/12/16 00:35:27 tom Exp $ + * + * Demonstrate the winsstr() and winsch functions. + * Thomas Dickey - 2002/10/19 +@@ -167,6 +167,15 @@ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ + keypad(stdscr, TRUE); ++ ++ /* ++ * Show the characters inserted in color, to distinguish from those ++ * that are shifted. ++ */ ++ if (has_colors()) { ++ start_color(); ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ } + } + + limit = LINES - 5; +@@ -200,14 +209,8 @@ + + doupdate(); + +- /* +- * Show the characters inserted in color, to distinguish from those that +- * are shifted. +- */ + if (has_colors()) { +- start_color(); +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- wbkgdset(work, COLOR_PAIR(1) | ' '); ++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' ')); + } + + while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) { +@@ -216,11 +219,13 @@ + case key_RECUR: + test_inserts(level + 1); + +- touchwin(look); ++ if (look) ++ touchwin(look); + touchwin(work); + touchwin(show); + +- wnoutrefresh(look); ++ if (look) ++ wnoutrefresh(look); + wnoutrefresh(work); + wnoutrefresh(show); + +@@ -368,10 +373,10 @@ + } + } + if (level > 0) { +- delwin(show); + delwin(work); + delwin(look); + } ++ delwin(show); + } + + static void +diff -Naur ncurses-5.9/test/ins_wide.c ncurses-5.9.patch/test/ins_wide.c +--- ncurses-5.9/test/ins_wide.c 2010-12-12 01:20:14.000000000 +0100 ++++ ncurses-5.9.patch/test/ins_wide.c 2014-09-01 16:33:22.570792508 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2002-2010,2012 Free 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: ins_wide.c,v 1.15 2010/12/12 00:20:14 tom Exp $ ++ * $Id: ins_wide.c,v 1.20 2012/12/16 00:51:02 tom Exp $ + * + * Demonstrate the wins_wstr() and wins_wch functions. + * Thomas Dickey - 2002/11/23 +@@ -228,8 +228,9 @@ + WINDOW *work = 0; + WINDOW *show = 0; + int margin = (2 * MY_TABSIZE) - 1; +- Options option = ((m_opt ? oMove : oDefault) +- | ((w_opt || (level > 0)) ? oWindow : oDefault)); ++ Options option = (Options) ((int) (m_opt ? oMove : oDefault) ++ | (int) ((w_opt || (level > 0)) ++ ? oWindow : oDefault)); + + if (first) { + static char cmd[80]; +@@ -241,6 +242,15 @@ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ + keypad(stdscr, TRUE); ++ ++ /* ++ * Show the characters inserted in color, to distinguish from those ++ * that are shifted. ++ */ ++ if (has_colors()) { ++ start_color(); ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ } + } + + limit = LINES - 5; +@@ -274,14 +284,8 @@ + + doupdate(); + +- /* +- * Show the characters inserted in color, to distinguish from those that +- * are shifted. +- */ + if (has_colors()) { +- start_color(); +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- wbkgdset(work, COLOR_PAIR(1) | ' '); ++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' ')); + } + + while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) { +@@ -290,11 +294,13 @@ + case key_RECUR: + test_inserts(level + 1); + +- touchwin(look); ++ if (look) ++ touchwin(look); + touchwin(work); + touchwin(show); + +- wnoutrefresh(look); ++ if (look) ++ wnoutrefresh(look); + wnoutrefresh(work); + wnoutrefresh(show); + +@@ -438,10 +444,10 @@ + } + } + if (level > 0) { +- delwin(show); + delwin(work); + delwin(look); + } ++ delwin(show); + } + + static void +diff -Naur ncurses-5.9/test/knight.c ncurses-5.9.patch/test/knight.c +--- ncurses-5.9/test/knight.c 2010-11-13 21:44:21.000000000 +0100 ++++ ncurses-5.9.patch/test/knight.c 2014-09-01 16:33:22.570792508 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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 @@ + * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support + * added September 20th 1995. + * +- * $Id: knight.c,v 1.31 2010/11/13 20:44:21 tom Exp $ ++ * $Id: knight.c,v 1.36 2013/02/16 19:53:08 tom Exp $ + */ + + #include <test.priv.h> +@@ -123,13 +123,16 @@ + (void) init_pair(PLUS_COLOR, (short) COLOR_RED, (short) bg); + (void) init_pair(MINUS_COLOR, (short) COLOR_GREEN, (short) bg); + +- trail |= COLOR_PAIR(TRAIL_COLOR); +- plus |= COLOR_PAIR(PLUS_COLOR); +- minus |= COLOR_PAIR(MINUS_COLOR); ++ trail |= (chtype) COLOR_PAIR(TRAIL_COLOR); ++ plus |= (chtype) COLOR_PAIR(PLUS_COLOR); ++ minus |= (chtype) COLOR_PAIR(MINUS_COLOR); + } + #ifdef NCURSES_MOUSE_VERSION + (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL); + #endif /* NCURSES_MOUSE_VERSION */ ++#if defined(PDCURSES) ++ mouse_set(BUTTON1_RELEASED); ++#endif + + oldch = minus; + } +@@ -300,15 +303,16 @@ + } + } + +-static void ++static bool + find_next_move(int *y, int *x) + { + unsigned j, k; + int found = -1; + int first = -1; +- int next = 0; ++ int next = -1; + int oldy, oldx; + int newy, newx; ++ bool result = FALSE; + + if (movecount > 1) { + oldy = history[movecount - 1].y; +@@ -335,9 +339,27 @@ + *y = oldy + offsets[next].y; + *x = oldx + offsets[next].x; + } +- } else { +- beep(); ++ result = TRUE; + } ++ return result; ++} ++ ++static void ++count_next_moves(int y, int x) ++{ ++ int count = 0; ++ unsigned j; ++ ++ wprintw(msgwin, "\nMove %d", movecount); ++ for (j = 0; j < SIZEOF(offsets); j++) { ++ int newy = y + offsets[j].y; ++ int newx = x + offsets[j].x; ++ if (chksqr(newy, newx)) { ++ ++count; ++ } ++ } ++ wprintw(msgwin, ", gives %d choices", count); ++ wclrtoeol(msgwin); + } + + static void +@@ -558,8 +580,9 @@ + nx = col + 1; + break; + +-#ifdef NCURSES_MOUSE_VERSION ++#ifdef KEY_MOUSE + case KEY_MOUSE: ++#ifdef NCURSES_MOUSE_VERSION + { + MEVENT myevent; + +@@ -576,6 +599,24 @@ + } + } + #endif /* NCURSES_MOUSE_VERSION */ ++#ifdef PDCURSES ++ { ++ int test_y, test_x; ++ request_mouse_pos(); ++ test_y = MOUSE_Y_POS + 0; ++ test_x = MOUSE_X_POS + 1; ++ if (test_y >= CY(0) && test_y <= CY(BDEPTH) ++ && test_x >= CX(0) && test_x <= CX(BWIDTH)) { ++ ny = CYINV(test_y); ++ nx = CXINV(test_x); ++ wmove(helpwin, 0, 0); ++ wrefresh(helpwin); ++ ungetch('\n'); ++ } ++ break; ++ } ++#endif /* PDCURSES */ ++#endif /* KEY_MOUSE */ + + case KEY_B2: + case '\n': +@@ -614,8 +655,8 @@ + ny = history[movecount].y; + nx = history[movecount].x; + if (nx < 0 || ny < 0) { +- ny = lastrow; +- nx = lastcol; ++ ny = (lastrow >= 0) ? lastrow : 0; ++ nx = (lastcol >= 0) ? lastcol : 0; + } + movecount = 0; + board[ny][nx] = FALSE; +@@ -652,7 +693,10 @@ + case 'a': + nx = col; + ny = rw; +- find_next_move(&ny, &nx); ++ if (find_next_move(&ny, &nx)) ++ count_next_moves(ny, nx); ++ else ++ beep(); + break; + + case 'F': +diff -Naur ncurses-5.9/test/linedata.h ncurses-5.9.patch/test/linedata.h +--- ncurses-5.9/test/linedata.h 2010-11-13 22:12:31.000000000 +0100 ++++ ncurses-5.9.patch/test/linedata.h 2014-09-01 16:33:22.570792508 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -85,10 +85,8 @@ + beep(); + continue; + } +- } else if (code != ERR) { +- result = (int) ch; +- break; + } else { ++ result = (int) ch; + break; + } + } +diff -Naur ncurses-5.9/test/Makefile.in ncurses-5.9.patch/test/Makefile.in +--- ncurses-5.9/test/Makefile.in 2010-11-28 17:39:40.000000000 +0100 ++++ ncurses-5.9.patch/test/Makefile.in 2014-09-01 16:33:22.524792400 +0200 +@@ -1,6 +1,6 @@ +-# $Id: Makefile.in,v 1.108 2010/11/28 16:39:40 tom Exp $ ++# $Id: Makefile.in,v 1.111 2013/10/05 23:46:10 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2011,2013 Free 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"), # +@@ -47,13 +47,16 @@ + srcdir = @srcdir@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++datarootdir = @datarootdir@ ++ + bindir = @bindir@ + libdir = @libdir@ + includedir = @includedir@ ++includesubdir = @includesubdir@ + + BINDIR = $(DESTDIR)$(bindir) + LIBDIR = $(DESTDIR)$(libdir) +-INCLUDEDIR = $(DESTDIR)$(includedir) ++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) + + LIBTOOL = @LIBTOOL@ + LIBTOOL_CLEAN = @LIB_CLEAN@ +@@ -102,7 +105,7 @@ + LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE) + LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@ + +-TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ ++TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ + + # use these for linking with all of the libraries + LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB) +@@ -117,8 +120,8 @@ + LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES) + + # use these for linking with the tinfo library if we have it, or curses library if not +-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB) +-LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) ++LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB) ++LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) + + LINT = @LINT@ + LINT_OPTS = @LINT_OPTS@ +diff -Naur ncurses-5.9/test/make-tar.sh ncurses-5.9.patch/test/make-tar.sh +--- ncurses-5.9/test/make-tar.sh 2011-03-26 21:46:51.000000000 +0100 ++++ ncurses-5.9.patch/test/make-tar.sh 2014-09-01 16:33:22.570792508 +0200 +@@ -1,7 +1,7 @@ + #!/bin/sh +-# $Id: make-tar.sh,v 1.10 2011/03/26 20:46:51 tom Exp $ ++# $Id: make-tar.sh,v 1.12 2013/10/26 23:11:43 tom Exp $ + ############################################################################## +-# Copyright (c) 2010,2011 Free Software Foundation, Inc. # ++# Copyright (c) 2010-2011,2013 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -66,11 +66,11 @@ + make_changelog() { + test -f $1 && chmod u+w $1 + cat >$1 <<EOF +-`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_PATCH) unstable; urgency=low ++`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR-$NCURSES_PATCH) unstable; urgency=low + + * snapshot of ncurses subpackage for $PKG_NAME. + +- -- `head -1 $HOME/.signature` `date -R` ++ -- `head -n 1 $HOME/.signature` `date -R` + EOF + } + +@@ -108,7 +108,10 @@ + do + edit_specfile $spec + done +-make_changelog $BUILD/$ROOTNAME/package/debian/changelog ++for spec in $BUILD/$ROOTNAME/package/debian* ++do ++ make_changelog $spec/changelog ++done + + cp -p $SOURCE/NEWS $BUILD/$ROOTNAME + +diff -Naur ncurses-5.9/test/modules ncurses-5.9.patch/test/modules +--- ncurses-5.9/test/modules 2010-01-23 18:51:38.000000000 +0100 ++++ ncurses-5.9.patch/test/modules 2014-09-01 16:33:22.571792503 +0200 +@@ -1,6 +1,6 @@ +-# $Id: modules,v 1.43 2010/01/23 17:51:38 tom Exp $ ++# $Id: modules,v 1.50 2013/12/07 18:06:01 tom Exp $ + ############################################################################## +-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. # ++# Copyright (c) 1998-2012,2013 Free 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"), # +@@ -50,12 +50,14 @@ + ditto progs $(srcdir) $(HEADER_DEPS) + dots progs $(srcdir) $(HEADER_DEPS) + dots_mvcur progs $(srcdir) $(HEADER_DEPS) ++dots_termcap progs $(srcdir) $(HEADER_DEPS) + echochar progs $(srcdir) $(HEADER_DEPS) + edit_field progs $(srcdir) $(HEADER_DEPS) $(srcdir)/edit_field.h + filter progs $(srcdir) $(HEADER_DEPS) + firework progs $(srcdir) $(HEADER_DEPS) + firstlast progs $(srcdir) $(HEADER_DEPS) + foldkeys progs $(srcdir) $(HEADER_DEPS) ++form_driver_w progs $(srcdir) $(HEADER_DEPS) + gdc progs $(srcdir) $(HEADER_DEPS) + hanoi progs $(srcdir) $(HEADER_DEPS) + hashtest progs $(srcdir) $(HEADER_DEPS) +@@ -86,10 +88,12 @@ + test_instr progs $(srcdir) $(HEADER_DEPS) + test_inwstr progs $(srcdir) $(HEADER_DEPS) + test_opaque progs $(srcdir) $(HEADER_DEPS) ++test_vid_puts progs $(srcdir) $(HEADER_DEPS) ++test_vidputs progs $(srcdir) $(HEADER_DEPS) + testaddch progs $(srcdir) $(HEADER_DEPS) + testcurs progs $(srcdir) $(HEADER_DEPS) + testscanw progs $(srcdir) $(HEADER_DEPS) +-view progs $(srcdir) $(HEADER_DEPS) ++view progs $(srcdir) $(HEADER_DEPS) $(srcdir)/widechars.h + worm progs $(srcdir) $(HEADER_DEPS) + xmas progs $(srcdir) $(HEADER_DEPS) + +diff -Naur ncurses-5.9/test/movewindow.c ncurses-5.9.patch/test/movewindow.c +--- ncurses-5.9/test/movewindow.c 2010-11-14 00:34:55.000000000 +0100 ++++ ncurses-5.9.patch/test/movewindow.c 2014-09-01 16:33:22.571792503 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006-2008,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2012,2013 Free 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,18 +26,22 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: movewindow.c,v 1.24 2010/11/13 23:34:55 tom Exp $ ++ * $Id: movewindow.c,v 1.39 2013/05/04 19:41:02 tom Exp $ + * + * Demonstrate move functions for windows and derived windows from the curses + * library. + * +- * Thomas Dickey - 2006/2/11 ++ * Author: Thomas E. Dickey + */ + /* + derwin + mvderwin + subwin + mvwin ++ ++TODO: ++ add command to reset subwindow's origin to coincide with parent. ++ add command to delete subwindow (check if it has subwindows though) + */ + + #include <test.priv.h> +@@ -76,6 +80,14 @@ + static FRAME *all_windows; + + static void ++failed(const char *s) ++{ ++ perror(s); ++ endwin(); ++ ExitProgram(EXIT_FAILURE); ++} ++ ++static void + message(int lineno, CONST_FMT char *fmt, va_list argp) + { + int y, x; +@@ -122,7 +134,12 @@ + * Arrow keys move cursor, return location at current on non-arrow key. + */ + static PAIR * +-selectcell(WINDOW *parent, int uli, int ulj, int lri, int lrj) ++selectcell(WINDOW *parent, ++ WINDOW *child, ++ int uli, int ulj, ++ int lri, int lrj, ++ bool relative, ++ bool * more) + { + static PAIR res; /* result cell */ + int si = lri - uli + 1; /* depth of the select area */ +@@ -131,25 +148,46 @@ + + res.y = uli; + res.x = ulj; ++ ++ if (child != 0) { ++ if (relative) { ++ getparyx(child, i, j); ++ } else { ++ getbegyx(child, i, j); ++ i -= uli + getbegy(parent); ++ j -= ulj + getbegx(parent); ++ } ++ } ++ ++ if (more) ++ *more = FALSE; ++ + for (;;) { +- tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d", ++ bool moved = FALSE; ++ ++ tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d -> %d,%d", + uli, ulj, + lri, lrj, ++ i, j, + uli + i, ulj + j); + wmove(parent, uli + i, ulj + j); + + switch (wgetch(parent)) { + case KEY_UP: + i += si - 1; ++ moved = TRUE; + break; + case KEY_DOWN: + i++; ++ moved = TRUE; + break; + case KEY_LEFT: + j += sj - 1; ++ moved = TRUE; + break; + case KEY_RIGHT: + j++; ++ moved = TRUE; + break; + case QUIT: + case ESCAPE: +@@ -161,8 +199,13 @@ + + getmouse(&event); + if (event.y > uli && event.x > ulj) { +- i = event.y - uli; +- j = event.x - ulj; ++ if (parent != stdscr) { ++ i = event.y - getbegy(parent) - uli; ++ j = event.x - getbegx(parent) - ulj; ++ } else { ++ i = event.y - uli; ++ j = event.x - ulj; ++ } + } else { + beep(); + break; +@@ -175,8 +218,26 @@ + res.x = ulj + j; + return (&res); + } +- i %= si; +- j %= sj; ++ ++ if (si <= 0) ++ i = 0; ++ else ++ i %= si; ++ ++ if (sj <= 0) ++ j = 0; ++ else ++ j %= sj; ++ ++ /* ++ * If the caller can handle continuous movement, return the result. ++ */ ++ if (moved && more) { ++ *more = TRUE; ++ res.y = uli + i; ++ res.x = ulj + j; ++ return (&res); ++ } + } + } + +@@ -194,12 +255,20 @@ + bool result = FALSE; + + head_line("Use arrows to move cursor, anything else to mark corner 1"); +- if ((tmp = selectcell(parent, min_line, min_col, max_line, max_col)) != 0) { ++ if ((tmp = selectcell(parent, 0, ++ min_line, min_col, ++ max_line, max_col, ++ FALSE, ++ (bool *) 0)) != 0) { + *ul = *tmp; + MvWAddCh(parent, ul->y, ul->x, '*'); + + head_line("Use arrows to move cursor, anything else to mark corner 2"); +- if ((tmp = selectcell(parent, ul->y, ul->x, max_line, max_col)) != 0) { ++ if ((tmp = selectcell(parent, 0, ++ ul->y, ul->x, ++ max_line, max_col, ++ FALSE, ++ (bool *) 0)) != 0) { + *lr = *tmp; + MvWAddCh(parent, lr->y, lr->x, '*'); + wmove(parent, lr->y, lr->x); +@@ -252,6 +321,8 @@ + keypad(child, TRUE); + if (need > have) { + all_windows = typeRealloc(FRAME, need, all_windows); ++ if (!all_windows) ++ failed("add_window"); + } + all_windows[num_windows].parent = parent; + all_windows[num_windows].child = child; +@@ -341,10 +412,7 @@ + + for (n = 0; n < num_windows; ++n) { + if (all_windows[n].parent == parent) { +- int y0, x0; +- +- getbegyx(all_windows[n].child, y0, x0); +- mvwin(all_windows[n].child, y0 + dy, x0 + dx); ++ mvwin(all_windows[n].child, dy, dx); + recur_move_window(all_windows[n].child, dy, dx); + } + } +@@ -366,20 +434,24 @@ + int min_line = top ? LINE_MIN : 0; + int max_line = top ? LINE_MAX : getmaxy(parent); + PAIR *tmp; ++ bool more; + + head_line("Select new position for %swindow", top ? "" : "sub"); + +- if ((tmp = selectcell(parent, +- min_line, min_col, +- max_line, max_col)) != 0) { ++ while ((tmp = selectcell(parent, ++ win, ++ min_line, min_col, ++ max_line, max_col, ++ FALSE, ++ &more)) != 0) { + int y0, x0; + getbegyx(parent, y0, x0); + /* +- * Note: Moving a subwindow has the effect of moving a viewport +- * around the screen. The parent window retains the contents of +- * the subwindow in the original location, but the viewport will +- * show the contents (again) at the new location. So it will look +- * odd when testing. ++ * Moving a subwindow has the effect of moving a viewport around ++ * the screen. The parent window retains the contents of the ++ * subwindow in the original location, but the viewport will show ++ * the contents (again) at the new location. So it will look odd ++ * when testing. + */ + if (mvwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) { + if (recur) { +@@ -388,45 +460,69 @@ + refresh_all(win); + doupdate(); + result = TRUE; ++ } else { ++ result = FALSE; + } ++ if (!more) ++ break; + } + } ++ head_line("done"); + return result; + } + ++static void ++show_derwin(WINDOW *win) ++{ ++ int pary, parx, maxy, maxx; ++ ++ getmaxyx(win, maxy, maxx); ++ getparyx(win, pary, parx); ++ ++ head_line("Select new position for derived window at %d,%d (%d,%d)", ++ pary, parx, maxy, maxx); ++} ++ + /* + * test mvderwin(). + */ + static bool +-move_subwin(WINDOW *win) ++move_derwin(WINDOW *win) + { + WINDOW *parent = parent_of(win); + bool result = FALSE; + + if (parent != 0) { + bool top = (parent == stdscr); +- if (!top) { +- int min_col = top ? COL_MIN : 0; +- int max_col = top ? COL_MAX : getmaxx(parent); +- int min_line = top ? LINE_MIN : 0; +- int max_line = top ? LINE_MAX : getmaxy(parent); +- PAIR *tmp; +- +- head_line("Select new position for subwindow"); +- +- if ((tmp = selectcell(parent, +- min_line, min_col, +- max_line, max_col)) != 0) { +- int y0, x0; +- getbegyx(parent, y0, x0); +- if (mvderwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) { +- refresh_all(win); +- doupdate(); +- result = TRUE; +- } ++ int min_col = top ? COL_MIN : 0; ++ int max_col = top ? COL_MAX : getmaxx(parent); ++ int min_line = top ? LINE_MIN : 0; ++ int max_line = top ? LINE_MAX : getmaxy(parent); ++ PAIR *tmp; ++ bool more; ++ ++ show_derwin(win); ++ while ((tmp = selectcell(parent, ++ win, ++ min_line, min_col, ++ max_line, max_col, ++ TRUE, ++ &more)) != 0) { ++ if (mvderwin(win, tmp->y, tmp->x) != ERR) { ++ refresh_all(win); ++ doupdate(); ++ repaint_one(win); ++ doupdate(); ++ result = TRUE; ++ show_derwin(win); ++ } else { ++ flash(); + } ++ if (!more) ++ break; + } + } ++ head_line("done"); + return result; + } + +@@ -449,6 +545,28 @@ + wrefresh(win); + } + ++static void ++fill_with_pattern(WINDOW *win) ++{ ++ int y, x; ++ int y0, x0; ++ int y1, x1; ++ int ch = 'a'; ++ ++ getyx(win, y0, x0); ++ getmaxyx(win, y1, x1); ++ for (y = 0; y < y1; ++y) { ++ for (x = 0; x < x1; ++x) { ++ MvWAddCh(win, y, x, (chtype) ch); ++ if (++ch > 'z') ++ ch = 'a'; ++ } ++ } ++ wsyncdown(win); ++ wmove(win, y0, x0); ++ wrefresh(win); ++} ++ + #define lines_of(ul,lr) (lr.y - ul.y + 1) + #define cols_of(ul,lr) (lr.x - ul.x + 1) + #define pair_of(ul) ul.y, ul.x +@@ -523,12 +641,13 @@ + { 'b', "Draw a box inside the current window" }, + { 'c', "Create a new window" }, + { 'd', "Create a new derived window" }, ++ { 'D', "Move derived window (moves viewport)" }, + { 'f', "Fill the current window with the next character" }, ++ { 'F', "Fill the current window with a pattern" }, + { 'm', "Move the current window" }, + { 'M', "Move the current window (and its children)" }, + { 'q', "Quit" }, + { 's', "Create a new subwindow" }, +- { 't', "Move the current subwindow (moves content)" }, + { CTRL('L'), "Repaint all windows, doing current one last" }, + { CTRL('N'), "Cursor to next window" }, + { CTRL('P'), "Cursor to previous window" }, +@@ -571,6 +690,10 @@ + #endif /* NCURSES_MOUSE_VERSION */ + + while (!done && (ch = wgetch(current_win)) != ERR) { ++ int y, x; ++ ++ getyx(current_win, y, x); ++ + switch (ch) { + case '?': + show_help(current_win); +@@ -584,9 +707,18 @@ + case 'd': + current_win = create_my_derwin(current_win); + break; ++ case 'D': ++ if (!move_derwin(current_win)) { ++ tail_line("error"); ++ continue; ++ } ++ break; + case 'f': + fill_window(current_win, (chtype) wgetch(current_win)); + break; ++ case 'F': ++ fill_with_pattern(current_win); ++ break; + case 'm': + case 'M': + if (!move_window(current_win, (ch == 'M'))) { +@@ -600,12 +732,6 @@ + case 's': + current_win = create_my_subwin(current_win); + break; +- case 't': +- if (!move_subwin(current_win)) { +- tail_line("error"); +- continue; +- } +- break; + case CTRL('L'): + refresh_all(current_win); + break; +@@ -621,6 +747,7 @@ + /* want to allow deleting a window also */ + #endif + default: ++ wmove(current_win, y, x); + tail_line("unrecognized key (use '?' for help)"); + beep(); + continue; +diff -Naur ncurses-5.9/test/ncurses.c ncurses-5.9.patch/test/ncurses.c +--- ncurses-5.9/test/ncurses.c 2011-01-22 20:48:33.000000000 +0100 ++++ ncurses-5.9.patch/test/ncurses.c 2014-09-01 16:33:22.572792500 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -40,7 +40,7 @@ + Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993 + Thomas E. Dickey (beginning revision 1.27 in 1996). + +-$Id: ncurses.c,v 1.365 2011/01/22 19:48:33 tom Exp $ ++$Id: ncurses.c,v 1.397 2014/02/01 22:29:37 tom Exp $ + + ***************************************************************************/ + +@@ -157,15 +157,23 @@ + static int max_pairs; /* ...and the number of color pairs */ + + typedef struct { +- short red; +- short green; +- short blue; ++ NCURSES_COLOR_T red; ++ NCURSES_COLOR_T green; ++ NCURSES_COLOR_T blue; + } RGB_DATA; + + static RGB_DATA *all_colors; + + static void main_menu(bool); + ++static void ++failed(const char *s) ++{ ++ perror(s); ++ endwin(); ++ ExitProgram(EXIT_FAILURE); ++} ++ + /* The behavior of mvhline, mvvline for negative/zero length is unspecified, + * though we can rely on negative x/y values to stop the macro. + */ +@@ -490,7 +498,7 @@ + #ifdef __MINGW32__ + system("cmd.exe"); + #else +- system("sh"); ++ IGNORE_RC(system("sh")); + #endif + if (message) + addstr("returned from shellout.\n"); +@@ -723,6 +731,8 @@ + len_winstack = need; + winstack = typeRealloc(WINSTACK, len_winstack, winstack); + } ++ if (!winstack) ++ failed("remember_boxes"); + winstack[level].text = txt_win; + winstack[level].frame = box_win; + } +@@ -777,12 +787,21 @@ + } + doupdate(); + } +-#endif /* resize_boxes */ ++#endif /* resize_boxes */ + #else + #define forget_boxes() /* nothing */ + #define remember_boxes(level,text,frame) /* nothing */ + #endif + ++/* ++ * Return-code is OK/ERR or a keyname. ++ */ ++static const char * ++ok_keyname(int code) ++{ ++ return ((code == OK) ? "OK" : ((code == ERR) ? "ERR" : keyname(code))); ++} ++ + static void + wgetch_test(unsigned level, WINDOW *win, int delay) + { +@@ -824,9 +843,11 @@ + } else if (c == 'g') { + waddstr(win, "getstr test: "); + echo(); +- wgetnstr(win, buf, sizeof(buf) - 1); ++ c = wgetnstr(win, buf, sizeof(buf) - 1); + noecho(); +- wprintw(win, "I saw %d characters:\n\t`%s'.", (int) strlen(buf), buf); ++ wprintw(win, "I saw %d characters:\n\t`%s' (%s).", ++ (int) strlen(buf), buf, ++ ok_keyname(c)); + wclrtoeol(win); + wgetch_wrap(win, first_y); + } else if (c == 'k') { +@@ -1023,6 +1044,8 @@ + free(result); + result = 0; + } ++ } else { ++ failed("wcstos"); + } + } + return result; +@@ -1072,7 +1095,7 @@ + } else if (c == 'g') { + waddstr(win, "getstr test: "); + echo(); +- code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1); ++ code = wgetn_wstr(win, wint_buf, BUFSIZ - 1); + noecho(); + if (code == ERR) { + wprintw(win, "wgetn_wstr returns an error."); +@@ -1278,29 +1301,29 @@ + } + + static bool +-cycle_color_attr(int ch, short *fg, short *bg, short *tx) ++cycle_color_attr(int ch, NCURSES_COLOR_T *fg, NCURSES_COLOR_T *bg, NCURSES_COLOR_T *tx) + { + bool error = FALSE; + + if (use_colors) { + switch (ch) { + case 'f': +- *fg = (short) (*fg + 1); ++ *fg = (NCURSES_COLOR_T) (*fg + 1); + break; + case 'F': +- *fg = (short) (*fg - 1); ++ *fg = (NCURSES_COLOR_T) (*fg - 1); + break; + case 'b': +- *bg = (short) (*bg + 1); ++ *bg = (NCURSES_COLOR_T) (*bg + 1); + break; + case 'B': +- *bg = (short) (*bg - 1); ++ *bg = (NCURSES_COLOR_T) (*bg - 1); + break; + case 't': +- *tx = (short) (*tx + 1); ++ *tx = (NCURSES_COLOR_T) (*tx + 1); + break; + case 'T': +- *tx = (short) (*tx - 1); ++ *tx = (NCURSES_COLOR_T) (*tx - 1); + break; + default: + beep(); +@@ -1308,17 +1331,17 @@ + break; + } + if (*fg >= COLORS) +- *fg = (short) min_colors; ++ *fg = (NCURSES_COLOR_T) min_colors; + if (*fg < min_colors) +- *fg = (short) (COLORS - 1); ++ *fg = (NCURSES_COLOR_T) (COLORS - 1); + if (*bg >= COLORS) +- *bg = (short) min_colors; ++ *bg = (NCURSES_COLOR_T) min_colors; + if (*bg < min_colors) +- *bg = (short) (COLORS - 1); ++ *bg = (NCURSES_COLOR_T) (COLORS - 1); + if (*tx >= COLORS) + *tx = -1; + if (*tx < -1) +- *tx = (short) (COLORS - 1); ++ *tx = (NCURSES_COLOR_T) (COLORS - 1); + } else { + beep(); + error = TRUE; +@@ -1394,7 +1417,7 @@ + if (!(termattrs() & test)) { + printw(" (N/A)"); + } else { +- if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) { ++ if (ncv > 0 && stdscr && (getbkgd(stdscr) & A_COLOR)) { + static const chtype table[] = + { + A_STANDOUT, +@@ -1406,6 +1429,9 @@ + #ifdef A_INVIS + A_INVIS, + #endif ++#ifdef A_ITALIC ++ A_ITALIC, ++#endif + A_PROTECT, + A_ALTCHARSET + }; +@@ -1427,11 +1453,13 @@ + } + return row + 2; + } ++ ++typedef struct { ++ attr_t attr; ++ NCURSES_CONST char *name; ++} ATTR_TBL; + /* *INDENT-OFF* */ +-static const struct { +- chtype attr; +- NCURSES_CONST char * name; +-} attrs_to_test[] = { ++static const ATTR_TBL attrs_to_test[] = { + { A_STANDOUT, "STANDOUT" }, + { A_REVERSE, "REVERSE" }, + { A_BOLD, "BOLD" }, +@@ -1442,12 +1470,36 @@ + #ifdef A_INVIS + { A_INVIS, "INVISIBLE" }, + #endif ++#ifdef A_ITALIC ++ { A_ITALIC, "ITALIC" }, ++#endif + { A_NORMAL, "NORMAL" }, + }; + /* *INDENT-ON* */ + ++static unsigned ++init_attr_list(ATTR_TBL * target, attr_t attrs) ++{ ++ unsigned result = 0; ++ size_t n; ++ ++ for (n = 0; n < SIZEOF(attrs_to_test); ++n) { ++ attr_t test = attrs_to_test[n].attr; ++ if (test == A_NORMAL || (test & attrs) != 0) { ++ target[result++] = attrs_to_test[n]; ++ } ++ } ++ return result; ++} ++ + static bool +-attr_getc(int *skip, short *fg, short *bg, short *tx, int *ac, unsigned *kc) ++attr_getc(int *skip, ++ NCURSES_COLOR_T *fg, ++ NCURSES_COLOR_T *bg, ++ NCURSES_COLOR_T *tx, ++ int *ac, ++ unsigned *kc, ++ unsigned limit) + { + bool result = TRUE; + bool error = FALSE; +@@ -1480,13 +1532,13 @@ + break; + case 'v': + if (*kc == 0) +- *kc = SIZEOF(attrs_to_test) - 1; ++ *kc = limit - 1; + else + *kc -= 1; + break; + case 'V': + *kc += 1; +- if (*kc >= SIZEOF(attrs_to_test)) ++ if (*kc >= limit) + *kc = 0; + break; + case '<': +@@ -1513,72 +1565,78 @@ + { + int n; + int skip = get_xmc(); +- short fg = COLOR_BLACK; /* color pair 0 is special */ +- short bg = COLOR_BLACK; +- short tx = -1; ++ NCURSES_COLOR_T fg = COLOR_BLACK; /* color pair 0 is special */ ++ NCURSES_COLOR_T bg = COLOR_BLACK; ++ NCURSES_COLOR_T tx = -1; + int ac = 0; + unsigned j, k; ++ ATTR_TBL my_list[SIZEOF(attrs_to_test)]; ++ unsigned my_size = init_attr_list(my_list, termattrs()); + +- if (skip < 0) +- skip = 0; +- +- n = skip; /* make it easy */ +- k = SIZEOF(attrs_to_test) - 1; +- init_attr_string(); ++ if (my_size > 1) { ++ if (skip < 0) ++ skip = 0; ++ ++ n = skip; /* make it easy */ ++ k = my_size - 1; ++ init_attr_string(); + +- do { +- int row = 2; +- chtype normal = A_NORMAL | BLANK; +- chtype extras = (chtype) ac; ++ do { ++ int row = 2; ++ chtype normal = A_NORMAL | BLANK; ++ chtype extras = (chtype) ac; + +- if (use_colors) { +- short pair = (short) (fg != COLOR_BLACK || bg != COLOR_BLACK); +- if (pair != 0) { +- pair = 1; +- if (init_pair(pair, fg, bg) == ERR) { +- beep(); +- } else { +- normal |= (chtype) COLOR_PAIR(pair); ++ if (use_colors) { ++ NCURSES_PAIRS_T pair = 0; ++ if ((fg != COLOR_BLACK) || (bg != COLOR_BLACK)) { ++ pair = 1; ++ if (init_pair(pair, fg, bg) == ERR) { ++ beep(); ++ } else { ++ normal |= (chtype) COLOR_PAIR(pair); ++ } + } +- } +- if (tx >= 0) { +- pair = 2; +- if (init_pair(pair, tx, bg) == ERR) { +- beep(); +- } else { +- extras |= (chtype) COLOR_PAIR(pair); ++ if (tx >= 0) { ++ pair = 2; ++ if (init_pair(pair, tx, bg) == ERR) { ++ beep(); ++ } else { ++ extras |= (chtype) COLOR_PAIR(pair); ++ } + } + } +- } +- bkgd(normal); +- bkgdset(normal); +- erase(); ++ bkgd(normal); ++ bkgdset(normal); ++ erase(); + +- box(stdscr, 0, 0); +- MvAddStr(0, 20, "Character attribute test display"); ++ box(stdscr, 0, 0); ++ MvAddStr(0, 20, "Character attribute test display"); + +- for (j = 0; j < SIZEOF(attrs_to_test); ++j) { +- bool arrow = (j == k); +- row = show_attr(row, n, arrow, +- extras | +- attrs_to_test[j].attr | +- attrs_to_test[k].attr, +- attrs_to_test[j].name); +- } +- +- MvPrintw(row, 8, +- "This terminal does %shave the magic-cookie glitch", +- get_xmc() > -1 ? "" : "not "); +- MvPrintw(row + 1, 8, "Enter '?' for help."); +- show_color_attr(fg, bg, tx); +- printw(" ACS (%d)", ac != 0); ++ for (j = 0; j < my_size; ++j) { ++ bool arrow = (j == k); ++ row = show_attr(row, n, arrow, ++ extras | ++ my_list[j].attr | ++ my_list[k].attr, ++ my_list[j].name); ++ } ++ ++ MvPrintw(row, 8, ++ "This terminal does %shave the magic-cookie glitch", ++ get_xmc() > -1 ? "" : "not "); ++ MvPrintw(row + 1, 8, "Enter '?' for help."); ++ show_color_attr(fg, bg, tx); ++ printw(" ACS (%d)", ac != 0); + +- refresh(); +- } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k)); ++ refresh(); ++ } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k, my_size)); + +- bkgdset(A_NORMAL | BLANK); +- erase(); +- endwin(); ++ bkgdset(A_NORMAL | BLANK); ++ erase(); ++ endwin(); ++ } else { ++ Cannot("does not support video attributes."); ++ } + } + + #if USE_WIDEC_SUPPORT +@@ -1616,7 +1674,7 @@ + } + + static void +-set_wide_background(short pair) ++set_wide_background(NCURSES_PAIRS_T pair) + { + cchar_t normal; + wchar_t blank[2]; +@@ -1634,9 +1692,10 @@ + attr_t result = A_NORMAL; + attr_t attr; + cchar_t ch; +- short pair; ++ NCURSES_PAIRS_T pair; + wchar_t wch[10]; + ++ memset(&ch, 0, sizeof(ch)); + if (getbkgrnd(&ch) != ERR) { + if (getcchar(&ch, wch, &attr, &pair, 0) != ERR) { + result = attr; +@@ -1646,7 +1705,12 @@ + } + + static int +-wide_show_attr(int row, int skip, bool arrow, chtype attr, short pair, const char *name) ++wide_show_attr(int row, ++ int skip, ++ bool arrow, ++ chtype attr, ++ NCURSES_PAIRS_T pair, ++ const char *name) + { + int ncv = get_ncv(); + chtype test = attr & ~WA_ALTCHARSET; +@@ -1675,10 +1739,10 @@ + add_wch(&ch); + } + } else { +- attr_t old_attr; +- short old_pair; ++ attr_t old_attr = 0; ++ NCURSES_PAIRS_T old_pair = 0; + +- (void) attr_get(&old_attr, &old_pair, 0); ++ (void) (attr_get) (&old_attr, &old_pair, 0); + (void) attr_set(attr, pair, 0); + addwstr(wide_attr_test_string); + (void) attr_set(old_attr, old_pair, 0); +@@ -1723,7 +1787,10 @@ + } + + static bool +-wide_attr_getc(int *skip, short *fg, short *bg, short *tx, int *ac, unsigned *kc) ++wide_attr_getc(int *skip, ++ NCURSES_COLOR_T *fg, NCURSES_COLOR_T *bg, ++ NCURSES_COLOR_T *tx, int *ac, ++ unsigned *kc, unsigned limit) + { + bool result = TRUE; + bool error = FALSE; +@@ -1756,13 +1823,13 @@ + break; + case 'v': + if (*kc == 0) +- *kc = SIZEOF(attrs_to_test) - 1; ++ *kc = limit - 1; + else + *kc -= 1; + break; + case 'V': + *kc += 1; +- if (*kc >= SIZEOF(attrs_to_test)) ++ if (*kc >= limit) + *kc = 0; + break; + case '<': +@@ -1789,68 +1856,74 @@ + { + int n; + int skip = get_xmc(); +- short fg = COLOR_BLACK; /* color pair 0 is special */ +- short bg = COLOR_BLACK; +- short tx = -1; ++ NCURSES_COLOR_T fg = COLOR_BLACK; /* color pair 0 is special */ ++ NCURSES_COLOR_T bg = COLOR_BLACK; ++ NCURSES_COLOR_T tx = -1; + int ac = 0; + unsigned j, k; ++ ATTR_TBL my_list[SIZEOF(attrs_to_test)]; ++ unsigned my_size = init_attr_list(my_list, term_attrs()); + +- if (skip < 0) +- skip = 0; ++ if (my_size > 1) { ++ if (skip < 0) ++ skip = 0; ++ ++ n = skip; /* make it easy */ ++ k = my_size - 1; ++ wide_init_attr_string(); + +- n = skip; /* make it easy */ +- k = SIZEOF(attrs_to_test) - 1; +- wide_init_attr_string(); +- +- do { +- int row = 2; +- short pair = 0; +- short extras = 0; ++ do { ++ int row = 2; ++ NCURSES_PAIRS_T pair = 0; ++ NCURSES_PAIRS_T extras = 0; + +- if (use_colors) { +- pair = (short) (fg != COLOR_BLACK || bg != COLOR_BLACK); +- if (pair != 0) { +- pair = 1; +- if (init_pair(pair, fg, bg) == ERR) { +- beep(); ++ if (use_colors) { ++ pair = (NCURSES_PAIRS_T) (fg != COLOR_BLACK || bg != COLOR_BLACK); ++ if (pair != 0) { ++ pair = 1; ++ if (init_pair(pair, fg, bg) == ERR) { ++ beep(); ++ } + } +- } +- extras = pair; +- if (tx >= 0) { +- extras = 2; +- if (init_pair(extras, tx, bg) == ERR) { +- beep(); ++ extras = pair; ++ if (tx >= 0) { ++ extras = 2; ++ if (init_pair(extras, tx, bg) == ERR) { ++ beep(); ++ } + } + } +- } +- set_wide_background(pair); +- erase(); ++ set_wide_background(pair); ++ erase(); + +- box_set(stdscr, 0, 0); +- MvAddStr(0, 20, "Character attribute test display"); ++ box_set(stdscr, 0, 0); ++ MvAddStr(0, 20, "Character attribute test display"); + +- for (j = 0; j < SIZEOF(attrs_to_test); ++j) { +- row = wide_show_attr(row, n, j == k, +- ((attr_t) ac | +- attrs_to_test[j].attr | +- attrs_to_test[k].attr), +- extras, +- attrs_to_test[j].name); +- } +- +- MvPrintw(row, 8, +- "This terminal does %shave the magic-cookie glitch", +- get_xmc() > -1 ? "" : "not "); +- MvPrintw(row + 1, 8, "Enter '?' for help."); +- show_color_attr(fg, bg, tx); +- printw(" ACS (%d)", ac != 0); ++ for (j = 0; j < my_size; ++j) { ++ row = wide_show_attr(row, n, j == k, ++ ((attr_t) ac | ++ my_list[j].attr | ++ my_list[k].attr), ++ extras, ++ my_list[j].name); ++ } ++ ++ MvPrintw(row, 8, ++ "This terminal does %shave the magic-cookie glitch", ++ get_xmc() > -1 ? "" : "not "); ++ MvPrintw(row + 1, 8, "Enter '?' for help."); ++ show_color_attr(fg, bg, tx); ++ printw(" ACS (%d)", ac != 0); + +- refresh(); +- } while (wide_attr_getc(&n, &fg, &bg, &tx, &ac, &k)); ++ refresh(); ++ } while (wide_attr_getc(&n, &fg, &bg, &tx, &ac, &k, my_size)); + +- set_wide_background(0); +- erase(); +- endwin(); ++ set_wide_background(0); ++ erase(); ++ endwin(); ++ } else { ++ Cannot("does not support extended video attributes."); ++ } + } + #endif + +@@ -1895,7 +1968,7 @@ + } else if (color < 0) { + strcpy(temp, "default"); + } else { +- strcpy(temp, the_color_names[color]); ++ sprintf(temp, "%.*s", 16, the_color_names[color]); + } + printw("%-*.*s", width, width, temp); + } +@@ -1949,7 +2022,7 @@ + static void + color_test(void) + { +- short i; ++ NCURSES_PAIRS_T i; + int top = 0, width; + int base_row = 0; + int grid_top = top + 3; +@@ -2010,16 +2083,16 @@ + 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++) { ++ for (i = (NCURSES_PAIRS_T) (base_row * per_row); i < pairs_max; i++) { + int row = grid_top + (i / per_row) - base_row; + int col = (i % per_row + 1) * width; +- short pair = i; ++ NCURSES_PAIRS_T pair = i; + +-#define InxToFG(i) (short) ((i % (COLORS - min_colors)) + min_colors) +-#define InxToBG(i) (short) ((i / (COLORS - min_colors)) + min_colors) ++#define InxToFG(i) (NCURSES_COLOR_T) ((i % (COLORS - min_colors)) + min_colors) ++#define InxToBG(i) (NCURSES_COLOR_T) ((i / (COLORS - min_colors)) + min_colors) + if (row >= 0 && move(row, col) != ERR) { +- short fg = InxToFG(i); +- short bg = InxToBG(i); ++ NCURSES_COLOR_T fg = InxToFG(i); ++ NCURSES_COLOR_T bg = InxToBG(i); + + init_pair(pair, fg, bg); + attron((attr_t) COLOR_PAIR(pair)); +@@ -2031,7 +2104,7 @@ + attron((attr_t) A_REVERSE); + + if (opt_nums) { +- sprintf(numbered, "{%02X}", i); ++ sprintf(numbered, "{%02X}", (int) i); + hello = numbered; + } + printw("%-*.*s", width, width, hello); +@@ -2159,7 +2232,7 @@ + bool opt_wide = FALSE; + bool opt_nums = FALSE; + bool opt_xchr = FALSE; +- wchar_t buffer[10]; ++ wchar_t buffer[80]; + WINDOW *helpwin; + + if (COLORS * COLORS == COLOR_PAIRS) { +@@ -2216,11 +2289,11 @@ + for (i = (base_row * per_row); i < pairs_max; i++) { + int row = grid_top + (i / per_row) - base_row; + int col = (i % per_row + 1) * width; +- short pair = (short) i; ++ NCURSES_PAIRS_T pair = (NCURSES_PAIRS_T) i; + + if (row >= 0 && move(row, col) != ERR) { + init_pair(pair, InxToFG(i), InxToBG(i)); +- color_set(pair, NULL); ++ (void) color_set(pair, NULL); + if (opt_acsc) + attr_on((attr_t) A_ALTCHARSET, NULL); + if (opt_bold) +@@ -2347,21 +2420,21 @@ + #endif /* USE_WIDEC_SUPPORT */ + + static void +-change_color(short current, int field, int value, int usebase) ++change_color(NCURSES_PAIRS_T current, int field, int value, int usebase) + { +- short red, green, blue; ++ NCURSES_COLOR_T red, green, blue; + + color_content(current, &red, &green, &blue); + + switch (field) { + case 0: +- red = (short) (usebase ? (red + value) : value); ++ red = (NCURSES_COLOR_T) (usebase ? (red + value) : value); + break; + case 1: +- green = (short) (usebase ? (green + value) : value); ++ green = (NCURSES_COLOR_T) (usebase ? (green + value) : value); + break; + case 2: +- blue = (short) (usebase ? (blue + value) : value); ++ blue = (NCURSES_COLOR_T) (usebase ? (blue + value) : value); + break; + } + +@@ -2372,7 +2445,7 @@ + static void + init_all_colors(void) + { +- short c; ++ NCURSES_PAIRS_T c; + + for (c = 0; c < COLORS; ++c) + init_color(c, +@@ -2398,18 +2471,20 @@ + refresh(); + + for (i = 0; i < max_colors; i++) +- init_pair((short) i, (short) COLOR_WHITE, (short) i); ++ init_pair((NCURSES_PAIRS_T) i, ++ (NCURSES_COLOR_T) COLOR_WHITE, ++ (NCURSES_COLOR_T) i); + + MvPrintw(LINES - 2, 0, "Number: %d", value); + + do { +- short red, green, blue; ++ NCURSES_COLOR_T red, green, blue; + + attron(A_BOLD); + MvAddStr(0, 20, "Color RGB Value Editing"); + attroff(A_BOLD); + +- for (i = (short) top_color; ++ for (i = (NCURSES_COLOR_T) top_color; + (i - top_color < page_size) + && (i < max_colors); i++) { + char numeric[80]; +@@ -2423,30 +2498,30 @@ + addstr(" "); + (void) attrset(A_NORMAL); + +- color_content((short) i, &red, &green, &blue); ++ color_content((NCURSES_PAIRS_T) i, &red, &green, &blue); + addstr(" R = "); + if (current == i && field == 0) + attron(A_STANDOUT); +- printw("%04d", red); ++ printw("%04d", (int) red); + if (current == i && field == 0) + (void) attrset(A_NORMAL); + addstr(", G = "); + if (current == i && field == 1) + attron(A_STANDOUT); +- printw("%04d", green); ++ printw("%04d", (int) green); + if (current == i && field == 1) + (void) attrset(A_NORMAL); + addstr(", B = "); + if (current == i && field == 2) + attron(A_STANDOUT); +- printw("%04d", blue); ++ printw("%04d", (int) blue); + if (current == i && field == 2) + (void) attrset(A_NORMAL); + (void) attrset(A_NORMAL); + printw(" ( %3d %3d %3d )", +- scaled_rgb(red), +- scaled_rgb(green), +- scaled_rgb(blue)); ++ (int) scaled_rgb(red), ++ (int) scaled_rgb(green), ++ (int) scaled_rgb(blue)); + } + + MvAddStr(LINES - 3, 0, +@@ -2510,15 +2585,15 @@ + break; + + case '+': +- change_color((short) current, field, value, 1); ++ change_color((NCURSES_PAIRS_T) current, field, value, 1); + break; + + case '-': +- change_color((short) current, field, -value, 1); ++ change_color((NCURSES_PAIRS_T) current, field, -value, 1); + break; + + case '=': +- change_color((short) current, field, value, 0); ++ change_color((NCURSES_PAIRS_T) current, field, value, 0); + break; + + case '?': +@@ -2545,7 +2620,9 @@ + endwin(); + main_menu(FALSE); + for (i = 0; i < max_colors; i++) +- init_pair((short) i, (short) COLOR_WHITE, (short) i); ++ init_pair((NCURSES_PAIRS_T) i, ++ (NCURSES_COLOR_T) COLOR_WHITE, ++ (NCURSES_COLOR_T) i); + refresh(); + break; + +@@ -2586,32 +2663,19 @@ + * Alternate character-set stuff + * + ****************************************************************************/ +-/* *INDENT-OFF* */ +-static struct { +- chtype attr; +- const char *name; +-} attrs_to_cycle[] = { +- { A_NORMAL, "normal" }, +- { A_BOLD, "bold" }, +- { A_BLINK, "blink" }, +- { A_REVERSE, "reverse" }, +- { A_UNDERLINE, "underline" }, +-}; +-/* *INDENT-ON* */ +- + static bool +-cycle_attr(int ch, unsigned *at_code, chtype *attr) ++cycle_attr(int ch, unsigned *at_code, chtype *attr, ATTR_TBL * list, unsigned limit) + { + bool result = TRUE; + + switch (ch) { + case 'v': +- if ((*at_code += 1) >= SIZEOF(attrs_to_cycle)) ++ if ((*at_code += 1) >= limit) + *at_code = 0; + break; + case 'V': + if (*at_code == 0) +- *at_code = SIZEOF(attrs_to_cycle) - 1; ++ *at_code = limit - 1; + else + *at_code -= 1; + break; +@@ -2620,12 +2684,12 @@ + break; + } + if (result) +- *attr = attrs_to_cycle[*at_code].attr; ++ *attr = list[*at_code].attr; + return result; + } + + static bool +-cycle_colors(int ch, int *fg, int *bg, short *pair) ++cycle_colors(int ch, int *fg, int *bg, NCURSES_PAIRS_T *pair) + { + bool result = FALSE; + +@@ -2653,10 +2717,12 @@ + break; + } + if (result) { +- *pair = (short) (*fg != COLOR_BLACK || *bg != COLOR_BLACK); ++ *pair = (NCURSES_PAIRS_T) (*fg != COLOR_BLACK || *bg != COLOR_BLACK); + if (*pair != 0) { + *pair = 1; +- if (init_pair(*pair, (short) *fg, (short) *bg) == ERR) { ++ if (init_pair(*pair, ++ (NCURSES_COLOR_T) *fg, ++ (NCURSES_COLOR_T) *bg) == ERR) { + result = FALSE; + } + } +@@ -2715,7 +2781,7 @@ + static void + call_slk_color(int fg, int bg) + { +- init_pair(1, (short) bg, (short) fg); ++ init_pair(1, (NCURSES_COLOR_T) bg, (NCURSES_COLOR_T) fg); + slk_color(1); + MvPrintw(SLK_WORK, 0, "Colors %d/%d\n", fg, bg); + clrtoeol(); +@@ -2737,8 +2803,10 @@ + #if HAVE_SLK_COLOR + int fg = COLOR_BLACK; + int bg = COLOR_WHITE; +- short pair = 0; ++ NCURSES_PAIRS_T pair = 0; + #endif ++ ATTR_TBL my_list[SIZEOF(attrs_to_test)]; ++ unsigned my_size = init_attr_list(my_list, termattrs()); + + c = CTRL('l'); + #if HAVE_SLK_COLOR +@@ -2800,7 +2868,7 @@ + MvAddStr(SLK_WORK, 0, "Please enter the label value: "); + strcpy(buf, ""); + if ((s = slk_label(c - '0')) != 0) { +- strncpy(buf, s, 8); ++ strncpy(buf, s, (size_t) 8); + } + wGetstring(stdscr, buf, 8); + slk_set((c - '0'), buf, fmt); +@@ -2819,7 +2887,7 @@ + #endif + + default: +- if (cycle_attr(c, &at_code, &attr)) { ++ if (cycle_attr(c, &at_code, &attr, my_list, my_size)) { + slk_attrset(attr); + slk_touch(); + slk_noutrefresh(); +@@ -2859,7 +2927,9 @@ + unsigned at_code = 0; + int fg = COLOR_BLACK; + int bg = COLOR_WHITE; +- short pair = 0; ++ NCURSES_PAIRS_T pair = 0; ++ ATTR_TBL my_list[SIZEOF(attrs_to_test)]; ++ unsigned my_size = init_attr_list(my_list, term_attrs()); + + c = CTRL('l'); + if (use_colors) { +@@ -2955,13 +3025,13 @@ + + case 'F': + if (use_colors) { +- fg = (short) ((fg + 1) % COLORS); ++ fg = (NCURSES_COLOR_T) ((fg + 1) % COLORS); + call_slk_color(fg, bg); + } + break; + case 'B': + if (use_colors) { +- bg = (short) ((bg + 1) % COLORS); ++ bg = (NCURSES_COLOR_T) ((bg + 1) % COLORS); + call_slk_color(fg, bg); + } + break; +@@ -2971,8 +3041,8 @@ + break; + #endif + default: +- if (cycle_attr(c, &at_code, &attr)) { +- slk_attr_set(attr, (fg || bg), NULL); ++ if (cycle_attr(c, &at_code, &attr, my_list, my_size)) { ++ slk_attr_set(attr, (NCURSES_COLOR_T) (fg || bg), NULL); + slk_touch(); + slk_noutrefresh(); + break; +@@ -3000,15 +3070,46 @@ + #endif + #endif /* SLK_INIT */ + +-/* ISO 6429: codes 0x80 to 0x9f may be control characters that cause the ++static void ++show_256_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) ++{ ++ unsigned first = 0; ++ unsigned last = 255; ++ unsigned code; ++ int count; ++ ++ erase(); ++ attron(A_BOLD); ++ MvPrintw(0, 20, "Display of Character Codes %#0x to %#0x", ++ first, last); ++ attroff(A_BOLD); ++ refresh(); ++ ++ for (code = first; code <= last; ++code) { ++ int row = (int) (2 + (code / 16)); ++ int col = (int) (5 * (code % 16)); ++ IGNORE_RC(mvaddch(row, col, colored_chtype(code, attr, pair))); ++ for (count = 1; count < repeat; ++count) { ++ addch(colored_chtype(code, attr, pair)); ++ } ++ } ++ ++} ++ ++/* ++ * Show a slice of 32 characters, allowing those to be repeated up to the ++ * screen's width. ++ * ++ * ISO 6429: codes 0x80 to 0x9f may be control characters that cause the + * terminal to perform functions. The remaining codes can be graphic. + */ + static void +-show_upper_chars(unsigned first, int repeat, attr_t attr, short pair) ++show_upper_chars(int base, int pagesize, int repeat, attr_t attr, NCURSES_PAIRS_T pair) + { +- bool C1 = (first == 128); + unsigned code; +- unsigned last = first + 31; ++ unsigned first = (unsigned) base; ++ unsigned last = first + (unsigned) pagesize - 2; ++ bool C1 = (first == 128); + int reply; + + erase(); +@@ -3020,8 +3121,8 @@ + + for (code = first; code <= last; code++) { + int count = repeat; +- int row = 2 + ((int) (code - first) % 16); +- int col = ((int) (code - first) / 16) * COLS / 2; ++ int row = 2 + ((int) (code - first) % (pagesize / 2)); ++ int col = ((int) (code - first) / (pagesize / 2)) * COLS / 2; + char tmp[80]; + sprintf(tmp, "%3u (0x%x)", code, code); + MvPrintw(row, col, "%*s: ", COLS / 4, tmp); +@@ -3045,7 +3146,7 @@ + #define PC_COLS 4 + + static void +-show_pc_chars(int repeat, attr_t attr, short pair) ++show_pc_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + { + unsigned code; + +@@ -3086,7 +3187,7 @@ + } + + static void +-show_box_chars(int repeat, attr_t attr, short pair) ++show_box_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + { + (void) repeat; + +@@ -3133,7 +3234,7 @@ + } + + static void +-show_acs_chars(int repeat, attr_t attr, short pair) ++show_acs_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + /* display the ACS character set */ + { + int n; +@@ -3195,6 +3296,7 @@ + acs_display(void) + { + int c = 'a'; ++ int pagesize = 32; + char *term = getenv("TERM"); + const char *pch_kludge = ((term != 0 && strstr(term, "linux")) + ? "p=PC, " +@@ -3205,8 +3307,10 @@ + int fg = COLOR_BLACK; + int bg = COLOR_BLACK; + unsigned at_code = 0; +- short pair = 0; +- void (*last_show_acs) (int, attr_t, short) = 0; ++ NCURSES_PAIRS_T pair = 0; ++ void (*last_show_acs) (int, attr_t, NCURSES_PAIRS_T) = 0; ++ ATTR_TBL my_list[SIZEOF(attrs_to_test)]; ++ unsigned my_size = init_attr_list(my_list, termattrs()); + + do { + switch (c) { +@@ -3222,6 +3326,13 @@ + else + beep(); + break; ++ case 'w': ++ if (pagesize == 32) { ++ pagesize = 256; ++ } else { ++ pagesize = 32; ++ } ++ break; + case 'x': + ToggleAcs(last_show_acs, show_box_chars); + break; +@@ -3257,7 +3368,7 @@ + --repeat; + break; + default: +- if (cycle_attr(c, &at_code, &attr) ++ if (cycle_attr(c, &at_code, &attr, my_list, my_size) + || cycle_colors(c, &fg, &bg, &pair)) { + break; + } else { +@@ -3265,25 +3376,28 @@ + } + break; + } +- if (last_show_acs != 0) ++ if (pagesize != 32) { ++ show_256_chars(repeat, attr, pair); ++ } else if (last_show_acs != 0) { + last_show_acs(repeat, attr, pair); +- else +- show_upper_chars((unsigned) (digit * 32 + 128), repeat, attr, pair); ++ } else { ++ show_upper_chars(digit * pagesize + 128, pagesize, repeat, attr, pair); ++ } + + MvPrintw(LINES - 3, 0, + "Note: ANSI terminals may not display C1 characters."); + MvPrintw(LINES - 2, 0, +- "Select: a=ACS, x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit", ++ "Select: a=ACS, w=all x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit", + pch_kludge); + if (use_colors) { + MvPrintw(LINES - 1, 0, + "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.", +- attrs_to_cycle[at_code].name, ++ my_list[at_code].name, + fg, bg); + } else { + MvPrintw(LINES - 1, 0, + "v/V cycles through video attributes (%s).", +- attrs_to_cycle[at_code].name); ++ my_list[at_code].name); + } + refresh(); + } while (!isQuit(c = Getchar())); +@@ -3295,7 +3409,7 @@ + + #if USE_WIDEC_SUPPORT + static cchar_t * +-merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, short pair) ++merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, NCURSES_PAIRS_T pair) + { + int count; + +@@ -3312,8 +3426,55 @@ + return dst; + } + ++/* ++ * Header/legend take up no more than 8 lines, leaving 16 lines on a 24-line ++ * display. If there are no repeats, we could normally display 16 lines of 64 ++ * characters (1024 total). However, taking repeats and double-width cells ++ * into account, use 256 characters for the page. ++ */ ++static void ++show_paged_widechars(int base, ++ int pagesize, ++ int repeat, ++ int space, ++ attr_t attr, ++ NCURSES_PAIRS_T pair) ++{ ++ int first = base * pagesize; ++ int last = first + pagesize - 1; ++ int per_line = 16; ++ cchar_t temp; ++ wchar_t code; ++ wchar_t codes[10]; ++ ++ erase(); ++ attron(A_BOLD); ++ MvPrintw(0, 20, "Display of Character Codes %#x to %#x", first, last); ++ attroff(A_BOLD); ++ ++ for (code = first; (int) code <= last; code++) { ++ int row = (2 + ((int) code - first) / per_line); ++ int col = 5 * ((int) code % per_line); ++ int count; ++ ++ memset(&codes, 0, sizeof(codes)); ++ codes[0] = code; ++ setcchar(&temp, codes, attr, pair, 0); ++ move(row, col); ++ if (wcwidth(code) == 0 && code != 0) { ++ addch((chtype) space | ++ (A_REVERSE ^ attr) | ++ (attr_t) COLOR_PAIR(pair)); ++ } ++ add_wch(&temp); ++ for (count = 1; count < repeat; ++count) { ++ add_wch(&temp); ++ } ++ } ++} ++ + static void +-show_upper_widechars(int first, int repeat, int space, attr_t attr, short pair) ++show_upper_widechars(int first, int repeat, int space, attr_t attr, NCURSES_PAIRS_T pair) + { + cchar_t temp; + wchar_t code; +@@ -3332,11 +3493,13 @@ + int count = repeat; + int y, x; + +- memset(&codes, 0, sizeof(codes)); +- codes[0] = code; + sprintf(tmp, "%3ld (0x%lx)", (long) code, (long) code); + MvPrintw(row, col, "%*s: ", COLS / 4, tmp); ++ ++ memset(&codes, 0, sizeof(codes)); ++ codes[0] = code; + setcchar(&temp, codes, attr, pair, 0); ++ + do { + /* + * Give non-spacing characters something to combine with. If we +@@ -3350,16 +3513,17 @@ + (attr_t) 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()). +- * The screen will flicker because the erase() at the top of the +- * function is met by the builtin refresh() in echo_wchar(). ++ * This uses echo_wchar(), for comparison with the normal 'f' ++ * test (and to make a test-case for echo_wchar()). The screen ++ * may flicker because the erase() at the top of the function ++ * is met by the builtin refresh() in echo_wchar(). + */ + echo_wchar(&temp); + /* + * The repeat-count may make text wrap - avoid that. + */ + getyx(stdscr, y, x); ++ (void) y; + if (x >= col + (COLS / 2) - 2) + break; + } while (--count > 0); +@@ -3383,7 +3547,7 @@ + #define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair) + + static void +-show_wacs_chars(int repeat, attr_t attr, short pair) ++show_wacs_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + /* display the wide-ACS character set */ + { + cchar_t temp; +@@ -3443,7 +3607,7 @@ + + #ifdef WACS_D_PLUS + static void +-show_wacs_chars_double(int repeat, attr_t attr, short pair) ++show_wacs_chars_double(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + /* display the wide-ACS character set */ + { + cchar_t temp; +@@ -3504,7 +3668,7 @@ + + #ifdef WACS_T_PLUS + static void +-show_wacs_chars_thick(int repeat, attr_t attr, short pair) ++show_wacs_chars_thick(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + /* display the wide-ACS character set */ + { + cchar_t temp; +@@ -3568,7 +3732,7 @@ + #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) ++show_wbox_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + { + cchar_t temp[8]; + +@@ -3603,7 +3767,7 @@ + #undef MERGE_ATTR + + static int +-show_2_wacs(int n, const char *name, const char *code, attr_t attr, short pair) ++show_2_wacs(int n, const char *name, const char *code, attr_t attr, NCURSES_PAIRS_T pair) + { + const int height = 16; + int row = 2 + (n % height); +@@ -3612,7 +3776,7 @@ + + MvPrintw(row, col, "%*s : ", COLS / 4, name); + (void) attr_set(attr, pair, 0); +- addstr(strcpy(temp, code)); ++ addstr(strncpy(temp, code, 20)); + (void) attr_set(A_NORMAL, 0, 0); + return n + 1; + } +@@ -3620,7 +3784,7 @@ + #define SHOW_UTF8(n, name, code) show_2_wacs(n, name, code, attr, pair) + + static void +-show_utf8_chars(int repeat, attr_t attr, short pair) ++show_utf8_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair) + { + int n; + +@@ -3680,12 +3844,15 @@ + int digit = 0; + int repeat = 1; + int space = ' '; ++ int pagesize = 32; + chtype attr = A_NORMAL; + int fg = COLOR_BLACK; + int bg = COLOR_BLACK; + unsigned at_code = 0; +- short pair = 0; +- void (*last_show_wacs) (int, attr_t, short) = 0; ++ NCURSES_PAIRS_T pair = 0; ++ void (*last_show_wacs) (int, attr_t, NCURSES_PAIRS_T) = 0; ++ ATTR_TBL my_list[SIZEOF(attrs_to_test)]; ++ unsigned my_size = init_attr_list(my_list, term_attrs()); + + do { + switch (c) { +@@ -3705,6 +3872,13 @@ + ToggleAcs(last_show_wacs, show_wacs_chars_thick); + break; + #endif ++ case 'w': ++ if (pagesize == 32) { ++ pagesize = 256; ++ } else { ++ pagesize = 32; ++ } ++ break; + case 'x': + ToggleAcs(last_show_wacs, show_wbox_chars); + break; +@@ -3728,7 +3902,7 @@ + } else if (c == '_') { + space = (space == ' ') ? '_' : ' '; + last_show_wacs = 0; +- } else if (cycle_attr(c, &at_code, &attr) ++ } else if (cycle_attr(c, &at_code, &attr, my_list, my_size) + || cycle_colors(c, &fg, &bg, &pair)) { + if (last_show_wacs != 0) + break; +@@ -3738,22 +3912,27 @@ + } + break; + } +- if (last_show_wacs != 0) ++ if (pagesize != 32) { ++ show_paged_widechars(digit, pagesize, repeat, space, attr, pair); ++ } else if (last_show_wacs != 0) { + last_show_wacs(repeat, attr, pair); +- else ++ } else { + show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair); ++ } + +- MvPrintw(LINES - 3, 0, +- "Select: a/d/t WACS, x box, u UTF-8, 0-9,+/- non-ASCII, </> repeat, ESC=quit"); ++ MvPrintw(LINES - 4, 0, ++ "Select: a/d/t WACS, w=all x=box, u UTF-8, ^L repaint"); ++ MvPrintw(LINES - 3, 2, ++ "0-9,+/- non-ASCII, </> repeat, _ space, ESC=quit"); + if (use_colors) { +- MvPrintw(LINES - 2, 0, ++ MvPrintw(LINES - 2, 2, + "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.", +- attrs_to_cycle[at_code].name, ++ my_list[at_code].name, + fg, bg); + } else { +- MvPrintw(LINES - 2, 0, ++ MvPrintw(LINES - 2, 2, + "v/V cycles through video attributes (%s).", +- attrs_to_cycle[at_code].name); ++ my_list[at_code].name); + } + refresh(); + } while (!isQuit(c = Getchar())); +@@ -3779,7 +3958,7 @@ + /* Use non-default colors if possible to exercise bce a little */ + if (use_colors) { + init_pair(1, COLOR_WHITE, COLOR_BLUE); +- normal |= COLOR_PAIR(1); ++ normal |= (chtype) COLOR_PAIR(1); + } + bkgdset(normal); + erase(); +@@ -4115,7 +4294,8 @@ + outerbox(ul, lr, TRUE); + refresh(); + +- wrefresh(rwindow); ++ if (rwindow != 0) ++ wrefresh(rwindow); + + move(0, 0); + clrtoeol(); +@@ -4185,10 +4365,12 @@ + transient((FRAME *) 0, (char *) 0); + switch (c) { + case CTRL('C'): +- if ((neww = typeCalloc(FRAME, 1)) == 0) { ++ if ((neww = typeCalloc(FRAME, (size_t) 1)) == 0) { ++ failed("acs_and_scroll"); + goto breakout; + } + if ((neww->wind = getwindow()) == (WINDOW *) 0) { ++ failed("acs_and_scroll"); + free(neww); + goto breakout; + } +@@ -4265,16 +4447,20 @@ + if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) { + transient(current, "Can't open screen dump file"); + } else { +- if ((neww = typeCalloc(FRAME, 1)) != 0) { ++ if ((neww = typeCalloc(FRAME, (size_t) 1)) != 0) { + + neww->next = current ? current->next : 0; + neww->last = current; +- neww->last->next = neww; +- neww->next->last = neww; ++ if (neww->last != 0) ++ neww->last->next = neww; ++ if (neww->next != 0) ++ neww->next->last = neww; + + neww->wind = getwin(fp); + + wrefresh(neww->wind); ++ } else { ++ failed("acs_and_scroll"); + } + (void) fclose(fp); + } +@@ -4463,7 +4649,7 @@ + mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them + --------------------------------------------------------------------------*/ + static PANEL * +-mkpanel(short color, int rows, int cols, int tly, int tlx) ++mkpanel(NCURSES_COLOR_T color, int rows, int cols, int tly, int tlx) + { + WINDOW *win; + PANEL *pan = 0; +@@ -4472,8 +4658,10 @@ + if ((pan = new_panel(win)) == 0) { + delwin(win); + } else if (use_colors) { +- short fg = (short) ((color == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK); +- short bg = color; ++ NCURSES_COLOR_T fg = (NCURSES_COLOR_T) ((color == COLOR_BLUE) ++ ? COLOR_WHITE ++ : COLOR_BLACK); ++ NCURSES_COLOR_T bg = color; + + init_pair(color, fg, bg); + wbkgdset(win, (attr_t) (COLOR_PAIR(color) | ' ')); +@@ -5226,7 +5414,7 @@ + #ifdef A_COLOR + if (use_colors) { + init_pair(2, COLOR_CYAN, COLOR_BLUE); +- wbkgd(subWin, COLOR_PAIR(2) | ' '); ++ wbkgd(subWin, (chtype) (COLOR_PAIR(2) | ' ')); + } + #endif + (void) wattrset(subWin, A_BOLD); +@@ -5449,6 +5637,8 @@ + for (n = 0; t_tbl[n].name != 0; n++) + need += strlen(t_tbl[n].name) + 2; + buf = typeMalloc(char, need); ++ if (!buf) ++ failed("tracetrace"); + } + sprintf(buf, "0x%02x = {", tlevel); + if (tlevel == 0) { +@@ -5622,10 +5812,9 @@ + set_form_sub(f, derwin(w, rows, cols, 1, 2)); + box(w, 0, 0); + keypad(w, TRUE); ++ if (post_form(f) != E_OK) ++ wrefresh(w); + } +- +- if (post_form(f) != E_OK) +- wrefresh(w); + } + + static void +@@ -5649,55 +5838,60 @@ + if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK + && nbuf > 0) { + char *source = field_buffer(me, 1); +- char temp[80]; +- long len; +- +- strcpy(temp, source ? source : ""); +- len = (long) (char *) field_userptr(me); +- if (c <= KEY_MAX) { +- if (isgraph(c) && (len + 1) < (int) sizeof(temp)) { +- temp[len++] = (char) c; +- temp[len] = 0; +- set_field_buffer(me, 1, temp); +- c = '*'; +- } else { +- c = 0; +- } +- } else { +- switch (c) { +- case REQ_BEG_FIELD: +- case REQ_CLR_EOF: +- case REQ_CLR_EOL: +- case REQ_DEL_LINE: +- case REQ_DEL_WORD: +- case REQ_DOWN_CHAR: +- case REQ_END_FIELD: +- case REQ_INS_CHAR: +- case REQ_INS_LINE: +- case REQ_LEFT_CHAR: +- case REQ_NEW_LINE: +- case REQ_NEXT_WORD: +- case REQ_PREV_WORD: +- case REQ_RIGHT_CHAR: +- case REQ_UP_CHAR: +- c = 0; /* we don't want to do inline editing */ +- break; +- case REQ_CLR_FIELD: +- if (len) { +- temp[0] = 0; ++ size_t have = (source ? strlen(source) : 0) + 1; ++ size_t need = 80 + have; ++ char *temp = malloc(need); ++ size_t len; ++ ++ if (temp != 0) { ++ strncpy(temp, source ? source : "", have + 1); ++ len = (size_t) (char *) field_userptr(me); ++ if (c <= KEY_MAX) { ++ if (isgraph(c) && (len + 1) < sizeof(temp)) { ++ temp[len++] = (char) c; ++ temp[len] = 0; + set_field_buffer(me, 1, temp); ++ c = '*'; ++ } else { ++ c = 0; + } +- break; +- case REQ_DEL_CHAR: +- case REQ_DEL_PREV: +- if (len) { +- temp[--len] = 0; +- set_field_buffer(me, 1, temp); ++ } else { ++ switch (c) { ++ case REQ_BEG_FIELD: ++ case REQ_CLR_EOF: ++ case REQ_CLR_EOL: ++ case REQ_DEL_LINE: ++ case REQ_DEL_WORD: ++ case REQ_DOWN_CHAR: ++ case REQ_END_FIELD: ++ case REQ_INS_CHAR: ++ case REQ_INS_LINE: ++ case REQ_LEFT_CHAR: ++ case REQ_NEW_LINE: ++ case REQ_NEXT_WORD: ++ case REQ_PREV_WORD: ++ case REQ_RIGHT_CHAR: ++ case REQ_UP_CHAR: ++ c = 0; /* we don't want to do inline editing */ ++ break; ++ case REQ_CLR_FIELD: ++ if (len) { ++ temp[0] = 0; ++ set_field_buffer(me, 1, temp); ++ } ++ break; ++ case REQ_DEL_CHAR: ++ case REQ_DEL_PREV: ++ if (len) { ++ temp[--len] = 0; ++ set_field_buffer(me, 1, temp); ++ } ++ break; + } +- break; + } ++ set_field_userptr(me, (void *) len); ++ free(temp); + } +- set_field_userptr(me, (void *) len); + } + return c; + } +@@ -6045,7 +6239,7 @@ + static void + overlap_test_1_attr(WINDOW *win, int flavor, int col) + { +- short cpair = (short) (1 + (flavor * 2) + col); ++ NCURSES_PAIRS_T cpair = (NCURSES_PAIRS_T) (1 + (flavor * 2) + col); + + switch (flavor) { + case 0: +@@ -6056,11 +6250,11 @@ + break; + case 2: + init_pair(cpair, COLOR_BLUE, COLOR_WHITE); +- (void) wattrset(win, (attr_t) COLOR_PAIR(cpair) | A_NORMAL); ++ (void) wattrset(win, (int) (COLOR_PAIR(cpair) | A_NORMAL)); + break; + case 3: + init_pair(cpair, COLOR_WHITE, COLOR_BLUE); +- (void) wattrset(win, (attr_t) COLOR_PAIR(cpair) | A_BOLD); ++ (void) wattrset(win, (int) (COLOR_PAIR(cpair) | A_BOLD)); + break; + } + } +@@ -6068,7 +6262,7 @@ + static void + overlap_test_2_attr(WINDOW *win, int flavor, int col) + { +- short cpair = (short) (9 + (flavor * 2) + col); ++ NCURSES_PAIRS_T cpair = (NCURSES_PAIRS_T) (9 + (flavor * 2) + col); + + switch (flavor) { + case 0: +@@ -6483,6 +6677,7 @@ + ," -a f,b set default-colors (assumed white-on-black)" + ," -d use default-colors if terminal supports them" + #endif ++ ," -E call use_env(FALSE) to ignore $LINES and $COLUMNS" + #if USE_SOFTKEYS + ," -e fmt specify format for soft-keys test (e)" + #endif +@@ -6495,6 +6690,9 @@ + #if USE_LIBPANEL + ," -s msec specify nominal time for panel-demo (default: 1, to hold)" + #endif ++#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714) ++ ," -T call use_tioctl(TRUE) to allow SIGWINCH to override environment" ++#endif + #ifdef TRACE + ," -t mask specify default trace-level (may toggle with ^T)" + #endif +@@ -6517,7 +6715,7 @@ + } + + #ifdef SIGUSR1 +-static RETSIGTYPE ++static void + announce_sig(int sig) + { + (void) fprintf(stderr, "Handled signal %d\r\n", sig); +@@ -6613,7 +6811,7 @@ + command = 0; + for (;;) { + char ch = '\0'; +- if (read(fileno(stdin), &ch, 1) <= 0) { ++ if (read(fileno(stdin), &ch, (size_t) 1) <= 0) { + if (command == 0) + command = 'q'; + break; +@@ -6681,17 +6879,27 @@ + + setlocale(LC_ALL, ""); + +- while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) { ++ while ((c = getopt(argc, argv, "a:dEe:fhmp:s:Tt:")) != -1) { + switch (c) { + #ifdef NCURSES_VERSION + case 'a': + assumed_colors = TRUE; +- sscanf(optarg, "%d,%d", &default_fg, &default_bg); ++ switch (sscanf(optarg, "%d,%d", &default_fg, &default_bg)) { ++ case 0: ++ default_fg = COLOR_WHITE; ++ /* FALLTHRU */ ++ case 1: ++ default_bg = COLOR_BLACK; ++ break; ++ } + break; + case 'd': + default_colors = TRUE; + break; + #endif ++ case 'E': ++ use_env(FALSE); ++ break; + case 'e': + my_e_param = atoi(optarg); + #ifdef NCURSES_VERSION +@@ -6721,6 +6929,11 @@ + nap_msec = (int) atol(optarg); + break; + #endif ++#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714) ++ case 'T': ++ use_tioctl(TRUE); ++ break; ++#endif + #ifdef TRACE + case 't': + save_trace = (unsigned) strtol(optarg, 0, 0); +@@ -6761,7 +6974,7 @@ + bkgdset(BLANK); + + /* tests, in general, will want these modes */ +- use_colors = monochrome ? FALSE : has_colors(); ++ use_colors = (bool) (monochrome ? FALSE : has_colors()); + + if (use_colors) { + start_color(); +@@ -6772,7 +6985,7 @@ + use_default_colors(); + min_colors = -1; + } +-#if NCURSES_VERSION_PATCH >= 20000708 ++#if HAVE_ASSUME_DEFAULT_COLORS + if (assumed_colors) + assume_default_colors(default_fg, default_bg); + #endif +@@ -6783,8 +6996,10 @@ + max_pairs = COLOR_PAIRS; /* was > 256 ? 256 : COLOR_PAIRS */ + + if (can_change_color()) { +- short cp; ++ NCURSES_PAIRS_T cp; + all_colors = typeMalloc(RGB_DATA, (unsigned) max_colors); ++ if (!all_colors) ++ failed("all_colors"); + for (cp = 0; cp < max_colors; ++cp) { + color_content(cp, + &all_colors[cp].red, +@@ -6809,9 +7024,10 @@ + && okRGB(red) + && okRGB(green) + && okRGB(blue)) { +- all_colors[c].red = (short) ((red * 1000) / scale); +- all_colors[c].green = (short) ((green * 1000) / scale); +- all_colors[c].blue = (short) ((blue * 1000) / scale); ++#define Scaled(n) (NCURSES_COLOR_T) (((n) * 1000) / scale) ++ all_colors[c].red = Scaled(red); ++ all_colors[c].green = Scaled(green); ++ all_colors[c].blue = Scaled(blue); + } + } + fclose(fp); +diff -Naur ncurses-5.9/test/newdemo.c ncurses-5.9.patch/test/newdemo.c +--- ncurses-5.9/test/newdemo.c 2010-12-12 01:19:15.000000000 +0100 ++++ ncurses-5.9.patch/test/newdemo.c 2014-09-01 16:33:22.572792500 +0200 +@@ -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.35 2010/12/12 00:19:15 tom Exp $ ++ * $Id: newdemo.c,v 1.40 2013/04/27 19:46:53 tom Exp $ + */ + + #include <test.priv.h> +@@ -47,7 +47,7 @@ + /* + * Trap interrupt + */ +-static RETSIGTYPE ++static void + trap(int sig GCC_UNUSED) + { + endwin(); +@@ -84,7 +84,7 @@ + if (pair > COLOR_PAIRS) + pair = COLOR_PAIRS; + init_pair((short) pair, (short) foreground, (short) background); +- (void) wattrset(win, (attr_t) COLOR_PAIR(pair)); ++ (void) wattrset(win, (int) COLOR_PAIR(pair)); + } + } + +@@ -96,7 +96,7 @@ + pair = COLOR_PAIRS; + attrs |= (chtype) COLOR_PAIR(pair); + } +- (void) wattrset(win, attrs); ++ (void) wattrset(win, (int) attrs); + return attrs; + } + +@@ -113,12 +113,19 @@ + getbegyx(win, by, bx); + sw = w / 3; + sh = h / 3; +- if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL) ++ ++ if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL) { + return 1; +- if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL) ++ } ++ if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL) { ++ delwin(swin1); + return 1; +- if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL) ++ } ++ if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL) { ++ delwin(swin1); ++ delwin(swin2); + return 1; ++ } + + set_colors(swin1, 8, COLOR_RED, COLOR_BLUE); + werase(swin1); +@@ -215,7 +222,7 @@ + { + WINDOW *win; + int w, x, y, i, j, k; +- char buffer[200]; ++ char buffer[SIZEOF(messages) * 80]; + const char *message; + int width, height; + chtype save[80]; +diff -Naur ncurses-5.9/test/package/mingw-ncurses-examples.spec ncurses-5.9.patch/test/package/mingw-ncurses-examples.spec +--- ncurses-5.9/test/package/mingw-ncurses-examples.spec 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/package/mingw-ncurses-examples.spec 2014-09-01 16:33:22.572792500 +0200 +@@ -0,0 +1,109 @@ ++Summary: ncurses-examples - example/test programs from ncurses ++%?mingw_package_header ++ ++%define AppProgram ncurses-examples ++%define AppVersion MAJOR.MINOR ++%define AppRelease YYYYMMDD ++# $Id: mingw-ncurses-examples.spec,v 1.3 2013/10/26 23:30:21 tom Exp $ ++Name: mingw32-ncurses6-examples ++Version: %{AppVersion} ++Release: %{AppRelease} ++License: X11 ++Group: Development/Libraries ++Source: ncurses-examples-%{release}.tgz ++# URL: http://invisible-island.net/ncurses/ ++ ++BuildRequires: mingw32-ncurses6 ++ ++BuildRequires: mingw32-filesystem >= 95 ++BuildRequires: mingw32-gcc ++BuildRequires: mingw32-binutils ++ ++BuildRequires: mingw64-ncurses6 ++ ++BuildRequires: mingw64-filesystem >= 95 ++BuildRequires: mingw64-gcc ++BuildRequires: mingw64-binutils ++ ++%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion ++%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic ++ ++%description -n mingw32-ncurses6-examples ++Cross-compiling support for ncurses to mingw32. ++ ++The ncurses library routines are a terminal-independent method of ++updating character screens with reasonable optimization. ++ ++This package is used for testing ABI 6 with cross-compiles to MinGW. ++ ++%package -n mingw64-ncurses6-examples ++Summary: Curses library for MinGW64 ++ ++%description -n mingw64-ncurses6-examples ++Cross-compiling support for ncurses to mingw64. ++ ++The ncurses library routines are a terminal-independent method of ++updating character screens with reasonable optimization. ++ ++This package is used for testing ABI 6 with cross-compiles to MinGW. ++ ++%prep ++ ++# override location of bindir, e.g., to avoid conflict with pdcurses ++%global mingw32_bindir %{mingw32_exec_prefix}/bin/%{AppProgram} ++%global mingw64_bindir %{mingw64_exec_prefix}/bin/%{AppProgram} ++ ++%define CFG_OPTS \\\ ++ --disable-echo \\\ ++ --enable-warnings \\\ ++ --verbose ++ ++%define debug_package %{nil} ++%setup -q -n ncurses-examples-%{release} ++ ++%build ++mkdir BUILD-W32 ++pushd BUILD-W32 ++CFLAGS="%{CC_NORMAL}" \ ++CC=%{mingw32_cc} \ ++%mingw32_configure %{CFG_OPTS} ++cp config.status /tmp/ming32-config.status ++make ++popd ++ ++mkdir BUILD-W64 ++pushd BUILD-W64 ++CFLAGS="%{CC_NORMAL}" \ ++CC=%{mingw64_cc} \ ++%mingw64_configure %{CFG_OPTS} ++cp config.status /tmp/ming64-config.status ++make ++popd ++ ++%install ++rm -rf $RPM_BUILD_ROOT ++ ++pushd BUILD-W32 ++%{mingw32_make} install DESTDIR=$RPM_BUILD_ROOT ++popd ++ ++pushd BUILD-W64 ++%{mingw64_make} install DESTDIR=$RPM_BUILD_ROOT ++popd ++ ++%clean ++rm -rf $RPM_BUILD_ROOT ++ ++%files ++%defattr(-,root,root,-) ++ ++%files -n mingw32-ncurses6-examples ++%{mingw32_bindir}/* ++ ++%files -n mingw64-ncurses6-examples ++%{mingw64_bindir}/* ++ ++%changelog ++ ++* Sat Oct 19 2013 Thomas E. Dickey ++- initial version +diff -Naur ncurses-5.9/test/package/ncurses-examples.spec ncurses-5.9.patch/test/package/ncurses-examples.spec +--- ncurses-5.9/test/package/ncurses-examples.spec 2011-03-25 18:46:44.000000000 +0100 ++++ ncurses-5.9.patch/test/package/ncurses-examples.spec 2014-09-01 16:33:22.572792500 +0200 +@@ -2,7 +2,7 @@ + %define AppProgram ncurses-examples + %define AppVersion MAJOR.MINOR + %define AppRelease YYYYMMDD +-# $Id: ncurses-examples.spec,v 1.2 2011/03/25 17:46:44 tom Exp $ ++# $Id: ncurses-examples.spec,v 1.3 2013/10/05 23:44:19 tom Exp $ + Name: %{AppProgram} + Version: %{AppVersion} + Release: %{AppRelease} +@@ -51,5 +51,5 @@ + %changelog + # each patch should add its ChangeLog entries here + +-* Fri Mar 25 2010 Thomas Dickey ++* Thu Mar 25 2010 Thomas Dickey + - initial version +diff -Naur ncurses-5.9/test/programs ncurses-5.9.patch/test/programs +--- ncurses-5.9/test/programs 2009-09-12 21:44:01.000000000 +0200 ++++ ncurses-5.9.patch/test/programs 2014-09-01 16:33:22.572792500 +0200 +@@ -1,6 +1,6 @@ +-# $Id: programs,v 1.19 2009/09/12 19:44:01 tom Exp $ ++# $Id: programs,v 1.24 2013/12/07 18:06:24 tom Exp $ + ############################################################################## +-# Copyright (c) 2006-2008,2009 Free Software Foundation, Inc. # ++# Copyright (c) 2006-2009,2013 Free 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"), # +@@ -48,11 +48,13 @@ + ditto $(LDFLAGS_THREADS) $(LOCAL_LIBS) ditto + dots $(LDFLAGS_TINFO) $(LOCAL_LIBS) dots + dots_mvcur $(LDFLAGS_CURSES) $(LOCAL_LIBS) dots_mvcur ++dots_termcap $(LDFLAGS_TINFO) $(LOCAL_LIBS) dots_termcap + echochar $(LDFLAGS_CURSES) $(LOCAL_LIBS) echochar + filter $(LDFLAGS_CURSES) $(LOCAL_LIBS) filter + firework $(LDFLAGS_CURSES) $(LOCAL_LIBS) firework + firstlast $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) firstlast + foldkeys $(LDFLAGS_CURSES) $(LOCAL_LIBS) foldkeys ++form_driver_w $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) form_driver_w + gdc $(LDFLAGS_CURSES) $(LOCAL_LIBS) gdc + hanoi $(LDFLAGS_CURSES) $(LOCAL_LIBS) hanoi + hashtest $(LDFLAGS_CURSES) $(LOCAL_LIBS) hashtest +@@ -83,6 +85,8 @@ + test_instr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_instr + test_inwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_inwstr + test_opaque $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_opaque ++test_vid_puts $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vid_puts ++test_vidputs $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vidputs + testaddch $(LDFLAGS_CURSES) $(LOCAL_LIBS) testaddch + testcurs $(LDFLAGS_CURSES) $(LOCAL_LIBS) testcurs + testscanw $(LDFLAGS_CURSES) $(LOCAL_LIBS) testscanw +diff -Naur ncurses-5.9/test/railroad.c ncurses-5.9.patch/test/railroad.c +--- ncurses-5.9/test/railroad.c 2009-10-24 23:37:56.000000000 +0200 ++++ ncurses-5.9.patch/test/railroad.c 2014-09-01 16:33:22.572792500 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2000-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2000-2011,2013 Free 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 - 2000 + * +- * $Id: railroad.c,v 1.19 2009/10/24 21:37:56 tom Exp $ ++ * $Id: railroad.c,v 1.21 2013/09/28 22:02:17 tom Exp $ + * + * A simple demo of the termcap interface. + */ +@@ -55,20 +55,20 @@ + + static bool interrupted = FALSE; + +-static int +-outc(TPUTS_ARG c) ++static ++TPUTS_PROTO(outc, c) + { + int rc = OK; + + if (interrupted) { + char tmp = (char) c; +- if (write(STDOUT_FILENO, &tmp, 1) == -1) ++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1) + rc = ERR; + } else { + if (putc(c, stdout) == EOF) + rc = ERR; + } +- return rc; ++ TPUTS_RETURN(rc); + } + + static void +diff -Naur ncurses-5.9/test/rain.c ncurses-5.9.patch/test/rain.c +--- ncurses-5.9/test/rain.c 2010-11-13 21:11:46.000000000 +0100 ++++ ncurses-5.9.patch/test/rain.c 2014-09-01 16:33:22.573792493 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2012 Free 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.38 2010/11/13 20:11:46 tom Exp $ ++ * $Id: rain.c,v 1.40 2012/01/21 23:54:47 tom Exp $ + */ + #include <test.priv.h> + +@@ -222,7 +222,7 @@ + * Find myself in the list of threads so we can count the number of loops. + */ + for (mystats = 0; mystats < MAX_THREADS; ++mystats) { +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) && !defined(__WINPTHREADS_VERSION) + if (drop_threads[mystats].myself.p == pthread_self().p) + #else + if (drop_threads[mystats].myself == pthread_self()) +@@ -256,7 +256,7 @@ + /* + * The description of pthread_create() is misleading, since it implies that + * threads will exit cleanly after their function returns. +- * ++ * + * Since they do not (and the number of threads is limited by system + * resources), make a limited number of threads, and signal any that are + * waiting when we want a thread past that limit. +diff -Naur ncurses-5.9/test/README ncurses-5.9.patch/test/README +--- ncurses-5.9/test/README 2011-02-26 01:09:25.000000000 +0100 ++++ ncurses-5.9.patch/test/README 2014-09-01 16:33:22.524792400 +0200 +@@ -1,5 +1,5 @@ + ------------------------------------------------------------------------------- +--- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. -- ++-- Copyright (c) 1998-2012,2013 Free 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: README,v 1.44 2011/02/26 00:09:25 tom Exp $ ++-- $Id: README,v 1.48 2013/01/19 21:30:38 tom Exp $ + ------------------------------------------------------------------------------- + + The programs in this directory are designed to test your newest toy :-) +@@ -223,18 +223,18 @@ + SP lib: form + TABSIZE test: test_opaque + UP - +-acs_map test: gdc ins_wide inserts knight movewindow ncurses newdemo test_add_wchstr test_addchstr test_addstr test_addwstr testcurs ++acs_map test: background gdc ins_wide inserts knight movewindow ncurses newdemo test_add_wchstr test_addchstr test_addstr test_addwstr testcurs + add_wch test: demo_panels ncurses test_add_wchstr test_addwstr + add_wchnstr test: test_add_wchstr + add_wchstr test: test_add_wchstr view +-addch test: blue bs echochar hashtest ncurses savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm ++addch test: background blue bs echochar hashtest ncurses savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm + addchnstr test: test_addchstr + addchstr test: test_addchstr + addnstr test: test_addstr + addnwstr test: ncurses test_addwstr + addstr test: blue bs cardfile gdc hanoi lrtest ncurses savescreen test_addstr + addwstr test: ncurses test_addwstr +-assume_default_colors test: ncurses ++assume_default_colors test: background ncurses + assume_default_colors_sp - + attr_get test: ncurses + attr_off test: ncurses +@@ -271,7 +271,7 @@ + color_content_sp - + color_set test: color_set ncurses + copywin test: ncurses testcurs +-cur_term test: demo_terminfo dots dots_mvcur lrtest progs: clear tabs tput tset ++cur_term test: demo_terminfo dots dots_mvcur lrtest test_vid_puts test_vidputs progs: clear tabs tput tset + curs_set test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas + curs_set_sp lib: ncurses + curscr test: demo_panels edit_field knight lrtest ncurses savescreen tclock view +@@ -306,7 +306,7 @@ + erasewchar - + filter test: filter + filter_sp - +-flash test: cardfile lrtest ncurses tclock testcurs ++flash test: cardfile lrtest movewindow ncurses tclock testcurs + flash_sp - + flushinp test: ncurses newdemo testcurs + flushinp_sp lib: ncurses +@@ -399,7 +399,7 @@ + key_name test: key_names ncurses + keybound test: demo_altkeys demo_defkey + keybound_sp lib: ncurses +-keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic ++keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw test_getstr testcurs view progs: tic + keyname_sp lib: ncurses + keyok test: demo_keyok foldkeys + keyok_sp lib: ncurses +@@ -430,7 +430,7 @@ + mvaddwstr test: test_addwstr + mvchgat test: chgat + mvcur test: dots_mvcur redraw +-mvcur_sp lib: ncurses ++mvcur_sp - + mvdelch - + mvderwin test: movewindow + mvget_wch - +@@ -457,7 +457,7 @@ + mvinsstr test: inserts + mvinstr test: test_instr + mvinwstr test: test_inwstr +-mvprintw test: bs demo_menus firework hanoi ncurses tclock view ++mvprintw test: background bs demo_menus firework hanoi ncurses tclock view + mvscanw - + mvvline test: ncurses + mvvline_set test: ncurses +@@ -542,13 +542,13 @@ + prefresh test: testcurs + printw test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses savescreen testcurs testscanw view + putp progs: tput +-putp_sp lib: ncurses ++putp_sp - + putwin test: ncurses + qiflush - + qiflush_sp - + raw test: demo_forms ncurses redraw testcurs + raw_sp lib: ncurses +-redrawwin test: redraw ++redrawwin test: redraw view + refresh test: blue bs demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses savescreen tclock testcurs view xmas + reset_prog_mode test: filter ncurses + reset_prog_mode_sp lib: ncurses +@@ -586,7 +586,7 @@ + set_term lib: ncurses + setcchar test: demo_panels ins_wide ncurses test_add_wchstr test_addwstr view + setscrreg test: view +-setupterm test: demo_termcap demo_terminfo dots progs: clear tabs tput tset ++setupterm test: demo_termcap demo_terminfo dots test_vid_puts test_vidputs progs: clear tabs tput tset + slk_attr - + slk_attr_off - + slk_attr_on - +@@ -644,20 +644,20 @@ + tgetstr test: demo_termcap railroad + tgetstr_sp - + tgoto test: railroad +-tigetflag test: demo_terminfo progs: tput ++tigetflag test: demo_terminfo progs: tic tput + tigetflag_sp - + tigetnum test: demo_terminfo ncurses progs: tput + tigetnum_sp - +-tigetstr test: blue demo_defkey demo_terminfo foldkeys testcurs progs: tput ++tigetstr test: demo_defkey demo_terminfo foldkeys testcurs progs: tput + tigetstr_sp - + timeout test: rain savescreen + tiparm - + 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_add_wchstr test_addchstr test_addstr test_addwstr 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 ++tputs test: dots dots_mvcur railroad test_vid_puts test_vidputs progs: clear tabs tset + tputs_sp lib: ncurses +-trace test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm ++trace test: demo_menus hashtest lrtest ncurses testcurs view worm + ttytype lib: ncurses + typeahead test: testcurs + typeahead_sp lib: ncurses +@@ -670,22 +670,24 @@ + ungetmouse - + ungetmouse_sp - + untouchwin lib: form +-use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas ++use_default_colors test: background filter firework gdc hanoi knight ncurses rain tclock worm xmas + use_default_colors_sp - +-use_env progs: tput ++use_env test: ncurses progs: tput + use_env_sp - +-use_extended_names test: demo_terminfo progs: infocmp tic ++use_extended_names test: demo_termcap demo_terminfo progs: infocmp tic + use_legacy_coding - + use_legacy_coding_sp - + use_screen test: ditto ++use_tioctl test: ncurses ++use_tioctl_sp - + use_window test: rain worm +-vid_attr - ++vid_attr test: test_vid_puts + vid_attr_sp - +-vid_puts - ++vid_puts test: test_vid_puts + vid_puts_sp - +-vidattr - +-vidattr_sp lib: ncurses +-vidputs - ++vidattr test: test_vidputs ++vidattr_sp - ++vidputs test: test_vidputs + vidputs_sp lib: ncurses + vline test: gdc ncurses + vline_set - +diff -Naur ncurses-5.9/test/redraw.c ncurses-5.9.patch/test/redraw.c +--- ncurses-5.9/test/redraw.c 2010-05-02 00:04:08.000000000 +0200 ++++ ncurses-5.9.patch/test/redraw.c 2014-09-01 16:33:22.573792493 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2006-2011,2012 Free 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: redraw.c,v 1.5 2010/05/01 22:04:08 tom Exp $ ++ * $Id: redraw.c,v 1.8 2012/12/08 20:46:02 tom Exp $ + * + * Demonstrate the redrawwin() and wredrawln() functions. + * Thomas Dickey - 2006/11/4 +@@ -113,7 +113,7 @@ + * using mvcur(). It is ifdef'd for NCURSES, since X/Open does + * not define the case where the old location is unknown. + */ +- system("date"); ++ IGNORE_RC(system("date")); + mvcur(-1, -1, y, x); + break; + #endif +diff -Naur ncurses-5.9/test/tclock.c ncurses-5.9.patch/test/tclock.c +--- ncurses-5.9/test/tclock.c 2011-03-22 10:16:00.000000000 +0100 ++++ ncurses-5.9.patch/test/tclock.c 2014-09-01 16:33:22.573792493 +0200 +@@ -1,4 +1,4 @@ +-/* $Id: tclock.c,v 1.30 2011/03/22 09:16:00 tom Exp $ */ ++/* $Id: tclock.c,v 1.33 2013/09/28 21:52:34 tom Exp $ */ + + #include <test.priv.h> + +@@ -53,14 +53,14 @@ + + /* Plot a point */ + static void +-plot(int x, int y, char col) ++plot(int x, int y, int col) + { + MvAddCh(y, x, (chtype) col); + } + + /* Draw a diagonal(arbitrary) line using Bresenham's alogrithm. */ + static void +-dline(int pair, int from_x, int from_y, int x2, int y2, char ch) ++dline(int pair, int from_x, int from_y, int x2, int y2, int ch) + { + int dx, dy; + int ax, ay; +@@ -135,8 +135,8 @@ + short my_bg = COLOR_BLACK; + #if HAVE_GETTIMEOFDAY + struct timeval current; +- double fraction = 0.0; + #endif ++ double fraction = 0.0; + + setlocale(LC_ALL, ""); + +@@ -216,12 +216,12 @@ + attroff(A_REVERSE); + + if (has_colors()) +- (void) attrset(COLOR_PAIR(1)); ++ (void) attrset((attr_t) COLOR_PAIR(1)); + + dline(1, cx, cy, cx + sdx, cy - sdy, 'O'); + + if (has_colors()) +- (void) attrset(COLOR_PAIR(0)); ++ (void) attrset((attr_t) COLOR_PAIR(0)); + + text = ctime(&tim); + MvPrintw(2, 0, "%.*s", (int) (strlen(text) - 1), text); +diff -Naur ncurses-5.9/test/testaddch.c ncurses-5.9.patch/test/testaddch.c +--- ncurses-5.9/test/testaddch.c 2009-08-29 21:02:25.000000000 +0200 ++++ ncurses-5.9.patch/test/testaddch.c 2014-09-01 16:33:22.574792487 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2011,2013 Free 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 <lav@yars.free.net>, + * to demonstrate an inconsistency between ncurses and SVr4 curses. + * +- * $Id: testaddch.c,v 1.7 2009/08/29 19:02:25 tom Exp $ ++ * $Id: testaddch.c,v 1.9 2013/01/13 01:02:41 tom Exp $ + */ + #include <test.priv.h> + +@@ -63,7 +63,7 @@ + for (i = 0; i < 8; i++) { + back = (i & 1) ? A_BOLD | 'B' : ' '; + set = (i & 2) ? A_REVERSE : 0; +- attr = (i & 4) ? COLOR_PAIR(4) : 0; ++ attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0); + + bkgdset(back); + (void) attrset(set); +@@ -72,9 +72,9 @@ + } + addch('\n'); + for (i = 0; i < 8; i++) { +- back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' '; +- set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0; +- attr = (i & 4) ? COLOR_PAIR(4) : 0; ++ back = (i & 1) ? (A_BOLD | 'B' | COLOR_PAIR(1)) : ' '; ++ set = (i & 2) ? (A_REVERSE | COLOR_PAIR(2)) : 0; ++ attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0); + + bkgdset(back); + (void) attrset(set); +diff -Naur ncurses-5.9/test/test_addchstr.c ncurses-5.9.patch/test/test_addchstr.c +--- ncurses-5.9/test/test_addchstr.c 2010-12-12 02:28:24.000000000 +0100 ++++ ncurses-5.9.patch/test/test_addchstr.c 2014-09-01 16:33:22.573792493 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2010,2012 Free 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_addchstr.c,v 1.13 2010/12/12 01:28:24 tom Exp $ ++ * $Id: test_addchstr.c,v 1.18 2012/12/16 00:36:27 tom Exp $ + * + * Demonstrate the waddchstr() and waddch functions. + * Thomas Dickey - 2009/9/12 +@@ -101,6 +101,8 @@ + if (need > temp_length) { + temp_length = need * 2; + temp_buffer = typeRealloc(chtype, temp_length, temp_buffer); ++ if (!temp_buffer) ++ failed("TempBuffer"); + } + do { + const char *s; +@@ -237,6 +239,15 @@ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ + keypad(stdscr, TRUE); ++ ++ /* ++ * Show the characters added in color, to distinguish from those that ++ * are shifted. ++ */ ++ if (has_colors()) { ++ start_color(); ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ } + } + + limit = LINES - 5; +@@ -270,14 +281,8 @@ + + doupdate(); + +- /* +- * Show the characters added in color, to distinguish from those that +- * are shifted. +- */ + if (has_colors()) { +- start_color(); +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- show_attr = COLOR_PAIR(1); ++ show_attr = (attr_t) COLOR_PAIR(1); + wbkgdset(work, show_attr | ' '); + } else { + show_attr = A_STANDOUT; +@@ -289,11 +294,13 @@ + case key_RECUR: + test_adds(level + 1); + +- touchwin(look); ++ if (look) ++ touchwin(look); + touchwin(work); + touchwin(show); + +- wnoutrefresh(look); ++ if (look) ++ wnoutrefresh(look); + wnoutrefresh(work); + wnoutrefresh(show); + +@@ -445,10 +452,10 @@ + } + } + if (level > 0) { +- delwin(show); + delwin(work); + delwin(look); + } ++ delwin(show); + } + + static void +diff -Naur ncurses-5.9/test/test_addstr.c ncurses-5.9.patch/test/test_addstr.c +--- ncurses-5.9/test/test_addstr.c 2010-12-12 01:17:37.000000000 +0100 ++++ ncurses-5.9.patch/test/test_addstr.c 2014-09-01 16:33:22.574792487 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2010,2012 Free 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_addstr.c,v 1.6 2010/12/12 00:17:37 tom Exp $ ++ * $Id: test_addstr.c,v 1.10 2012/12/16 00:14:10 tom Exp $ + * + * Demonstrate the waddstr() and waddch functions. + * Thomas Dickey - 2009/9/12 +@@ -161,6 +161,15 @@ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ + keypad(stdscr, TRUE); ++ ++ /* ++ * Show the characters added in color, to distinguish from those that ++ * are shifted. ++ */ ++ if (has_colors()) { ++ start_color(); ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ } + } + + limit = LINES - 5; +@@ -194,14 +203,8 @@ + + doupdate(); + +- /* +- * Show the characters added in color, to distinguish from those that +- * are shifted. +- */ + if (has_colors()) { +- start_color(); +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- wbkgdset(work, COLOR_PAIR(1) | ' '); ++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' ')); + } + + while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) { +@@ -210,11 +213,13 @@ + case key_RECUR: + test_adds(level + 1); + +- touchwin(look); ++ if (look) ++ touchwin(look); + touchwin(work); + touchwin(show); + +- wnoutrefresh(look); ++ if (look) ++ wnoutrefresh(look); + wnoutrefresh(work); + wnoutrefresh(show); + +@@ -361,8 +366,8 @@ + break; + } + } ++ delwin(show); + if (level > 0) { +- delwin(show); + delwin(work); + delwin(look); + } +diff -Naur ncurses-5.9/test/test_add_wchstr.c ncurses-5.9.patch/test/test_add_wchstr.c +--- ncurses-5.9/test/test_add_wchstr.c 2011-01-15 19:15:11.000000000 +0100 ++++ ncurses-5.9.patch/test/test_add_wchstr.c 2014-09-01 16:33:22.573792493 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 2010-2011,2012 Free 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_add_wchstr.c,v 1.15 2011/01/15 18:15:11 tom Exp $ ++ * $Id: test_add_wchstr.c,v 1.20 2012/12/16 00:12:04 tom Exp $ + * + * Demonstrate the waddwchstr() and wadd_wch functions. + * Thomas Dickey - 2009/9/12 +@@ -90,6 +90,8 @@ + if (need > temp_length) { \ + temp_length = need * 2; \ + temp_buffer = typeRealloc(cchar_t, temp_length, temp_buffer); \ ++ if (!temp_buffer) \ ++ failed("TempBuffer"); \ + } \ + have[0] = 0; \ + have[1] = 0; \ +@@ -317,6 +319,15 @@ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ + keypad(stdscr, TRUE); ++ ++ /* ++ * Show the characters added in color, to distinguish from those that ++ * are shifted. ++ */ ++ if (has_colors()) { ++ start_color(); ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ } + } + + limit = LINES - 5; +@@ -350,14 +361,8 @@ + + doupdate(); + +- /* +- * Show the characters added in color, to distinguish from those that +- * are shifted. +- */ + if (has_colors()) { +- start_color(); +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- wbkgdset(work, COLOR_PAIR(1) | ' '); ++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' ')); + } + + while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) { +@@ -366,11 +371,13 @@ + case key_RECUR: + test_add_wchstr(level + 1); + +- touchwin(look); ++ if (look) ++ touchwin(look); + touchwin(work); + touchwin(show); + +- wnoutrefresh(look); ++ if (look) ++ wnoutrefresh(look); + wnoutrefresh(work); + wnoutrefresh(show); + +@@ -514,8 +521,8 @@ + break; + } + } ++ delwin(show); + if (level > 0) { +- delwin(show); + delwin(work); + delwin(look); + } +diff -Naur ncurses-5.9/test/test_addwstr.c ncurses-5.9.patch/test/test_addwstr.c +--- ncurses-5.9/test/test_addwstr.c 2010-12-12 01:18:00.000000000 +0100 ++++ ncurses-5.9.patch/test/test_addwstr.c 2014-09-01 16:33:22.574792487 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 2009-2010,2012 Free 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_addwstr.c,v 1.6 2010/12/12 00:18:00 tom Exp $ ++ * $Id: test_addwstr.c,v 1.11 2012/12/16 00:11:18 tom Exp $ + * + * Demonstrate the waddwstr() and wadd_wch functions. + * Thomas Dickey - 2009/9/12 +@@ -233,8 +233,9 @@ + WINDOW *work = 0; + WINDOW *show = 0; + int margin = (2 * MY_TABSIZE) - 1; +- Options option = ((m_opt ? oMove : oDefault) +- | ((w_opt || (level > 0)) ? oWindow : oDefault)); ++ Options option = (Options) ((int) (m_opt ? oMove : oDefault) ++ | (int) ((w_opt || (level > 0)) ++ ? oWindow : oDefault)); + + if (first) { + static char cmd[80]; +@@ -246,6 +247,15 @@ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ + keypad(stdscr, TRUE); ++ ++ /* ++ * Show the characters inserted in color, to distinguish from those that ++ * are shifted. ++ */ ++ if (has_colors()) { ++ start_color(); ++ init_pair(1, COLOR_WHITE, COLOR_BLUE); ++ } + } + + limit = LINES - 5; +@@ -279,14 +289,8 @@ + + doupdate(); + +- /* +- * Show the characters inserted in color, to distinguish from those that +- * are shifted. +- */ + if (has_colors()) { +- start_color(); +- init_pair(1, COLOR_WHITE, COLOR_BLUE); +- wbkgdset(work, COLOR_PAIR(1) | ' '); ++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' ')); + } + + while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) { +@@ -295,11 +299,13 @@ + case key_RECUR: + test_inserts(level + 1); + +- touchwin(look); ++ if (look) ++ touchwin(look); + touchwin(work); + touchwin(show); + +- wnoutrefresh(look); ++ if (look) ++ wnoutrefresh(look); + wnoutrefresh(work); + wnoutrefresh(show); + +@@ -445,8 +451,8 @@ + break; + } + } ++ delwin(show); + if (level > 0) { +- delwin(show); + delwin(work); + delwin(look); + } +diff -Naur ncurses-5.9/test/testcurs.c ncurses-5.9.patch/test/testcurs.c +--- ncurses-5.9/test/testcurs.c 2010-11-13 22:02:28.000000000 +0100 ++++ ncurses-5.9.patch/test/testcurs.c 2014-09-01 16:33:22.574792487 +0200 +@@ -6,7 +6,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.43 2010/11/13 21:02:28 tom Exp $ ++ * $Id: testcurs.c,v 1.48 2013/05/18 22:05:06 tom Exp $ + */ + + #include <test.priv.h> +@@ -45,18 +45,6 @@ + }; + #define MAX_OPTIONS (int) SIZEOF(command) + +-#if !HAVE_STRDUP +-#define strdup my_strdup +-static char * +-strdup(char *s) +-{ +- char *p = typeMalloc(char, strlen(s) + 1); +- if (p) +- strcpy(p, s); +- return (p); +-} +-#endif /* not HAVE_STRDUP */ +- + static int width, height; + + int +@@ -85,7 +73,7 @@ + #ifdef A_COLOR + if (has_colors()) { + init_pair(1, COLOR_WHITE, COLOR_BLUE); +- wbkgd(win, COLOR_PAIR(1)); ++ wbkgd(win, (chtype) COLOR_PAIR(1)); + } else + wbkgd(win, A_REVERSE); + #else +@@ -353,6 +341,9 @@ + typeahead(-1); + #endif + ++#ifdef NCURSES_MOUSE_VERSION ++ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0); ++#endif + #if defined(PDCURSES) + mouse_set(ALL_MOUSE_EVENTS); + #endif +@@ -367,8 +358,38 @@ + wprintw(win, "Key Pressed: %c", c); + else + wprintw(win, "Key Pressed: %s", unctrl(UChar(c))); +-#if defined(PDCURSES) ++#ifdef KEY_MOUSE + if (c == KEY_MOUSE) { ++#if defined(NCURSES_MOUSE_VERSION) ++#define ButtonChanged(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, 037)) ++#define ButtonPressed(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)) ++#define ButtonDouble(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)) ++#define ButtonTriple(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)) ++#define ButtonRelease(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)) ++ MEVENT event; ++ int button = 0; ++ ++ getmouse(&event); ++ if (ButtonChanged(1)) ++ button = 1; ++ else if (ButtonChanged(2)) ++ button = 2; ++ else if (ButtonChanged(3)) ++ button = 3; ++ else ++ button = 0; ++ wmove(win, 4, 18); ++ wprintw(win, "Button %d: ", button); ++ if (ButtonPressed(button)) ++ wprintw(win, "pressed: "); ++ else if (ButtonDouble(button)) ++ wprintw(win, "double: "); ++ else if (ButtonTriple(button)) ++ wprintw(win, "triple: "); ++ else ++ wprintw(win, "released: "); ++ wprintw(win, " Position: Y: %d X: %d", event.y, event.x); ++#elif defined(PDCURSES) + int button = 0; + request_mouse_pos(); + if (BUTTON_CHANGED(1)) +@@ -390,8 +411,9 @@ + else + wprintw(win, "released: "); + wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS); ++#endif /* NCURSES_VERSION vs PDCURSES */ + } +-#endif ++#endif /* KEY_MOUSE */ + wrefresh(win); + if (c == ' ') + break; +@@ -491,7 +513,7 @@ + #ifdef A_COLOR + if (has_colors()) { + init_pair(3, COLOR_BLUE, COLOR_WHITE); +- wbkgd(win1, COLOR_PAIR(3)); ++ wbkgd(win1, (chtype) COLOR_PAIR(3)); + } else + wbkgd(win1, A_NORMAL); + #else +@@ -693,9 +715,11 @@ + raw(); + wgetch(pad); + +- spad = subpad(pad, 12, 25, 6, 52); +- MvWAddStr(spad, 2, 2, "This is a new subpad"); +- box(spad, 0, 0); ++ if ((spad = subpad(pad, 12, 25, 6, 52)) != 0) { ++ MvWAddStr(spad, 2, 2, "This is a new subpad"); ++ box(spad, 0, 0); ++ delwin(spad); ++ } + prefresh(pad, 0, 0, 0, 0, 15, 75); + keypad(pad, TRUE); + raw(); +diff -Naur ncurses-5.9/test/test_getstr.c ncurses-5.9.patch/test/test_getstr.c +--- ncurses-5.9/test/test_getstr.c 2009-08-29 21:02:25.000000000 +0200 ++++ ncurses-5.9.patch/test/test_getstr.c 2014-09-01 16:33:22.574792487 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. * ++ * Copyright (c) 2007-2009,2012 Free 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.9 2009/08/29 19:02:25 tom Exp $ ++ * $Id: test_getstr.c,v 1.10 2012/07/07 18:22:49 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -58,6 +58,15 @@ + eMaxFlavor + } Flavors; + ++/* ++ * Return-code is OK/ERR or a keyname. ++ */ ++static const char * ++ok_keyname(int code) ++{ ++ return ((code == OK) ? "OK" : ((code == ERR) ? "ERR" : keyname(code))); ++} ++ + static bool + Quit(int ch) + { +@@ -310,7 +319,7 @@ + } + noecho(); + (void) wattrset(txtwin, A_NORMAL); +- wprintw(strwin, "%d:%s", rc, buffer); ++ wprintw(strwin, "%s:%s", ok_keyname(rc), buffer); + wnoutrefresh(strwin); + break; + default: +diff -Naur ncurses-5.9/test/test.priv.h ncurses-5.9.patch/test/test.priv.h +--- ncurses-5.9/test/test.priv.h 2011-03-22 10:15:45.000000000 +0100 ++++ ncurses-5.9.patch/test/test.priv.h 2014-09-01 16:33:22.573792493 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2013,2014 Free 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.103 2011/03/22 09:15:45 tom Exp $ */ ++/* $Id: test.priv.h,v 1.123 2014/02/01 22:09:27 tom Exp $ */ + + #ifndef __TEST_PRIV_H + #define __TEST_PRIV_H 1 +@@ -58,6 +58,10 @@ + /* + * Fallback definitions to accommodate broken compilers. + */ ++#ifndef HAVE_ASSUME_DEFAULT_COLORS ++#define HAVE_ASSUME_DEFAULT_COLORS 0 ++#endif ++ + #ifndef HAVE_CURSES_VERSION + #define HAVE_CURSES_VERSION 0 + #endif +@@ -158,6 +162,10 @@ + #define HAVE_RIPOFFLINE 0 + #endif + ++#ifndef HAVE_SCR_DUMP ++#define HAVE_SCR_DUMP 0 ++#endif ++ + #ifndef HAVE_SETUPTERM + #define HAVE_SETUPTERM 0 + #endif +@@ -170,14 +178,30 @@ + #define HAVE_SLK_INIT 0 + #endif + ++#ifndef HAVE_SYS_IOCTL_H ++#define HAVE_SYS_IOCTL_H 0 ++#endif ++ ++#ifndef HAVE_SYS_SELECT_H ++#define HAVE_SYS_SELECT_H 0 ++#endif ++ + #ifndef HAVE_TERMATTRS + #define HAVE_TERMATTRS 0 + #endif + ++#ifndef HAVE_TERMIOS_H ++#define HAVE_TERMIOS_H 0 ++#endif ++ + #ifndef HAVE_TERMNAME + #define HAVE_TERMNAME 0 + #endif + ++#ifndef HAVE_TERM_ENTRY_H ++#define HAVE_TERM_ENTRY_H 0 ++#endif ++ + #ifndef HAVE_TGETENT + #define HAVE_TGETENT 0 + #endif +@@ -202,6 +226,14 @@ + #define HAVE_USE_DEFAULT_COLORS 0 + #endif + ++#ifndef HAVE_USE_SCREEN ++#define HAVE_USE_SCREEN 0 ++#endif ++ ++#ifndef HAVE_USE_WINDOW ++#define HAVE_USE_WINDOW 0 ++#endif ++ + #ifndef HAVE_WRESIZE + #define HAVE_WRESIZE 0 + #endif +@@ -222,6 +254,13 @@ + #define NO_LEAKS 0 + #endif + ++/* ++ * Workaround for HPUX ++ */ ++#if defined(__hpux) && !defined(NCURSES_VERSION) ++#define _ACS_COMPAT_CODE /* needed for acs_map vs __acs_map */ ++#endif ++ + #include <stdlib.h> + #include <stdarg.h> + #include <string.h> +@@ -269,21 +308,18 @@ + + /* + * Not all curses.h implementations include unctrl.h, +- * Solaris 10 xpg4 for example. + */ +-#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES) +-#if defined(HAVE_NCURSESW_NCURSES_H) ++#if defined(HAVE_NCURSESW_UNCTRL_H) + #include <ncursesw/unctrl.h> +-#elif defined(HAVE_NCURSES_NCURSES_H) ++#elif defined(HAVE_NCURSES_UNCTRL_H) + #include <ncurses/unctrl.h> +-#else ++#elif defined(HAVE_UNCTRL_H) + #include <unctrl.h> + #endif +-#endif + + #if HAVE_GETOPT_H + #include <getopt.h> +-#else ++#elif !defined(HAVE_GETOPT_HEADER) + /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables + * doesn't hurt. + */ +@@ -323,17 +359,20 @@ + #endif + + #if !USE_SOFTKEYS +-#define slk_init() /* nothing */ +-#define slk_restore() /* nothing */ +-#define slk_clear() /* nothing */ ++#define slk_init() /* nothing */ ++#define slk_restore() /* nothing */ ++#define slk_clear() /* nothing */ + #endif + + #ifndef HAVE_WSYNCDOWN +-#define wsyncdown(win) /* nothing */ ++#define wsyncdown(win) /* nothing */ + #endif + + #ifndef USE_WIDEC_SUPPORT +-#if (defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5)) && defined(WACS_ULCORNER) ++#if (defined(_XOPEN_SOURCE_EXTENDED) \ ++ || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) \ ++ || (defined(NCURSES_WIDECHAR) && (NCURSES_WIDECHAR - 0 < 1))) \ ++ && defined(WACS_ULCORNER) + #define USE_WIDEC_SUPPORT 1 + #else + #define USE_WIDEC_SUPPORT 0 +@@ -385,6 +424,14 @@ + #define NCURSES_CH_T cchar_t + #endif + ++#ifndef NCURSES_COLOR_T ++#define NCURSES_COLOR_T short ++#endif ++ ++#ifndef NCURSES_PAIRS_T ++#define NCURSES_PAIRS_T short ++#endif ++ + #ifndef NCURSES_OPAQUE + #define NCURSES_OPAQUE 0 + #endif +@@ -507,7 +554,7 @@ + if ((count = getcchar(s, NULL, NULL, NULL, NULL)) > 0) { \ + wchar_t test_wch[CCHARW_MAX + 2]; \ + attr_t test_attrs; \ +- short test_pair; \ ++ NCURSES_PAIRS_T test_pair; \ + \ + if (getcchar( s, test_wch, &test_attrs, &test_pair, NULL) == OK \ + && test_wch[0] != L'\0') { \ +@@ -576,6 +623,17 @@ + #define TIGETSTR(ti,tc) tgetstr(tc,&area_pointer) + #endif + ++/* ++ * So far (2013 - more than ten years), only ncurses implements ++ * use_extended_names(). ++ */ ++#if defined(NCURSES_XNAMES) ++#elif defined(NCURSES_VERSION) && defined(HAVE_TERM_ENTRY_H) && HAVE_TERM_ENTRY_H ++#define NCURSES_XNAMES 1 ++#else ++#define NCURSES_XNAMES 0 ++#endif ++ + /* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list + * (which is incompatible with legacy usage, doesn't solve any problems). + */ +@@ -609,8 +667,32 @@ + #define EXIT_FAILURE 1 + #endif + +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) ++ ++#if defined(PDCURSES) ++#ifdef WINVER ++# if WINVER < 0x0501 ++# error WINVER must at least be 0x0501 ++# endif ++#else ++# define WINVER 0x0501 ++#endif ++#include <windows.h> ++#include <sys/time.h> /* for struct timeval */ ++#undef sleep ++#define sleep(n) Sleep((n) * 1000) ++#define SIGHUP 1 ++#define SIGKILL 9 ++#define getlogin() "username" ++ ++#elif defined(HAVE_NCURSESW_NCURSES_H) ++#include <ncursesw/nc_mingw.h> ++#elif defined(HAVE_NCURSES_NCURSES_H) ++#include <ncurses/nc_mingw.h> ++#else + #include <nc_mingw.h> ++#endif ++ + /* conflicts in test/firstlast.c */ + #undef large + #undef small +@@ -653,25 +735,32 @@ + * The same would be needed for HPUX 10.20 + */ + #ifndef TPUTS_ARG ++#define TPUTS_ARG int ++#endif ++ + #if defined(sun) && !defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH) ++#undef TPUTS_ARG + #define TPUTS_ARG char + extern char *tgoto(char *, int, int); /* available, but not prototyped */ +-#else +-#define TPUTS_ARG int + #endif ++ ++#ifndef TPUTS_PROTO ++#define TPUTS_PROTO(func,value) int func(TPUTS_ARG value) ++#endif ++ ++#ifndef TPUTS_RETURN ++#define TPUTS_RETURN(value) return value + #endif + + /* + * Workarounds for Solaris's X/Open curses + */ +-#if defined(sun) && defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH) + #if !defined(KEY_MIN) && defined(__KEY_MIN) + #define KEY_MIN __KEY_MIN + #endif + #if !defined(KEY_MAX) && defined(__KEY_MIN) + #define KEY_MAX __KEY_MAX + #endif +-#endif + + /* + * Workaround to build with Sun's default SVr4 curses. +@@ -702,23 +791,10 @@ + #define CONST_MENUS /* nothing */ + #endif + +-#ifndef HAVE_USE_WINDOW +-#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915) || !NCURSES_EXT_FUNCS +-#define HAVE_USE_WINDOW 0 +-#else +-#define HAVE_USE_WINDOW 1 +-#endif +-#endif +- + /* + * Simplify setting up demo of threading with these macros. + */ + +-#if !HAVE_USE_WINDOW +-typedef int (*NCURSES_WINDOW_CB) (WINDOW *, void *); +-typedef int (*NCURSES_SCREEN_CB) (SCREEN *, void *); +-#endif +- + #if HAVE_USE_WINDOW + #define USING_WINDOW(w,func) use_window(w, (NCURSES_WINDOW_CB) func, w) + #define USING_WINDOW2(w,func,data) use_window(w, (NCURSES_WINDOW_CB) func, data) +@@ -745,6 +821,8 @@ + #define USE_TRACE 0 + #endif + ++#define Trace2(p) /* nothing */ ++ + #define MvAddCh (void) mvaddch + #define MvWAddCh (void) mvwaddch + #define MvAddStr (void) mvaddstr +diff -Naur ncurses-5.9/test/test_vid_puts.c ncurses-5.9.patch/test/test_vid_puts.c +--- ncurses-5.9/test/test_vid_puts.c 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/test_vid_puts.c 2014-09-01 16:33:22.574792487 +0200 +@@ -0,0 +1,148 @@ ++/**************************************************************************** ++ * Copyright (c) 2013 Free 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: test_vid_puts.c,v 1.5 2013/09/28 22:42:29 tom Exp $ ++ * ++ * Demonstrate the vid_puts and vid_attr functions. ++ * Thomas Dickey - 2013/01/12 ++ */ ++ ++#define USE_TINFO ++#include <test.priv.h> ++ ++#if USE_WIDEC_SUPPORT && HAVE_SETUPTERM ++ ++#define valid(s) ((s != 0) && s != (char *)-1) ++ ++static FILE *my_fp; ++static bool p_opt = FALSE; ++ ++static ++TPUTS_PROTO(outc, c) ++{ ++ int rc = c; ++ ++ rc = putc(c, my_fp); ++ TPUTS_RETURN(rc); ++} ++ ++static bool ++outs(const char *s) ++{ ++ if (valid(s)) { ++ tputs(s, 1, outc); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++static void ++cleanup(void) ++{ ++ outs(exit_attribute_mode); ++ if (!outs(orig_colors)) ++ outs(orig_pair); ++ outs(cursor_normal); ++} ++ ++static void ++change_attr(chtype attr) ++{ ++ if (p_opt) { ++ vid_puts(attr, (short) 0, (void *) 0, outc); ++ } else { ++ vid_attr(attr, (short) 0, (void *) 0); ++ } ++} ++ ++static void ++test_vid_puts(void) ++{ ++ fprintf(my_fp, "Name: "); ++ change_attr(A_BOLD); ++ fputs("Bold", my_fp); ++ change_attr(A_REVERSE); ++ fputs(" Reverse", my_fp); ++ change_attr(A_NORMAL); ++ fputs("\n", my_fp); ++} ++ ++static void ++usage(void) ++{ ++ static const char *tbl[] = ++ { ++ "Usage: test_vid_puts [options]" ++ ,"" ++ ,"Options:" ++ ," -e use stderr (default stdout)" ++ ," -p use vid_puts (default vid_attr)" ++ }; ++ unsigned n; ++ for (n = 0; n < SIZEOF(tbl); ++n) ++ fprintf(stderr, "%s\n", tbl[n]); ++ ExitProgram(EXIT_FAILURE); ++} ++ ++int ++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) ++{ ++ int ch; ++ ++ my_fp = stdout; ++ ++ while ((ch = getopt(argc, argv, "ep")) != -1) { ++ switch (ch) { ++ case 'e': ++ my_fp = stderr; ++ break; ++ case 'p': ++ p_opt = TRUE; ++ break; ++ default: ++ usage(); ++ break; ++ } ++ } ++ if (optind < argc) ++ usage(); ++ ++ setupterm((char *) 0, 1, (int *) 0); ++ test_vid_puts(); ++ cleanup(); ++ ExitProgram(EXIT_SUCCESS); ++} ++ ++#else ++int ++main(void) ++{ ++ printf("This program requires the wide-ncurses terminfo library\n"); ++ ExitProgram(EXIT_FAILURE); ++} ++#endif +diff -Naur ncurses-5.9/test/test_vidputs.c ncurses-5.9.patch/test/test_vidputs.c +--- ncurses-5.9/test/test_vidputs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/test_vidputs.c 2014-09-01 16:33:22.574792487 +0200 +@@ -0,0 +1,148 @@ ++/**************************************************************************** ++ * Copyright (c) 2013 Free 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: test_vidputs.c,v 1.4 2013/09/28 22:45:21 tom Exp $ ++ * ++ * Demonstrate the vidputs and vidattr functions. ++ * Thomas Dickey - 2013/01/12 ++ */ ++ ++#define USE_TINFO ++#include <test.priv.h> ++ ++#if HAVE_SETUPTERM ++ ++#define valid(s) ((s != 0) && s != (char *)-1) ++ ++static FILE *my_fp; ++static bool p_opt = FALSE; ++ ++static ++TPUTS_PROTO(outc, c) ++{ ++ int rc = c; ++ ++ rc = putc(c, my_fp); ++ TPUTS_RETURN(rc); ++} ++ ++static bool ++outs(const char *s) ++{ ++ if (valid(s)) { ++ tputs(s, 1, outc); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++static void ++cleanup(void) ++{ ++ outs(exit_attribute_mode); ++ if (!outs(orig_colors)) ++ outs(orig_pair); ++ outs(cursor_normal); ++} ++ ++static void ++change_attr(chtype attr) ++{ ++ if (p_opt) { ++ vidputs(attr, outc); ++ } else { ++ vidattr(attr); ++ } ++} ++ ++static void ++test_vidputs(void) ++{ ++ fprintf(my_fp, "Name: "); ++ change_attr(A_BOLD); ++ fputs("Bold", my_fp); ++ change_attr(A_REVERSE); ++ fputs(" Reverse", my_fp); ++ change_attr(A_NORMAL); ++ fputs("\n", my_fp); ++} ++ ++static void ++usage(void) ++{ ++ static const char *tbl[] = ++ { ++ "Usage: test_vidputs [options]" ++ ,"" ++ ,"Options:" ++ ," -e use stderr (default stdout)" ++ ," -p use vidputs (default vidattr)" ++ }; ++ unsigned n; ++ for (n = 0; n < SIZEOF(tbl); ++n) ++ fprintf(stderr, "%s\n", tbl[n]); ++ ExitProgram(EXIT_FAILURE); ++} ++ ++int ++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) ++{ ++ int ch; ++ ++ my_fp = stdout; ++ ++ while ((ch = getopt(argc, argv, "ep")) != -1) { ++ switch (ch) { ++ case 'e': ++ my_fp = stderr; ++ break; ++ case 'p': ++ p_opt = TRUE; ++ break; ++ default: ++ usage(); ++ break; ++ } ++ } ++ if (optind < argc) ++ usage(); ++ ++ setupterm((char *) 0, 1, (int *) 0); ++ test_vidputs(); ++ cleanup(); ++ ExitProgram(EXIT_SUCCESS); ++} ++#else ++int ++main(int argc GCC_UNUSED, ++ char *argv[]GCC_UNUSED) ++{ ++ fprintf(stderr, "This program requires terminfo\n"); ++ exit(EXIT_FAILURE); ++} ++#endif +diff -Naur ncurses-5.9/test/view.c ncurses-5.9.patch/test/view.c +--- ncurses-5.9/test/view.c 2010-11-14 02:06:02.000000000 +0100 ++++ ncurses-5.9.patch/test/view.c 2014-09-01 16:33:22.575792482 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free 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,10 +50,11 @@ + * scroll operation worked, and the refresh() code only had to do a + * partial repaint. + * +- * $Id: view.c,v 1.81 2010/11/14 01:06:02 tom Exp $ ++ * $Id: view.c,v 1.94 2013/09/28 21:58:42 tom Exp $ + */ + + #include <test.priv.h> ++#include <widechars.h> + + #include <time.h> + +@@ -81,24 +82,10 @@ + #include <sys/ptem.h> + #endif + +-#if USE_WIDEC_SUPPORT +-#if HAVE_MBTOWC && HAVE_MBLEN +-#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0)) +-#define count_mbytes(buffer,length,state) mblen(buffer,length) +-#define check_mbytes(wch,buffer,length,state) \ +- (int) mbtowc(&wch, buffer, length) +-#define state_unused +-#elif HAVE_MBRTOWC && HAVE_MBRLEN +-#define reset_mbytes(state) init_mb(state) +-#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state) +-#define check_mbytes(wch,buffer,length,state) \ +- (int) mbrtowc(&wch, buffer, length, &state) +-#else +-make an error +-#endif +-#endif /* USE_WIDEC_SUPPORT */ ++#undef CTRL ++#define CTRL(x) ((x) & 0x1f) + +-static RETSIGTYPE finish(int sig) GCC_NORETURN; ++static void finish(int sig) GCC_NORETURN; + static void show_all(const char *tag); + + #if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZE_TERM +@@ -108,11 +95,11 @@ + #endif + + #if CAN_RESIZE +-static RETSIGTYPE adjust(int sig); ++static void adjust(int sig); + static int interrupted; ++static bool waiting = FALSE; + #endif + +-static bool waiting = FALSE; + static int shift = 0; + static bool try_color = FALSE; + +@@ -121,6 +108,8 @@ + static NCURSES_CH_T **lptr; + static int num_lines; + ++static void usage(void) GCC_NORETURN; ++ + static void + usage(void) + { +@@ -135,6 +124,7 @@ + #if defined(KEY_RESIZE) + ," -r use old-style sigwinch handler rather than KEY_RESIZE" + #endif ++ ," -s start in single-step mode, waiting for input" + #ifdef TRACE + ," -t trace screen updates" + ," -T NUM specify trace mask" +@@ -180,7 +170,7 @@ + { + unsigned len = (unsigned) strlen(src); + NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1); +- unsigned j, k; ++ size_t j, k; + #if USE_WIDEC_SUPPORT + wchar_t wstr[CCHARW_MAX + 1]; + wchar_t wch; +@@ -243,6 +233,7 @@ + int value = 0; + bool done = FALSE; + bool got_number = FALSE; ++ bool single_step = FALSE; + #if CAN_RESIZE + bool nonposix_resize = FALSE; + #endif +@@ -258,7 +249,7 @@ + (void) signal(SIGINT, finish); /* arrange interrupts to terminate */ + #endif + +- while ((i = getopt(argc, argv, "cin:rtT:")) != -1) { ++ while ((i = getopt(argc, argv, "cin:rstT:")) != -1) { + switch (i) { + case 'c': + try_color = TRUE; +@@ -276,9 +267,18 @@ + nonposix_resize = TRUE; + break; + #endif ++ case 's': ++ single_step = TRUE; ++ break; + #ifdef TRACE + case 'T': +- trace((unsigned) atoi(optarg)); ++ { ++ char *next = 0; ++ int tvalue = (int) strtol(optarg, &next, 0); ++ if (tvalue < 0 || (next != 0 && *next != 0)) ++ usage(); ++ trace((unsigned) tvalue); ++ } + break; + case 't': + trace(TRACE_CALLS); +@@ -306,7 +306,7 @@ + (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */ + #endif + +- /* slurp the file */ ++ Trace(("slurp the file")); + for (lptr = &vec_lines[0]; (lptr - vec_lines) < MAXLINES; lptr++) { + char temp[BUFSIZ], *s, *d; + int col; +@@ -314,8 +314,26 @@ + if (fgets(buf, sizeof(buf), fp) == 0) + break; + +- /* convert tabs so that shift will work properly */ ++#if USE_WIDEC_SUPPORT ++ if (lptr == vec_lines) { ++ if (!memcmp("", buf, 3)) { ++ Trace(("trim BOM")); ++ s = buf + 3; ++ d = buf; ++ do { ++ } while ((*d++ = *s++) != '\0'); ++ } ++ } ++#endif ++ ++ /* convert tabs and nonprinting chars so that shift will work properly */ + for (s = buf, d = temp, col = 0; (*d = *s) != '\0'; s++) { ++ if (*d == '\r') { ++ if (s[1] == '\n') ++ continue; ++ else ++ break; ++ } + if (*d == '\n') { + *d = '\0'; + break; +@@ -347,14 +365,15 @@ + (void) nonl(); /* tell curses not to do NL->CR/NL on output */ + (void) cbreak(); /* take input chars one at a time, no wait for \n */ + (void) noecho(); /* don't echo input */ +- nodelay(stdscr, TRUE); ++ if (!single_step) ++ nodelay(stdscr, TRUE); + idlok(stdscr, TRUE); /* allow use of insert/delete line */ + + if (try_color) { + if (has_colors()) { + start_color(); + init_pair(my_pair, COLOR_WHITE, COLOR_BLUE); +- bkgd(COLOR_PAIR(my_pair)); ++ bkgd((chtype) COLOR_PAIR(my_pair)); + } else { + try_color = FALSE; + } +@@ -373,10 +392,12 @@ + adjust(0); + my_label = "interrupt"; + } +-#endif + waiting = TRUE; + c = getch(); + waiting = FALSE; ++#else ++ c = getch(); ++#endif + if ((c < 127) && isdigit(c)) { + if (!got_number) { + MvPrintw(0, 0, "Count: "); +@@ -466,6 +487,9 @@ + nodelay(stdscr, TRUE); + my_delay = 0; + break; ++ case CTRL('L'): ++ redrawwin(stdscr); ++ break; + case ERR: + if (!my_delay) + napms(50); +@@ -483,7 +507,7 @@ + finish(0); /* we're done */ + } + +-static RETSIGTYPE ++static void + finish(int sig) + { + endwin(); +@@ -510,7 +534,7 @@ + * The 'wrefresh(curscr)' is needed to force the refresh to start from the top + * of the screen -- some xterms mangle the bitmap while resizing. + */ +-static RETSIGTYPE ++static void + adjust(int sig) + { + if (waiting || sig == 0) { +@@ -553,7 +577,7 @@ + printw("%.*s", COLS, temp); + clrtoeol(); + this_time = time((time_t *) 0); +- strcpy(temp, ctime(&this_time)); ++ strncpy(temp, ctime(&this_time), (size_t) 30); + if ((i = (int) strlen(temp)) != 0) { + temp[--i] = 0; + if (move(0, COLS - i - 2) != ERR) +diff -Naur ncurses-5.9/test/widechars.h ncurses-5.9.patch/test/widechars.h +--- ncurses-5.9/test/widechars.h 1970-01-01 01:00:00.000000000 +0100 ++++ ncurses-5.9.patch/test/widechars.h 2014-09-01 16:33:22.575792482 +0200 +@@ -0,0 +1,71 @@ ++/**************************************************************************** ++ * Copyright (c) 2012 Free 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. * ++ ****************************************************************************/ ++ ++#ifndef __WIDECHARS_H ++#define __WIDECHARS_H 1 ++ ++#include <test.priv.h> ++ ++#if USE_WIDEC_SUPPORT ++ ++#if defined(__MINGW32__) ++/* ++ * MinGW has wide-character functions, but they do not work correctly. ++ */ ++ ++extern int _nc_mbtowc(wchar_t *pwc, const char *s, size_t n); ++extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *pwc, const char *s, size_t n); ++#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n) ++ ++extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t); ++#define mblen(s,n) _nc_mblen(s, n) ++ ++#endif /* __MINGW32__ */ ++ ++#if HAVE_MBTOWC && HAVE_MBLEN ++#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0)) ++#define count_mbytes(buffer,length,state) mblen(buffer,length) ++#define check_mbytes(wch,buffer,length,state) \ ++ (int) mbtowc(&wch, buffer, length) ++#define state_unused ++#elif HAVE_MBRTOWC && HAVE_MBRLEN ++#define reset_mbytes(state) init_mb(state) ++#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state) ++#define check_mbytes(wch,buffer,length,state) \ ++ (int) mbrtowc(&wch, buffer, length, &state) ++#else ++make an error ++#endif ++ ++#else ++ ++#endif /* USE_WIDEC_SUPPORT */ ++ ++extern void widechars_stub(void); ++ ++#endif /* __WIDECHARS_H */ +diff -Naur ncurses-5.9/test/worm.c ncurses-5.9.patch/test/worm.c +--- ncurses-5.9/test/worm.c 2010-11-13 21:21:21.000000000 +0100 ++++ ncurses-5.9.patch/test/worm.c 2014-09-01 16:33:22.575792482 +0200 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -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.60 2010/11/13 20:21:21 tom Exp $ ++ $Id: worm.c,v 1.65 2013/06/22 20:01:41 tom Exp $ + */ + + #include <test.priv.h> +@@ -202,6 +202,14 @@ + /* *INDENT-ON* */ + + static void ++failed(const char *s) ++{ ++ perror(s); ++ endwin(); ++ ExitProgram(EXIT_FAILURE); ++} ++ ++static void + cleanup(void) + { + USING_WINDOW(stdscr, wrefresh); +@@ -209,7 +217,7 @@ + endwin(); + } + +-static RETSIGTYPE ++static void + onsig(int sig GCC_UNUSED) + { + cleanup(); +@@ -354,8 +362,7 @@ + if (first) { + first = FALSE; + for (n = 0, w = &worm[0]; n < number; n++, w++) { +- int rc; +- rc = pthread_create(&(w->thread), NULL, start_worm, w); ++ (void) pthread_create(&(w->thread), NULL, start_worm, w); + } + } + #else +@@ -391,6 +398,8 @@ + if (last_x != COLS - 1) { + for (y = 0; y <= last_y; y++) { + refs[y] = typeRealloc(int, (size_t) COLS, refs[y]); ++ if (!refs[y]) ++ failed("update_refs"); + for (x = last_x + 1; x < COLS; x++) + refs[y][x] = 0; + } +@@ -402,6 +411,8 @@ + refs = typeRealloc(int *, (size_t) LINES, refs); + for (y = last_y + 1; y < LINES; y++) { + refs[y] = typeMalloc(int, (size_t) COLS); ++ if (!refs[y]) ++ failed("update_refs"); + for (x = 0; x < COLS; x++) + refs[y][x] = 0; + } +@@ -419,6 +430,7 @@ + struct worm *w; + int *ip; + bool done = FALSE; ++ int max_refs; + + setlocale(LC_ALL, ""); + +@@ -489,7 +501,7 @@ + + #define SET_COLOR(num, fg) \ + init_pair(num+1, (short) fg, (short) bg); \ +- flavor[num] |= COLOR_PAIR(num+1) | A_BOLD ++ flavor[num] |= (chtype) COLOR_PAIR(num+1) | A_BOLD + + SET_COLOR(0, COLOR_GREEN); + SET_COLOR(1, COLOR_RED); +@@ -501,8 +513,9 @@ + } + #endif /* A_COLOR */ + +- refs = typeMalloc(int *, (size_t) LINES); +- for (y = 0; y < LINES; y++) { ++ max_refs = LINES; ++ refs = typeMalloc(int *, (size_t) max_refs); ++ for (y = 0; y < max_refs; y++) { + refs[y] = typeMalloc(int, (size_t) COLS); + for (x = 0; x < COLS; x++) { + refs[y][x] = 0; +@@ -596,7 +609,7 @@ + Trace(("Cleanup")); + cleanup(); + #ifdef NO_LEAKS +- for (y = 0; y < LINES; y++) { ++ for (y = 0; y < max_refs; y++) { + free(refs[y]); + } + free(refs); +diff -Naur ncurses-5.9/test/xmas.c ncurses-5.9.patch/test/xmas.c +--- ncurses-5.9/test/xmas.c 2010-11-13 21:24:10.000000000 +0100 ++++ ncurses-5.9.patch/test/xmas.c 2014-09-01 16:33:22.575792482 +0200 +@@ -92,7 +92,7 @@ + /******************************************************************************/ + + /* +- * $Id: xmas.c,v 1.27 2010/11/13 20:24:10 tom Exp $ ++ * $Id: xmas.c,v 1.28 2013/04/27 19:46:53 tom Exp $ + */ + #include <test.priv.h> + +@@ -148,7 +148,7 @@ + static int reindeer(void); + static int blinkit(void); + +-static RETSIGTYPE done(int sig) GCC_NORETURN; ++static void done(int sig) GCC_NORETURN; + + static void + set_color(WINDOW *win, chtype color) +@@ -1143,7 +1143,7 @@ + return (0); + } + +-static RETSIGTYPE ++static void + done(int sig GCC_UNUSED) + { + CATCHALL(done);